Skip to content

反思必须产生可验证修正 ​

让模型再次说“我检查过了”不是反思。有效反思要指出失败证据、可执行修正、预期变化和验证方式。修正后必须重新运行外部检查;如果没有新证据,重复反思只是增加 token 和延迟。事实、计划假设和不确定性应分开记录。

第一个可运行实验:没有新证据就停止反思 ​

保存为 reflect.py,用 Python 3.12 运行。

python
def reflect(result, evidence):
    if result['status'] == 'passed':
        return {'action': 'stop', 'reason': 'verified'}
    if not evidence:
        return {'action': 'stop', 'reason': 'no_new_evidence'}
    if evidence.get('kind') == 'schema_error':
        return {'action': 'repair', 'change': 'fix_schema', 'verify': 'rerun_schema'}
    return {'action': 'escalate', 'reason': 'unknown_failure'}

assert reflect({'status': 'passed'}, {})['action'] == 'stop'
assert reflect({'status': 'failed'}, {})['reason'] == 'no_new_evidence'
assert reflect({'status': 'failed'}, {'kind': 'schema_error'})['action'] == 'repair'
print('reflection evidence passed')

反思输出应绑定原始运行 ID 和失败观察。安全、权限和预算失败不能通过提示词重写成“继续尝试”;它们需要停止或人工处理。模型可以提出候选解释,但业务验收、测试和权限服务才是证据来源。

变体实验 ​

把同一条 schema 错误重复输入两次,要求第二次不新增修正。再输入权限拒绝,确认结果是停止或升级,而不是 repair。

练习 ​

  1. 设计反思记录字段:失败证据、修正、预期、验证结果和版本。
  2. 区分事实错误、计划错误、工具错误和权限错误的处理路径。
  3. 说明为什么“换一个措辞再问一次”不能算新证据。

用心记录每一步成长