ASTER CODE / 03
Harness 实现对比
比较 Aster Code、Codex、Claude Agent SDK、Deep Agents 和 LangGraph 的用途与接入方式。
Harness 与编排框架各做什么
Aster Code、Codex、Claude Agent SDK 和 Deep Agents 都提供模型调用、工具执行和上下文管理能力,组织模型使用工具完成多步任务。
LangGraph 主要负责流程编排:保存状态、安排步骤、暂停和恢复任务。具体使用什么工具、如何组织 agent、怎样验收结果,需要由上层应用决定。Deep Agents 就是在 LangGraph 上构建的一套 harness。
五种实现的侧重点
这些框架的功能有不少重叠。例如,权限检查、会话恢复和工具扩展并非 Aster Code 独有。实际选型时,更需要看接入方式,以及哪些工作由框架完成、哪些需要应用自己实现。
| 框架 | 提供什么 | 如何接入或扩展 |
|---|---|---|
| Aster Code | 可嵌入的 Rust 编码运行时 | 直接创建 Rust 会话;组合执行组件,接入不同模型供应商 |
| Codex | 完整 agent harness | CLI、SDK、app-server;管理会话、工具、沙箱、审批与事件 |
| Claude Agent SDK | 在应用中使用 Claude Code 的执行能力 | 用 Python、TypeScript 调用;配置工具、权限和生命周期钩子(hooks) |
| Deep Agents | 面向多步任务的通用 harness | 基于 LangGraph 提供文件系统、子代理和记忆;可替换后端和中间件 |
| LangGraph | 有状态的流程编排 | 用状态图连接固定步骤、模型调用和人工审批;上层提供具体工具与验收规则 |
Aster Code 的三个取舍
用日志恢复执行状态
执行组件根据同一份事实日志决定下一步,恢复时也读取这份日志。这样可以沿着记录追查某一步为什么发生。不过,外部操作的结果如果没有及时写入日志,仍需另外核实,不能直接重试。
由 Rust 宿主组合执行组件
宿主可以替换或组合提示、工具、预算和调度组件。权限与完成检查始终由 Core 执行。这种方式适合需要控制执行过程的 Rust 应用;接入者也需要理解组件如何读取日志,以及它们何时开始、何时结束。
检查报告对应哪次修改
发生修改后,需要有一份对应当前修改的检查通过报告。如果没有,宿主必须明确批准任务按未验证状态结束。报告能证明多少,取决于实际运行了什么检查。文件存在检查只能证明文件还在,覆盖业务行为的测试才能进一步检查代码是否正确。
选型依据
已有 Rust 应用且需要嵌入执行循环时,可以使用 Aster Code 的会话接口。围绕 Codex 或 Claude Code 开发应用时,使用对应 SDK 可以减少会话、工具和上下文管理的开发工作。
需要自行规定固定步骤、模型步骤和人工审批流程时,LangGraph 提供较底层的控制能力。需要文件系统、子代理和记忆组件时,可以选择 Deep Agents。
官方资料
资料核对日期:2026-10-26。