最初发表于tamiz.pro.
你花了数周时间打造一个代理工作流程,在你的本地机器上完美无缺地工作.
它处理边缘情况,正确调用API,并精确地遵循思想链.
然后部署它。
数小时内,用户报告幻觉工具呼叫,五转后失去上下文,无限循环消耗了你的预算.
你凝视了日志, 原型剂和生产级系统之间的差距并不复杂,而是纪律。
由于三个具体的工程漏洞,大多数剂剂在生产中失败:记忆漏出(折叠漂移和状态管理),评价失明(缺乏决定性测试)和工具脆弱(无处理错误状态和种族条件).
这种深潜解析出这些故障模式并提供了桥梁的建筑模式.
对无国籍状态的幻想是无国籍职能。
生成的每个符号都完全以即时提供的输入历史为条件.
在制作中,当谈话超过模型上下文窗口,或当各场会议都需要 " 记忆 " 时,这种简单化就成为一种责任。
上下文窗口陷阱 最常见的失败点是天真的即时积累.
开发者经常将整个对话历史推向以后的每一个呼声:到10号时,你就会发出8000个历史噪声。
即时突起, 成本会爆炸, 信号与噪音的比例会降低LLM的推理质量, Production-Grade Memory Architecture Production Production 需要由三层组成的混合记忆系统: 短期:活性对话缓冲(上个N转弯或滑动窗口).
中期:存储在矢量数据库(Pinecone, Weaviate)中的会话特有嵌入.
长期:结构化用户简介和所了解的事实存储在关系或图表数据库中.
以下是如何执行强健的内存抽象层: 密钥透视:从不把LLM当作数据库.
只使用LLM进行推理;使用数据库进行存储.
分离关切是维持生产剂稳定的因素。
测试漏洞:为什么单位测试失败 LLMS 您无法像测试 Java 服务一样测试 LLM 。
非定性,即时敏感性,和语义正确性使得传统的断言变得不可能.
但大多数团队完全不进行评估, " 决定主义" 当您两次向 LLM 发送同样的提示时, 您可以得到不同的输出 。
这不是虫子, 但生产系统往往需要确定调试和一致性。
解决方案不是要禁用随机性, 执行作为法官的 LLM 评价 对于制作,你需要一个测试套件来评价语义正确性,而不是精确的字符串匹配.
使用LLM-as-a-judge模式,即二级LLM对主代理输出进行比分。
利用黄金数据集进行回溯测试 构建一个黄金数据集——一套由50-100个具有代表性的用户查询而成,并附有预期的工具呼叫和答复。
每周对您的代理商运行此数据集 。
如果分数下降,你有一个回归。
测试大小写类型目的语法 代理呼叫工具 与有效的JSON?
语义 答复是否回应了用户的意图?
安全问题 特工拒绝有害请求了吗?
每个成功的任务要花多少钱?
没有这个基线,你就瞎了 手动质量评估可能看不到精确度下降5%,但规模是灾难性的。
工具脆弱:隐藏失败模式工具是您的代理的手.
在原型中,工具是简单的HTTP调用.
在生产中,它们是复杂的集成,受制于网络超时,API schema变化,速率限制,以及认证失败.
灾难链反应认为需要: 搜索知识库.
总结出果.
发送电子邮件。
如果已经