跳到主要内容

191 篇博文 含有标签「agents」

查看所有标签

智能体工具调用中的幂等性问题

· 阅读需 12 分钟
Tian Pan
Software Engineer

这种场景每次都如出一辙。你的智能体正在预订酒店房间,支付API调用返回200后、确认信息存储之前发生了网络超时。智能体框架发起重试,支付再次执行,客户被扣了两次款。支持团队升级处理,某位高管说AI"幻觉出了重复扣款"——这种说法是错的,但听起来有道理,因为没人愿意承认他们的重试逻辑从一开始就是坏的。

这不是AI问题,而是分布式系统问题——被AI层全盘照搬,却没有带来分布式系统工程师几十年苦心钻研出的应对之道。标准的智能体重试逻辑假设操作是幂等的,而大多数工具调用并非如此。

生产环境中的多模态智能体:纯文本评估从未发现的问题

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数构建AI智能体的团队在投产三个月后都会发现同一个问题:他们精心设计的评估套件——围绕文本输入和JSON输出构建——当智能体遇到模糊的发票、扫描合同或从未见过的UI截图时,毫无参考价值。纯文本评估通过了,但用户提交了工单。

多模态输入不仅仅是另一种需要接入的模态,它们引入了一类截然不同的故障,需要不同的架构决策、不同的成本模型和不同的评估策略。将视觉能力视为对现有文本智能体的即插即用扩展的团队,无一例外地低估了所需的工作量。

工具过载问题:为什么工具越多,你的大模型越笨

· 阅读需 11 分钟
Tian Pan
Software Engineer

Writer 团队在对其 RAG-MCP 基准进行插桩测试时发现,当 Agent 可以访问大量工具集时,基准工具选择准确率——在无任何特殊处理的情况下——仅为 13.62%。不是 80%,不是 60%,而是 13%。而同一个 Agent,在通过检索增强的工具选择仅暴露最相关子集后,准确率达到了 43%。工具没变,模型没变,唯一变化的是推理时可见的工具定义数量。

这就是工具过载问题,它正在悄无声息地摧毁大规模生产 AI 系统。

提示注入是供应链问题,而非输入验证问题

· 阅读需 10 分钟
Tian Pan
Software Engineer

在一百万份干净文档中隐藏五份精心构造的恶意文档,就能对生产级RAG系统实现90%的攻击成功率。这不依赖零日漏洞或密码学破解——只需用纯文本指示模型以与运营者意图不同的方式运行。如果你的防御策略是"在内容到达LLM之前净化输入",那你已经输了。

框架至关重要。将提示注入视为输入验证问题的团队会构建边界防御:正则过滤器、基于LLM的分类器、输出扫描器。这些有用但不足。真正的问题在于,现代AI系统是组件的组合——检索器、知识库、工具执行器、外部API——每个组件都是有自身攻击面的摄入点。这正是供应链漏洞的定义。

为具备代码编写能力的智能体构建沙箱:最小权限原则并非可选

· 阅读需 15 分钟
Tian Pan
Software Engineer

大多数团队在发布第一个可执行代码的智能体(Agent)时,只采取了一种安全控制措施:API 密钥范围限制(API key scoping)。他们给智能体一个具有 repo:read 权限的 GitHub 令牌,以及一个可以访问工作目录的 shell,然后就称其为“已沙箱化”。这种做法是错误的,其弊端只有在发生安全事故后才会变得显而易见。

能够编写和执行代码的智能体的威胁模型与 Web 服务器或 CLI 工具的威胁模型有着本质的区别。攻击面不再是协议边界,而是智能体读取的一切内容。这包括 git 提交记录、文档页面、API 响应、数据库记录以及它打开的任何文件。其中的任何输入都可能包含提示词注入(prompt injection),从而将你的研究型智能体转变为数据泄露管道。

大规模 Text-to-SQL:上线之前没人告诉你的那些事

· 阅读需 12 分钟
Tian Pan
Software Engineer

Text-to-SQL 演示看起来出奇地简单:把 schema 粘贴到提示词里,向 GPT-4 提个问题,拿到一条整洁的 SELECT 语句,然后 Slack 里就开始涌现"要不要把这个集成进数据平台?"的消息。等到你真正打算上线时,麻烦来了。基准测试显示 85% 的准确率,但内部数据团队反映大约一半的答案是错的,而安全团队则在追问:生成的查询在执行前有没有经过审查?没人能给出一个像样的答案。

这正是 text-to-SQL 作为研究问题与作为工程问题之间的鸿沟。研究问题关注的是让模型生成语法正确的 SQL;工程问题面对的是 schema 歧义、访问控制、查询验证,以及你的企业数据库根本不像 Spider 或 BIRD 数据集这一现实。

智能体身份与委托授权:智能体操作的 OAuth 模式

· 阅读需 11 分钟
Tian Pan
Software Engineer

当 AI 智能体预订日历事件、发送电子邮件或提交表单时,它并非以自己的身份行事——而是在某个说"去做这件事"的人类的委托授权下行事。这一区别听起来很哲学,直到某个智能体泄露了敏感数据、执行了用户并不打算执行的不可逆操作,或者遭到入侵。到那时,问题不再是发生了什么,而是谁授权的、何时授权的,以及能否撤销

权限范围设置不当的智能体凭证所带来的波及范围,远超大多数团队的预期。拥有广泛 API 访问权限的智能体不是单一故障点——而是一个长期开放的后门。2025 年,智能体 AI 的 CVE 数量同比增长了 255%,大多数事件都可以追溯到权限过宽、有效期过长或无法彻底撤销的凭证。正确构建智能体,意味着在投入生产之前就设计好授权层。

Agentic 数据流水线:大规模离线富化与分类

· 阅读需 11 分钟
Tian Pan
Software Engineer

你有一个批量任务,一夜之间可以对 1,000 万张客户支持工单进行分类。你将正则分类器换成了大语言模型(LLM),准确率从 61% 飙升至 89%。然后你上线了它,却发现:这项任务现在的成本增加了 40 倍,运行速度慢了 12 倍,当模型返回无法解析的输出时会静默跳过 3% 的记录,而且由于标签架构(label schema)在无人察觉的情况下发生了偏移,你的下游分析团队正在不断提交 Bug。

Agentic 数据管道的损坏方式是 ETL 工程师以前从未见过的,修复它们需要一套不同于传统批处理或实时 LLM 服务的思维模型。

大规模代理式网页数据提取:当智能体取代爬虫时

· 阅读需 12 分钟
Tian Pan
Software Engineer

这个 Demo 只需 20 分钟就能构建完成。你粘贴一个 URL,大语言模型(LLM)读取 HTML,结构化数据就从另一端输出了。这感觉就像网页数据提取的未来已经到来。

然后,你以每小时 1,000 页的速度运行它。成本飙升,屏蔽不断积累,提取出的字段开始以一种看起来不像错误的方式发生偏移——它们看起来像正常数据,直到你的下游流水线已经默默地摄取了三周的垃圾。“LLM 读取页面”的模式并没有错,只是它的定价更适合原型的吞吐量。

智能体(Agentic)网页提取确实解决了传统爬虫无法解决的问题。但要将其扩展到概念验证(PoC)阶段之后,需要理解一组与大多数团队预期不同的故障模式。

Agent 链中的截止时间传播:第三跳时你的 p95 SLO 发生了什么

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数构建多步 agent 管道的工程师会在第一次生产故障后约两周发现同一个问题:他们在 API 网关设置了 5 秒超时,但 agent 管道有四跳,而整个系统的行为就好像根本没有超时一样。第三跳的 agent 不知道上游调用方三秒前就已放弃等待,它继续运行、继续调用工具、继续生成 token——而用户早已离开。

这不是配置错误,而是结构性问题。延迟约束默认不会跨 agent 边界传播,主流编排框架也没有任何一个让截止时间传播变得容易。结果是一类看起来像延迟问题、实则是上下文传播问题的故障。

Agent 流水线的分布式追踪:为什么你的 APM 工具形同虚设

· 阅读需 10 分钟
Tian Pan
Software Engineer

你的 Datadog 仪表盘一片绿色。Jaeger 链路看起来干净整洁。P99 延迟符合 SLA。而你的 Agent 流水线正在悄无声息地因重试死循环每天烧掉 4000 美元,却没有触发任何一条报错。

传统 APM 工具是为微服务设计的——确定性路径、有界载荷、可预测的扇出。Agent 流水线打破了所有这些假设。执行路径在运行时才能确定。工具调用深度变化剧烈。一次"请求"可能跨数分钟产生数十次 LLM 调用。而当出了问题,失败模式通常不是异常——而是一个悄然膨胀成本和延迟、却返回看似正常输出的静默重试级联。

结果是一代工程师在盲目飞行,信任着那些衡量错误事物的仪表盘。

AI 智能体的集群健康监控:单智能体可观测性在规模化场景下的盲区

· 阅读需 11 分钟
Tian Pan
Software Engineer

大多数团队能把单智能体的可观测性做得足够好——加上链路追踪、统计 Token 用量、设置错误率告警。然后他们把并发智能体扩展到一百个,才发现整个监控体系一直在盯错方向。

摧毁集群的问题,并不是摧毁单个智能体的那些问题。一个陷入递归推理循环的智能体可以在一小时内烧光一个月的 API 预算。模型服务商悄无声息的质量降级,会让集群里的每一个智能体同时以满满的自信给出错误答案——而你的基础设施仪表盘依然一片绿灯。这些故障不会出现在延迟图表或 HTTP 错误率中,因为它们根本不是基础设施故障,而是语义层面的失效。