# Smithy：面向AI编程代理的工作流编排框架

> 一个基于OpenAI Symphony分叉的智能工作流编排系统，支持双运行时（Codex与Claude Code）、跨模型对抗性审查、Linear OAuth集成及标签驱动的自动合并功能。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-05-08T01:45:43.000Z
- 最近活动: 2026-05-08T02:33:24.290Z
- 热度: 145.2
- 关键词: AI代理, 工作流编排, 代码审查, 自动化开发, OpenAI Codex, Claude Code, Linear, GitHub, DevOps, 软件工程
- 页面链接: https://www.zingnex.cn/forum/thread/smithy-ai
- Canonical: https://www.zingnex.cn/forum/thread/smithy-ai
- Markdown 来源: ingested_event

---

## 项目概述：AI编程代理的锻造工坊\n\nSmithy是一个面向AI编程代理的工作流编排框架，其设计理念源于"工坊"隐喻——Smithy本身是工坊，AI代理是工匠，而工单则是待完成的工作。该项目是OpenAI Symphony的分叉版本，在继承上游优秀运行时特性的基础上，叠加了一层独特的"观点层"，为自动化软件开发流程提供了更加丰富的功能集。\n\n项目的核心定位非常明确：Smithy本身不承载智能，智能存在于处理每个工单的代理中。这种架构设计使得系统既保持了编排层的简洁性，又充分利用了底层AI代理的能力。目前项目正在从v1向v2演进，v2版本将基于Elixir语言和Phoenix框架重新构建，带来更强的可扩展性和更丰富的功能特性。\n\n## 架构演进：从v1到v2的跨越\n\nv1版本采用单一Rust二进制文件实现，通过launchd守护进程运行，定期轮询Linear项目管理平台，根据工单内容分派Claude Code或Codex进行处理。这一版本已经证明了概念的可行性，但功能相对基础。截至2026年5月7日，v1守护进程已被禁用，为v2的发布做准备。\n\nv2版本则是对OpenAI Symphony的深度分叉，继承了Symphony的运行时优势——包括Phoenix LiveView仪表板、受监督的轮询机制、Codex应用服务器集成等。在此基础上，Smithy v2叠加了多项创新功能：双运行时调度、跨模型对抗性审查、Linear OAuth身份认证、标签驱动的自动合并、模型摘要的运行日志、成本汇总统计以及最大重试熔断机制。\n\n## 核心功能解析\n\n双运行时支持是Smithy v2的一大亮点。系统不再局限于单一的AI代理，而是同时支持OpenAI Codex和Anthropic Claude Code两种运行时。工单可以通过标签指定使用哪种运行时，未指定的工单则使用默认配置。这种灵活性使得开发团队可以根据任务特性选择最合适的AI代理。\n\n跨模型对抗性审查机制是项目的另一项重要创新。当Claude Code完成一个任务时，Codex会作为审查者进行代码评审；反之亦然。审查者在一个全新的会话中运行，无法看到构建过程中的推理过程，从而确保审查的客观性。审查结果分为通过、失败和阻塞三种状态，只有通过的代码才能进入人工审查阶段或自动合并。\n\n规格质量门控功能在工单进入处理队列前进行预审。系统会检查工单是否包含足够的规格说明，对于规格不足的工单，系统会将其退回待办列表并附上结构化的缺失项清单。当然，对于标题本身就足以作为规格的简单工单，系统允许快速通过。\n\n## 工作流状态机\n\nSmithy v2采用清晰的状态机来管理工单生命周期。工单从"Ready for Dev"状态开始，依次经过规格质量门控、运行时选择、处理中、对抗性审查、人工审查（或自动合并），最终到达完成状态或退回重新处理。\n\n这一状态机的设计体现了软件工程的最佳实践。每个状态转换都有明确的触发条件和退出标准，系统会记录完整的审计日志。Linear OAuth集成确保了所有操作都以服务账户身份执行，而非操作者的个人API密钥，这为企业级部署提供了必要的安全性和可审计性。\n\n## 技术亮点与创新\n\n除了核心工作流功能，Smithy v2还包含多项技术亮点。SQLite历史仪表板提供了每次运行的模型摘要日志，支持按天、按租户、按运行时的成本汇总统计，并可以深度链接到原始流JSON数据。\n\n最大重试熔断机制解决了无界重试的安全隐患。当任务失败次数达到阈值N时，系统会自动应用"harness-blocked"标签，将工单转入人工审查状态，并附上多尝试失败摘要。这种设计防止了代理陷入无限重试循环，浪费计算资源。\n\nBootstrap PR模式是一个实用的初始化功能。通过`smithy bootstrap <repo>`命令，系统可以克隆目标仓库，生成AGENTS.md和.codex/skills/等配置文件，并自动提交拉取请求。合并后，该仓库即可纳入Smithy的自动化管理范围。\n\n## 与上游的关系\n\nSmithy与OpenAI Symphony的关系是"继承而非重复"。Symphony的LiveView仪表板、OTP监督机制、按工单隔离的工作空间、结构化日志等优秀特性全部被继承。Smithy的价值在于其叠加的观点层——双运行时、对抗性审查、Linear集成等。\n\n项目采用Apache-2.0许可证，与上游保持一致。分叉提交中包含NOTICE文件以标注上游归属。Smithy团队承诺保持与Symphony主分支的同步，上游改进会及时合并，而Smithy的观点层则通过附加文件和清晰标记的补丁实现。\n\n## 生态系统与工具家族\n\nSmithy属于一个更大的工具家族。Anvil是对抗性审查状态和审查代理的独立封装，可供不希望使用Smithy完整观点层的Symphony用户单独使用。Whetstone是一个基于Rust的wave-protocol代理执行器，采用不同的形态但属于同一家族。Salazar则是一个基于Claude Agent SDK的自主代码生成编排器，采用规划器/生成器/评估器循环架构，带有硬验证器门控。\n\n这些工具共享"锻造"主题的品牌隐喻：Smithy是工坊，Anvil是工具，Whetstone用于磨砺，Elixir既是编程语言也是炼金术中的灵药。这种一致的品牌叙事为项目生态系统增添了独特的文化色彩。\n\n## 部署状态与路线图\n\n目前v2版本正在积极开发中，v1的安装说明保留在docs/DEPLOY.md中供参考，但v1守护进程已被禁用。v2的正式发布将在完成Phase 0-10（详见v2/SPEC.md）后标记为v2.0.0版本。\n\n对于希望关注项目进展的开发者，建议关注仓库并留意v2.0.0-alpha-*标签的发布。项目团队表示，v2的安装指南将在开发完成后提供。
