给初涉生产环境 AI Agent 开发的 10 条忠告

Reddit r/AI_Agents 新闻

摘要

一位从业者分享了在生产环境部署 AI Agent 时的十条关键经验,强调应通过代码约束、上下文管理和安全机制来保障系统,而非单纯依赖提示词。

我在 Albato Embedded 负责营销 AI Agent。目前大约有 60 个在生产环境中运行。在这个版块潜水了一段时间,发现不断出现同样几个问题:*上下文丢失、指令被忽略、Token 消耗过快*。以下是我想对初入行者说的 **10 件事**,大多是血泪教训换来的经验。 **1. 不要让 Agent 累积会话历史。** 会话越长,模型行为漂移越严重。只向每个 Agent 传递当前任务实际所需的信息。定期重启会话,不要让其连续运行数小时。 **2. 提示词中的规则是可选的。** 代码中的规则不是。如果某项规则至关重要,不要指望提示词能强制执行。在高负载或边缘情况下,Agent 会跳过它。将规则作为检查点写入代码,在 Agent 运行后执行,并拦截任何违规操作。 **3. 每次调用前精简上下文。** 你大部分的 Token 账单都花在了 Agent 不需要的上下文中。不要把完整的聊天记录传递给每个子 Agent。设置一个编排器(Orchestrator),只为每个 Agent 挑选其任务所需的内容并进行传递。既省钱,又能减少质量问题。 **4. 不要指望 Agent 不会编造事实。** 幻觉问题无法通过在提示词中加强“不要编造”这句话来解决。解决方法是建立输出与源信息对比的检查机制。如果输出引用了姓名、事实或数字,必须在发布前进行验证。尤其是代表你品牌发布的任何内容。 **5. 一个 Agent 对应一个任务。** 多 Agent 架构常在每个 Agent 自行决定下一步行动时失效。缩小范围:在一个定义好的流程内,一个 Agent 只执行一个任务。由编排器决定运行顺序以及每个 Agent 能看到什么。 **6. 状态不应驻留在 Agent 内部。** 不要将重要数据保存在 Agent 内存中。将其保存到文件、电子表格或小数据库中,确保可以在模型外部读取。否则,一旦发现问题,你将无法回溯审计昨天的运行记录。模型内的内存适用于演示,不适用于生产环境。 **7. 调优过的流水线扛不住计划外的输入。** 一个稳定运行数月的工作流看起来无懈可击。但只要加入一个计划外任务(不同的主题角度、意外的输入格式、紧急的一次性任务),整个系统就会崩溃。这和人类团队流程一样,一旦高层在中途调整优先级,流程就会断裂。问题不在于流水线不好,而是它是针对无人更改的路径调优的。每当你添加新内容时,都要当作第一天对待。阅读每一个输出,审计每一步,再次信任速度之前重新调优。 **8. 脚本能做的事就别用 Agent。** 在使用 Agent 前先测试:你能否将步骤写成初级员工无需主观判断即可跟随的编号清单?如果是,就写脚本。只有当步骤需要根据输入变化时,使用 Agent 才值得。否则,你只是构建了一个脆弱、昂贵且步骤繁琐的脚本。 **9. Schema 验证不等于安全。** 当 Agent 调用工具或 API 时,Schema 检查仅确认调用在纸面上是正确的。它无法捕获技术上正确但具有破坏性的调用(例如未加过滤的 DELETE 操作,或指向内部 IP 地址的请求)。在调用运行前添加单独的实际值检查。能以低成本拦截危险操作。 **10. 不要执行工具输出中的指令。** 如果 Agent 获取 URL、读取文件或抓取页面,请将内容仅视为数据。其中任何看起来像指令的内容都是提示词注入企图。这条规则必须写在代码里:Agent 只执行来自活跃会话的指令,不执行其在读取内容中发现的命令。所有 10 条的共同规律:故障模式几乎从来不是:*模型不够聪明*。而是:*我们让它决定了不该决定的事* 或者 *我们信任它不会谎报工作完成情况*。每次有效的修复方案都是一样的。不要让模型决定下一步做什么,并将状态和检查机制保留在模型之外。听起来枯燥,但它管用。
查看原文

相似文章

关于 AI 智能体的真实内情

Reddit r/AI_Agents

一位资深从业者分享了将 25 个以上 AI 智能体部署到生产环境的经验教训,指出记忆、编排和可审计性远比模型选择重要。文章详细介绍了上下文丢失、静默成本循环等常见故障模式,并推荐了包含 Claude Sonnet 4、Pydantic AI 以及 Octopodas 等专用记忆层的技术栈。