本页目录10
- Datadog 至少三分之二的 AI 编码用量由 Claude Code 承担,涵盖从 bug 修复到自建数据库、控制面等完整系统
- 核心痛点是「假设已验证」——agent产出代码的速度已超过团队评审能力,验证成为新瓶颈
- Temper让agent产出可机器验证的规格(specification)而非任意代码,编译/验证环节被移出LLM之外,类似把代码交给编译器
- 规格要经过符号推理、穷举状态探索、带故障注入的确定性仿真、约1000次随机属性测试四层验证,小规格可在1秒内跑完全部验证
- 每个能力需同时具备行为契约、数据契约、默认拒绝的授权契约三份契约,让状态机变成可被agent读写和热更新的数据而非散落的胶水代码
- 该实践路径经过Courier、BitsEvolve、Helix三个前置项目逐步演化,团队认为这种方式最终可能把软件变成可持续演化、可培育的「有机体」
本文是对官方文章的中文要点摘要,完整内容以原文为准:https://claude.com/blog/how-datadog-built-a-universal-machine-tool-for-claude-code
背景:Claude Code 在 Datadog 的真实分量
Datadog 工程团队将 Claude Code 用于生产工作,其在团队 AI 编码工具使用量中占比至少三分之二。他们用它做的事情大致分四类:
- 定点修改:bug 修复、性能优化、服务间桥接
- 大型重构:重写自定义 protobuf 解析器、数据库迁移
- 替换核心模块:新算法、自动扩缩容(autoscaling)重新设计
- 构建完整系统:数据库替代品、控制面(control plane)、数据摄取管道
这促使团队思考:当 agent 已经能独立完成整套系统的构建,人类工程师的角色应该如何重新定位。
「心流」问题:开发者角色的转变
Datadog 工程副总裁 Sesh Nalla 的说法是关键线索:「你不再是在写代码,而是在塑造这份工作——决定 agent 该看到什么、该有什么工具、成功的定义是什么、失败该如何被检测出来。」
这意味着传统「意图直接翻译为代码」的开发方式正在改变。当受管理的 agent 能长时间自主运行时,每个 agent 都会产生自己的工具和约定,人类需要用「人类设计的工具」去弥合 agent 执行之间的缝隙——这正是 Temper 要解决的问题。
「机床」的类比:Temper 是什么
制造业中的机床(jig、fixture、量具、铣床等)能产出精确、可重复的零件。Temper 把同样的原则搬到了 agentic 系统上:「Temper 就是 Datadog 的机床」,让 agent 能够安全地构建关键任务系统。
通往 Temper 的三个前置项目
Courier(2024):一个分布式队列系统。核心挑战是「让组件之间的交互变得可观测、可测试、可验证」,需要用形式化建模和仿真来支撑。
BitsEvolve(2025年9月):一个闭环的演化式优化框架——由多个模型组成的「委员会」生成代码变体,通过基准测试和生产环境的可观测数据来筛选。团队称之为「第一次窥见软件的某些部分可以像生物一样被培育——通过带反馈的变异和适应来生长」。
Helix(BitsEvolve 之后):一个可对标 Kafka 的流式服务,大部分由 Claude Code 独立构建,人类介入极少。系统在几天内就跑通了基本功能,但要达到生产可用还需要大量运维层面的加固——这正是 Temper 要系统性解决的问题。
Temper 如何工作:让 agent 产出「规格」而不是代码
Temper 的核心思路是:agent 不直接产出应用代码,而是产出规格(specification),由内核对其做四层独立验证:
- 符号推理(symbolic reasoning):证明守卫条件(guard)可满足、不变量(invariant)是归纳成立的
- 穷举状态探索:遍历所有可达状态
- 确定性仿真:用带随机种子的故障注入(丢包、延迟、乱序、崩溃)跑生产代码路径
- 随机属性测试:执行约 1,000 次伪随机动作序列,并把发现的违规情况收缩(shrink)为最小反例
对于小规模规格,整条验证链可以在 1 秒内跑完。
每个能力(capability)需要三份契约
- 行为契约:状态、状态转换、前置条件、安全属性
- 数据契约:实体类型、属性、动作,以机器可解析的形式表达
- 授权契约:默认拒绝(default-deny)、基于作用域(scope)的审批,人类可以「热加载」调整权限
Temper 在 Helix「黑灯工厂」中的三个角色
- Agent 控制面:管理会话(session)、角色、工作队列、生命周期
- 工具构建层:把 Git、CI、部署等 SDLC 工具链与 Temper 应用连接起来
- Helix 控制 API:作为数据面的生命周期管理接口
为什么不直接用传统 CRUD 应用
传统 CRUD 应用的控制逻辑往往散落在路由、数据库约束、服务代码、后台任务里,难以整体验证。Temper 的做法是让状态机显式化:「Temper 让状态机变得显式。agent 产出的是精确的描述,而不是任意代码。编译这一步被放在 LLM 之外,就像把 Rust 代码交给 Rust 编译器一样。状态转换表是数据,而不是意大利面式的控制流。」
几条关键实践建议
- 真正的瓶颈是「假设已验证」:agent 生成代码的速度早已超过团队评审的速度,验证能力才是限制因素
- 产出物应该是规格,而非任意代码:控制逻辑用可验证的规格表达,对必须存在的任意代码则要求「可证明携带」(proof-carrying),编译/验证过程始终在 LLM 之外完成
- 控制生成粒度:每一份生成物的规模都要小到人类能够在脑子里完整把握
- 把状态机变成数据:从散落各处的控制逻辑中把状态机提取出来,变成 agent 可以在策略约束下修改和热更新的数据
未来展望
航空、金融等高保障(high-assurance)软件领域过去需要极高的人力投入才能达到所需的严谨程度。Datadog 团队的判断是:如果 agent 能在「黑灯工厂」里以这种纪律性自主构建软件,或许人类不必止步于此。用这种方式构建的软件,开始更像一个可以通过反馈、选择和适应不断生长、培育、演化的有机体。