Posts
All the articles I've posted.
-
用 MCP 接入外部工具:list_tools 与 call_tool 的挂载
循环、记忆、计划三层架构都不改。将 search_location 和 get_weather 挪到 MCP Server:启动时 list_tools 拉取 schema,dispatch 里 call_tool 透传调用。只转发外部工具白名单,回灌结果不可信,必须兜底校验。
-
让 Agent 先规划再执行:把计划写进记忆
调度循环每轮只决定下一个工具,多步任务极易跳步或重复调用。计划是一份存放在记忆里的步骤列表,每轮写进 system。set_plan 写入或替换计划,mark_step 推进步骤状态。参数错了就地重试,步骤做不到则触发重规划。
-
对抗失忆与噪声:上下文裁剪与记忆挂载
模型每轮只能看到本次请求里的 messages 和 tools。messages 只增不减、整段重发,过期的工具返回就退化为废话;一刀切掉目标和试错记录,又变成失忆。解法是:旧 tool 结果只改 content,核心结论抽离到循环外的记忆,每轮写进 system 重新挂载。
-
工具 Schema 怎么写:模型眼里只有 JSON
调度循环跑通后,真正的差距在 schema。description 决定模型何时想起这个工具,enum 与 required 约束参数怎么填,校验失败必须回灌重试。一条铁律:hotel_id 只能来自本次 search_hotels 的产出,绝不接受凭空捏造。
-
从零手搓 Agent:带出口的 while 调度循环
不套框架,只用几十行 Python 裸调 openai SDK 写出能查天气的调度循环。模型只负责声明「我想调这个工具」,真正执行的是你的代码。逐轮追踪 messages 的增长链路,三个出口缺一不可:能改参数的走回灌,不能改的触发终止。