首页 / 正文

Agent 能力“飞跃”的关键:给它加一层「可验证的执行闭环」(附提示词与落地模板)

Mooko
发布于 2026-04-27 · 5分钟阅读
793 浏览
0 点赞 暴击点赞!

Agent 能力为什么会突然“飞跃”?

你肯定见过这种场面:

  • Agent 规划写得像咨询报告 📝
  • 真去执行,卡在第 2 步
  • 然后开始编:工具明明没返回,它说“已完成”

这不是模型不够强,而是缺一层“可验证”的执行闭环

很多论文/框架把 Agent 往“更会思考”方向推,但真正能让落地效果变猛的,往往是这件事:

每一步都要有验收标准;不满足就回滚重试;把过程记下来,下一次别再摔同一个坑。

下面咱们就按“能照做”的方式,把这套闭环搭起来。


你要的不是更长的计划,是「能验收的任务树」

常见错误:让 Agent 生成一个大计划,然后直接开跑。

真实世界不吃这一套。你需要的是任务树(Task Tree),每个节点都带:

  • 输入:这一步拿到什么
  • 动作:要调用什么工具/写什么代码/输出什么
  • 验收:怎么判断完成(必须可检查)
  • 失败策略:失败了怎么改、最多重试几次

✅ 任务节点模板(直接复制)

【任务节点】
目标:
输入:
动作:
产物:
验收标准(必须可检查):
失败时调整:
重试次数上限:

示例:做一个“自动整理会议纪要”的 Agent

你别让它一句话“帮我整理纪要并输出待办”。拆成可验收的节点:

  • 节点 A:提取发言人 + 关键结论
    • 验收:发言人列表数量 > 0;每条结论有引用原句
  • 节点 B:生成 TODO(带负责人/截止日期)
    • 验收:每条 TODO 包含 3 个字段,不允许空
  • 节点 C:导出 Markdown + 发到飞书/Slack
    • 验收:接口返回 success;消息里包含标题

这时候 Agent 才像“项目经理”,不是“灵感写作者”。


核心组件 1:执行器(Executor)——每步只干一件事

执行器的规则很简单:

  • 一次只执行一个节点
  • 产物必须落盘(或进入状态存储)
  • 每次工具调用都要保存原始返回

执行器输出格式(建议强制)

{
  "step": "B",
  "action": "generate_todos",
  "inputs": {"summary": "..."},
  "tool_calls": [{"tool": "none"}],
  "output": {"todos": []}
}

你会发现一个好处:你能回放每一步。Agent 翻车时,不用猜。


核心组件 2:验收器(Verifier)——专门负责挑刺 😈

别让同一个“写的人”来“评自己”。人类都做不到,模型更做不到。

做法:给 Agent 配一个“验收人格”(可以是同一个模型的不同 system prompt,也可以是另一模型)。它只干一件事:

根据验收标准,判断 PASS/FAIL,并给出可执行的修改建议。

✅ Verifier 提示词模板

你是验收器,不负责创作。
你只根据【验收标准】检查【产物】。
输出必须是 JSON:
{
  "result": "PASS"|"FAIL",
  "reasons": ["..."],
  "fix_suggestions": ["..."],
  "missing_fields": ["..."]
}

验收标准:
{{criteria}}

产物:
{{artifact}}

验收标准怎么写才不废?

写“内容清晰、逻辑完整”这种,等于没写。

用这种:

  • “每条 TODO 必须含:任务/负责人/截止时间;缺一项判 FAIL”
  • “输出必须含 3 个小标题:结论、争议点、下一步;缺标题判 FAIL”
  • “引用原句必须用 >,每条结论至少 1 条引用”

验收标准越像测试用例,Agent 越稳。


核心组件 3:回滚与重试(Rollback)——允许失败,但不允许装死

Agent 最烦人的不是失败,是失败了还硬说成功。

所以要加两条铁律:

  • 验收 FAIL → 必须重试
  • 重试要带“失败原因”上下文,不许从零开始瞎写

重试提示词(把失败原因塞回去)

刚才这一步验收失败。
失败原因:
{{reasons}}

修改建议:
{{fix_suggestions}}

请只针对问题修复,不要重写无关部分。
输出仍需满足原验收标准。

再加一个上限:比如每步最多 2~3 次。 超过就中止并报警,让人介入。


核心组件 4:过程记忆(Memory)——把“踩坑”变成资产

你想让 Agent 越用越好,就得记两类东西:

  • 决策记忆:为什么这么拆任务、为什么选这个工具
  • 错误记忆:常见失败模式 + 修复办法

建议的记忆结构

{
  "project": "meeting_minutes",
  "patterns": [
    {
      "symptom": "TODO 缺负责人",
      "cause": "输入里没明确人名,模型偷懒",
      "fix": "要求从原文提取负责人;提取不到就标记为待确认",
      "prevention": "验收规则强制检查负责人字段"
    }
  ]
}

场景感一点:

  • 你下周再跑同样的“纪要 Agent”,它就不会再漏负责人
  • 你每天能少手动补一次信息,真的能早下班一小时

一套最小可用的 Agent 闭环(代码骨架)

下面是偏伪代码的结构,重点是思路,你用 LangChain / 自己写都行。

MAX_RETRY = 3

for node in task_tree:
    for attempt in range(MAX_RETRY):
        artifact = executor.run(node)
        verdict = verifier.check(node.criteria, artifact)

        log.save(node, artifact, verdict)

        if verdict["result"] == "PASS":
            state.store(node.id, artifact)
            break

        node = node.apply_fix(verdict["fix_suggestions"])  # 把失败原因注入下一次
    else:
        raise RuntimeError(f"Node {node.id} failed after retries")

你会发现:这玩意儿看着“笨”,但交付会非常稳。


真实落地时最容易踩的坑(避坑清单)

  • 验收标准写得太虚:验收器只能点头,无法挑错。改成字段级/格式级/数量级。
  • 让执行器输出“自然语言”:后面无法做自动检查。强制 JSON 或可解析结构。
  • 工具返回没保存:出问题只能靠猜。把原始返回存起来,日志是你的保险。
  • 重试没有带失败原因:等于让 Agent 反复抽盲盒。把 reasons/fix_suggestions 贴回去。
  • 同一模型同一提示词做执行+验收:经常互相放水。至少分角色提示词。

你可以从哪件小事开始改?

别一上来就“打造通用超级 Agent”。从你每天最痛的一个场景下手:

  • 写周报、整理纪要、拉取数据出图、生成 PRD、批量改文案

做一件事就够:

把你的 Agent 输出,从“看起来对”变成“验收通过”。

闭环一旦跑顺,你会明显感觉 Agent 不是在“陪聊”,是在“交付”。

OpenClaw
OpenClaw
木瓜AI支持养龙虾啦
木瓜AI龙虾专供API,限时领取免费tokens
可在 OpenClaw接入全球顶尖AI大模型
立即领取