Legioni 实战:用 OpenCode 搭建自学习多 Agent 编码团队
问题的提出
单个 AI 编码 Agent 已经很强了。Claude Code、Codex CLI、OpenCode 每个都能独立完成代码编写、测试、调试的完整链路。但随着项目变复杂,单一 Agent 的局限性也开始显现:它既是架构师又是实现者还要自查代码,一个人干三个人的活,难免顾此失彼。
想想人类开发团队是怎么分工的——有架构师画图纸、有工程师写代码、有 Reviewer 审阅、有 QA 跑测试。每个角色各自专注,团队整体效率远高于任何单兵作战。能不能给 AI 编码 Agent 也搞一个团队?
Legioni 就是一个回答了「能」的工具。它基于 OpenCode 的 Agent 系统,为你生成一个包含 6 个专业角色的编码团队——每个角色各司其职,还能从每次任务中学习经验,让团队不断进化。
Legioni 是什么
Legioni 是一个 npm 包(天然跨平台,macOS/Linux/Windows 都能用),安装后只需一条 legioni init 命令,就能在你的项目中搭建一个多 Agent「开发部」:
- Orchestrator(总指挥):接收你的自然语言需求,拆解任务、分配工作、协调流程
- Architect(架构师):负责设计方案、输出技术计划
- Implementer(实现者):真正写代码的那个
- Reviewer(审查者):审查代码质量,识别隐藏问题
- Test-Strategist(测试策略师):补充边界案例和完整测试覆盖
- DB-Expert(数据库专家):处理数据库相关任务
这些角色通过 OpenCode 的 Agent 协议协作,形成一个可控的编码流水线。
安装与初始化
Legioni 依赖 OpenCode,所以第一步是确保已有 OpenCode:
npm install -g opencode npm install -g legioni cd your-project legioni init
不需要全局安装也可以直接用 npx:
cd your-project npx legioni init
legioni init 会自动做三件事:
- 检查项目栈——检测你用的语言和框架(Java/Maven、Python/pytest、Node.js 等),生成
.legioni/project.md配置文件 - 编译 Agent 团队——在
~/.config/opencode/agent/下创建 6 个 Agent 角色配置文件 - 建立学习存储——在
~/.legioni/下创建角色定义和学习数据仓库
终端输出类似这样:
$ legioni init Running project recon ... done → .legioni/project.md Compiling team → opencode agents ... done → ~/.config/opencode/agent/architect.md → ~/.config/opencode/agent/implementer.md → ~/.config/opencode/agent/orchestrator.md → ~/.config/opencode/agent/reviewer.md → ~/.config/opencode/agent/test-strategist.md → ~/.config/opencode/agent/db-expert.md legioni init complete.
让你的团队开始工作
初始化完成后,启动 OpenCode,就可以下任务了:
opencode
在 OpenCode 交互界面中,输入:
@orchestrator 帮我给 UserService 增加一个密码重置功能,包含完整的单元测试
Orchestrator 收到任务后,自动走完整个流程:
orchestrator → architect → plan.md
→ implementer → code + tests
→ reviewer → passes or fails
→ test-strategist → edge cases + full suite
← done: code is written, tested, and reviewed
每一步的输出都是有形的:Architect 先输出 plan.md,Implementer 根据计划写代码和测试,Reviewer 检查质量,Test-Strategist 补全边界案例。你在旁边看着整个流水线运转,随时可以叫停或调整。
自学习机制:让团队不断进化
Legioni 最独特的设计是它的经验提升(Lesson Promotion)系统。每次任务完成后,Agent 们会自动总结从这次任务中学到的经验,生成课程候选文件:
legioni promote
这个命令会逐个展示 Agent 们总结的经验,让你审核是否采纳:
$ legioni promote Reading staged lessons from .legioni/lessons.staging.*.md ... ──────────────────────────────────────────── Role: reviewer Slug: [nordic-char-limitation-in-nfkd] ──────────────────────────────────────────── Situation: Reviewing a Unicode normalization implementation that used pure NFKD + ASCII encoding. Decision: Flagged as failure because ø, Ø, æ, Æ have no NFKD decomposition — they get dropped entirely. Why: A manual transliteration table is needed before NFKD. ──────────────────────────────────────────── Promote? [y/n/q] y → Promoted to ~/.legioni/lessons/reviewer/[nordic-...].md ──────────────────────────────────────────── Role: orchestrator Slug: [task-brief-precision] ──────────────────────────────────────────── Situation: The codebase had no Hex class. Decision: Wrote a detailed task brief with acceptance criteria covering null handling and hex alphabet. ──────────────────────────────────────────── Promote? [y/n/q] n
点击 y 接受的经验会被保存到 ~/.legioni/lessons/ 目录,下次运行 legioni install 重新编译 Agent 时,这些经验会注入到对应角色的 prompt 中。
legioni install
这样一来,Reviewer 下次审查时会记得检查北欧字母的 Unicode 处理问题,Orchestrator 会写出更详细的任务简报。团队每次完成任务都在变强。
配置与定制
Legioni 提供了全套的命令来控制团队行为:
legioni config set-provider legioni config set-model reviewer claude-sonnet-4-20250514 legioni config list legioni update legioni upgrade-team
你可以在 .legioni/project.md 中直接编辑项目配置:
## Stack - Language: Python - Framework: pytest ## Commands - Build: python -m build - Test: pytest - Targeted test: pytest tests/test_.py
真实项目验证
Legioni 已经在几个真实项目上测试过:
| 项目 | 语言 | 测试数 | 结果 |
|---|---|---|---|
| Apache Commons Compress | Java / Maven | 1890 | 全部通过,Reviewer 运行了真实的 mvn test |
| Apache Commons Text | Java / Maven | 1890 | 全部通过,Orchestrator 修复了已有的损坏代码 |
| slugify + Unicode | Python / pytest | 50 | Implementer 第一次漏了北欧字母,Reviewer 检测到问题,第二次修复 |
尤其是 slugify 的案例:Implementer 第一次因为不熟悉 Unicode 规范而遗漏了北欧字母,Reviewer 检测到并打回,Implementer 在第二轮使用了正确的转写表。这次经验被提升为 Lesson,后面的项目在第一次就正确处理了北欧字母——这正是自学习机制的实际价值。
注意事项
- Legioni 的 Agent 角色依赖 OpenCode 的 Agent 协议,不能脱离 OpenCode 独立运行
- 每次修改配置或提升经验后,需要执行
legioni install重新编译 Agent 才能生效 - Lesson 文件保存在本地
~/.legioni/lessons/,可以通过版本控制分享给团队成员 - 如果项目中增加了新的构建命令或测试框架,用
legioni update重新检测项目栈
总结
Legioni 把「多 Agent 协作」这个听起来很酷的概念变成了可以动手操作的工具。它不是让一个「超级 Agent」做所有事,而是让 6 个各有所长的专业 Agent 像人类团队一样分工协作。Lesson 学习系统让团队经验可以积累、传承——你的 Agent 团队越用越强。
如果你是 OpenCode 的用户,或者对多 Agent 协作模式感兴趣,npx legioni init 一分钟就能体验。至少值得看看 6 个专业 Agent 在你项目上的协作表现。
项目地址:github.com/simoneloru/legioni | 安装方式:
npm install -g legioni