Claude Code 学习站

Datadog用Temper为Claude Code打造万能机床

摘要Datadog案例:内核系统Temper让Claude Code生成可验证的规格而非直接写代码,支撑生产级基础设施的自主构建与验证。

本页目录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),由内核对其做四层独立验证:

  1. 符号推理(symbolic reasoning):证明守卫条件(guard)可满足、不变量(invariant)是归纳成立的
  2. 穷举状态探索:遍历所有可达状态
  3. 确定性仿真:用带随机种子的故障注入(丢包、延迟、乱序、崩溃)跑生产代码路径
  4. 随机属性测试:执行约 1,000 次伪随机动作序列,并把发现的违规情况收缩(shrink)为最小反例

对于小规模规格,整条验证链可以在 1 秒内跑完。

每个能力(capability)需要三份契约

  • 行为契约:状态、状态转换、前置条件、安全属性
  • 数据契约:实体类型、属性、动作,以机器可解析的形式表达
  • 授权契约:默认拒绝(default-deny)、基于作用域(scope)的审批,人类可以「热加载」调整权限

Temper 在 Helix「黑灯工厂」中的三个角色

  1. Agent 控制面:管理会话(session)、角色、工作队列、生命周期
  2. 工具构建层:把 Git、CI、部署等 SDLC 工具链与 Temper 应用连接起来
  3. Helix 控制 API:作为数据面的生命周期管理接口

为什么不直接用传统 CRUD 应用

传统 CRUD 应用的控制逻辑往往散落在路由、数据库约束、服务代码、后台任务里,难以整体验证。Temper 的做法是让状态机显式化:「Temper 让状态机变得显式。agent 产出的是精确的描述,而不是任意代码。编译这一步被放在 LLM 之外,就像把 Rust 代码交给 Rust 编译器一样。状态转换表是数据,而不是意大利面式的控制流。」

几条关键实践建议

  • 真正的瓶颈是「假设已验证」:agent 生成代码的速度早已超过团队评审的速度,验证能力才是限制因素
  • 产出物应该是规格,而非任意代码:控制逻辑用可验证的规格表达,对必须存在的任意代码则要求「可证明携带」(proof-carrying),编译/验证过程始终在 LLM 之外完成
  • 控制生成粒度:每一份生成物的规模都要小到人类能够在脑子里完整把握
  • 把状态机变成数据:从散落各处的控制逻辑中把状态机提取出来,变成 agent 可以在策略约束下修改和热更新的数据

未来展望

航空、金融等高保障(high-assurance)软件领域过去需要极高的人力投入才能达到所需的严谨程度。Datadog 团队的判断是:如果 agent 能在「黑灯工厂」里以这种纪律性自主构建软件,或许人类不必止步于此。用这种方式构建的软件,开始更像一个可以通过反馈、选择和适应不断生长、培育、演化的有机体。