
Datadog 让智能体(agent)为确定性内核(deterministic kernel)编写规格说明,再由内核生成应用代码。
智能体、机械化与工业化
Agents, mechanization, and industrialization
Datadog 的所有工程师都在使用 AI 编码工具编写生产代码,其中至少三分之二的代码由 Claude Code 驱动。借助 Claude Code,他们在软件开发生命周期中生成了四类个性化工作流:
- 精准修改:修复数十个棘手的 Bug、进行性能优化、搭建与现有服务的桥接。
- 大规模重构:三天内重构了一个自定义 protobuf 解析器,并在不到三个月内将一套指标控制系统从 FoundationDB 迁移到了 Postgres。
- 替换大型模块:实现新的分片算法,重新设计自动扩缩容机制。
- 构建完整系统:用 Postgres 替换 MongoDB,从零搭建 BYOC(自带云)控制平面和数据摄取管道。
然而,随着工作流在这张地图上铺开,他们发现:在一端,生成代码的复杂度越来越高;在另一端,验证代码的模糊性也越来越强。
心流困境
The flow problem
对工程师而言,“心流”曾意味着意图与代码之间的直接关系:你理解问题、编写代码、测试、审查、发布、运维,然后重复。但有了智能体之后,这种抽象正在迅速改变。
“你不再直接写代码,而是在‘塑造’工作。你要决定智能体应该看到什么、拥有哪些工具、怎样才算成功、如何检测失败……这就像每个人都连升三级进入了管理层——但他们并没有为此做好准备,因为他们是工程师。”Datadog 工程副总裁 Sesh Nalla 说道。
采用 Claude 托管智能体(Claude Managed Agents)等方法后,Datadog 的会话运行时间变得更长,有时甚至持续数天。每个智能体都会发明自己的工具、胶水代码和约定。智能体变得非常有用,但人类仍需弥合智能体执行与面向人类工具之间的鸿沟。
机床:工业化的突破
Machine tools: the breakthrough of industrialization
机床——也就是你在制造业中看到的夹具、治具、量具和铣床——能够生产出精确、可重复的零件,这些零件再被组装成更大、更复杂的机器,比如发动机、飞机、核反应堆和登月舱。正是机床让零件变得可组合、可检查、可替换,从而推动了工业化的突破。
Sesh 将 Temper 描述为 Datadog 为智能体系统打造“万能机床”的尝试。换句话说,它是智能体以安全、精确的方式构建所需功能所需的最小内核。
“到了这个节点,我觉得我们需要一些更具结构性的东西,”Sesh 说,“如果智能体要构建和运维我们系统中那些关键任务的大型部分(比如数据库),它们就需要一个类似机床的概念。Temper 就是 Datadog 的这台机床。”
或阅读文档 | 尝试 Claude Code | 开发者文档 | 电子书
通往 Temper 之路
The road to Temper
机械化意味着智能体现在承担了更多工作。而工业化则意味着工作变得可重复、可验证、可控且可扩展。在 Datadog,这一切并非一蹴而就:通往 Temper 的道路经历了另外三个项目——Courier、BitsEvolve 和 Helix。每个项目都暴露了下一个项目的瓶颈,并让他们得以不断放大自己的雄心。
2024 年,他们推出了 Courier,一个分布式队列系统。完全手工从零搭建,耗时一年。
“难点不在于构建各个部件,而在于让部件之间的交互变得可观测、可测试和可验证,”Sesh 说,“因此,我们在形式化建模和仿真上非常严谨……识别出那些犯错代价高昂或难以逆转的环节,并在那里提高严谨度。”
2025 年 9 月,他们构建了 BitsEvolve,一个闭环进化优化框架。一个模型委员会生成代码变体,然后通过一系列基准测试、单元测试和生产可观测性来决定哪些变体能够存活。
“这是我第一次隐约感觉到,软件的某些部分可以像生物一样被‘培育’——通过变异、反馈和适应来生长,”Sesh 说。
但问题在于:进化的质量取决于它所适应的环境,而 BitsEvolve 的瓶颈正是这个反馈回路。于是他们又构建了 Helix,一个可与 Kafka 媲美的流式服务。Claude Code 完成了大部分构建工作,仅由一人进行引导。
“令我们难以置信的是,短短几天内我们就有了一个功能完备、可与 Kafka 媲美的系统,”Sesh 说,“[构建速度很快],我们开始进行影子测试,发现它的成本可以降低 2 到 5 倍。”
然而,将其投入生产却耗费了更多精力:运维加固需要时间,且需要不止一个人参与,目前该系统仍在逐步推广中。
“瓶颈再次转移了:智能体可以构建系统的大部分……但人类仍然需要通过为人类设计的工具和机制来协调,才能将工作交付到生产环境,”Sesh 说。
Datadog 需要一种方式,让智能体在一个经过验证、受策略驱动的运行时环境中构建自己的工具。这个运行时就是 Temper。
Temper
智能体生成代码的速度比任何团队手工审查的速度都快,但它们也会犯错。
在 Sesh 看来,智能体生成的内容与通过验证的内容之间的差距,正是故障模式累积的地方。然而,仅仅在传统代码库外面套一个智能体,只是把它当作吞吐量问题来处理,并没有缩小验证差距本身。
Temper 逆转了这个等式:智能体不再生成应用代码,而是生成规格说明(specifications)。内核读取每份规格说明,通过四层分析进行验证,然后部署规格说明所描述的运行系统。由于规格说明既是经过证明的产物,也是实际执行的产物,因此验证结果与运行状态之间不存在偏差。

“Temper 改变了系统的中心。智能体不再需要为每个局部需求不断发明互不关联的工具。相反,它生成精确的描述,作为意图和问题域的规格说明。它就像一台机床——就像夹具或 CNC 机床,你给它螺丝螺纹的规格,它就能极其可重复地生产出来。你可以用它们来制造飞机和类似复杂的东西,”Sesh 说。
因此,在这种情况下,智能体不必每次都临时拼凑最终的机制。它可以生成精确的描述,并通过 Temper(或类似 Temper 的机制)进行迭代,先让东西跑起来,然后将其转化为可重复、可检查、可重用的东西,这样你就能围绕代码库真正建立一个软件工厂。
每个能力由三个契约(contracts)描述:
- 行为契约:必须成立的状态、转换、前置条件和安全属性。
- 数据契约:实体类型、它们的属性以及每种类型支持的操作,以机器可解析的形式发布,这样智能体无需文档就能发现完整的 API。
- 授权契约:默认拒绝、基于范围的审批,拒绝记录为待处理决策,人类可以批准并热加载到策略引擎中。
每份规格说明在加载到内核之前,必须通过四个独立的验证层。符号推理(Symbolic reasoning)证明每个守卫条件都是可满足的,每个不变量都是归纳的。穷举状态探索(Exhaustive state exploration)访问每一个可达状态。
确定性仿真(Deterministic simulation)运行实际的生产代码路径,并注入故障——丢包、延迟、乱序、崩溃——这样在相同种子下,故障可以精确复现。
随机属性测试(Randomized property testing)运行大约一千个伪随机动作序列,并将任何违规行为缩减为最小的反例。对于一份小型规格说明,整个级联验证过程在远不到一秒内即可完成。
Helix 的“暗工厂”
The dark factory for Helix
Simon Willison 推广了“暗工厂”(dark factory)这个术语,指的是智能体在没有人类在场的虚拟工厂车间里持续工作的软件流程。在 Helix 的暗工厂中,Temper 扮演了三个角色。
它是托管智能体的智能体控制平面——管理会话、角色、工作队列和生命周期。它是工具构建层,让智能体能够通过小型 Temper 应用将 SDLC 工具(Git、CI、部署)连接起来。它还是 Helix 控制 API,即数据平面之上的生命周期接口,用于驱动工作负载。
“令人惊讶的是,它开始变得比智能体基础设施更通用。很多软件,如果你眯着眼看,其实就是围绕数据库 API 的控制逻辑:状态、关于变更的策略、生命周期转换、与外部系统的集成。Temper 在某种意义上可以是通用的,它可以应用于任何具有我所描述形状的软件,”Sesh 说。
为什么不直接构建一个 CRUD 应用?
Why not just build a CRUD app?
“Claude Code 可以[用 TypeScript 或 Python 构建 CRUD 应用]做得很好。然而,在普通的 CRUD 应用中,控制逻辑分散在路由、数据库约束、服务代码、后台任务和文档中。它可能有很好的测试和覆盖率,但操作模式——通常表现为状态机——是隐含在代码库中的,”Sesh 说。
“Temper 让那个状态机变得显式。智能体生成的是精确的描述,而不是任意的代码。编译步骤在 LLM 之外,就像你把 Rust 代码交给 Rust 编译器一样。转换表是数据,而不是埋藏在服务方法中的混乱控制流。智能体可以动态地、安全地更改它,并且无需经过 CI 就能热加载,”他解释道。
未来方向
Where this is going
Temper 背后的理念是:每个产物都应该足够小,小到能装进你的脑子里。航空和金融系统等高保障软件几十年来一直以这种方式构建,但在智能体出现之前,用人类来实现这种严谨性的成本对于通用软件来说太高了。
工业革命之所以成为可能,是因为机床让零件变得可组合、可检查、可替换,从而让我们能够构建越来越大、越来越复杂的机器。
“如果智能体能够以这种纪律在工厂内自主构建软件,也许我们不必止步于暗工厂。以这种方式构建的软件开始感觉像一个我们可以通过反馈、选择和适应来生长、培育和进化的有机体,”Sesh 说。
来自 Datadog 团队的最佳实践
你真正的瓶颈是生成还是验证?
假设是验证。智能体生成代码的速度已经超过任何团队的审查速度;生成的内容与经过证明的内容之间的差距正是故障模式堆积的地方。把精力投在那里,而不是追求更高的吞吐量。
智能体到底应该输出什么?
输出控制逻辑的规格说明(而不是代码),以及任意代码的证明载体。把编译和证明放在 LLM 之外——将规格说明交给一个确定性内核,这样被验证的产物就是实际运行的产物。
你的控制逻辑是显式的,还是分散在代码库中?
把状态机从路由、服务方法和后台任务中抽离出来,使其成为数据:一个智能体可以在策略约束下读取、修改和热加载的转换表。
人类能否将每个产物都装进脑子里去理解?
如果不能,你就回到了原点。确保生成的每一块代码都足够小,小到可以推理。
观看完整会议,了解现场演示以及关于 Datadog 如何构建 Temper 的深入讨论——Temper 是一个受约束的框架,它将一次性的智能体工具转化为安全、可重用的组件,这些组件可以在会话和团队之间不断积累。