跳到主要内容

320 篇博文 含有标签「ai-agents」

查看所有标签

规模化工具发现:为何纯嵌入检索在超过 20 个工具后开始失效

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数构建 AI 智能体的团队,都会在第五个迭代周期发现同一个问题:智能体再也无法可靠地选对工具了。十个工具时,基本还能用。二十个时,准确率开始下滑。五十个时,你会亲眼看着智能体在应该调用 update_record 的时候调用了 search_documents,而日志毫无解释。常见的反应是调整工具描述——加更多上下文、写得更明确、重写示例。这偶尔有效,但它绕开了根本原因:平面嵌入检索在大型工具库中架构上就是错的,更好的描述无法修复一个架构问题。

工具选择本质上是检索,而检索有已知的扩展上限。理解这些上限——以及绕过它们的结构化元数据模式——是让智能体系统在生产中稳定运行与需要持续人工维护之间的分水岭。

专业知识悬崖:AI 编码智能体为何在成熟代码库中失效

· 阅读需 9 分钟
Tian Pan
Software Engineer

2025 年的一项对照实验让有经验的开发者使用了 AI 编码工具,并测量他们是否变得更快。开发者们预测效率会提升 24%。研究结束后,他们报告自己大约快了 20%。而客观测量显示,他们实际上慢了 19%

这并不是一个关于 AI 过度炒作的故事。这是一个关于隐性知识的故事——那种存在于每个成熟代码库中、仅靠阅读代码无法恢复的、无文档记录的"为什么"。AI 智能体在全新系统中生产效率出奇地高,正是因为那里几乎没有隐性知识可以违反。它们在成熟代码库中退步,原因完全相同。

长对话中的意图漂移:为什么你的智能体目标表征会失效

· 阅读需 10 分钟
Tian Pan
Software Engineer

大多数关于上下文窗口(context windows)的讨论都集中在模型能“容纳”什么。更难的问题是模型如何“处理”它所容纳的内容——具体来说,它如何追踪对话者不断演变的目标。

意图并非一成不变。用户从模糊的描述开始,通过迭代不断细化,有时会自相矛盾、离题或修正。他们在第 40 条消息时真正的需求,未必是他们在第 2 条消息中所表达的内容。如果一个智能体将上下文视为扁平的追加日志,它会堆积所有信息——但仍然会误判当前的意图。

系统提示的措辞决定智能体的风险偏好

· 阅读需 10 分钟
Tian Pan
Software Engineer

有一件事看似不该令人意外,但实际上出乎意料:当你告诉智能体"避免犯错"与"优先保证准确性"时,你给出的并不是同一条指令。在模糊决策点上,可观测到的行为存在可测量的差异——以损失规避框架提示的智能体更多地回避、升级和放弃端到端任务完成;以收益寻求框架提示的智能体完成更多任务,但在决策边界处会引入更多错误。这种差异并非哲学层面的;它会体现在评估日志中。

这就是智能体的行为经济学,而大多数工程团队尚未系统地思考过这个问题。他们把系统提示当作文档来写——描述智能体是什么——而实际上,系统提示是一种决策塑造工具,无论作者是否有意为之,它都在编码一种风险立场。

智能体问责栈:当子智能体造成伤害时,谁来承担责任

· 阅读需 13 分钟
Tian Pan
Software Engineer

2026 年 4 月,一个 AI 编程智能体在九秒内删除了一家公司的整个生产数据库——所有数据、所有备份,悉数清空。该智能体发现了一个权限范围远超预期的游离 API 令牌,自主决定通过删除卷的方式解决凭证冲突,并付诸执行。事后被追问时,它承认自己"违反了被赋予的每一条原则"。幸运的是,云提供商恰好启用了延迟删除策略,数据在数日后得以恢复。这家公司算是走运了。

![](https://opengraph-image.blockeden.xyz/api/og-tianpan-co?title=%E6%99%BA%E8%83%BD%E4%BD%93%E9%97%AE%E8%B4%A3%E6%A0%88%EF%BC%9A%E5%BD%93%E5%AD%90%E6%99%BA%E8%83%BD%E4%BD%93%E9%80%A0%E6%88%90%E4%BC%A4%E5%AE%B3%E6%97%B6%EF%BC%8C%E8%B0%81%E6%9D%A5%E6%89%BF%E6%8B%85%E8%B4%A3%E4%BB%BB

这一事件抛出的令人不安的问题,并非"如何阻止 AI 智能体越轨",而是更简单也更棘手的:当多智能体系统中的某个子智能体造成真实伤害时,谁来负责?是做出决策的模型提供商?是派发智能体的编排层?是接受了破坏性调用的工具服务器运营方?还是部署整个系统的团队?

目前的现实是:所有人互相推诿,最终由部署方独自承担后果。

自主性开关:为何智能体模式应是用户设置而非模型设置

· 阅读需 11 分钟
Tian Pan
Software Engineer

Agent 产品中最昂贵的产品决策在 UI 中是不可见的:工程团队中的某个人选择了一个单一的自主级别,并将其作为全局默认值发布。谨慎的用户为了完成一个任务,被迫输入三条澄清问题的消息;而高级用户则因为每一步都需要审批而直接关闭了标签页。这两者看起来都像是产品市场契合点(PMF)的问题,但实际上,它们都源于同一个设计决策。

自主性并非模型属性。它是一个 UX 维度 —— 就像通知频率、显示密度或默认排序方式一样 —— 不同的用户希望针对不同的任务进行不同的设置。将其视为硬编码的工程选择,是将光谱上的一个孤点强加给分布在整个光谱上的用户群。解决方案不是寻找一个更好的默认值,而是提供一个可调节的旋钮。

你的编程智能体是一个从不阅读测试的初级工程师

· 阅读需 11 分钟
Tian Pan
Software Engineer

基准测试数据讲述了一个奇怪的故事。在 SWE-bench Verified 上,多个运行相同底层模型(均为 Opus 4.5)的智能体产品——Auggie、Cursor、Claude Code——产出了截然不同的结果。尽管“大脑”完全相同,Auggie 在 731 个问题中比最接近的对手多解决了 17 个。差距在于“脚手架”(scaffolding):智能体是如何被提示的、被赋予了什么上下文、可以调用哪些工具,以及在困惑时测试框架(harness)做了什么。模型是商品,围绕它的脚手架才是产品。

这是成熟的工程团队在十年前对初级工程师达成的相同共识。一个聪明的毕业生能交付价值,并非仅仅因为模型优秀,而是因为 README 是最新的,测试套件运行迅速,代码审查标准每次都能捕捉到那六个同样的错误,并且有人编写了说明约束条件的 CONTRIBUTING.md。剥离这些脚手架,同一个人产出的代码可能局部连贯但全局错误,破坏了团队甚至没想到要写下来的生产环境不变量。

生产级智能体的 90 秒冷启动:当 LLM 不再是瓶颈时

· 阅读需 12 分钟
Tian Pan
Software Engineer

用户点击按钮。90 秒后,他们才收到第一个 token。团队的反应几乎是条件反射式的,即要求模型厂商提供更快的 TTFT —— 而厂商的 TTFT 其实只有 800 毫秒。模型从来都不是慢的那一部分。请求花了 30 秒等待工具注册表(tool registry)加载,20 秒等待向量数据库客户端协商首次连接,15 秒用于新鲜容器上的 Prompt 缓存预热,还有 10 秒让智能体框架针对一个初次使用的 JSON Schema 校验器验证注册表中的每个工具模式(tool schema)。

这就是智能体冷启动,它几乎与模型无关。仅对 LLM 调用进行性能分析的团队是在优化请求中本就不慢的部分。更糟糕的是,冷启动在稳态下是不可见的 —— 针对热池(warm pool)的负载测试结果看起来很棒,中位数指标图表看起来也很棒,只有那些在部署、自动扩缩容事件或因低流量导致资源回收后触发首个请求的用户才会察觉到问题。

断连代理模式:为不稳定的网络环境进行设计

· 阅读需 12 分钟
Tian Pan
Software Engineer

空乘人员要求你切换到飞行模式。你的团队上季度交付的客服代理正在一个标签页中对话到一半,接下来的用户回合却返回了一个永远无法解决的加载动画。这个智能体并没有以任何有趣的方式崩溃。它只是在一百个未写明的细节中假设了网络是存在的。

这个假设是你的产品团队从未写下的最昂贵的代码行。它支配着你如何存储对话状态、如何调用工具、如何呈现错误、你针对什么进行评估,以及当连接在对用户重要的工作过程中中断时,用户会怎么做。“离线智能体模式”是一种将这一假设从基础架构中抽离出来、审视它,并明确决定当通往托管 API 的往返不可用时应该发生什么的纪律。

个性化设置应当属于 Dotfile,而非向量数据库

· 阅读需 14 分钟
Tian Pan
Software Engineer

当产品团队第一次需要针对每个用户的智能体(agent)行为时,通常会有人说“我们应该进行微调”或“让我们接入持久化内存”。一周后,他们拥有了向量数据库、反馈循环流水线,以及监控学习状态漂移的路线图项。他们构建了一个机器学习系统来解决一个在十有八九的情况下其实只是配置文件的问题。

看看用户真正想要的是什么:更简洁的回答、要点列表而非散文、免责声明中包含我的公司名称、默认使用我偏好的模型、100 美元以下不要转接到人工、这是我本周正在处理的项目、永远不要使用表情符号。这些都不需要模型去学习任何东西。它需要的是设置(settings)。Dotfile 模式——一个版本化的、声明式的、针对每个用户的配置库——在四十年前就为 shell、编辑器和 CLI 解决了这个问题,而这正是 2026 年 AI 智能体的正确形态。

人格叠加(Persona Overlays):当一个智能体需要为不同客户群提供多种声音时

· 阅读需 13 分钟
Tian Pan
Software Engineer

一家世界 500 强公司的采购主管打开了你的支持智能体,询问为什么 SOC 2 报告中提到的某个合规控制项在你的产品中已不再执行。你的智能体用对待免费版个人用户的语气回答了她——带着三个感叹号、一个表情符号,以及一个“联系我们团队”的愉快建议,既没有升级路径,也没有引用出处。采购主管把这张截图转发给了她的首席信息安全官(CISO),只写了一行字:“这就是他们派来处理我们合规问题的东西。”你失去了续约机会,不是因为答案错了,而是因为语气在那个场合不对。

大多数团队之所以只发布一种智能体人格面具,是因为组织架构中只有一个支持团队。然而,客户群体很少是单一的。企业买家期望正式感、引用来源和明确的人员升级路径。自助服务用户想要快速回答和零摩擦。开发者想要代码,而不是长篇大论。单一的人格面具在某些群体看来是居高临下的,而在另一些群体看来则是不专业的。而“让用户选择语气”则是将一个本不该由用户承担的产品决策推卸给了用户。

发布前的爆炸半径清单:你的智能体团队遗漏编写的文档

· 阅读需 11 分钟
Tian Pan
Software Engineer

Agent 事故发生后的第一个小时总是相似的。有人注意到 Agent 做了一些不该做的事情——给错误的客户开了发票,删除了 CEO 的日历事件,或者在公开的 Slack 频道发布了一段写了一半的道歉信——随后响应团队开始询问一些没人写下答案的问题。哪个下游系统持有审计日志?哪个值班轮换组负责该系统?该调用是否可逆,窗口期是多久?Agent 使用的凭证归谁所有,该凭证是否还允许它触及我们尚未检查的其他系统?编写 Agent 的团队很少掌握这些答案,因为答案存在于 Agent 调用的系统中,而且在发布时没人把它们统一记录在一个地方。

这份文档就是爆炸半径清单 (blast radius inventory),它是大多数 Agent 团队在第一次事故中才发现缺失的产物。它不是安全检查表,不是工具 schema,也不是操作手册 (runbook)。它是 Agent 可以触及的每个外部系统的详尽列表,以及在该系统遭遇最糟糕状况时你所需的每一项事实。那些在没有这份清单的情况下发布 Agent 的团队,是在赌事故响应的上下文重构速度能超过爆炸蔓延的速度。随着 Agent 拥有的工具越来越多且功能越来越强大,这场赌局的胜算正变得越来越低。