大家好,我是左手。今天给大家介绍号称是全网第一个开源的用于AI编码的harness构建器Archon。
Harness:从概念到AI编程
"Harness"这个词在工程领域意味着"约束"或"驾驭"。在AI编程语境下,它指的是为AI Agent建立的结构化框架,让AI的创造力被引导到可控的范围内。
类比一下:
- CI/CD Pipeline
是代码部署的 Harness:定义Build→Test→Deploy的流程,确保每一次部署都遵循相同的质量门禁 - Dockerfile
是应用交付的 Harness:环境、依赖、配置全部被固化,构建结果可复现 - Archon
则是AI编程的Harness:规划→实现→验证→审查→PR,每一步都被明确定义和约束
这背后的哲学思考是:AI应该负责"怎么做",但"做什么"和"做到什么程度"应该由人类定义。
核心架构:节点与DAG
Archon的工作流由节点(Node)构成,节点分两类:
Deterministic Node(确定性节点):执行bash脚本、运行测试、Git操作。这些节点的输出完全可预测,不依赖AI的"发挥"。
AI Node(AI节点):执行Prompt,让AI做代码生成、架构设计、审查等需要创造力的工作。
关键创新在于节点可以组合成DAG(有向无环图)。这不是简单的线性流程,而是一个能够表达依赖关系、循环条件、人机交互的复杂图结构。
看这个典型工作流:
plan→implement→run-tests→review→approve→create-pr其中implement是一个循环节点,会持续执行直到ALL_TASKS_COMPLETE。这意味着AI会反复实现、验证、迭代,直到所有子任务完成。这比传统的"执行一步等确认"模式效率高得多。
Git Worktree:隔离即确定性
Archon的另一个关键设计是Git Worktree隔离。
每次工作流运行,它都会创建一个独立的Git worktree。这意味着你可以同时启动5个不同的修复任务,它们在完全隔离的分支上并行执行,互不干扰。
传统的AI编程模式有一个根本问题:当多个任务同时处理时,AI可能会意外修改相同的文件,导致状态混乱。Worktree隔离从根本上解决了这个问题——每个任务有自己独立的文件系统视角。
任务完成后,Archon会自动创建PR。整个过程是确定性的:相同的输入、相同的工作流、相同的输出质量。
循环节点:让AI真正自主
Archon的loop节点设计值得深入分析。
传统的AI工作流通常是:
AI执行 → 人类确认 → AI执行 → 人类确认 → ...这种模式的问题在于:人类变成了瓶颈,每一次确认都打断了AI的工作节奏。
Archon的loop节点允许:
loop { prompt: "实现下一个任务并验证" until: ALL_TASKS_COMPLETE // 或 APPROVED、或其他退出条件 fresh_context: true // 每次迭代使用新的上下文}AI会持续工作直到条件满足。fresh_context: true意味着每次迭代都是相对独立的"会话",不会因为上下文膨胀而性能下降。
这让AI能够真正自主完成复杂的多步骤任务,而不是像拧牙膏一样一步步等确认。
人机协作:审批节点
纯AI自动化有一个信任问题:我们如何确保AI生成的代码质量?
Archon通过interactive: true配置节点暂停等待人工审批:
approve:prompt:"展示变更供审查,解决任何反馈"until:APPROVEDinteractive:true这是一个Gate(关卡)设计:AI完成所有工作后,人类检查结果,决定是否继续。没有"AI自动合并导致生产事故"的风险。
结合循环节点的设计,AI可以:1. 自主完成所有实现2. 在人工审批节点暂停3. 如果需要修改,AI继续迭代4. 最终由人类决定是否合并
这比"每一步都要确认"高效得多,又比"完全撒手"安全得多。
工作流的版本控制
Archon的工作流定义在.archon/workflows/目录下,是YAML文件,可以提交到Git。
这意味着:- 工作流可以被版本化- 团队成员使用完全相同的开发流程- 工作流定义成为项目规范的一部分- 新成员可以通过阅读工作流理解团队的开发方式
这解决了一个根本问题:AI编程工具的"行为规范"终于可以被显式表达和审核了。
技术实现:微服务架构
从源码看,Archon采用典型的微服务架构:
- Platform Adapters
:Web UI、CLI、Telegram、Slack、Discord、GitHub Webhooks - Orchestrator
:消息路由、上下文管理 - Command Handler
:处理斜杠命令 - Workflow Executor
:执行YAML定义的工作流 - AI Assistant Clients
:Claude Code、Codex等
数据层使用SQLite或PostgreSQL,7张核心表覆盖代码库、会话、任务、工作流运行、隔离环境、消息、工作流事件。
这种架构设计让Archon既能在本地轻量运行,也能水平扩展到团队协作场景。
预置工作流生态
Archon自带17个精心设计的默认工作流:
archon-fix-github-issue:Issue分类→调查→实现→验证→PR archon-idea-to-pr:想法→规划→实现→5个并行审查→PR archon-refactor-safely:带类型检查钩子的安全重构 archon-smart-pr-review:复杂度分类→定向审查→综合结论
这些工作流是YAML文件,可以直接复制修改。定义的规范可以成为团队的开发宪法。
意义:AI编程的工程化
Archon的出现反映了一个更深层的趋势:AI编程正在从"实验"走向"工程"。
当我们讨论AI编程时,往往关注的是"AI能做什么"。但工程化的真正挑战是"如何让AI始终如一地做好某件事"。
这需要:- 过程约束:定义清楚要做什么、做到什么程度- 结果验证:自动化测试、质量门禁- 版本控制:每一次执行可追溯、可回滚- 团队协作:多人使用相同的工作流和标准
Harness正是这种工程化思维的体现。它不是限制AI的能力,而是将AI的能力框定在可靠的范围内。
就像CI/CD没有阻止开发者写代码,反而让部署变得更可靠一样,Archon这样的工作流引擎不会限制AI的能力,而是让AI编程从"看心情"变成"可信赖"。
结语
Archon的核心价值可以用一句话概括:把软件开发流程编码成确定性的工作流,让AI的创造力用在正确的地方,把重复和验证交给自动化。
如果你在使用Claude Code或其他AI编程工具,Archon提供了一种将AI编程"工程化"的可能。工作流定义可以版本化、团队共享、持续迭代——这或许是AI编程走向成熟的第一步。
项目地址:https://github.com/coleam00/Archon
官方文档:https://archon.diy/
夜雨聆风