oh-my-opencode-cohub 1.0.18 → 1.0.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +306 -293
- package/package.json +53 -53
package/README.md
CHANGED
|
@@ -1,293 +1,306 @@
|
|
|
1
|
-
# oh-my-opencode-cohub
|
|
2
|
-
|
|
3
|
-
OpenCode 中文智能体编排插件 CoHub——纯调度模式、全中文提示词、规范分析代理、方案制定代理。
|
|
4
|
-
|
|
5
|
-
[](https://github.com/Mr-cjf/oh-my-opencode-cohub)
|
|
6
|
-
|
|
7
|
-
## 特性
|
|
8
|
-
|
|
9
|
-
- 🚀 **独立运行**:纯 OpenCode Plugin,依赖 `@opencode-ai/plugin` SDK,零外部插件依赖
|
|
10
|
-
- 🤖 **12 个内置代理**:8 个通用代理(orchestrator/oracle/librarian/explorer/designer/fixer/observer/council)+ 4 个规范/方案代理(rule-user/rule-project/rule-app/planner)
|
|
11
|
-
- 🪝 **自动注入**:通过 `system.transform` 钩子在每次 LLM 调用时注入中文语言要求
|
|
12
|
-
- 🧠 **纯调度 Orchestrator**:不碰任何文件工具,只负责规划、委派、验证
|
|
13
|
-
- 🇨🇳 **全中文提示词**:12 个代理全部使用中文提示词
|
|
14
|
-
- 📋 **规范分析代理**:rule-user(用户AGENTS.md)、rule-project(项目AGENTS.md)、rule-app(.opencode/rules/)
|
|
15
|
-
- 🎯 **方案制定代理**:planner 综合所有输入输出结构化任务分解
|
|
16
|
-
- 🔗 **OpenSpec + Superpowers 死板路由**:收到需求即触发,不判断"大小"
|
|
17
|
-
- ⚡ **六步工作流**:理解→收集→规范分析→制定方案→调度→验证
|
|
18
|
-
- 📜 **AGENTS.md 全覆盖**:项目级和用户级 AGENTS.md 对**本插件所有代理**(内置 8 个 + 插件 4 个)均生效,无需额外配置
|
|
19
|
-
- 📖 **架构借鉴**:插件架构和代理编排理念借鉴了 oh-my-opencode-slim,但完全独立实现、无运行时依赖
|
|
20
|
-
|
|
21
|
-
## 安装
|
|
22
|
-
|
|
23
|
-
### 前置条件
|
|
24
|
-
|
|
25
|
-
- [OpenCode](https://opencode.ai) 已安装
|
|
26
|
-
- 推荐安装 [Bun](https://bun.sh)(CLI 一键安装需要)
|
|
27
|
-
|
|
28
|
-
### 方式一:CLI 一键安装(推荐)
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
bunx oh-my-opencode-cohub install
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
CLI 会自动完成以下操作:
|
|
35
|
-
|
|
36
|
-
1. 将 `oh-my-opencode-cohub` 注册到 `~/.config/opencode/opencode.json` 的 `plugin` 数组
|
|
37
|
-
2. 将插件注册到 TUI 配置 `~/.config/opencode/tui.json`
|
|
38
|
-
3. 在 `opencode.json` 的 `agent` 字段中注册全部 12 个 `co-*` 代理
|
|
39
|
-
4. 写入默认配置文件 `~/.config/opencode/oh-my-opencode-cohub.json`
|
|
40
|
-
|
|
41
|
-
重启 OpenCode 即可生效。
|
|
42
|
-
|
|
43
|
-
### 方式二:npm 安装 + 手动配置
|
|
44
|
-
|
|
45
|
-
```bash
|
|
46
|
-
npm install oh-my-opencode-cohub
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
然后在 `~/.config/opencode/opencode.json` 中添加:
|
|
50
|
-
|
|
51
|
-
```json
|
|
52
|
-
{
|
|
53
|
-
"plugin": ["oh-my-opencode-cohub"]
|
|
54
|
-
}
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
重启 OpenCode 即可。
|
|
58
|
-
|
|
59
|
-
### 卸载
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
bunx oh-my-opencode-cohub uninstall
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
CLI 会精确清理所有 `co-*` 代理和相关配置,不影响其他插件的配置数据。
|
|
66
|
-
|
|
67
|
-
如果使用 npm 手动安装,则需手动从 `opencode.json` 的 `plugin` 数组中移除 `"oh-my-opencode-cohub"`,然后 `npm uninstall oh-my-opencode-cohub`。
|
|
68
|
-
|
|
69
|
-
### 验证安装
|
|
70
|
-
|
|
71
|
-
安装并重启 OpenCode 后,确认以下效果:
|
|
72
|
-
|
|
73
|
-
- 对话中自动出现 **中文语言要求**(如 "你必须始终使用中文进行思考、推理和回复")
|
|
74
|
-
- 可用代理列表中出现 12 个 `co-*` 前缀代理(`co-orchestrator`、`co-oracle`、`co-librarian`、`co-explorer`、`co-designer`、`co-fixer`、`co-observer`、`co-council`、`co-rule-user`、`co-rule-project`、`co-rule-app`、`co-planner`)
|
|
75
|
-
- Orchestrator 自动进入纯调度模式(只做规划、委派、验证,不直接操作文件)
|
|
76
|
-
|
|
77
|
-
### 从源码安装(本地开发)
|
|
78
|
-
|
|
79
|
-
如果需要修改源码或使用开发版本:
|
|
80
|
-
|
|
81
|
-
```bash
|
|
82
|
-
# 1. 克隆项目
|
|
83
|
-
git clone https://github.com/Mr-cjf/oh-my-opencode-cohub.git && cd oh-my-opencode-cohub
|
|
84
|
-
|
|
85
|
-
# 2. 安装依赖
|
|
86
|
-
npm install
|
|
87
|
-
|
|
88
|
-
# 3. 构建(需要系统已安装 Bun)
|
|
89
|
-
npm run build
|
|
90
|
-
|
|
91
|
-
# 4. 方式 A:npm link 全局链接(推荐)
|
|
92
|
-
npm link
|
|
93
|
-
bunx oh-my-opencode-cohub install
|
|
94
|
-
# 重启 OpenCode 即可。之后修改源码只需重新 npm run build
|
|
95
|
-
|
|
96
|
-
# 4. 方式 B:手动配置绝对路径
|
|
97
|
-
# 编辑 ~/.config/opencode/opencode.json,在 plugin 数组中写入项目绝对路径:
|
|
98
|
-
# { "plugin": ["/absolute/path/to/oh-my-opencode-cohub"] }
|
|
99
|
-
# 然后手动运行 CLI 注册代理:
|
|
100
|
-
# node dist/cli/index.js install
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
> **构建依赖**:`npm run build` 使用 `bun build` 和 `tsc`。系统需安装 [Bun](https://bun.sh)(构建工具)和 Node.js(类型声明生成)。所有 `@opencode-ai/*`、`@opentui/*`、`zod` 均为 external,不打包进 `dist/`。
|
|
104
|
-
|
|
105
|
-
## 代理一览
|
|
106
|
-
|
|
107
|
-
### 代理(12 个,全中文提示词)
|
|
108
|
-
|
|
109
|
-
| 代理 | 默认模型 | 职责 | 读取源 |
|
|
110
|
-
|------|----------|------|--------|
|
|
111
|
-
| co-orchestrator | `deepseek/deepseek-v4-pro` | 纯调度:规划→委派→验证 | — |
|
|
112
|
-
| co-oracle | `deepseek/deepseek-v4-pro` | 架构审查/代码审查(含 Superpowers skills) | — |
|
|
113
|
-
| co-librarian | `deepseek/deepseek-v4-flash` | 外部文档/API 研究 | — |
|
|
114
|
-
| co-explorer | `deepseek/deepseek-v4-flash` | 代码库搜索定位 | — |
|
|
115
|
-
| co-designer | `minimax/MiniMax-M3` | UI/UX 设计与实现 | — |
|
|
116
|
-
| co-fixer | `deepseek/deepseek-v4-flash` | 代码修改执行(含 TDD skill) | — |
|
|
117
|
-
| co-observer | `codermxtest/gpt-5.5` | 图片/PDF 分析 | — |
|
|
118
|
-
| co-council | `deepseek/deepseek-v4-pro` | 多模型共识 | — |
|
|
119
|
-
| co-rule-user | `deepseek/deepseek-v4-flash` | 用户级规范分析 | `~/.config/opencode/AGENTS.md` |
|
|
120
|
-
| co-rule-project | `deepseek/deepseek-v4-flash` | 项目级规范分析 | 项目 `AGENTS.md` |
|
|
121
|
-
| co-rule-app | `deepseek/deepseek-v4-flash` | 应用规则分析 | `.opencode/rules/*.md` |
|
|
122
|
-
| co-planner | `deepseek/deepseek-v4-pro` | 方案制定 | 综合需求+信息+规则 |
|
|
123
|
-
|
|
124
|
-
> 模型可通过下文「配置文件」或「自定义模型」章节覆盖。
|
|
125
|
-
|
|
126
|
-
## 配置文件
|
|
127
|
-
|
|
128
|
-
CLI 安装后自动创建 `~/.config/opencode/oh-my-opencode-cohub.json`,这是 CoHub 的专用配置文件,结构如下:
|
|
129
|
-
|
|
130
|
-
```json
|
|
131
|
-
{
|
|
132
|
-
"$schema": "https://unpkg.com/oh-my-opencode-cohub@latest/oh-my-opencode-cohub.schema.json",
|
|
133
|
-
"agents": {
|
|
134
|
-
"co-orchestrator": { "model": "deepseek/deepseek-v4-pro", "variant": "max" },
|
|
135
|
-
"co-oracle": { "model": "deepseek/deepseek-v4-pro", "variant": "max" },
|
|
136
|
-
"co-librarian": { "model": "deepseek/deepseek-v4-flash", "variant": "low" },
|
|
137
|
-
"co-explorer": { "model": "deepseek/deepseek-v4-flash", "variant": "low" },
|
|
138
|
-
"co-designer": { "model": "minimax/MiniMax-M3", "variant": "medium" },
|
|
139
|
-
"co-fixer": { "model": "deepseek/deepseek-v4-flash", "variant": "high" },
|
|
140
|
-
"co-observer": { "model": "codermxtest/gpt-5.5", "variant": "low" },
|
|
141
|
-
"co-council": { "model": "deepseek/deepseek-v4-pro", "variant": "high" },
|
|
142
|
-
"co-rule-user": { "model": "deepseek/deepseek-v4-flash", "variant": "medium" },
|
|
143
|
-
"co-rule-project":{ "model": "deepseek/deepseek-v4-flash", "variant": "medium" },
|
|
144
|
-
"co-rule-app": { "model": "deepseek/deepseek-v4-flash", "variant": "medium" },
|
|
145
|
-
"co-planner": { "model": "deepseek/deepseek-v4-pro", "variant": "high" }
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
直接编辑此文件即可修改任意代理的模型和变体。`$schema` 提供 IDE 自动补全支持。
|
|
151
|
-
|
|
152
|
-
> **注意**:同一目录 `~/.config/opencode/oh-my-opencode-cohub/` 下也可放置 `{agent}.md` 提示词覆盖文件(见「自定义提示词」章节),与 JSON 配置文件共存。
|
|
153
|
-
|
|
154
|
-
### Council 多模型共识配置
|
|
155
|
-
|
|
156
|
-
`co-council` 代理通过 `council_session` 工具并行调用多个模型(councillors),综合各方观点形成共识。councillors 的数量、模型、推理强度完全可配置:
|
|
157
|
-
|
|
158
|
-
```json
|
|
159
|
-
{
|
|
160
|
-
"council": {
|
|
161
|
-
"default_preset": "default",
|
|
162
|
-
"timeout": 180000,
|
|
163
|
-
"councillor_execution_mode": "parallel",
|
|
164
|
-
"councillor_retries": 3,
|
|
165
|
-
"presets": {
|
|
166
|
-
"default": {
|
|
167
|
-
"alpha": { "model": "deepseek/deepseek-v4-pro", "variant": "max" },
|
|
168
|
-
"beta": { "model": "deepseek/deepseek-v4-flash", "variant": "high" },
|
|
169
|
-
"gamma": { "model": "minimax/MiniMax-M3", "variant": "medium" }
|
|
170
|
-
},
|
|
171
|
-
"quick": {
|
|
172
|
-
"alpha": { "model": "deepseek/deepseek-v4-flash", "variant": "high" },
|
|
173
|
-
"beta": { "model": "deepseek/deepseek-v4-flash", "variant": "low" }
|
|
174
|
-
},
|
|
175
|
-
"deep": {
|
|
176
|
-
"alpha": { "model": "deepseek/deepseek-v4-pro", "variant": "max" },
|
|
177
|
-
"beta": { "model": "deepseek/deepseek-v4-pro", "variant": "max" },
|
|
178
|
-
"gamma": { "model": "minimax/MiniMax-M3", "variant": "medium" },
|
|
179
|
-
"delta": { "model": "codermxtest/gpt-5.5", "variant": "high" }
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
```
|
|
185
|
-
|
|
186
|
-
| 字段 | 类型 | 默认值 | 说明 |
|
|
187
|
-
|------|------|--------|------|
|
|
188
|
-
| `presets` | object | (必填) | 预设字典,每个预设是一组 councillor |
|
|
189
|
-
| `default_preset` | string | `"default"` | 调用时不指定 preset 时使用的预设 |
|
|
190
|
-
| `timeout` | number | `180000` | 单个 councillor 超时(毫秒),默认 3 分钟 |
|
|
191
|
-
| `councillor_execution_mode` | `"parallel"` \| `"serial"` | `"parallel"` | 并行/串行执⾏ |
|
|
192
|
-
| `councillor_retries` | number | `3` | 空响应重试次数 |
|
|
193
|
-
|
|
194
|
-
- 每个 councillor 的 key(如 `alpha`、`beta`)可任意命名,会出现在输出中
|
|
195
|
-
- `model` 格式为 `"provider/model"`,`variant` 可选 `"max"` / `"high"` / `"medium"` / `"low"`
|
|
196
|
-
- councillor 数量无上限,但建议 2-5 个以平衡成本和质量
|
|
197
|
-
- 调用时可通过 `council_session` 工具的 `preset` 参数切换预设,如 `"quick"` 或 `"deep"`
|
|
198
|
-
|
|
199
|
-
## 工作流
|
|
200
|
-
|
|
201
|
-
```
|
|
202
|
-
1. 理解需求
|
|
203
|
-
2. 信息收集(@co-explorer / @co-librarian / @co-observer)
|
|
204
|
-
3. 规范分析(并行 @co-rule-user / @co-rule-project / @co-rule-app)
|
|
205
|
-
4. 制定方案 → @co-planner
|
|
206
|
-
5. 调度执行(@co-fixer / @co-designer 等)
|
|
207
|
-
6. 验证(@co-oracle / @co-designer)
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
## 依赖
|
|
211
|
-
|
|
212
|
-
- [OpenCode](https://opencode.ai) ≥ 1.17
|
|
213
|
-
- `@opencode-ai/plugin@^1.17`(运行时依赖)
|
|
214
|
-
- `@opencode-ai/sdk@^1.3`(运行时依赖)
|
|
215
|
-
- 无其他外部插件依赖
|
|
216
|
-
|
|
217
|
-
## 自定义模型
|
|
218
|
-
|
|
219
|
-
**推荐**:直接编辑 `~/.config/opencode/oh-my-opencode-cohub.json`(见「配置文件」章节),修改对应代理的 `model` 和 `variant` 即可。
|
|
220
|
-
|
|
221
|
-
**备选**:通过 `opencode.json` 的 plugin config 覆盖:
|
|
222
|
-
|
|
223
|
-
```json
|
|
224
|
-
{
|
|
225
|
-
"plugin": [
|
|
226
|
-
{
|
|
227
|
-
"name": "oh-my-opencode-cohub",
|
|
228
|
-
"config": {
|
|
229
|
-
"models": {
|
|
230
|
-
"orchestrator": "openai/gpt-5.5",
|
|
231
|
-
"fixer": "openai/gpt-5.4-mini"
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
}
|
|
235
|
-
]
|
|
236
|
-
}
|
|
237
|
-
```
|
|
238
|
-
|
|
239
|
-
> 注意:plugin config 中的 key 使用无 `co-` 前缀的短名(如 `orchestrator`);JSON 配置文件使用完整的 `co-` 前缀名(如 `co-orchestrator`)。
|
|
240
|
-
|
|
241
|
-
## 自定义提示词
|
|
242
|
-
|
|
243
|
-
### 方式一:通过 plugin config 覆盖(推荐)
|
|
244
|
-
|
|
245
|
-
在 `opencode.json` 的 plugin config 中传入自定义 prompt:
|
|
246
|
-
|
|
247
|
-
```json
|
|
248
|
-
{
|
|
249
|
-
"plugin": [
|
|
250
|
-
{
|
|
251
|
-
"name": "oh-my-opencode-cohub",
|
|
252
|
-
"config": {
|
|
253
|
-
"overrides": {
|
|
254
|
-
"oracle": "你是我的自定义 Oracle 代理——负责代码审查和安全审计……",
|
|
255
|
-
"fixer": "你是我的自定义 Fixer 代理——只做 Python 代码修改……"
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
]
|
|
260
|
-
}
|
|
261
|
-
```
|
|
262
|
-
|
|
263
|
-
支持覆盖的代理名称:`orchestrator`、`oracle`、`librarian`、`explorer`、`designer`、`fixer`、`observer`、`council`、`rule-user`、`rule-project`、`rule-app`、`planner`
|
|
264
|
-
|
|
265
|
-
### 方式二:文件覆盖(类 oh-my-opencode-slim 机制)
|
|
266
|
-
|
|
267
|
-
在项目 `.opencode/oh-my-opencode-cohub/` 或 `~/.config/opencode/oh-my-opencode-cohub/` 目录下创建 `{agent}.md` 文件:
|
|
268
|
-
|
|
269
|
-
```
|
|
270
|
-
oh-my-opencode-cohub/
|
|
271
|
-
├── oracle.md ← 完全替换 oracle 提示词
|
|
272
|
-
├── fixer_append.md ← 追加到 fixer 提示词末尾
|
|
273
|
-
└── planner.md ← 完全替换 planner 提示词
|
|
274
|
-
```
|
|
275
|
-
|
|
276
|
-
文件名规则:
|
|
277
|
-
- `{agent}.md` —— 完全替换该代理的内置提示词
|
|
278
|
-
- `{agent}_append.md` —— 追加内容到内置提示词末尾
|
|
279
|
-
|
|
280
|
-
查找优先级:项目 `.opencode/` > `~/.config/opencode/`
|
|
281
|
-
|
|
282
|
-
### 方式三:Fork 并修改源码
|
|
283
|
-
|
|
284
|
-
```bash
|
|
285
|
-
# 修改 src/prompts/oracle.ts 并重新编译
|
|
286
|
-
npm run build
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
适合深度定制,但需维护自己的分支。
|
|
290
|
-
|
|
291
|
-
##
|
|
292
|
-
|
|
293
|
-
|
|
1
|
+
# oh-my-opencode-cohub
|
|
2
|
+
|
|
3
|
+
OpenCode 中文智能体编排插件 CoHub——纯调度模式、全中文提示词、规范分析代理、方案制定代理。
|
|
4
|
+
|
|
5
|
+
[](https://github.com/Mr-cjf/oh-my-opencode-cohub)
|
|
6
|
+
|
|
7
|
+
## 特性
|
|
8
|
+
|
|
9
|
+
- 🚀 **独立运行**:纯 OpenCode Plugin,依赖 `@opencode-ai/plugin` SDK,零外部插件依赖
|
|
10
|
+
- 🤖 **12 个内置代理**:8 个通用代理(orchestrator/oracle/librarian/explorer/designer/fixer/observer/council)+ 4 个规范/方案代理(rule-user/rule-project/rule-app/planner)
|
|
11
|
+
- 🪝 **自动注入**:通过 `system.transform` 钩子在每次 LLM 调用时注入中文语言要求
|
|
12
|
+
- 🧠 **纯调度 Orchestrator**:不碰任何文件工具,只负责规划、委派、验证
|
|
13
|
+
- 🇨🇳 **全中文提示词**:12 个代理全部使用中文提示词
|
|
14
|
+
- 📋 **规范分析代理**:rule-user(用户AGENTS.md)、rule-project(项目AGENTS.md)、rule-app(.opencode/rules/)
|
|
15
|
+
- 🎯 **方案制定代理**:planner 综合所有输入输出结构化任务分解
|
|
16
|
+
- 🔗 **OpenSpec + Superpowers 死板路由**:收到需求即触发,不判断"大小"
|
|
17
|
+
- ⚡ **六步工作流**:理解→收集→规范分析→制定方案→调度→验证
|
|
18
|
+
- 📜 **AGENTS.md 全覆盖**:项目级和用户级 AGENTS.md 对**本插件所有代理**(内置 8 个 + 插件 4 个)均生效,无需额外配置
|
|
19
|
+
- 📖 **架构借鉴**:插件架构和代理编排理念借鉴了 oh-my-opencode-slim,但完全独立实现、无运行时依赖
|
|
20
|
+
|
|
21
|
+
## 安装
|
|
22
|
+
|
|
23
|
+
### 前置条件
|
|
24
|
+
|
|
25
|
+
- [OpenCode](https://opencode.ai) 已安装
|
|
26
|
+
- 推荐安装 [Bun](https://bun.sh)(CLI 一键安装需要)
|
|
27
|
+
|
|
28
|
+
### 方式一:CLI 一键安装(推荐)
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
bunx oh-my-opencode-cohub install
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
CLI 会自动完成以下操作:
|
|
35
|
+
|
|
36
|
+
1. 将 `oh-my-opencode-cohub` 注册到 `~/.config/opencode/opencode.json` 的 `plugin` 数组
|
|
37
|
+
2. 将插件注册到 TUI 配置 `~/.config/opencode/tui.json`
|
|
38
|
+
3. 在 `opencode.json` 的 `agent` 字段中注册全部 12 个 `co-*` 代理
|
|
39
|
+
4. 写入默认配置文件 `~/.config/opencode/oh-my-opencode-cohub.json`
|
|
40
|
+
|
|
41
|
+
重启 OpenCode 即可生效。
|
|
42
|
+
|
|
43
|
+
### 方式二:npm 安装 + 手动配置
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm install oh-my-opencode-cohub
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
然后在 `~/.config/opencode/opencode.json` 中添加:
|
|
50
|
+
|
|
51
|
+
```json
|
|
52
|
+
{
|
|
53
|
+
"plugin": ["oh-my-opencode-cohub"]
|
|
54
|
+
}
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
重启 OpenCode 即可。
|
|
58
|
+
|
|
59
|
+
### 卸载
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
bunx oh-my-opencode-cohub uninstall
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
CLI 会精确清理所有 `co-*` 代理和相关配置,不影响其他插件的配置数据。
|
|
66
|
+
|
|
67
|
+
如果使用 npm 手动安装,则需手动从 `opencode.json` 的 `plugin` 数组中移除 `"oh-my-opencode-cohub"`,然后 `npm uninstall oh-my-opencode-cohub`。
|
|
68
|
+
|
|
69
|
+
### 验证安装
|
|
70
|
+
|
|
71
|
+
安装并重启 OpenCode 后,确认以下效果:
|
|
72
|
+
|
|
73
|
+
- 对话中自动出现 **中文语言要求**(如 "你必须始终使用中文进行思考、推理和回复")
|
|
74
|
+
- 可用代理列表中出现 12 个 `co-*` 前缀代理(`co-orchestrator`、`co-oracle`、`co-librarian`、`co-explorer`、`co-designer`、`co-fixer`、`co-observer`、`co-council`、`co-rule-user`、`co-rule-project`、`co-rule-app`、`co-planner`)
|
|
75
|
+
- Orchestrator 自动进入纯调度模式(只做规划、委派、验证,不直接操作文件)
|
|
76
|
+
|
|
77
|
+
### 从源码安装(本地开发)
|
|
78
|
+
|
|
79
|
+
如果需要修改源码或使用开发版本:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
# 1. 克隆项目
|
|
83
|
+
git clone https://github.com/Mr-cjf/oh-my-opencode-cohub.git && cd oh-my-opencode-cohub
|
|
84
|
+
|
|
85
|
+
# 2. 安装依赖
|
|
86
|
+
npm install
|
|
87
|
+
|
|
88
|
+
# 3. 构建(需要系统已安装 Bun)
|
|
89
|
+
npm run build
|
|
90
|
+
|
|
91
|
+
# 4. 方式 A:npm link 全局链接(推荐)
|
|
92
|
+
npm link
|
|
93
|
+
bunx oh-my-opencode-cohub install
|
|
94
|
+
# 重启 OpenCode 即可。之后修改源码只需重新 npm run build
|
|
95
|
+
|
|
96
|
+
# 4. 方式 B:手动配置绝对路径
|
|
97
|
+
# 编辑 ~/.config/opencode/opencode.json,在 plugin 数组中写入项目绝对路径:
|
|
98
|
+
# { "plugin": ["/absolute/path/to/oh-my-opencode-cohub"] }
|
|
99
|
+
# 然后手动运行 CLI 注册代理:
|
|
100
|
+
# node dist/cli/index.js install
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
> **构建依赖**:`npm run build` 使用 `bun build` 和 `tsc`。系统需安装 [Bun](https://bun.sh)(构建工具)和 Node.js(类型声明生成)。所有 `@opencode-ai/*`、`@opentui/*`、`zod` 均为 external,不打包进 `dist/`。
|
|
104
|
+
|
|
105
|
+
## 代理一览
|
|
106
|
+
|
|
107
|
+
### 代理(12 个,全中文提示词)
|
|
108
|
+
|
|
109
|
+
| 代理 | 默认模型 | 职责 | 读取源 |
|
|
110
|
+
|------|----------|------|--------|
|
|
111
|
+
| co-orchestrator | `deepseek/deepseek-v4-pro` | 纯调度:规划→委派→验证 | — |
|
|
112
|
+
| co-oracle | `deepseek/deepseek-v4-pro` | 架构审查/代码审查(含 Superpowers skills) | — |
|
|
113
|
+
| co-librarian | `deepseek/deepseek-v4-flash` | 外部文档/API 研究 | — |
|
|
114
|
+
| co-explorer | `deepseek/deepseek-v4-flash` | 代码库搜索定位 | — |
|
|
115
|
+
| co-designer | `minimax/MiniMax-M3` | UI/UX 设计与实现 | — |
|
|
116
|
+
| co-fixer | `deepseek/deepseek-v4-flash` | 代码修改执行(含 TDD skill) | — |
|
|
117
|
+
| co-observer | `codermxtest/gpt-5.5` | 图片/PDF 分析 | — |
|
|
118
|
+
| co-council | `deepseek/deepseek-v4-pro` | 多模型共识 | — |
|
|
119
|
+
| co-rule-user | `deepseek/deepseek-v4-flash` | 用户级规范分析 | `~/.config/opencode/AGENTS.md` |
|
|
120
|
+
| co-rule-project | `deepseek/deepseek-v4-flash` | 项目级规范分析 | 项目 `AGENTS.md` |
|
|
121
|
+
| co-rule-app | `deepseek/deepseek-v4-flash` | 应用规则分析 | `.opencode/rules/*.md` |
|
|
122
|
+
| co-planner | `deepseek/deepseek-v4-pro` | 方案制定 | 综合需求+信息+规则 |
|
|
123
|
+
|
|
124
|
+
> 模型可通过下文「配置文件」或「自定义模型」章节覆盖。
|
|
125
|
+
|
|
126
|
+
## 配置文件
|
|
127
|
+
|
|
128
|
+
CLI 安装后自动创建 `~/.config/opencode/oh-my-opencode-cohub.json`,这是 CoHub 的专用配置文件,结构如下:
|
|
129
|
+
|
|
130
|
+
```json
|
|
131
|
+
{
|
|
132
|
+
"$schema": "https://unpkg.com/oh-my-opencode-cohub@latest/oh-my-opencode-cohub.schema.json",
|
|
133
|
+
"agents": {
|
|
134
|
+
"co-orchestrator": { "model": "deepseek/deepseek-v4-pro", "variant": "max" },
|
|
135
|
+
"co-oracle": { "model": "deepseek/deepseek-v4-pro", "variant": "max" },
|
|
136
|
+
"co-librarian": { "model": "deepseek/deepseek-v4-flash", "variant": "low" },
|
|
137
|
+
"co-explorer": { "model": "deepseek/deepseek-v4-flash", "variant": "low" },
|
|
138
|
+
"co-designer": { "model": "minimax/MiniMax-M3", "variant": "medium" },
|
|
139
|
+
"co-fixer": { "model": "deepseek/deepseek-v4-flash", "variant": "high" },
|
|
140
|
+
"co-observer": { "model": "codermxtest/gpt-5.5", "variant": "low" },
|
|
141
|
+
"co-council": { "model": "deepseek/deepseek-v4-pro", "variant": "high" },
|
|
142
|
+
"co-rule-user": { "model": "deepseek/deepseek-v4-flash", "variant": "medium" },
|
|
143
|
+
"co-rule-project":{ "model": "deepseek/deepseek-v4-flash", "variant": "medium" },
|
|
144
|
+
"co-rule-app": { "model": "deepseek/deepseek-v4-flash", "variant": "medium" },
|
|
145
|
+
"co-planner": { "model": "deepseek/deepseek-v4-pro", "variant": "high" }
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
直接编辑此文件即可修改任意代理的模型和变体。`$schema` 提供 IDE 自动补全支持。
|
|
151
|
+
|
|
152
|
+
> **注意**:同一目录 `~/.config/opencode/oh-my-opencode-cohub/` 下也可放置 `{agent}.md` 提示词覆盖文件(见「自定义提示词」章节),与 JSON 配置文件共存。
|
|
153
|
+
|
|
154
|
+
### Council 多模型共识配置
|
|
155
|
+
|
|
156
|
+
`co-council` 代理通过 `council_session` 工具并行调用多个模型(councillors),综合各方观点形成共识。councillors 的数量、模型、推理强度完全可配置:
|
|
157
|
+
|
|
158
|
+
```json
|
|
159
|
+
{
|
|
160
|
+
"council": {
|
|
161
|
+
"default_preset": "default",
|
|
162
|
+
"timeout": 180000,
|
|
163
|
+
"councillor_execution_mode": "parallel",
|
|
164
|
+
"councillor_retries": 3,
|
|
165
|
+
"presets": {
|
|
166
|
+
"default": {
|
|
167
|
+
"alpha": { "model": "deepseek/deepseek-v4-pro", "variant": "max" },
|
|
168
|
+
"beta": { "model": "deepseek/deepseek-v4-flash", "variant": "high" },
|
|
169
|
+
"gamma": { "model": "minimax/MiniMax-M3", "variant": "medium" }
|
|
170
|
+
},
|
|
171
|
+
"quick": {
|
|
172
|
+
"alpha": { "model": "deepseek/deepseek-v4-flash", "variant": "high" },
|
|
173
|
+
"beta": { "model": "deepseek/deepseek-v4-flash", "variant": "low" }
|
|
174
|
+
},
|
|
175
|
+
"deep": {
|
|
176
|
+
"alpha": { "model": "deepseek/deepseek-v4-pro", "variant": "max" },
|
|
177
|
+
"beta": { "model": "deepseek/deepseek-v4-pro", "variant": "max" },
|
|
178
|
+
"gamma": { "model": "minimax/MiniMax-M3", "variant": "medium" },
|
|
179
|
+
"delta": { "model": "codermxtest/gpt-5.5", "variant": "high" }
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
| 字段 | 类型 | 默认值 | 说明 |
|
|
187
|
+
|------|------|--------|------|
|
|
188
|
+
| `presets` | object | (必填) | 预设字典,每个预设是一组 councillor |
|
|
189
|
+
| `default_preset` | string | `"default"` | 调用时不指定 preset 时使用的预设 |
|
|
190
|
+
| `timeout` | number | `180000` | 单个 councillor 超时(毫秒),默认 3 分钟 |
|
|
191
|
+
| `councillor_execution_mode` | `"parallel"` \| `"serial"` | `"parallel"` | 并行/串行执⾏ |
|
|
192
|
+
| `councillor_retries` | number | `3` | 空响应重试次数 |
|
|
193
|
+
|
|
194
|
+
- 每个 councillor 的 key(如 `alpha`、`beta`)可任意命名,会出现在输出中
|
|
195
|
+
- `model` 格式为 `"provider/model"`,`variant` 可选 `"max"` / `"high"` / `"medium"` / `"low"`
|
|
196
|
+
- councillor 数量无上限,但建议 2-5 个以平衡成本和质量
|
|
197
|
+
- 调用时可通过 `council_session` 工具的 `preset` 参数切换预设,如 `"quick"` 或 `"deep"`
|
|
198
|
+
|
|
199
|
+
## 工作流
|
|
200
|
+
|
|
201
|
+
```
|
|
202
|
+
1. 理解需求
|
|
203
|
+
2. 信息收集(@co-explorer / @co-librarian / @co-observer)
|
|
204
|
+
3. 规范分析(并行 @co-rule-user / @co-rule-project / @co-rule-app)
|
|
205
|
+
4. 制定方案 → @co-planner
|
|
206
|
+
5. 调度执行(@co-fixer / @co-designer 等)
|
|
207
|
+
6. 验证(@co-oracle / @co-designer)
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
## 依赖
|
|
211
|
+
|
|
212
|
+
- [OpenCode](https://opencode.ai) ≥ 1.17
|
|
213
|
+
- `@opencode-ai/plugin@^1.17`(运行时依赖)
|
|
214
|
+
- `@opencode-ai/sdk@^1.3`(运行时依赖)
|
|
215
|
+
- 无其他外部插件依赖
|
|
216
|
+
|
|
217
|
+
## 自定义模型
|
|
218
|
+
|
|
219
|
+
**推荐**:直接编辑 `~/.config/opencode/oh-my-opencode-cohub.json`(见「配置文件」章节),修改对应代理的 `model` 和 `variant` 即可。
|
|
220
|
+
|
|
221
|
+
**备选**:通过 `opencode.json` 的 plugin config 覆盖:
|
|
222
|
+
|
|
223
|
+
```json
|
|
224
|
+
{
|
|
225
|
+
"plugin": [
|
|
226
|
+
{
|
|
227
|
+
"name": "oh-my-opencode-cohub",
|
|
228
|
+
"config": {
|
|
229
|
+
"models": {
|
|
230
|
+
"orchestrator": "openai/gpt-5.5",
|
|
231
|
+
"fixer": "openai/gpt-5.4-mini"
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
]
|
|
236
|
+
}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
> 注意:plugin config 中的 key 使用无 `co-` 前缀的短名(如 `orchestrator`);JSON 配置文件使用完整的 `co-` 前缀名(如 `co-orchestrator`)。
|
|
240
|
+
|
|
241
|
+
## 自定义提示词
|
|
242
|
+
|
|
243
|
+
### 方式一:通过 plugin config 覆盖(推荐)
|
|
244
|
+
|
|
245
|
+
在 `opencode.json` 的 plugin config 中传入自定义 prompt:
|
|
246
|
+
|
|
247
|
+
```json
|
|
248
|
+
{
|
|
249
|
+
"plugin": [
|
|
250
|
+
{
|
|
251
|
+
"name": "oh-my-opencode-cohub",
|
|
252
|
+
"config": {
|
|
253
|
+
"overrides": {
|
|
254
|
+
"oracle": "你是我的自定义 Oracle 代理——负责代码审查和安全审计……",
|
|
255
|
+
"fixer": "你是我的自定义 Fixer 代理——只做 Python 代码修改……"
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
]
|
|
260
|
+
}
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
支持覆盖的代理名称:`orchestrator`、`oracle`、`librarian`、`explorer`、`designer`、`fixer`、`observer`、`council`、`rule-user`、`rule-project`、`rule-app`、`planner`
|
|
264
|
+
|
|
265
|
+
### 方式二:文件覆盖(类 oh-my-opencode-slim 机制)
|
|
266
|
+
|
|
267
|
+
在项目 `.opencode/oh-my-opencode-cohub/` 或 `~/.config/opencode/oh-my-opencode-cohub/` 目录下创建 `{agent}.md` 文件:
|
|
268
|
+
|
|
269
|
+
```
|
|
270
|
+
oh-my-opencode-cohub/
|
|
271
|
+
├── oracle.md ← 完全替换 oracle 提示词
|
|
272
|
+
├── fixer_append.md ← 追加到 fixer 提示词末尾
|
|
273
|
+
└── planner.md ← 完全替换 planner 提示词
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
文件名规则:
|
|
277
|
+
- `{agent}.md` —— 完全替换该代理的内置提示词
|
|
278
|
+
- `{agent}_append.md` —— 追加内容到内置提示词末尾
|
|
279
|
+
|
|
280
|
+
查找优先级:项目 `.opencode/` > `~/.config/opencode/`
|
|
281
|
+
|
|
282
|
+
### 方式三:Fork 并修改源码
|
|
283
|
+
|
|
284
|
+
```bash
|
|
285
|
+
# 修改 src/prompts/oracle.ts 并重新编译
|
|
286
|
+
npm run build
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
适合深度定制,但需维护自己的分支。
|
|
290
|
+
|
|
291
|
+
## 版本历史
|
|
292
|
+
|
|
293
|
+
完整变更记录见 [CHANGELOG.md](./CHANGELOG.md)。
|
|
294
|
+
|
|
295
|
+
| 版本 | 日期 | 主要变更 |
|
|
296
|
+
|------|------|---------|
|
|
297
|
+
| [1.0.18](https://github.com/Mr-cjf/oh-my-opencode-cohub/releases/tag/v1.0.18) | 2026-07-15 | `council_session` 多模型并行共识工具 |
|
|
298
|
+
| [1.0.17](https://github.com/Mr-cjf/oh-my-opencode-cohub/releases/tag/v1.0.17) | 2026-07-15 | @council vs @oracle 选择指南 + DEBUG 日志移除 |
|
|
299
|
+
| [1.0.16](https://github.com/Mr-cjf/oh-my-opencode-cohub/releases/tag/v1.0.16) | 2026-07-15 | 背景任务事件驱动跟踪 + agent 双重注册 |
|
|
300
|
+
| [1.0.15](https://github.com/Mr-cjf/oh-my-opencode-cohub/releases/tag/v1.0.15) | 2026-07-14 | co-orchestrator 完整中文提示词 |
|
|
301
|
+
| [1.0.14](https://github.com/Mr-cjf/oh-my-opencode-cohub/releases/tag/v1.0.14) | 2026-07-14 | HTTP 服务器模式兼容修复 |
|
|
302
|
+
| [1.0.13](https://github.com/Mr-cjf/oh-my-opencode-cohub/releases/tag/v1.0.13) | 初始发布 | 12 个 co-* 代理 + 纯调度模式 |
|
|
303
|
+
|
|
304
|
+
## 许可证
|
|
305
|
+
|
|
306
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,53 +1,53 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "oh-my-opencode-cohub",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "OpenCode 中文智能体编排插件 CoHub - 纯调度模式 / 全中文提示词 / 规范分析代理 / 方案制定代理 / 独立运行",
|
|
5
|
-
"type": "module",
|
|
6
|
-
"main": "dist/index.js",
|
|
7
|
-
"bin": {
|
|
8
|
-
"oh-my-opencode-cohub": "./dist/cli/index.js"
|
|
9
|
-
},
|
|
10
|
-
"types": "dist/index.d.ts",
|
|
11
|
-
"exports": {
|
|
12
|
-
".": {
|
|
13
|
-
"import": "./dist/index.js",
|
|
14
|
-
"types": "./dist/index.d.ts"
|
|
15
|
-
},
|
|
16
|
-
"./tui": {
|
|
17
|
-
"import": "./dist/tui.js",
|
|
18
|
-
"types": "./dist/tui.d.ts"
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
"files": [
|
|
22
|
-
"dist"
|
|
23
|
-
],
|
|
24
|
-
"scripts": {
|
|
25
|
-
"build": "bun build src/index.ts src/tui.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/plugin/* --external @opencode-ai/sdk --external @opencode-ai/sdk/* --external @opentui/core --external @opentui/solid --external zod && bun build src/cli/index.ts --outdir dist/cli --target node --format esm && tsc --emitDeclarationOnly",
|
|
26
|
-
"prepublishOnly": "npm run build"
|
|
27
|
-
},
|
|
28
|
-
"keywords": [
|
|
29
|
-
"opencode",
|
|
30
|
-
"plugin",
|
|
31
|
-
"chinese",
|
|
32
|
-
"agent",
|
|
33
|
-
"orchestra",
|
|
34
|
-
"orchestrator"
|
|
35
|
-
],
|
|
36
|
-
"author": "",
|
|
37
|
-
"license": "MIT",
|
|
38
|
-
"dependencies": {
|
|
39
|
-
"@opencode-ai/plugin": "^1.17.0",
|
|
40
|
-
"@opencode-ai/sdk": "^1.3.17"
|
|
41
|
-
},
|
|
42
|
-
"optionalDependencies": {
|
|
43
|
-
"@opentui/solid": "^0.4.3",
|
|
44
|
-
"@opentui/core": "^0.4.3"
|
|
45
|
-
},
|
|
46
|
-
"devDependencies": {
|
|
47
|
-
"@types/node": "^26.1.1",
|
|
48
|
-
"typescript": "^5.4.0"
|
|
49
|
-
},
|
|
50
|
-
"opencode": {
|
|
51
|
-
"plugin": true
|
|
52
|
-
}
|
|
53
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "oh-my-opencode-cohub",
|
|
3
|
+
"version": "1.0.19",
|
|
4
|
+
"description": "OpenCode 中文智能体编排插件 CoHub - 纯调度模式 / 全中文提示词 / 规范分析代理 / 方案制定代理 / 独立运行",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"oh-my-opencode-cohub": "./dist/cli/index.js"
|
|
9
|
+
},
|
|
10
|
+
"types": "dist/index.d.ts",
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts"
|
|
15
|
+
},
|
|
16
|
+
"./tui": {
|
|
17
|
+
"import": "./dist/tui.js",
|
|
18
|
+
"types": "./dist/tui.d.ts"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"files": [
|
|
22
|
+
"dist"
|
|
23
|
+
],
|
|
24
|
+
"scripts": {
|
|
25
|
+
"build": "bun build src/index.ts src/tui.ts --outdir dist --target node --format esm --external @opencode-ai/plugin --external @opencode-ai/plugin/* --external @opencode-ai/sdk --external @opencode-ai/sdk/* --external @opentui/core --external @opentui/solid --external zod && bun build src/cli/index.ts --outdir dist/cli --target node --format esm && tsc --emitDeclarationOnly",
|
|
26
|
+
"prepublishOnly": "npm run build"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"opencode",
|
|
30
|
+
"plugin",
|
|
31
|
+
"chinese",
|
|
32
|
+
"agent",
|
|
33
|
+
"orchestra",
|
|
34
|
+
"orchestrator"
|
|
35
|
+
],
|
|
36
|
+
"author": "",
|
|
37
|
+
"license": "MIT",
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"@opencode-ai/plugin": "^1.17.0",
|
|
40
|
+
"@opencode-ai/sdk": "^1.3.17"
|
|
41
|
+
},
|
|
42
|
+
"optionalDependencies": {
|
|
43
|
+
"@opentui/solid": "^0.4.3",
|
|
44
|
+
"@opentui/core": "^0.4.3"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@types/node": "^26.1.1",
|
|
48
|
+
"typescript": "^5.4.0"
|
|
49
|
+
},
|
|
50
|
+
"opencode": {
|
|
51
|
+
"plugin": true
|
|
52
|
+
}
|
|
53
|
+
}
|