Skip to content

Agent 执行后没有任何反应 ​

先判断三件事:模型有没有发出工具调用,调用有没有到达执行器,动作执行后页面有没有产生可观察变化。只看聊天文字会把三种不同故障混在一起。

判断树 ​

text
聊天没有工具卡片?
  ├─ 是:模型配置 / 提示词 / 工具清单问题
  └─ 否:看工具结果
       ├─ ACTION_NOT_FOUND → id 或页面快照
       ├─ ACTION_UNAVAILABLE → 前置条件 / 可见性
       ├─ PERMISSION_DENIED → 权限
       ├─ EXPECTATION_FAILED → 执行了但结果未出现
       └─ 成功 → 页面状态或模型未继续

1. 确认模型已就绪 ​

在调试面板查看当前 baseUrl、模型名和配置诊断。NOT_CONFIGURED、MODEL_BASE_URL_MISSING 或 MODEL_NAME_MISSING 表示运行时还没有发出合法请求。不要在页面里写服务商密钥;生产应走同源模型网关。

2. 确认能力已声明且当前可见 ​

打开调试面板的请求消息与工具列表:

  • 工具清单里有没有目标动作;
  • 动作 id 是否与模型调用的 id 完全一致;
  • 动作是否位于当前活跃区域;
  • available() 是否返回 false;
  • 控件是否被弹窗遮挡或 disabled。

请从 调试与可观测性和 错误码与诊断核对稳定错误。

3. 区分“未执行”和“无可见变化” ​

如果结果是成功,但用户看不到变化:

  • 成功判据是否只等待 toast,而列表尚未刷新;
  • 记录是否在另一个筛选、分页或滚动窗口;
  • 状态是否只在内部 store 更新,没有暴露视图;
  • 是否触发了异步任务,最终结果尚未写入;
  • 页面是否被缓存或存在两个实例。

EXPECTATION_FAILED 表示处理函数可能已经执行,但声明的结果没有出现。不要直接重发写入;先读取业务状态,判断是否部分成功。

4. 检查确认与人工接力 ​

高风险动作可能停在 pending。查看是否存在待确认项、是否打开在另一个窗口、用户是否已拒绝。Agent 没有代批准工具。确认被拒绝应得到明确状态,而不是无限等待。

5. 检查传输与限额 ​

外部 Agent 还需检查:

  • 页面是否仍连接;
  • 会话是否过期或撤销;
  • 是否命中 RATE_LIMITED;
  • 是否复用了 request.id;
  • MCP facade 是否把结果放回工具内容。

REPLAY_DETECTED 不会执行业务动作。不要为了绕过它生成新 id 重复同一意图;先查询前次结果。

最小复现 ​

用调试面板保存:用户请求、工具 id、参数、执行结果、当次页面快照与时间。再用确定性脚本模型重放一次。若重放正常,问题在模型选择;若仍无变化,问题在页面声明、可用性或传输。

修复后验证 ​

  • 同一动作在页面手动点击与 Agent 调用下产生相同业务结果;
  • 成功判据能观察到真实变化;
  • 不可用动作给出原因;
  • 重复调用不会造成二次写入;
  • 页面主题与语言变化不影响动作 id。