Agent 工程

可控 Agent:状态、工具与终止条件

用显式状态机组织工具调用、失败恢复、人工确认和最终交付。

必须掌握AgentLangGraph

可上线的 Agent 需要显式状态、有限循环和可检查的工具边界。

可控 Agent 循环

状态至少包含

input、plan、evidence、tool_results、attempts、error、final_answer。节点只读取需要的字段,并返回明确的状态增量。

工具设计

工具名称描述动作,参数使用结构化 Schema。读工具和写工具分开;写操作默认要求确认。返回值携带稳定错误码,避免把异常文本交给模型猜测。

终止与恢复

  • 限制最大模型轮数和单工具超时。
  • 为每个写工具传入 idempotency_key。
  • 保存 checkpoint,使长任务可从确定状态恢复。
  • 失败路径必须到达 failed 或 waiting_for_human,不能无限回环。

三条测试路径

固定模型和工具输出,测试成功、工具超时、人工拒绝。断言最终状态、调用次数和副作用,而不是只比较自然语言。

官方资料

LangGraph Overview 强调持久执行、流式输出、人工介入和显式状态控制。