-
一套给大模型功能写的断言输出完全相等的单元测试,今天通过明天就挂、同样的输入每次结果还不一样,把我整懵了:一次 LLM 非确定性的深度复盘
按传统软件习惯给 LLM 功能写了'断言输出==预期字符串'的测试,结果今天全绿明天红一片、啥都没改同输入结果就不一样;线上出问题的回答拿同输入还复现不了。根因是 LLM 本质非确定:生成每个词是从概率分布里采样、带随机性,同输入可能不同输出(temperature=0 也不完全保证),而'断言相等''同输入复现''缓存…- 0
- 0
-
一个工具描述写得含含糊糊的 AI Agent,在该查订单时却去退了款、参数还填错,把工具用得乱七八糟:一次工具定义不清的深度复盘
给客服 Agent 配了一堆工具,它表现却飘忽不定:问订单到哪了,有时查物流有时查订单、偶尔还调了退款,参数还把订单号填进用户 ID 的位置。换更强的模型也没根治。根因是工具描述写得含糊雷同(refund 只写'订单处理')、参数只写 id: string 没说是订单号还是用户 ID——而大模型完全依据工具的描述和参数 schema(看不到实现)来选工具、填参数,说明书烂它只能…- 0
- 0
-
一个直接把大模型回答当权威答案展示给用户的功能,因为模型一本正经地编造了一个不存在的政策条款,把用户彻底带偏:一次 LLM 幻觉的深度复盘
做了个智能客服直接让大模型回答政策问题,用户投诉:客服言之凿凿说支持 30 天无理由全额退款且运费我方承担,真去退却被告知根本没这政策。根因是知识库里压根没这条、模型凭空编造了它——这就是 LLM 幻觉:它本质是预测下一个词的生成模型、目标是流畅而非真实,不知道时不会说不知道而是自信地编一个,且编得笃定专业可信(自信≠正确),而我们直接把它的话当权威展示、没让它基于真实知识库、没做任何校验。本文讲…- 0
- 0
-
一个把每一步的工具结果都原样堆进上下文的 AI Agent,跑到几十步后要么报 token 超限、要么忘了最初的任务:一次 Agent 上下文管理的深度复盘
Agent 处理简单任务很好,一遇到要几十步的复杂任务就出两种诡异故障:要么跑到一半报 context length exceeded,要么跑着跑着就跑偏、忘了最初的任务目标。根因是每步都把工具返回的完整结果原样追加进上下文、把越来越长的全部历史再喂给模型——工具结果动辄上万字,几十步累积撑爆上下文窗口;即使没爆,最初的目标也被淹没在海量细节里(lost in the middle)导致失忆跑偏。…- 9
- 0
-
一个直接把大模型返回当 JSON 来解析的接口,在线上偶发地解析崩溃——因为模型有时会贴心地多说几句话:一次 LLM 结构化输出的深度复盘
让大模型把文本抽取成 JSON,后端拿到回复直接 json.loads 入库,测试几十条都好好的,一上线就偶发 JSONDecodeError。打出原始返回一看:模型有时裹一层 markdown 代码围栏、有时前面加一句'好的这是结果'、有时多个尾逗号或写成中文引号。根因是 LLM 本质是概率性生成文本、不保证返回严格合法 JSON,却被当成确定可靠的接口直接解析。本文讲透 L…- 2
- 0
-
一个没有设最大步数上限的 AI Agent,遇到一个它搞不定的任务后陷入了死循环,一夜之间烧掉了我们大半个月的模型预算:一次 Agent 失控的深度复盘
上线了一个能自动调工具的 AI Agent,前一天测试一切正常,第二天一早账单告警:一夜 Token 消耗几百倍、大半月预算被烧光。日志显示一个任务循环了几万步,反复调同一个工具、失败、换法重试、再失败。根因是 ReAct 主循环用 while True、没有最大步数上限,唯一出口是大模型主动给最终答案——可任务无解时大模型会固执地永远重试、出口永不到达。本文讲透 Agent 自主循环为何必须有硬…- 0
- 0
-
一次只升级了查询侧 embedding 模型、却忘了重建向量库的 RAG 事故,让检索召回全变成噪声、问答彻底答非所问:一次向量空间不一致的深度复盘
给 RAG 知识库换了个'更好的'embedding 模型,只改了一行查询侧配置就发布,结果问答准确率从 80% 断崖跌到 10% 以下——而且代码一个错都不报。根因是只换了查询侧模型、忘了用新模型重建整个向量库:库里是旧模型的向量、查询是新模型的向量,两个向量空间不可比,相似度沦为噪声,召回近似随机。本文讲透 embedding 向量空间为何必须建库与查询同模型,给出换模型必…- 0
- 0
-
我的 RAG 检索回来的片段总是缺头少尾、答非所问,我一直以为是检索算法不行,最后才发现是文档切块的策略从一开始就错了的深度复盘
我的 RAG 问答效果一直不好:检索回来的片段常缺头少尾(一句话被从中间截断)、或一个片段塞了好几个不相关主题,模型拿着支离破碎又混杂的片段自然答非所问。我一直错怪检索算法、想换更高级的检索,折腾半天毫无改善。回头看那些被存进库的片段才恍然大悟:根子根本不在检索,而在更上游的文档切块——我图省事用最粗暴的按固定长度硬切,不管语义和句段边界,把完整的意思劈成两半、还主题混杂。RAG 效果极大取决于喂…- 0
- 0
-
我的 RAG 检索召回的全是风马牛不相及的内容,我反复调相似度阈值都没用,最后发现是建索引和查询用了两个不同的 embedding 模型的深度复盘
我做 RAG:文档切块用 embedding 转向量存库,查询时把问题转向量去检索召回。可一测试就傻眼——问"怎么退款",召回的却是"公司介绍""节假日安排",全是风马牛不相及的内容。我疯狂调相似度阈值、改召回数、查切块、换向量库,毫无改善。最后把两端的 embedding 模型一对比才冷汗直流:建索引用的是模型 A,查询却用成了模型 B…- 0
- 0
-
AI Agent 上线一夜烧光 token:工具调用死循环避坑
我们给客服系统接了个能自动处理工单的 AI Agent,Demo 时聪明得像个真人,老板当场拍板上线。结果上线第一个晚上,我就被报警短信叫醒:某第三方物流接口的调用量一夜暴涨几万倍被打到限流,LLM API 账单一夜多了好几百美金。扒日志一看头皮发麻——有几个工单,Agent 对着同一个查询工具一晚上调用了上万次。死循环的样子触目惊心:查订单→工具返回含糊错误→模型没看懂觉得"再查一次&…- 0
- 0
-
LLM 结构化输出完全指南:从一次"json.loads 在生产环境随机崩溃"看懂大模型为什么给不了你稳定的 JSON
2024 年我做一个简历解析功能用户上传一段简历文本我让大模型把里面的姓名工作年限技能列表抽取出来变成一个结构化的对象怎么让模型把抽取结果交给我这件事我没多想让它输出 JSON 不就行了第一版我做得很顺手我在提示词里写一句请以 JSON 格式输出结果把模型返回的字符串直接 json.loads 一下拿到 dict 完事本地拿几份简历一测真不错模型乖乖吐出 JSON 解得干干净净字段一个不少我心里很…- 2
- 0
-
Prompt 注入防御完全指南:从一次"用户一句话就让 AI 吐出系统提示词"看懂 LLM 分不清指令和数据
2024 年我做了一个 AI 客服助手接进公司的业务系统用户用自然语言问问题它查订单改地址给点优惠怎么把用户的问题喂给大模型这件事我压根没多想第一版我做得很顺手我写了一段详尽的系统提示词规定它你是客服只能聊业务不许泄露内部信息然后把用户输入直接拼在这段提示词后面一起发给模型就完事了本地拿一批正常问题一测真不错问订单它查订单问退货它讲流程系统提示词里立的规矩它条条都守我心里很笃定我系统提示词都写这么…- 0
- 0
-
AI Agent 记忆系统完全指南:从一次"聊到几十轮 context 直接爆掉,早说过的话它全忘了"看懂记忆分层
2024 年我做了一个 AI 助理 Agent 用户跟它聊需求它帮用户记事跨多轮对话办事怎么让它记得住用户说过的话这件事我压根没多想第一版我做得很顺手记忆嘛不就是把聊过的话留着我把每一轮的用户消息和模型回复原封不动地全部追加进一个 messages 列表下一次请求就把这个越来越长的列表整个发给大模型就完事了本地拿几轮对话一测真不错我心里很笃定 Agent 的记忆不就是把对话历史留着吗 contex…- 0
- 0
大模型应用
幸运之星正在降临...
点击领取今天的签到奖励!
恭喜!您今天获得了{{mission.data.mission.credit}}积分
我的优惠劵
-
¥优惠劵使用时效:无法使用使用时效:
之前
使用时效:永久有效优惠劵ID:×
没有优惠劵可用!













