不套框架的 Agent 实现
P12 AI Agent 工程 · 共 10 篇 · 按阅读顺序倒叙排列
-
拼回同一份循环:一次 run 的全生命周期
前面几篇各加了一层:schema、压缩、记忆、计划、检查、护栏、并发、超时、审计。这篇不加新东西,只把它们接回同一个 while,按固定顺序跑完「双11-美妆拉新」那次追投,从进循环到停住等确认,再到续跑下追投单。
-
上线实战:轮内并发、超时、续跑与审计
调度循环不改。一轮内多个 tool_calls 并发执行,回灌仍按请求顺序配对。工具超时必须回灌;写操作超时先查单再追投,携带幂等键防重复扣款。每轮按 run_id 落盘 messages,确认之后续跑,事后能再跑检查。
-
检查通过仍会打转:护栏拦截与累计 Token
调度循环不改。误差按业务工具步数串行连乘。护栏卡在 dispatch 之前:同一工具同一参数即触发终止,未确认的写操作一律不执行。确认后用同一份 messages 再进循环。累计 token 按每轮重发加总,而非单轮度量。
-
评测一个 Agent:轨迹级校验,而非答案级
调度循环不改。从 messages 中抽出 tool_calls 作为执行轨迹,检查逻辑全部写成代码:有没有跳步、adgroup_id 从哪来、档位是否按 ROI 分流。对照轨迹不调模型;真跑一次 run 再用同一套检查复用。
-
用 MCP 接入外部工具:list_tools 与 call_tool 的挂载
循环、记忆、计划三层架构都不改。将 search_campaign 和 get_campaign_report 挪到 MCP Server:启动时 list_tools 拉取 schema,dispatch 里 call_tool 透传调用。只转发外部工具白名单,回灌结果不可信,必须兜底校验。
-
让 Agent 先规划再执行:把计划写进记忆
调度循环每轮只决定下一个工具,多步任务极易跳步或重复调用。计划是一份存放在记忆里的步骤列表,每轮写进 system。set_plan 写入或替换计划,mark_step 推进步骤状态。参数错了就地重试,步骤做不到则触发重规划。
-
对抗失忆与噪声:上下文裁剪与记忆挂载
模型每轮只能看到本次请求里的 messages 和 tools。messages 只增不减、整段重发,过期的工具返回就退化为废话;一刀切掉目标和试错记录,又变成失忆。解法是:旧 tool 结果只改 content,核心结论抽离到循环外的记忆,每轮写进 system 重新挂载。
-
Agent 工具设计:schema、参数校验与写操作防护
模型看不到工具的实现,只能依据 schema 决定何时调用、参数怎么填。本文以广告组追投为例,说明 description 应写清哪些信息,如何用 enum、required、additionalProperties 收紧参数,校验失败时如何回灌,以及扣款类写操作为什么还需要 adgroup_id 白名单和人工确认。
-
Agent 调度循环:工具调用、结果回灌与三个出口
只用 openai SDK 和几十行 Python 实现一个能查询广告报表的 Agent 循环:识别 tool_calls、执行工具、按 tool_call_id 回灌结果,并用三个出口保证循环一定结束。文中逐轮跟踪 messages 的变化,并给出错误分类:哪些回灌给模型修正,哪些直接终止。
-
AI Agent 是什么:拆解模型、工具、记忆与调度循环
Agent 与普通聊天的区别不在模型本身,而在外层那段循环:模型决定下一步调用哪个工具,代码负责执行、回灌、判断何时停止。本文把 Agent 拆成模型、工具、记忆、循环四个组件,并用一次追投任务说明它们如何配合。