跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
编程语言Agent RuntimeAI AgentProduction AgentChecklistRelease Gate

《Agent Runtime 工程化》生产级 Agent 上线前必须检查的 50 件事

生产级 Agent 上线前必须检查的 50 件事 前面我发布了 Production Agent Checklist v1.0。 那是一份模块级清单。 今天这篇更像上线门禁。 如果一个 Agent 要进入真实用户环境,尤其是能读文件、写文件

陈堂会发布于 —49 浏览
《Agent Runtime 工程化》生产级 Agent 上线前必须检查的 50 件事

生产级 Agent 上线前必须检查的 50 件事

前面我发布了 Production Agent Checklist v1.0。

那是一份模块级清单。

今天这篇更像上线门禁。

如果一个 Agent 要进入真实用户环境,尤其是能读文件、写文件、跑命令、联网、调用 MCP 或触发业务流程,我会至少检查下面 50 件事。

不是为了吓人。

是为了避免那句最危险的上线理由:

我试了几次,感觉还行。

感觉不够。

上线要有证据。

1-5:身份和状态

  1. 每次执行都有 runId、turnId、traceId。
  2. 每个 step 有稳定 index 或 stepId。
  3. 每个 tool call 有 toolCallId。
  4. final、failed、cancelled、paused、max_steps、budget_exhausted 能区分。
  5. 用户能看到当前任务状态,而不是只看到一个转圈动画。

没有身份,后面所有排障都会散。

6-10:Loop 控制

  1. 有 maxSteps。
  2. 有 wall-clock timeout。
  3. 支持用户取消。
  4. 能识别 repeated tool call。
  5. 能识别 repeated error。

Agent 不只要会跑。

它还要会停。

11-15:上下文

  1. Context Builder 不是简单拼聊天记录。
  2. 当前用户目标和显式约束不会被摘要覆盖。
  3. 安全策略不会被历史挤掉。
  4. 工具结果过长时会截断、摘要或保存 artifact。
  5. 每次 context build 都有 debug report。

模型答错时,先看它到底看见了什么。

16-20:模型和 Provider

  1. Runtime 有自己的 ModelResponse 中间表示。
  2. provider 原始字段没有散落在业务代码里。
  3. 记录模型 token、latency、finish reason。
  4. 限流、超时、上下文超限有不同错误类型。
  5. 有 deterministic mock provider 测 Runtime 逻辑。

真实模型会变。

Runtime 的状态转移不能跟着飘。

21-25:工具系统

  1. 工具不是 Map<string, Function>。
  2. 每个工具有 schema、risk、timeout、output policy。
  3. 工具先 schema validation,再 policy validation。
  4. 未知工具返回 observation,不让进程崩溃。
  5. 工具版本进入 trace 和 eval。

Tool Calling 只是接口能力。

Tool Runtime 才是工程边界。

26-30:权限审批

  1. PermissionGate 在 execute 前运行。
  2. 写文件有 preview 或 diff。
  3. 网络工具展示域名和用途。
  • 安装依赖展示包名、版本、registry、lockfile 影响。
  • 破坏性操作默认拒绝或强确认。
  • 用户批准的不是'运行工具'。

    用户批准的是具体副作用。

    31-35:Sandbox 和安全

    1. 文件读写限制在 workspace 内。
    2. 写入拒绝 symlink escape。
    3. 默认不读取 .env、SSH key、浏览器 profile、系统 credential。
    4. shell 默认只读白名单。
    5. 网络默认 deny 或 allowlist。

    '开了 sandbox'不是答案。

    要说明它隔离了什么。

    36-40:Checkpoint 和恢复

    1. run 开始保存初始状态。
    2. 每个 step 后保存 checkpoint。
    3. 工具 planned / started / succeeded / failed / uncertain 有 ledger。
    4. 写文件前后记录 hash 和 diff。
    5. resume 时不自动重放不可幂等工具。

    Checkpoint 不是聊天记录。

    它是恢复证据。

    41-45:Trace 和事故复盘

    1. 一次 run 对应一条 trace。
    2. context、model、tool、permission、checkpoint 都有 span 或 event。
    3. 大内容用 artifact ref,不直接塞进 trace。
    4. secret、token、cookie、private key 默认脱敏。
    5. 失败能归因到模型、工具、权限、上下文、runtime 或外部系统。

    Trace 要回答'系统实际做了什么'。

    不是只保存模型说了什么。

    46-50:Eval、成本和发布

    1. Eval 不只比较最终回答。
    2. Eval 检查 required tool 和 forbidden tool。
    3. Eval 检查权限拒绝、resume、rollback。
    4. token、step、wall-clock、tool-call 四类预算进入报告。
    5. Release note 写明已知限制和高风险能力默认策略。

    没有 eval 的上线,是靠记忆发布。

    靠记忆发布,迟早会忘。

    一个最小发布门禁

    如果你现在没有完整平台,至少做这个最小门禁:

    必须有:
    - runId / traceId
    - maxSteps
    - Tool Registry
    - PermissionGate
    - workspace path check
    - shell readonly policy
    - checkpoint after step
    - JSONL trace
    - mock eval
    - release known limitations
    

    这十项做完,系统未必成熟。

    但已经不是裸奔。

    哪些可以暂时 N/A

    清单不是一刀切。

    只读 RAG Agent 可以暂时 N/A:

    写文件 preview
    安装依赖审批
    rollback files
    shell sandbox
    

    但如果你的 Agent 能写文件、跑命令、联网或调用业务 API,就不要轻易 N/A。

    越接近真实副作用,越需要 Runtime。

    最后

    上线前,我会问一句:

    如果明天它出事,我们能不能知道发生了什么?
    

    如果答案是否定的,那就还没准备好。


    推荐阅读

    • Agent Runtime Engineering v0.1 发布
    • 招募 50 位 Early Reader
    • 过去 30 天,我对 Agent Runtime 的理解变化

    目录

    1. 生产级 Agent 上线前必须检查的 50 件事
    2. 1-5:身份和状态
    3. 6-10:Loop 控制
    4. 11-15:上下文
    5. 16-20:模型和 Provider
    6. 21-25:工具系统
    7. 26-30:权限审批
    8. 31-35:Sandbox 和安全
    9. 36-40:Checkpoint 和恢复
    10. 41-45:Trace 和事故复盘
    11. 46-50:Eval、成本和发布
    12. 一个最小发布门禁
    13. 哪些可以暂时 N/A
    14. 最后
    15. 推荐阅读

    更多推荐文章

    查看全部
    • Claude Code Router 与 cpolar 组合优化 AI 开发流程
    • Python JS 逆向与多线程结合实践
    • LeetCode 61. 旋转链表
    • Claude Code 的模型配置与默认值说明
    • 硬件工程师成长之路——知识汇总
    • 人工智能进化全景:从专用工具到超级智能的跃迁
    • 10 款主流降低 AI 检测率工具深度测评与对比
    • 贝尔曼 - 福特算法:负权图最短路径计算详解
    • 医疗大模型:互联网大厂与行业玩家的新赛道
    • Whisper 开源语音识别工具安装与使用指南
    • Python 调用 Anthropic API 的两种方式
    • Microi 吾码:开源低代码平台架构与实战指南
    • C++ 封装红黑树实现 map 和 set
    • Bing Webmaster 工具使用指南:网站验证与收录提交
    • MySQL 和 Navicat Windows 安装与连接教程
    • C++未定义行为(UB)详解与解决方案
    • 2025 年 Web 开发技术栈:14 款主流模板与插件深度评测
    • 平台、记忆、评测——AI 竞赛正在换挡
    • XSS 漏洞原理:Cookie 窃取、钓鱼与键盘记录实战
    • CCF-GESP 一级 C++ 真题解析:手机电量显示

    相关免费在线工具

    • Base64 字符串编码/解码

      将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

    • Base64 文件转换器

      将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

    • Markdown转HTML

      将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

    • HTML转Markdown

      将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

    • JSON 压缩

      通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

    • JSON美化和格式化

      将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online