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 产出验证
This commit is contained in:
airlongdian
2026-06-14 09:31:29 +08:00
commit e2fd375a1c
5757 changed files with 1170016 additions and 0 deletions

138
docs/INTEGRATION.md Normal file
View File

@@ -0,0 +1,138 @@
# 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 工具可用