一、开发背景:从一个真实的痛点说起
但凡深度使用 Cursor、Codebuddy 这类 AI 编程工具的开发者,应该都感受过不同模型之间的“性格差异”。实际落地写代码时还发现个有意思的事:
- 写代码这块,
Codex模型特别守规矩,讲究“最小改动原则”,指哪打哪,绝不越界。 - 轮到 Review 或者解 Bug 时,要是让
Claude 3 Opus去处理一个小故障,它可能为了这一个点,顺手把整块代码都重构一遍,动静大得吓人。
所以理想的工作流应该是:用 Codex 负责写代码和改代码,用 Opus 专门做 Code Review 和纠错。(当然反过来搭配也行,看个人习惯。)
但问题就卡在这儿了。在 Cursor 或 Codebuddy 这些 IDE 里,想跨模型协作,只能靠手动切换。你没看错——是纯手工操作,根本没法把“A模型写代码→B模型做检查→跑脚本测试”这整套流程固化成一条自动化流水线。
为了打破这种“一次只能说一句话”的局限,让不同 AI 模型能像流水线上的工人那样自动打配合,同时还能把传统的终端命令(Git、npm、测试脚本这些)也塞进来,就有了这款面向 macOS 的原生应用——AgentCrew。
二、AgentCrew 是什么?
AgentCrew 不是要取代某个具体的 AI 聊天工具,它是提供一个统一的编排层(Orchestration Layer),让多种 AI CLI 能更稳定、可复用、可观察地协作。说人话就是,它是一个面向 macOS 的“万物编排工作台”。
它不仅能无缝组织 Codex、Claude、Cursor-Agent 这些 AI 工具形成可视化工作流,还能混合编排任意传统 CLI 命令(比如 git、npm、docker、ffmpeg 等),在本地就能完成研发、测试、部署和自动化运维的完整闭环。
核心亮点很清晰:
- macOS 原生体验:基于 SwiftUI 构建,运行轻量流畅,自带可视化流程图和全链路执行监控。
- DAG 波次调度:不死板地全串行,而是自动解析任务依赖,最大化并发执行效率。
- Auto-Planner:一句话自然语言就能自动生成结构化的任务流。
- 万物皆可编排:不局限于 AI,把本地 Shell 脚本和大模型的输入输出无缝衔接起来。
三、核心设计:独创的双引擎驱动
为了满足不同的任务需求——追求速度还是追求稳定——AgentCrew 在底层设计了两种截然不同的运行模式:Pipeline 模式与 Agent 模式。
| 维度 | Pipeline 模式 | Agent 模式 |
|---|---|---|
| 适用场景 | 任务明确、步骤固定、追求速度与确定性 | 需求模糊、需要反复“实现-审查-修复”的探索任务 |
| 计划生成 | 一次性固定生成 | 每轮动态重规划 |
| 失败处理 | 任务中止,需人工修改流程后重跑 | 自动诊断并动态生成补救与验证任务 |
| 协作方式 | 显式依赖的串行/并行执行 | 多角色协作 + 评估驱动 |
| 人工介入 | 失败中止后排查 | 支持中途状态拦截审批高危操作 |
1. Pipeline 模式(静态并发调度)
Pipeline 模式强调的是快和确定性。Planner 一次性根据目标生成所有 Stage 及其依赖关系的静态 DAG 图,调度引擎自动解析依赖,把互不阻塞的任务打包成 Wa ve(波次),最大化并发执行效率。
如果遇到错误,就触发 Fail-Fast 机制提前中止,避免后续执行造成资源浪费。特别需要说明的是:任务中止后,用户可以排查修正错误,直接从失败节点或 Stage 重新发起局部重跑,不用从头再来。
2. Agent 模式(多轮智能闭环与自愈)
这是 AgentCrew 最硬核的部分。当任务需要反复横跳验证时——比如写代码→编译报错→修 Bug→再编译——Agent 模式会引入渐进式故障恢复与自愈策略。自愈流程大致是这样的:
- 第一轮:运行最初规划的 Pipeline。
- 第二轮:如果第一轮失败,评估器不会立刻大动干戈,而是生成一个只包含未通过或跳过 Step 的新 Stage,沿原路径重试。
- 第三轮:如果重跑依然失败,触发 Local Patch 机制。提取失败报错,构建一个专门用于修复该前置问题的 Patch Step,把它安插在原失败 Step 的前面,确保通过后再往下走。
- 第四轮/兜底:如果局部 Patch 还搞不定,这时候才触发基于 LLM 的 Global Replan,全局重新审视上下文进行大重构。
- 彻底中止:以上招数用尽且超过最大允许轮次,才彻底 Abort 结束。
四、万物皆可编排:底层架构与源码解析
AgentCrew 是怎么做到既能跑 AI 模型,又能跑原生 Shell 命令的?核心分层架构是关键。
在 macOS 原生应用里跑 Shell 脚本其实有不少坑——环境变量丢失、路径找不到这些都是家常便饭。AgentCrew 做了三层处理:
触发机制:在 DAGScheduler 中,系统根据节点是否配置了自定义命令进行动态路由,跳过 AI Runner,直接交给 CommandRunner 执行。只有没配自定义命令的节点,才走常规的 Claude、Cursor 等 AI 工具。
执行机制:使用纯正的 Zsh 子进程执行,拒绝简单的裸 Process(),而是用 zsh -lc 唤起子进程,完美保留开发者原汁原味的环境变量(加载 .zprofile / .zshrc)。执行前还通过 command -v 寻找真实绝对路径,极大避免了恶心的 "command not found" 报错。
数据传导:系统支持 {{prompt}} 占位符内联替换,并自动进行安全的 Shell 转义。如果命令中没有写占位符,系统会自动将提示词和前序输出作为标准输入流直接喂给该命令。这就真正打通了 AI 与传统脚本的数据流传导。
五、典型落地场景:它能干什么?
AgentCrew 可以理解成一个带可视化界面、支持大模型动态规划、且具备状态管理的加强版本地 Jenkins。
AI 研发提效闭环
回到开篇的痛点:把团队常用的流派固化下来。创建一个 Pipeline,节点 A 调用 Codex 写代码,节点 B 调用 Opus 做 Review,节点 C 跑 npm run test,节点 D 负责 Fix。长链路协作一步到位。局部重试也是亮点——当长达几十步的 Pipeline 在最后一步失败时,不用从头再来,支持按 Stage 或单 Step 原地重跑。
通用任务与万物编排
轻量级本地 CI/CD:利用波次并发执行 lint 和 test,成功后串行执行 build,最后调用 AI 自动生成 CHANGELOG,并在推送到云端前挂起等待人工审批。
多媒体/数据批处理:利用 DAG 的最大化并发性能,同时启动数十个进程(比如 ffmpeg)处理耗时任务,或者并发抓取数据后交由大模型清洗、分析并自动发送邮件周报。
智能运维与故障自愈:并发巡检本地或远程服务,当指标异常导致 Step 失败时,触发 Agent 机制,自动将报错丢给 AI 生成诊断报告及修复命令,人工审批通过后执行恢复。
六、最后:关于复盘与开源
为了让整个调度系统的表现可度量,顺手在 App 里内置了一个模式洞察与分析大盘,可视化展示 Pipeline/Agent 的推荐采纳率、模式分布与 7 日执行趋势,辅助团队复盘与引擎调优。
这个项目源自我个人对“更自由、更开放的 AI 编程工作流”的渴望。目前 AgentCrew 已经基于 MIT 协议开源,完全可以自由使用和魔改。
如果你也想要一个能随意组合 Claude、Cursor 以及本地 Shell 脚本的可视化工作台,欢迎来把玩一下。如果觉得这个架构设计和思路对你有启发,欢迎去 GitHub 点个 Star,或者在评论区一起交流探讨你理想中的 AI 工作流。
