ECC:给编程 agent 加装一层工程操作系统
ECC 用 71 个 agent、311 个 skills 和 hooks/记忆层,把 plan→test→implement→review→verify→remember→imp
大多数编程 agent 的问题不是不会写代码,而是每次都从零开始:没有稳定的流程,没有跨会话的记忆,长任务跑到一半就丢了上下文。ECC 的判断很直接——把这些东西从 prompt 里拿出来,做成 agent 下面的一层操作系统。
它的口号是「Optimize the context window. Persist everything else.」优化上下文窗口,其余一切持久化。这句话基本概括了项目的全部设计取向。
它到底装了什么
ECC 不是一个新的 agent,而是装在现有 agent 下面的运行层。README 给出的主循环是一条固定的工程流水线:
textplan -> test -> implement -> review -> verify -> remember -> improve
这条链路不是提示词模板,而是由 agent、skills、hooks、rules、memory 几个部件共同承载的。README 直接给了数量:
| 组成 | 数量 | 职责 |
|---|---|---|
| Agents | 71 | 规划、评审、构建修复、安全、架构、领域工作 |
| Skills | 311 | TDD、研究、安全、文档、前端、数据、ML、运维等 |
| Commands | 97 | 便捷入口,项目正往 skills-first 迁移 |
| Hooks 与 memory | 运行时 | 强制约束、会话摘要、持续学习、instincts、上下文控制 |
| Rules | 按需加载 | 按语言或项目选择的标准,常驻上下文 |
| AgentShield | 内置 | 扫描 prompt、hooks、MCP 配置、权限、密钥、agent 文件 |
把这些数字放在一起看,ECC 的野心就清楚了:它想覆盖 agent 工作时几乎所有可复用的决策——用什么流程、查什么资料、按什么标准评审、记住什么、禁止什么。
架构:四层加一个安全面
README 没有贴出完整的架构图,但从组件职责可以还原出清晰的分层。
第一层:接入层(harness adapters)。 ECC 面向多个编程 agent 提供安装路径。Claude Code 是主路径,有原生插件 ecc@ecc;Codex 和 Qoder 有原生插件通道;Cursor、OpenCode、Gemini、Zed、GitHub Copilot、Antigravity、Qwen 等是「capability-limited adapters」,能力受限。README 明确要求读者先看 platform support 矩阵,不要默认各平台功能对等。这是很诚实的一条设计约束:同一套 skills 和 hooks 在不同 harness 上的执行能力并不一致。
第二层:能力层(agents + skills + commands)。 71 个 agent 按职能分工——规划、评审、构建修复、安全、架构、领域工作。311 个 skills 是可复用的能力单元,覆盖 TDD、研究、安全、文档、前端、数据、ML、运维。97 个 command 是过渡期的便捷入口,README 说得很明白,surface 正在向 skills-first 迁移,command 是 legacy shim。
第三层:运行时层(hooks + memory + rules)。 这是 ECC 区别于「一堆 prompt 集合」的关键。hooks 负责强制约束和会话摘要,memory 负责持续学习与 instincts,rules 是按语言或项目选择性常驻的标准。主循环里的 remember 和 improve 两步,落点就在这一层——会话结束时沉淀摘要,重复有效的做法被提炼成可复用的 skill 或 workflow。
第四层:安全面(AgentShield)。 它不是流水线里的一步,而是横切所有层的扫描器:prompt、hooks、MCP 配置、权限、密钥、agent 文件都在扫描范围内。agent 系统一旦能读写文件、调用工具,攻击面就从「模型输出」扩展到「配置与权限」,AgentShield 补的就是这块。
数据流大致是:harness 触发 → command 或 skill 入口 → 对应 agent 执行 → hooks 在关键节点拦截与记录 → memory 沉淀 → 下一轮会话加载 rules 与 instincts。整条链路的产物是持久化的,不随上下文窗口清空而消失。
怎么装起来
官方推荐路径是 universal guided setup,一条命令进入引导式安装:
bashnpx ecc-universal@2.2.3 setup
前置条件是 Node.js 18 或更新版本;如果要装 Claude 插件,还需要 Git 和 Claude Code 2.1 以上,并且都在 PATH 里。README 特别提醒:引导安装和原生插件命令装的是同一个 ecc@ecc 插件,二选一,不要在手动完整安装之上再叠一层。
Windows 首次使用给了可复制的步骤:先确认 node --version、git --version、claude --version 三条命令都可用,再跑 npx ecc-universal@2.2.3 setup。个人使用一般选 Global user、Standard hooks,然后在新开的 Claude Code 会话里执行 /plugin list,确认 ecc@ecc 已启用。这条路径不需要克隆仓库。
README 顶部有一条安全警告值得单独拎出来:只从官方渠道安装——GitHub 仓库、npm 上的 ecc-universal 与 ecc-agentshield、GitHub App、插件 slug ecc@ecc、官网 ecc.tools。第三方重传和镜像不经项目维护与审查,可能带恶意代码。对一个要往 agent 里注入 hooks 和权限配置的项目来说,这条警告不是客套。
和同主题项目比,它站的位置不一样
| 项目 | 语言 | 定位 | 与 ECC 的关系 |
|---|---|---|---|
| ECC | JavaScript | 编程 agent 的运行层:skills、hooks、记忆、安全 | — |
| hermes-agent | Python | 自建 agent 框架,串 prompt、工具调用、workflow | 你从零搭 agent,ECC 给已有 agent 加装流程 |
| AutoGPT | Python | 给一个目标,自主规划并多步执行 | 目标驱动的自主性 vs 工程流程的稳定性 |
| firecrawl | TypeScript | 网页抓取转 Markdown/JSON,喂给 LLM | 提供外部数据,ECC 管内部工作流 |
| ollama | Go | 本地一条命令跑模型 | 解决推理在哪跑,ECC 解决 agent 怎么干活 |
| prompts.chat | HTML | 社区 prompt 分享与自托管 | 单点 prompt 收藏 vs 成体系的 skills 与运行时 |
这张表里最值得对照的是 hermes-agent 和 AutoGPT。它们都试图定义 agent 怎么组织任务,但方向是「造一个 agent」。ECC 假设你已经有一个能写代码的 agent——Claude Code、Codex、Cursor——它不替换 harness,只往下面垫一层。这个定位的好处是迁移成本低,坏处是对 harness 的能力边界高度敏感,这也是为什么 README 要专门维护一张支持状态矩阵。
prompts.chat 的对照则说明 ECC 的 skills 不是 prompt 收藏夹。311 个 skills 挂在 hooks 和 memory 上,参与主循环,能被触发、被记录、被复用,而不是复制粘贴的文本。
谁适合装,装之前想清楚什么
如果你每天用 Claude Code 跑多步任务,反复在 prompt 里重述「先写测试、改完自己 review 一遍、记住这个约定」,ECC 把这些固化成默认行为,省的是重复劳动和 token。如果你只是偶尔让 agent 补个函数,这层运行时的收益有限。
装之前有三件事要清楚。第一,功能对等不存在,Claude Code 之外多数 harness 是受限适配,先查支持矩阵。第二,hooks 是强约束,选 Standard 还是更激进的配置会影响 agent 的行为边界,README 把 hook-profile 变更单独列进 setup 流程,说明它是需要认真选的。第三,项目是 MIT 永久开源,ECC Pro 是面向私有仓库的托管 GitHub App,开源部分不因商业化而闭源——README 对此的表述是「OSS stays free」。
源码在 github.com/affaan-m/ECC,官网 ecc.tools。截至快照,仓库 282233 stars、41956 forks、237 个 open issues,topics 覆盖 ai-agents、claude-code、mcp、developer-tools 等。这些数字说明它不是小实验,但也意味着你在装的是一个仍在快速演进的系统——README 里 2.2 版本的引导安装、skills-first 迁移、legacy command shim 这些表述,都是演进中的痕迹。
一句话总结:ECC 卖的不是模型能力,是把工程纪律变成 agent 的默认配置。