Files
AirCoding/docs/INTEGRATION.md
airlongdian e2fd375a1c feat: 品牌替换 + 启动优化 + AGENTS.md 模板定制
- 品牌替换:OpenCode/opencode → AirCoding/aircoding(16+ 文件)
- Logo ASCII art:修复 left/right 行数不匹配导致的启动崩溃
- 启动诊断:添加 OPENCODE_PRINT_TIMING 计时探针
- dev 模式默认 --pure 跳过外部插件加载
- AGENTS.md 模板:追加 AirCoding 多 Agent 专项段落
- architect prompt + plugin:强化 AGENTS.md 产出验证
2026-06-14 09:31:29 +08:00

139 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AirCoding 集成指南
本文档说明如何将 AirCoding 的自定义组件集成到 OpenCode v1.17.4 fork 中。
## 需要集成的文件
| 源文件 | 目标位置 | 说明 |
|--------|---------|------|
| `src/tool/coordinator.ts` | `packages/opencode/src/tool/coordinator.ts` | 调度工具4 个子工具) |
| `src/agents/prompts/scheduler.md` | `packages/opencode/src/agent/prompt/scheduler.txt` | Scheduler system prompt |
| `src/agents/prompts/worker.md` | `packages/opencode/src/agent/prompt/worker.txt` | Worker system prompt |
| `src/agents/prompts/architect.md` | `packages/opencode/src/agent/prompt/architect.txt` | Architect system prompt |
| `opencode.json` | 项目根目录 `.opencode/opencode.json` 或用户配置 | Agent 定义 |
## 步骤 1复制 coordinator.ts
```bash
cp src/tool/coordinator.ts packages/opencode/src/tool/coordinator.ts
```
## 步骤 2修改 registry.ts
`packages/opencode/src/tool/registry.ts` 中做以下修改:
### 2a. 添加 import文件顶部
```typescript
import * as coordinator from "./coordinator"
```
### 2b. 注册工具(约 198 行tool init block 中)
`const tool = yield* Effect.all({` 块中添加:
```typescript
coordinator_listen: Tool.init(coordinator.listen),
coordinator_status: Tool.init(coordinator.status),
coordinator_save_state: Tool.init(coordinator.saveState),
coordinator_load_state: Tool.init(coordinator.loadState),
```
### 2c. 添加到 builtin 列表(约 219 行)
`builtin: [` 数组中添加:
```typescript
tool.coordinator_listen,
tool.coordinator_status,
tool.coordinator_save_state,
tool.coordinator_load_state,
```
## 步骤 3复制 prompt 文件
```bash
cp src/agents/prompts/scheduler.md packages/opencode/src/agent/prompt/scheduler.txt
cp src/agents/prompts/worker.md packages/opencode/src/agent/prompt/worker.txt
cp src/agents/prompts/architect.md packages/opencode/src/agent/prompt/architect.txt
```
## 步骤 4注册 Agent可选
可以选择以下两种方式之一注册自定义 Agent
### 方式 A通过 opencode.json 配置(推荐)
`opencode.json` 放到项目的 `.opencode/` 目录或用户全局配置目录中。OpenCode 会自动加载其中的 agent 定义。
### 方式 B修改 agent.ts 源码
`packages/opencode/src/agent/agent.ts``agents` 对象中添加自定义 agent 定义(约 138 行):
```typescript
scheduler: {
name: "scheduler",
description: "任务调度引擎",
mode: "subagent",
native: true,
steps: 200,
prompt: PROMPT_SCHEDULER,
permission: Permission.merge(defaults, Permission.fromConfig({
edit: "deny",
write: "deny",
todowrite: "deny",
}), user),
options: {},
},
worker: {
name: "worker",
description: "执行器/调试器双模式 Worker",
mode: "subagent",
native: true,
steps: 100,
prompt: PROMPT_WORKER,
permission: Permission.merge(defaults, user),
options: {},
},
architect: {
name: "architect",
description: "架构规划器",
mode: "subagent",
native: true,
steps: 100,
prompt: PROMPT_ARCHITECT,
permission: Permission.merge(defaults, Permission.fromConfig({
"*": "deny",
read: "allow",
glob: "allow",
grep: "allow",
task: "allow",
}), user),
options: {},
},
```
并在文件顶部添加 prompt import
```typescript
import PROMPT_SCHEDULER from "./prompt/scheduler.txt"
import PROMPT_WORKER from "./prompt/worker.txt"
import PROMPT_ARCHITECT from "./prompt/architect.txt"
```
## 步骤 5启用后台子代理
设置环境变量以启用 OpenCode 的后台子代理功能:
```bash
export OPENCODE_EXPERIMENTAL_BACKGROUND_SUBAGENTS=true
```
## 步骤 6验证
1. 构建 OpenCode`bun run build`(或 `bun dev` 开发模式)
2. 在项目目录中创建 `.opencode/opencode.json`(包含 agent 配置)
3. 创建 `.air/local/state/` 目录
4. 启动 OpenCode尝试使用 `task` 工具派发 scheduler/worker/architect 子代理
5. 验证 coordinator_listen / coordinator_status 工具可用