🎯 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添加了新的工具和命令,以便:

  1. 在后台启动agent
  2. 监控agents状态
  3. 获取已完成的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中启用它。

与Oh My OpenCode可能存在的冲突:

如果使用OmO,它本身已有自己的Background Agents系统(Sisyphus委派给Hephaestus,Oracle,Librarian)。因此可能存在重叠或重复。

🔗 有用链接