-
一个工具描述写得含含糊糊的 AI Agent,在该查订单时却去退了款、参数还填错,把工具用得乱七八糟:一次工具定义不清的深度复盘
给客服 Agent 配了一堆工具,它表现却飘忽不定:问订单到哪了,有时查物流有时查订单、偶尔还调了退款,参数还把订单号填进用户 ID 的位置。换更强的模型也没根治。根因是工具描述写得含糊雷同(refund 只写'订单处理')、参数只写 id: string 没说是订单号还是用户 ID——而大模型完全依据工具的描述和参数 schema(看不到实现)来选工具、填参数,说明书烂它只能…- 0
- 0
-
一个直接把大模型返回当 JSON 来解析的接口,在线上偶发地解析崩溃——因为模型有时会贴心地多说几句话:一次 LLM 结构化输出的深度复盘
让大模型把文本抽取成 JSON,后端拿到回复直接 json.loads 入库,测试几十条都好好的,一上线就偶发 JSONDecodeError。打出原始返回一看:模型有时裹一层 markdown 代码围栏、有时前面加一句'好的这是结果'、有时多个尾逗号或写成中文引号。根因是 LLM 本质是概率性生成文本、不保证返回严格合法 JSON,却被当成确定可靠的接口直接解析。本文讲透 L…- 2
- 0
-
我的 AI Agent 老是选错工具、参数也填得乱七八糟,我一度怀疑是模型不行,排查才发现是我给工具写的描述太含糊、模型根本看不懂该怎么用,我对着工具描述是模型理解工具的唯一窗口这个坑排查大半天的复盘
做能调用工具的 AI Agent 时栽的关于怎么把工具教给模型的跟头,它让我明白 Agent 能不能用对工具不只取决于模型多聪明更取决于你有没有把工具说明白。给 Agent 配了几个工具但描述写得很随意:name 叫 search、description 只有搜索俩字、参数叫 q 没说是什么;还有个 query 描述查询数据、参数叫 input。结果 Agent 表现飘忽:该用 query 查数据…- 4
- 0
-
我的 Agent 总是调错工具,我一直骂模型笨,直到我把自己写的那几行工具描述认真读了一遍,才发现它模糊得连我自己都分不清谁是谁的深度复盘
我做了一个有好几个工具的 AI Agent——查订单、查物流、查退款政策、发起退款。可它总选错工具:问"订单到哪了"它去查了订单状态,想退款它却去查了退款政策。我一口咬定是"模型笨",甚至想换个更强的。换之前,我把自己给工具写的描述一条条读了一遍——羞愧得脸红:"获取订单信息"和"获取订单的物流信息"像得连我都分不清,…- 0
- 0
-
让大模型返回JSON给程序处理,开发全过上线却偶发解析失败,捞出原始返回一看JSON五花八门包代码块加客气话:大模型结构化输出避坑复盘
我们做了个功能让大模型把一段非结构化的文本提取成结构化的 JSON 再交给后端程序去处理,开发时测了十几条效果完美 JSON 解析得妥妥的就高高兴兴上线了。可上线没多久后端的告警就开始零星地响——JSONDecodeError 解析失败。我很纳闷:同样的代码同样的调用为什么有的能解析有的就报错?我把那些解析失败的大模型实际返回的原始内容捞出来一看真是哭笑不得,大模型返回的 JSON 五花八门:有的…- 0
- 0
-
Agent 总用错工具:工具描述就是提示词避坑复盘
我们做了一个能调用几十个内部工具的 AI 客服 Agent,查订单查物流查商品改地址申请退款,几乎把后台能力都包装成工具挂上去,满心期待它像个全能客服自动调对应工具去办事。可上线一测问题百出:用户问我的订单到哪了它却去调了搜索商品的工具,用户想退款它调了查询物流,有时明明有专门工具能干这事它偏不用反而自己瞎编参数去调不相干的工具。它不是不工作,而是频繁地自信地用错工具。我一开始以为是大模型太笨,又…- 0
- 0
-
AI Agent 上线一夜烧光 token:工具调用死循环避坑
我们给客服系统接了个能自动处理工单的 AI Agent,Demo 时聪明得像个真人,老板当场拍板上线。结果上线第一个晚上,我就被报警短信叫醒:某第三方物流接口的调用量一夜暴涨几万倍被打到限流,LLM API 账单一夜多了好几百美金。扒日志一看头皮发麻——有几个工单,Agent 对着同一个查询工具一晚上调用了上万次。死循环的样子触目惊心:查订单→工具返回含糊错误→模型没看懂觉得"再查一次&…- 0
- 0
-
从用 Python 脚本把 prompt 拼一拼调一下大模型把返回的文本正则切一切就当函数调用的原型玩具思维做一个 AI Agent、决定调哪个工具靠一段正则去解析大模型输出的文本要求它输出形如 Action 工具名 参数的一行、某夜大模型对一个复杂问题输出了格式略有偏差的 Action 行正则解析失败而那个 Agent 循环没有任何步数上限也没有解析失败该怎么办的处理解析失败后只是把同样的上下文又丢回去让它再试一次模型又输出同样偏差正则又失败就这么以每秒数次反复调用大模型和下游工具陷入谁也没设防的死循环一夜烧掉平时大半个月的调用预算还把订单库连接池打爆 + prompt 在代码里用 f-string 硬编码拼接散落到代码库几十个角落同一句指令复制十几份改一处漏一处行为精神分裂又无版本改坏了回滚不了 + 多轮对话把从开始到现在的全部历史一股脑塞进上下文几十轮后突破 token 上限报错中断还在按 token 计费下每轮重发全量历史费用滚雪球 + 知识助手被问退货政策模型不知道却用流畅自信的语气编造一个错误天数用户信以为真酿成投诉 + 让模型输出 JSON 供下游解析它把 JSON 包进代码块加句解释或多个逗号 json.loads 当场抛异常崩链路打补丁写一堆正则修复畸形 JSON 越写越像无底洞 + 线上是个黑盒靠 print 调试出问题翻杂乱日志考古七八步根本定位不到又靠人工抽看几条就上线为优化 A 类改 prompt 却悄悄把 B 类改坏直到投诉涌来才发现暗中退化 + 对成本零管控每次都调最贵模型不缓存无预算熔断对上游 API 裸调不限流不退避流量一高被限流就雪崩把用户输入直接拼进 prompt 无护栏一句忽略以上指令的注入就被劫持越权 → 2026 生产级 AI Agent 原生 function calling 用 JSON schema 把工具作为结构化契约模型返回保证合法的调用对象 + ReAct 多步加硬性步数预算加多个异常出口加出错换思路而非盲目重试绝不失控 + RAG 检索增强先从向量库检索真实知识让回答 grounding 在可核查依据上根治幻觉 + 结构化 prompt 模板加版本管理可灰度可回滚 + token 预算加滑动窗口加早期历史摘要在预算内装最相关信息 + JSON schema 约束生成加 Pydantic 校验加失败带错误信息重试拿到必是合法结构 + 全链路 tracing 每步可追溯加评估集自动 eval 加回归门禁防暗中退化 + token 预算加语义缓存加模型分级路由加限流退避加输入输出护栏抵御烧钱雪崩与注入 87 天战役复盘:47 套工程修法 + 8 个 P0 复盘 + 6 条工程哲学
6 人的 AI 应用团队 87 天把一套支撑公司核心业务的智能客服与知识助手,从一个用 Python 脚本把 prompt 字符串拼一拼、调一下大模型接口、把返回的文本正则切一切就当函数调用的原型玩具,系统性地重构成一套生产级的 AI Agent 系统——这套原型当初是三天赶出来的 demo,却被业务追着扩张成日均几十万次对话、接了十几个工具、没有步数上限没有可观测性没有评估成本完全失控的怪物,它…- 0
- 0
-
从粗放第一代智能体 单轮一问一答无状态多步任务直接抓瞎 + 工具说明硬塞 prompt 用正则 if-else 硬解析自由文本措辞一变就崩 + 无记忆每轮从白纸开始记不住任何上下文 + 无规划埋头乱做复杂任务一团乱 + 单 agent 光杆司令塞满所有角色和几十个工具样样稀松 + 跑起来就是黑盒关键操作无法叫停 + 死循环反复重试 token 像流水一样烧 + 整个执行黑盒出事查不到想了啥调了啥 + 自由文本输出下游靠正则抠格式一变就崩 → 2026 现代 AI Agent 工程体系 ReAct 推理-行动-观察循环多步任务自主迭代 + 标准化 function calling 与 MCP 结构化工具调用 + 短期记忆加长期向量检索分层记忆 + planning 先分解子任务再执行 + multi-agent 多智能体 supervisor 分工协作 + human-in-the-loop 关键动作前人工审批 + 循环上限加预算控制加 guardrails 护栏兜底 + 全链路 tracing 每步可查 + 结构化输出加 schema 校验 + 上下文压缩按需检索记忆 87 天战役复盘:47 套工程修法 + 7 个 P0 复盘 + 6 条工程哲学
13 位 AI Agent 智能体工程师 87 天把一套推上生产就原形毕露的第一代智能体——本质是套了层壳的单轮问答机一轮结束上下文就丢光稍微复杂需要多步的任务就抓瞎、调用外部工具靠把工具说明一股脑硬塞进 prompt 再用一堆正则和 if-else 去硬解析模型吐出的自由文本抠工具名和参数模型措辞稍变解析就崩参数还缺胳膊少腿、没有任何记忆每次都从一张白纸开始记不住用户三轮前说的话更记不住上周的偏…- 2
- 0
-
OpenAI Assistants API function calling 工具数从 11 涨到 47 后准确率从 91% 跌到 58% 的 3 周治理:描述规范 + 分组路由 + 语义检索动态子集三层架构 + 12 条工具集治理纪律
我们一个企业内部 AI 助手在工具数 6 个月内从 11 个扩张到 47 个后,function calling 准确率断崖式下降到 58%。3 周治理通过统一描述规范 + 业务分组路由 + 语义检索动态子集三层架构,把准确率回到 93%,月度成本从 9800 降到 5100 美元,沉淀出大型工具集 Agent 架构 SOP。- 2
- 0
-
LangChain Agent 工程化完全指南:从一次"Agent 死循环烧了几百美元 token"看懂为什么 demo 时聪明的 Agent 上线就崩
2024 年我做了一个内部的 AI 助手项目核心需求是让模型能调一些公司内部的工具查 CRM 看订单生成报表执行 SQL 我第一反应是这事现在用 LangChain Agent 一周就能搞定 ReAct 框架自动会决定调哪个工具调几次最后输出答案给用户原型确实一周做完测了几个 case 模型行为很聪明老板看了还挺满意可等真把这套面向几百个内部用户开放一串问题冒了出来第一种最先把我打懵某天用户问帮我…- 2
- 0
-
LLM 工具调用完全指南:从一次"模型说正在查询其实什么都没做"看懂 Function Calling 的真正机制
2024 年我做一个 AI 助手想让它能回答我那个订单发货了吗明天杭州下不下雨这类问题这些问题的答案不在模型脑子里得去查订单系统查天气接口怎么让模型用上这些外部能力这件事我没多想就有了方案把工具告诉模型第一版我做得很顺手我在系统提示里写了一段话大意是你有一个查订单的工具和一个查天气的工具需要时就用本地一测我问查一下订单 A1001 模型回了一句好的正在为您查询订单 A1001 我心里一暖觉得它听懂…- 2
- 0
-
AI Agent 设计完全指南:从一次"Agent 陷入死循环、烧掉几美元 token 还没完成任务"看懂智能体工程
2024 年我做一个内部的 AI Agent一个运维诊断助手。想法很性感给大模型配上一套工具查日志查监控指标查最近的发布记录然后值班同学用大白话提问订单服务为什么变慢了让 Agent 自己去调工具自己分析自己给结论。第一版我做得很直接把用户的问题丢给大模型把工具清单也告诉它然后写一个 while True 循环模型决定下一步调哪个工具我执行把结果喂回去再让模型决定下一步如此往复直到模型自己说任务完…- 2
- 0
-
Function Calling 完全指南:从一次"让模型查订单、它却把参数编得一塌糊涂"看懂工具调用
2024 年我做一个智能客服助手。需求很常见:用户问我那个订单 A1234 发货了吗助手得去查订单系统把真实状态告诉用户。第一版我做得很直接把用户的问题发给大模型模型回答本地一试模型张口就编了个发货状态它根本没有我的订单数据。我意识到模型查不了实时数据得让它调我的接口。我想了个办法在 prompt 里告诉模型如果用户问订单你就返回一个 JSON我再用代码把模型输出的字符串解析出来拿到订单号去查库本…- 0
- 0
-
大模型结构化输出完全指南:从一次"让模型返回 JSON、结果 json.loads 直接崩了"看懂结构化输出
2023 年我做一个简历解析功能,把简历纯文本丢给大模型让它抽取姓名、电话、最高学历、工作年限、技能列表,抽完之后后端代码要拿这些字段存进数据库。第一版我做得很直接:在 prompt 里写一句请以 JSON 格式返回结果,把字段名列清楚,然后把模型返回的内容直接 json.loads 解析成字典。本地拿几份简历一测居然真的成了。可一上量问题就接二连三冒出来:有的时候模型返回的不是纯 JSON,它会…- 0
- 0
-
AI Agent 完全指南:从一次"让大模型自己调工具、结果它编了个假天气"看懂 Agent 循环
2023 年我做一个智能助手,想让它能回答"今天北京天气怎么样""某只股票现在多少钱"这类需要实时数据的问题。这类问题大模型自己答不了,它的知识停在训练截止那一刻,我得给它配查天气、查股价的工具。第一版我把工具说明用文字写进 prompt,告诉模型你有这些工具可以用。本地一测问北京天气,模型回了一段看起来很合理的天气描述,我还挺高兴。直到多问几次才发现不对劲…- 0
- 0
-
Function Calling 完全指南:从一次"AI 假装查了数据库、其实把结果编了出来"看懂大模型工具调用
2024 年我做一个客服 AI 助手,想让它能真的查到数据。第一版的做法很"聪明":在 prompt 里要求模型输出一段 JSON,我用 json.loads 解析出订单号自己去查库。Demo 配合得很好,一上线问题接连冒出:模型输出的不是纯 JSON 而夹带解释文字,解析直接抛异常;模型自作主张编一个我没定义的 action;最让我后背发凉的一次,用户问订单状态模型压根没输出…- 0
- 0
-
Function Calling 完全指南:从一次"AI 调用了一个根本不存在的接口"看懂工具调用
2024 年我给客服系统接入 AI 助手,用大模型的 Function Calling 让它能查订单、查物流、算运费。Demo 惊艳,推广后诡异问题接连冒出:模型给的参数类型是错的导致函数崩溃、模型信誓旦旦要调一个我压根没写过的函数(它自己幻觉出来的)、模型反复调用工具陷入死循环白烧 token、模型拿一个根本不属于当前用户的订单号去查了数据。盯着日志我才想明白:我对 Function Calli…- 2
- 0
-
AI Agent 工具调用完全指南:从一次"模型乱调退款接口"看懂 Function Calling
2024 年下半年我做一个"会干活"的客服 AI——不只回答问题,还能真的查订单、改地址、发券。技术上用大模型的 Function Calling:把内部接口描述给模型,模型遇到该调接口的问题就告诉我调哪个、传什么参数,代码再去执行。Demo 全场鼓掌,可灰度第二天一条告警让我后背发凉:一个用户只是在对话框抱怨"这东西真难用,想退钱",AI 直接调用退款接口…- 0
- 0
-
大模型 Function Calling 完全指南:从一次 AI 客服乱调工具看懂工具编排
2024 年我给公司做一个客服 AI Agent,用 Function Calling 给模型挂了 query_order、query_logistics、send_coupon 三个工具,demo 行云流水老板满意。上线没两天投诉就来了:用户问"我的订单到哪了"它不调 query_logistics 反而自己编了个物流状态、用户给了订单号它调工具时 order_id 却填了一…- 0
- 0
-
大模型 Function Calling 完全指南:让 AI 真正能干活
做一个 AI 助手时撞上一件让我后背发凉的事:同事问它"我上个月订单金额是多少",它非常自信地答"¥3,280",可真实数据库里是 ¥0,那个数字是模型凭空编出来的 —— 编得有零有整语气笃定像真查过一样。我换问法问天气编天气问库存编库存,反复打磨"请不要编造"的提示词也压不住。卡了很久才想明白最朴素的事:我在求一个只会生成文字的模型,去…- 0
- 0
-
Function Calling 完全指南:让 LLM 调用工具的工程实战
Function Calling 让 LLM 从"只会说话"升级到"能调工具",是当代 AI Agent 的基础设施。但它的工程细节(参数 schema、错误处理、并行调用、流式响应)远比看起来复杂。这篇文章把 Function Calling 从最基础调用讲到生产级实现,讲清楚它和 Tool Use / Plugin / Action 的关系。 Funct…- 0
- 0
Function Calling
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!






















