🎯 OpenCode插件系列: opencode-background-agents
类型: Async Agent Delegation Plugin
1. 这是什么插件?
opencode-background-agents 是一个为OpenCode添加Background Agents能力(类似Claude Code风格)的插件。核心概念:
- 不像传统agent以阻塞方式运行任务并阻塞你的session
- 它能够在后台异步运行agents,拥有独立的context
- 当它们完成时会返回结果,而不会中断你的工作 想象一下:就像并行运行一个由初级开发人员组成的团队,每个都独立处理自己的任务。
Background Agents与普通Subagents的区别:
| 方面 | 普通Subagents | Background Agents |
|---|---|---|
| 运行方式 | 顺序(连续) | 并行(同时) |
| Context | 与主agent共享 | 完全独立 |
| 阻塞性 | 会阻塞session | 异步(不阻塞) |
| 使用场景 | 简单任务 | 长期复杂任务 |
2. 用来做什么?
使用它来:
- ✅ 并行运行5+个agents,每个处理不同任务
- ✅ Context持久性 — 每个agent有独立context且不会被污染
- ✅ 异步委派 — 分配任务后可以返回处理其他工作
- ✅ 通知功能 — 任务完成时接收通知
- ✅ 保持主Context简洁 — 你的主要session保持轻量
- ✅ 真正的并行 — 在10分钟内完成原本需要1小时的工作
典型场景:
你:"重构认证系统,为其编写测试,并更新文档"
Background Agents:
- Agent 1 → 重构认证(后台)
- Agent 2 → 编写测试(后台)
- Agent 3 → 更新文档(后台)
- 主Session → 空闲,可以处理其他工作
[10分钟后]
🔔 Agent 1 完成:认证重构完成
🔔 Agent 2 完成:添加了15个测试
🔔 Agent 3 完成:文档已更新
3. 如何使用?
安装
在 ~/.config/opencode/opencode.json 中:
{
"$schema": "[<https://opencode.ai/config.json>](<https://opencode.ai/config.json>)",
"plugin": ["opencode-background-agents"]
}
运行
插件为OpenCode添加了新的工具和命令,以便:
- 在后台启动agent:
- 监控agents状态:
- 获取已完成的agent结果:
与其他插件配合
此插件是opencode-workspace bundle的一部分,因此如果你使用workspace,该插件已包含在内。 另外兼容:
- ✅ oh-my-opencode — OmO本身已有Background Agents,可能存在重叠
- ✅ opencode-notify — 用于在agents完成时接收通知
- ✅ opencode-supermemory — 每个agent都可以访问memory
4. 何时使用?
在以下情况使用:
- ✅ 处理大型任务,可以拆分为独立的子任务
- ✅ 需要真正的并行而不是顺序执行
- ✅ 同时进行大型重构 + 测试 + 文档更新
- ✅ 在包含多个package的monorepo中工作
- ✅ 处理包含独立模块的base-layer
- ✅ 偏好非阻塞工作流
不要在以下情况使用:
- ❌ 处理顺序任务(第二步需要第一步的结果)
- ❌ 处理简单任务,不需要并行
- ❌ 使用oh-my-opencode(它本身已有background agents)
- ❌ 存在严格的API限制(并行会快速消耗配额)
- ❌ 使用免费模型且配额有限
⚠️ 重要注意事项
API成本:
每个background agent独立消耗tokens。如果并行运行5个agents,成本大约增加x5倍。
模型选择:
需要根据任务性质为每个agent选择合适的模型。某些任务需要Opus,而其他任务使用Haiku就足够。
Subagent通知:
如果使用opencode-notifier,默认情况下subagent_complete事件是静默的(避免5个agents同时完成时的垃圾通知)。可以从config中启用它。