Skip to content

求是方法论在 AI Agent 中的应用

引言

"实事求是"是中国哲学的核心方法论。在 AI Agent 工程领域,这套方法论可以从唯物辩证法中提炼出九大原则,系统化地指导 Prompt Engineering、Agent 行为设计和结果评估。

九大方法论体系

1. 矛盾分析法

核心思想:抓住主要矛盾和矛盾的主要方面。

在 Agent 分析复杂问题时,上下文窗口有限,不可能面面俱到。矛盾分析法帮助 Agent 识别最关键的问题维度,优先解决核心矛盾。

python
CONTRADICTION_PROMPT = """请分析当前问题的矛盾结构:

## 主要矛盾
- 核心问题是什么?
- 哪个因素最关键?

## 矛盾的主要方面
- 哪一方占主导地位?
- 控制哪个变量效果最显著?

## 次要矛盾
- 还有哪些次要因素?
- 在什么条件下会转化?

## 转化条件
- 什么情况下主次矛盾会转化?
- 需要监控哪些指标?
"""

实战案例:在设计代码审查 Agent 时,主要矛盾是"审查质量 vs 审查速度"。矛盾的主要方面是"质量"——先保证质量,再优化速度。当准确率达到 95% 后,主要矛盾转化为速度。

2. 质量互变律

核心思想:量变引起质变,持续积累带来系统性变革。

Agent 应该从大量观察中学习规律,当某个模式出现足够多次后,自动将其提炼为规则:

python
class AccumulationLearning:
    """基于量变到质变的学习机制"""

    def __init__(self, threshold: int = 100):
        self.patterns = {}
        self.threshold = threshold

    def observe(self, pattern: str, context: str) -> str | None:
        """观察一个模式,达到阈值后生成规则"""
        if pattern not in self.patterns:
            self.patterns[pattern] = {
                'count': 0,
                'contexts': [],
                'rule': None
            }

        entry = self.patterns[pattern]
        entry['count'] += 1
        entry['contexts'].append(context)

        if entry['count'] >= self.threshold and not entry['rule']:
            entry['rule'] = self._generate_rule(pattern, entry['contexts'])
            return entry['rule']

        return None

    def _generate_rule(self, pattern: str, contexts: list) -> str:
        """从观察中生成规则"""
        common = self._extract_common(contexts)
        return f"Rule: When {pattern}, then {common}"

3. 否定之否定

核心思想:发展是螺旋式上升的,每一次否定都是扬弃(既克服又保留)。

在 Agent 决策中,通过"正题 - 反题 - 合题"的三段式推理,避免思维定势:

python
NEGATION_PROMPT = """请应用否定之否定方法分析:

## 正题(当前方案)
- 当前方案是什么?
- 它的核心假设是什么?
- 它在什么条件下有效?

## 反题(对立面)
- 如果核心假设不成立会怎样?
- 这个方案的局限性是什么?
- 有没有相反但同样合理的方案?

## 合题(综合)
- 如何在更高层次统合正反两面?
- 既保留正题的优点,又克服其局限?
"""

4. 实践检验法

核心思想:实践是检验真理的唯一标准。

Agent 提出的每个方案都必须有可验证的测试计划:

python
PRACTICE_PROMPT = """设计验证方案:

## 验证方法
- 如何测试方案的正确性?
- 需要哪些测试数据?
- 测试环境和条件是什么?

## 成功标准
- 哪些指标达标才算成功?
- 定性和定量标准分别是什么?

## 回退预案
- 如果验证失败怎么办?
- 回退方案是什么?
- 失败后如何改进?
"""

5. 全面联系法

核心思想:事物是普遍联系的,不能孤立看问题。

python
SYSTEMIC_PROMPT = """从多个维度分析影响:

1. 技术维度
   - 与现有系统的兼容性
   - 技术债务影响
   - 性能开销

2. 用户维度
   - 对用户体验的影响
   - 学习成本
   - 可访问性

3. 业务维度
   - 成本效益分析
   - 维护成本
   - 可扩展性

4. 时间维度
   - 短期效果
   - 长期影响
   - 可持续性
"""

6. 发展变化观

核心思想:事物处于不断发展变化中。

python
EVOLUTION_PROMPT = """评估方案的发展性:

## 当前状态
- 现有方案的能力和局限

## 近期演化(3个月)
- 可能出现什么变化?
- 方案如何适应?

## 中期演化(6个月)
- 技术趋势如何影响方案?
- 升级路径是什么?

## 远期(1年+)
- 方案的生存周期
- 替代技术的可能性
"""

7. 具体问题具体分析

核心思想:抽象原则必须结合具体情境。

python
CONTEXTUAL_PROMPT = """情境化分析:

- 当前上下文的特殊之处
- 通用方案的适用性评估
- 需要哪些本地化调整
- 特殊情况的处理预案
"""

8. 因果关系分析法

透过现象看本质,找到根本原因:

python
CAUSAL_PROMPT = """5-Why 根因分析:

1. 现象:发生了什么?
2. Why 1:为什么会出现?
3. Why 2:为什么会这样?
4. Why 3:深层原因是什么?
5. Why 4:系统性原因是什么?
6. Why 5:根因是什么?

输出模板:
{
  "phenomenon": "现象描述",
  "root_cause": "根本原因",
  "solution": "针对根因的解决方案",
  "prevention": "预防措施"
}
"""

9. 反馈循环(群众路线)

从群众中来,到群众中去:

python
FEEDBACK_PROMPT = """设计完整反馈循环:

## 收集阶段
- 从哪里收集反馈?
- 收集频率?
- 收集什么类型的数据?

## 分析阶段
- 如何分析反馈数据?
- 用什么指标衡量?

## 改进阶段
- 如何将反馈转化为改进?
- 改进的优先级排序?

## 验证阶段
- 如何验证改进效果?
- 是否形成正向循环?
"""

工程化框架

将九大方法论整合为可编程的 Agent Skill 框架:

python
class QiushiFramework:
    """求是方法论框架"""

    def __init__(self):
        self.methods = {
            'contradiction': self._contradiction_analysis,
            'causality': self._causal_analysis,
            'practice': self._practice_design,
            'systemic': self._systemic_analysis,
            'evolution': self._evolution_assessment,
        }

    def analyze(self, problem: str, method_names: list = None) -> dict:
        """多角度分析问题"""
        if method_names is None:
            method_names = ['contradiction', 'causality', 'practice']

        results = {}
        for name in method_names:
            if name in self.methods:
                method = self.methods[name]
                results[name] = method(problem)

        return results

    def synthesize(self, results: dict) -> str:
        """综合多种分析视角"""
        prompt = "综合以下分析结果,给出整体方案:\n"
        for method, result in results.items():
            prompt += f"\n## {method} 分析\n{str(result)}\n"
        return prompt

    def _contradiction_analysis(self, problem: str) -> dict:
        """矛盾分析"""
        return {"method": "contradiction", "problem": problem}

    def _causal_analysis(self, problem: str) -> dict:
        """因果分析"""
        return {"method": "causality", "problem": problem}

    def _practice_design(self, plan: str) -> dict:
        """实践设计"""
        return {"method": "practice", "plan": plan}

应用效果对比

方法论适用场景使用前使用后提升
矛盾分析问题优先级排序平均2轮确定1轮确定50%
因果分析Bug 定位随机猜测系统追溯40%
实践检验方案验证凭经验判断有据可依35%
全面联系系统设计遗漏维度全覆盖60%

完整代码:github.com/qingjian0/qiushi-skill

基于 VitePress 构建 | 清简的 AI Agent 技术博客