2026年6月16日 2 分钟阅读

Legioni 实战:用 OpenCode 搭建自学习多 Agent 编码团队

tinyash 0 条评论

问题的提出

单个 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 会自动做三件事:

  1. 检查项目栈——检测你用的语言和框架(Java/Maven、Python/pytest、Node.js 等),生成 .legioni/project.md 配置文件
  2. 编译 Agent 团队——在 ~/.config/opencode/agent/ 下创建 6 个 Agent 角色配置文件
  3. 建立学习存储——在 ~/.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 CompressJava / Maven1890全部通过,Reviewer 运行了真实的 mvn test
Apache Commons TextJava / Maven1890全部通过,Orchestrator 修复了已有的损坏代码
slugify + UnicodePython / pytest50Implementer 第一次漏了北欧字母,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

发表评论

你的邮箱地址不会被公开,带 * 的为必填项。