并行工具调用 + 多 Agent + 自动重试,一不小心就把配额打爆,还会引发重试风暴:越重试越被限流。
限流不是异常,是常态,要当正常路径来设计👇🧵
#AIAgent #AgentEngineering #DevTips
并行工具调用 + 多 Agent + 自动重试,一不小心就把配额打爆,还会引发重试风暴:越重试越被限流。
限流不是异常,是常态,要当正常路径来设计👇🧵
#AIAgent #AgentEngineering #DevTips
#AgentEngineering #Kafka
#AgentEngineering #Kafka
长任务 Agent 最常漏掉的不是怎么开始,是怎么停下来。取消不是 kill 进程那么简单👇🧵
#AIAgent #AgentEngineering #DevTips
长任务 Agent 最常漏掉的不是怎么开始,是怎么停下来。取消不是 kill 进程那么简单👇🧵
#AIAgent #AgentEngineering #DevTips
🔸 硬上限:单任务最大步数、最大 token、最大时长,三个都要
🔸 重复检测:同一工具 + 近似参数连续出现 3 次,强制换策略或升级给人
🔸 无进展检测:连续 N 步没产出新信息,就收手汇报
「放弃并说明原因」也是合格的输出。
#AgentEngineering #BuildInPublic
🔸 硬上限:单任务最大步数、最大 token、最大时长,三个都要
🔸 重复检测:同一工具 + 近似参数连续出现 3 次,强制换策略或升级给人
🔸 无进展检测:连续 N 步没产出新信息,就收手汇报
「放弃并说明原因」也是合格的输出。
#AgentEngineering #BuildInPublic
模型判断完成,靠的是「看起来差不多了」,不是「验证过了」。
有一个简单原则:完成标准要写在 Agent 之外,由代码来判定。
#AIAgent #AgentEngineering #DevTips
模型判断完成,靠的是「看起来差不多了」,不是「验证过了」。
有一个简单原则:完成标准要写在 Agent 之外,由代码来判定。
#AIAgent #AgentEngineering #DevTips
没人改过一行代码,线上却变了。
用 "latest" 别名跑生产,等于让别人替你发版👇🧵
#AIAgent #AgentEngineering #DevTips
没人改过一行代码,线上却变了。
用 "latest" 别名跑生产,等于让别人替你发版👇🧵
#AIAgent #AgentEngineering #DevTips
没有 checkpoint 的长任务 Agent,每次失败都是重新烧钱 + 重新赌运气。
长任务要像数据库事务一样想问题👇🧵
#AIAgent #AgentEngineering #DevTips
没有 checkpoint 的长任务 Agent,每次失败都是重新烧钱 + 重新赌运气。
长任务要像数据库事务一样想问题👇🧵
#AIAgent #AgentEngineering #DevTips
① 工具定义用严格 schema——类型、必填、枚举、范围写死
② 服务端二次校验——别信模型填的,进了代码再验一遍
③ 校验失败返回「可读的错误」,带字段和原因,别只回一个 400
让 Agent 拿到的是「哪里错了、怎么改」,
不是一句冷冰冰的报错👇
#AgentEngineering #BuildInPublic
① 工具定义用严格 schema——类型、必填、枚举、范围写死
② 服务端二次校验——别信模型填的,进了代码再验一遍
③ 校验失败返回「可读的错误」,带字段和原因,别只回一个 400
让 Agent 拿到的是「哪里错了、怎么改」,
不是一句冷冰冰的报错👇
#AgentEngineering #BuildInPublic
① 让模型按 schema 输出 JSON——字段、类型写死
(多数 API 都有 json mode / structured output)
② 输出后立即校验——字段全不全、类型对不对、值合不合法
③ 校验不过就自动重试,带上错误信息让它重答
把「解析」从下游挪回 Agent 这一端👇
#AgentEngineering #BuildInPublic
① 让模型按 schema 输出 JSON——字段、类型写死
(多数 API 都有 json mode / structured output)
② 输出后立即校验——字段全不全、类型对不对、值合不合法
③ 校验不过就自动重试,带上错误信息让它重答
把「解析」从下游挪回 Agent 这一端👇
#AgentEngineering #BuildInPublic
① 流式输出——推理的每一步、每次工具调用,边跑边吐,
别等全部完成一次性丢出来
② 显式进度——「正在查订单 → 正在比价 → 正在生成摘要」
让用户知道走到哪了
③ 可中断可恢复——长任务随时喊停,还能从断点继续
黑箱等待,是 Agent 流失用户最快的方式👇
#AgentEngineering #BuildInPublic
① 流式输出——推理的每一步、每次工具调用,边跑边吐,
别等全部完成一次性丢出来
② 显式进度——「正在查订单 → 正在比价 → 正在生成摘要」
让用户知道走到哪了
③ 可中断可恢复——长任务随时喊停,还能从断点继续
黑箱等待,是 Agent 流失用户最快的方式👇
#AgentEngineering #BuildInPublic
① 组合而非枚举——暴露「做一件事」的复合工具,
而不是让模型自己拼 N 个底层 API
② 一个工具一个意图——「查订单」「改订单」「退订单」分开,
别做一个「订单万能接口」
③ 收窄默认——危险参数不暴露,交给代码层写死
工具越少、越明确,模型越不会跑偏👇
#AgentEngineering #AgentDev
① 组合而非枚举——暴露「做一件事」的复合工具,
而不是让模型自己拼 N 个底层 API
② 一个工具一个意图——「查订单」「改订单」「退订单」分开,
别做一个「订单万能接口」
③ 收窄默认——危险参数不暴露,交给代码层写死
工具越少、越明确,模型越不会跑偏👇
#AgentEngineering #AgentDev
eval 是「上线前测」,这是「每次跑都验」):
① 收尾前让 Agent 对照原始需求,逐条核对「做到了吗」
② 关键输出(代码/配置/邮件)先跑一遍自检规则再交付
③ 自检不过就自动改一轮,改完再验,上限设 2-3 轮防死循环
多花一次推理,少一次返工👇
#AgentEngineering #BuildInPublic
eval 是「上线前测」,这是「每次跑都验」):
① 收尾前让 Agent 对照原始需求,逐条核对「做到了吗」
② 关键输出(代码/配置/邮件)先跑一遍自检规则再交付
③ 自检不过就自动改一轮,改完再验,上限设 2-3 轮防死循环
多花一次推理,少一次返工👇
#AgentEngineering #BuildInPublic
① 规划器只看全局——拆任务、定顺序、评估风险,输出一份可审的计划
② 执行器只干一步——拿着明确的子任务,不操心「接下来怎么办」
③ 计划先给人过目——多步任务上线前,人能改、能拦
计划是一等产物,不是模型的心路历程👇
#AgentDev #AgentEngineering
① 规划器只看全局——拆任务、定顺序、评估风险,输出一份可审的计划
② 执行器只干一步——拿着明确的子任务,不操心「接下来怎么办」
③ 计划先给人过目——多步任务上线前,人能改、能拦
计划是一等产物,不是模型的心路历程👇
#AgentDev #AgentEngineering
三条落地:
① 写操作带幂等键(idempotency key)——同一 key 重复提交,服务端只处理一次
② 优先用 upsert 语义——「创建或更新」而非「创建」,天然可重试
③ 检查再执行——用唯一引用先查「做过了吗」,再做
让重试安全,Agent 才敢放开手脚👇
#AgentEngineering #BuildInPublic
三条落地:
① 写操作带幂等键(idempotency key)——同一 key 重复提交,服务端只处理一次
② 优先用 upsert 语义——「创建或更新」而非「创建」,天然可重试
③ 检查再执行——用唯一引用先查「做过了吗」,再做
让重试安全,Agent 才敢放开手脚👇
#AgentEngineering #BuildInPublic
坏做法:把 50 条退换货规则全写进 prompt。
好做法:写一个 check_return_policy(order) 工具,
规则放代码里,模型只负责「什么时候该调它」。
规则进代码 = 可测试、可版本化、可单独改;
规则进 prompt = 改一条牵动全局。
#AgentEngineering #BuildInPublic
坏做法:把 50 条退换货规则全写进 prompt。
好做法:写一个 check_return_policy(order) 工具,
规则放代码里,模型只负责「什么时候该调它」。
规则进代码 = 可测试、可版本化、可单独改;
规则进 prompt = 改一条牵动全局。
#AgentEngineering #BuildInPublic
agenticaiinsights.substack.com/p/deeper-div...
#agenticAI #agents #agentengineering #ai #teams
agenticaiinsights.substack.com/p/deeper-div...
#agenticAI #agents #agentengineering #ai #teams
① 用 tracing(LangSmith / Langfuse / OpenTelemetry)记录每次工具调用
② 把「重放」当验收标准——同样输入能否稳定复现结果
③ 长任务加 checkpoint,失败从断点重试,别从头烧 token
先让 Agent 可调试,再让它更聪明。
#BuildInPublic #AgentEngineering
① 用 tracing(LangSmith / Langfuse / OpenTelemetry)记录每次工具调用
② 把「重放」当验收标准——同样输入能否稳定复现结果
③ 长任务加 checkpoint,失败从断点重试,别从头烧 token
先让 Agent 可调试,再让它更聪明。
#BuildInPublic #AgentEngineering
把 MCP 当「带智能发现的 OpenAPI」——
→ 工具返回结构化数据,不是一段 text
→ 工具靠文档/描述可被发现
→ 用代码沙箱(codemode)编排多个工具调用
返回 text,模型得再「读」一遍,费 token 又易错;
返回结构化数据,才能直接进下一步逻辑。
#AgentDev #AgentEngineering
把 MCP 当「带智能发现的 OpenAPI」——
→ 工具返回结构化数据,不是一段 text
→ 工具靠文档/描述可被发现
→ 用代码沙箱(codemode)编排多个工具调用
返回 text,模型得再「读」一遍,费 token 又易错;
返回结构化数据,才能直接进下一步逻辑。
#AgentDev #AgentEngineering
agenticaiinsights.substack.com/p/manager-ed...
#agenticAI #agents #agentengineering #skills #ai #llms #management #manager
agenticaiinsights.substack.com/p/manager-ed...
#agenticAI #agents #agentengineering #skills #ai #llms #management #manager
healthaiinsights.substack.com/p/deeper-div...
#agenticAI #healthIT #agents #skills #healthcare #agentengineering #ai #healthAIinsights
healthaiinsights.substack.com/p/deeper-div...
#agenticAI #healthIT #agents #skills #healthcare #agentengineering #ai #healthAIinsights