agents-bridge 0.1.3 → 0.1.5
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 +188 -205
- package/config.example.json +131 -117
- package/dist/agents/cli-backends.js +3 -3
- package/dist/agents/cli-backends.js.map +1 -1
- package/dist/agents/cli-runner.d.ts +5 -2
- package/dist/agents/cli-runner.d.ts.map +1 -1
- package/dist/agents/cli-runner.js +73 -35
- package/dist/agents/cli-runner.js.map +1 -1
- package/dist/agents/cli-session-store.d.ts +6 -0
- package/dist/agents/cli-session-store.d.ts.map +1 -1
- package/dist/agents/cli-session-store.js +64 -0
- package/dist/agents/cli-session-store.js.map +1 -1
- package/dist/agents/codex-app-server-runtime.js +2 -2
- package/dist/agents/codex-app-server-runtime.js.map +1 -1
- package/dist/channels/command-gating.d.ts.map +1 -1
- package/dist/channels/command-gating.js +6 -6
- package/dist/channels/command-gating.js.map +1 -1
- package/dist/cli/cmd-add-agent.d.ts +19 -0
- package/dist/cli/cmd-add-agent.d.ts.map +1 -0
- package/dist/cli/cmd-add-agent.js +339 -0
- package/dist/cli/cmd-add-agent.js.map +1 -0
- package/dist/cli/cmd-onboard.d.ts.map +1 -1
- package/dist/cli/cmd-onboard.js +10 -1
- package/dist/cli/cmd-onboard.js.map +1 -1
- package/dist/cli/cmd-restart.d.ts +3 -0
- package/dist/cli/cmd-restart.d.ts.map +1 -0
- package/dist/cli/cmd-restart.js +22 -0
- package/dist/cli/cmd-restart.js.map +1 -0
- package/dist/cli/cmd-start.d.ts.map +1 -1
- package/dist/cli/cmd-start.js +35 -10
- package/dist/cli/cmd-start.js.map +1 -1
- package/dist/cli/cmd-stop.d.ts +5 -0
- package/dist/cli/cmd-stop.d.ts.map +1 -1
- package/dist/cli/cmd-stop.js +32 -8
- package/dist/cli/cmd-stop.js.map +1 -1
- package/dist/cli/run-main.d.ts +1 -1
- package/dist/cli/run-main.d.ts.map +1 -1
- package/dist/cli/run-main.js +16 -12
- package/dist/cli/run-main.js.map +1 -1
- package/dist/config/default-config.d.ts.map +1 -1
- package/dist/config/default-config.js +14 -0
- package/dist/config/default-config.js.map +1 -1
- package/dist/entry.d.ts.map +1 -1
- package/dist/entry.js +8 -0
- package/dist/entry.js.map +1 -1
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +5 -1
- package/dist/agents/cli-output.test.d.ts +0 -2
- package/dist/agents/cli-output.test.d.ts.map +0 -1
- package/dist/agents/cli-output.test.js +0 -56
- package/dist/agents/cli-output.test.js.map +0 -1
- package/dist/agents/cli-runner.test.d.ts +0 -2
- package/dist/agents/cli-runner.test.d.ts.map +0 -1
- package/dist/agents/cli-runner.test.js +0 -119
- package/dist/agents/cli-runner.test.js.map +0 -1
- package/dist/agents/cli-session-store.test.d.ts +0 -2
- package/dist/agents/cli-session-store.test.d.ts.map +0 -1
- package/dist/agents/cli-session-store.test.js +0 -30
- package/dist/agents/cli-session-store.test.js.map +0 -1
- package/dist/agents/codex-app-server-runtime.test.d.ts +0 -2
- package/dist/agents/codex-app-server-runtime.test.d.ts.map +0 -1
- package/dist/agents/codex-app-server-runtime.test.js +0 -164
- package/dist/agents/codex-app-server-runtime.test.js.map +0 -1
- package/dist/cli/run-main.test.d.ts +0 -2
- package/dist/cli/run-main.test.d.ts.map +0 -1
- package/dist/cli/run-main.test.js +0 -17
- package/dist/cli/run-main.test.js.map +0 -1
- package/dist/config/default-config.test.d.ts +0 -2
- package/dist/config/default-config.test.d.ts.map +0 -1
- package/dist/config/default-config.test.js +0 -19
- package/dist/config/default-config.test.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,290 +1,273 @@
|
|
|
1
|
-
|
|
1
|
+
# agents-bridge
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
本地 Agent 网关,部署在客户本地机器上,通过长轮询连接 botlink 平台,把消息转发给本机运行的 Claude Code / Codex 等 Agent 运行时。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
核心特点:
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
鈹? 鈹溾攢 Codex (CLI) 鈹?
|
|
17
|
-
鈹斺攢鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹€鈹?
|
|
18
|
-
```
|
|
7
|
+
- 客户端主动外连,无需暴露入站端口
|
|
8
|
+
- 支持 `claude-cli/...`、`codex-cli/...` 这类 CLI 模型引用
|
|
9
|
+
- 支持多 agent 配置与按绑定规则路由
|
|
10
|
+
- 提供 `onboard`、`add-agent`、`doctor`、`logs`、`config` 等运维命令
|
|
11
|
+
- 支持前台运行和守护进程模式
|
|
12
|
+
|
|
13
|
+
## 架构概览
|
|
14
|
+
|
|
15
|
+
链路可以简化为:
|
|
19
16
|
|
|
20
|
-
agents-bridge
|
|
17
|
+
`botlink cloud -> 长轮询 -> agents-bridge -> 本地 CLI backend / Agent Runtime`
|
|
21
18
|
|
|
22
|
-
|
|
19
|
+
其中:
|
|
23
20
|
|
|
24
|
-
|
|
21
|
+
- botlink 负责云端消息入口
|
|
22
|
+
- agents-bridge 负责轮询、路由、会话管理、日志和文件中转
|
|
23
|
+
- 本地 Agent Runtime 负责实际执行 Claude Code、Codex 等 CLI
|
|
24
|
+
|
|
25
|
+
## 快速开始
|
|
26
|
+
|
|
27
|
+
### 方式 A:npm 全局安装
|
|
25
28
|
|
|
26
29
|
```bash
|
|
27
30
|
npm install -g agents-bridge@latest
|
|
28
31
|
|
|
29
|
-
#
|
|
32
|
+
# 交互式初始化:输入 gateway URL、bot token、选择模型
|
|
30
33
|
agents-bridge onboard
|
|
31
34
|
|
|
32
|
-
#
|
|
35
|
+
# 前台启动
|
|
33
36
|
agents-bridge start
|
|
34
|
-
```
|
|
35
37
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
docker run -d --name agents-bridge \
|
|
40
|
-
-v /home/user/project:/workspace \
|
|
41
|
-
-v agents-bridge-data:/root/.agent-bridge \
|
|
42
|
-
| `AGENT_BRIDGE_GATEWAY_URL` | `channels.botlink.gateway_url` 或 `channels.botlink.accounts.default.gateway_url` | botlink 网关地址 |
|
|
43
|
-
| `AGENT_BRIDGE_BOT_TOKEN` | `channels.botlink.bot_token` 或 `channels.botlink.accounts.default.bot_token` | Bot Token |
|
|
44
|
-
-e ANTHROPIC_API_KEY=sk-ant-xxx \
|
|
45
|
-
agents-bridge:latest
|
|
38
|
+
# 或后台启动
|
|
39
|
+
agents-bridge start --daemon
|
|
46
40
|
```
|
|
47
41
|
|
|
48
|
-
|
|
42
|
+
### 方式 B:Docker Compose
|
|
49
43
|
|
|
50
44
|
```bash
|
|
51
45
|
cp .env.example .env
|
|
52
|
-
#
|
|
46
|
+
# 编辑 .env,填写 GATEWAY_URL、BOT_TOKEN 等变量
|
|
47
|
+
|
|
53
48
|
docker compose up -d
|
|
54
49
|
```
|
|
55
50
|
|
|
56
|
-
|
|
51
|
+
`docker-compose.yml` 默认会:
|
|
52
|
+
|
|
53
|
+
- 挂载 `${WORKSPACE_DIR:-./workspace}` 到容器内 `/workspace`
|
|
54
|
+
- 持久化 `/root/.agent-bridge`
|
|
55
|
+
- 通过环境变量覆盖网关地址、Bot Token 和日志级别
|
|
56
|
+
|
|
57
|
+
### 方式 C:源码运行
|
|
57
58
|
|
|
58
59
|
```bash
|
|
59
60
|
git clone <repo-url>
|
|
60
|
-
cd
|
|
61
|
+
cd agent-bridge
|
|
61
62
|
pnpm install
|
|
62
63
|
pnpm build
|
|
63
|
-
cp config.example.json config.json
|
|
64
|
+
cp config.example.json config.json
|
|
65
|
+
# 编辑 config.json
|
|
64
66
|
node dist/entry.js start
|
|
65
67
|
```
|
|
66
68
|
|
|
67
|
-
|
|
69
|
+
开发模式:
|
|
68
70
|
|
|
69
71
|
```bash
|
|
70
72
|
pnpm dev
|
|
71
73
|
```
|
|
72
74
|
|
|
73
|
-
## CLI
|
|
75
|
+
## CLI 命令
|
|
74
76
|
|
|
75
77
|
```bash
|
|
76
|
-
agents-bridge start
|
|
77
|
-
agents-bridge start --daemon
|
|
78
|
-
agents-bridge start -c
|
|
79
|
-
agents-bridge stop
|
|
80
|
-
agents-bridge
|
|
81
|
-
agents-bridge
|
|
82
|
-
agents-bridge
|
|
83
|
-
agents-bridge
|
|
84
|
-
agents-bridge
|
|
85
|
-
agents-bridge
|
|
78
|
+
agents-bridge start # 前台启动
|
|
79
|
+
agents-bridge start --daemon # 后台启动
|
|
80
|
+
agents-bridge start -c ./config.json # 指定配置文件
|
|
81
|
+
agents-bridge stop # 停止守护进程
|
|
82
|
+
agents-bridge restart # 重启
|
|
83
|
+
agents-bridge status # 查看运行状态
|
|
84
|
+
agents-bridge onboard # 交互式初始化
|
|
85
|
+
agents-bridge add-agent # 交互式追加一个 agent
|
|
86
|
+
agents-bridge doctor # 检查环境、CLI、API Key 和配置
|
|
87
|
+
agents-bridge logs # 查看最近日志
|
|
88
|
+
agents-bridge config # 输出当前配置
|
|
89
|
+
agents-bridge version # 查看版本
|
|
90
|
+
agents-bridge help # 查看帮助
|
|
86
91
|
```
|
|
87
92
|
|
|
88
|
-
##
|
|
93
|
+
## 配置
|
|
89
94
|
|
|
90
|
-
###
|
|
95
|
+
### 配置文件搜索顺序
|
|
91
96
|
|
|
92
|
-
|
|
97
|
+
当前实现会按以下顺序读取第一个存在的配置文件:
|
|
93
98
|
|
|
94
|
-
1.
|
|
95
|
-
2.
|
|
96
|
-
3.
|
|
97
|
-
4.
|
|
99
|
+
1. `agents-bridge start -c /path/to/config.json`
|
|
100
|
+
2. 环境变量 `AGENT_BRIDGE_CONFIG`
|
|
101
|
+
3. 当前目录 `./config.json`
|
|
102
|
+
4. 用户目录 `~/.agent-bridge/config.json`
|
|
98
103
|
|
|
99
|
-
|
|
100
|
-
褰撳墠杩愯鏃朵粎鏀寔 CLI 妯″紡妯″瀷锛屽 `claude-cli/...`銆乣codex-cli/...`銆俙anthropic/...`銆乣openai/...` 杩欑被 API 鐩磋繛妯″瀷寮曠敤鏆傛湭瀹炵幇鎵ц閾捐矾銆?
|
|
101
|
-
### 鏍稿績閰嶇疆椤癸紙鍗?agent锛?
|
|
104
|
+
### 最小配置示例
|
|
102
105
|
|
|
103
106
|
```json
|
|
104
107
|
{
|
|
105
108
|
"channels": {
|
|
106
109
|
"botlink": {
|
|
107
|
-
"gateway_url": "https://your-botlink
|
|
108
|
-
"bot_token": "
|
|
109
|
-
"poll_timeout": 30,
|
|
110
|
-
"retry_interval": 5,
|
|
111
|
-
"max_retry_interval": 60
|
|
110
|
+
"gateway_url": "https://your-botlink.com",
|
|
111
|
+
"bot_token": "bot_xxx"
|
|
112
112
|
}
|
|
113
113
|
},
|
|
114
114
|
"agents": {
|
|
115
115
|
"defaults": {
|
|
116
116
|
"model": {
|
|
117
117
|
"primary": "claude-cli/opus-4.6"
|
|
118
|
-
},
|
|
119
|
-
"cliBackends": {
|
|
120
|
-
"claude-cli": {
|
|
121
|
-
"command": "claude",
|
|
122
|
-
"args": ["-p", "--output-format", "json", "--dangerously-skip-permissions"],
|
|
123
|
-
"resumeArgs": ["-p", "--output-format", "json", "--dangerously-skip-permissions", "--resume", "{sessionId}"],
|
|
124
|
-
"output": "json",
|
|
125
|
-
"modelArg": "--model",
|
|
126
|
-
"sessionArg": "--session-id",
|
|
127
|
-
"sessionIdFields": ["session_id", "sessionId", "conversation_id", "conversationId"],
|
|
128
|
-
"sessionMode": "always",
|
|
129
|
-
"serialize": true
|
|
130
|
-
},
|
|
131
|
-
"codex-cli": {
|
|
132
|
-
"command": "codex",
|
|
133
|
-
"args": ["exec", "--json", "..."],
|
|
134
|
-
"resumeArgs": ["exec", "resume", "{sessionId}", "..."],
|
|
135
|
-
"sessionMode": "existing",
|
|
136
|
-
"output": "jsonl",
|
|
137
|
-
"resumeOutput": "text",
|
|
138
|
-
"modelArg": "--model",
|
|
139
|
-
"sessionIdFields": ["thread_id"],
|
|
140
|
-
"serialize": true
|
|
141
|
-
}
|
|
142
118
|
}
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
"logging": {
|
|
146
|
-
"level": "info"
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
### 澶?Agent 閰嶇疆
|
|
152
|
-
|
|
153
|
-
鍦?`agents` 涓嬪姞 `list` 瀹氫箟澶氫釜鍛藉悕 agent锛岀敤椤跺眰 `bindings` 鎸変細璇?鐢ㄦ埛璺敱锛?
|
|
154
|
-
|
|
155
|
-
```json
|
|
156
|
-
{
|
|
157
|
-
"agents": {
|
|
158
|
-
"defaults": { "model": { "primary": "claude-cli/opus-4.6" } },
|
|
119
|
+
},
|
|
159
120
|
"list": [
|
|
160
|
-
{
|
|
161
|
-
|
|
121
|
+
{
|
|
122
|
+
"id": "default",
|
|
123
|
+
"default": true
|
|
124
|
+
}
|
|
162
125
|
]
|
|
163
126
|
},
|
|
164
127
|
"bindings": [
|
|
165
|
-
{
|
|
166
|
-
|
|
128
|
+
{
|
|
129
|
+
"agentId": "default",
|
|
130
|
+
"match": {
|
|
131
|
+
"channel": "*"
|
|
132
|
+
}
|
|
133
|
+
}
|
|
167
134
|
]
|
|
168
135
|
}
|
|
169
136
|
```
|
|
170
137
|
|
|
171
|
-
|
|
138
|
+
完整示例见:
|
|
172
139
|
|
|
173
|
-
|
|
140
|
+
- [config.example.json](./config.example.json)
|
|
141
|
+
- [config.multi-agent.example.json](./config.multi-agent.example.json)
|
|
142
|
+
- [配置文档](../agent-bridge-docs/docs/guides/configuration.md)
|
|
174
143
|
|
|
175
|
-
|
|
144
|
+
### 关键配置项
|
|
176
145
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
146
|
+
- `channels.botlink.gateway_url`:botlink 网关地址
|
|
147
|
+
- `channels.botlink.bot_token`:bot token
|
|
148
|
+
- `agents.defaults.model.primary`:主模型引用,例如 `claude-cli/opus-4.6` 或 `codex-cli/gpt-5.4`
|
|
149
|
+
- `agents.defaults.model.fallbacks`:备用模型链
|
|
150
|
+
- `agents.defaults.cliBackends`:CLI backend 启动参数与运行模式
|
|
151
|
+
- `agents.list`:命名 agent 列表
|
|
152
|
+
- `bindings`:消息路由规则,可按 `channel`、`accountId`、`peer.id` 等条件匹配
|
|
153
|
+
- `files.temp_dir`:文件中转目录
|
|
154
|
+
- `logging.level`:日志级别
|
|
184
155
|
|
|
185
|
-
|
|
156
|
+
### 多 agent 配置
|
|
186
157
|
|
|
187
|
-
|
|
188
|
-
~/.agent-bridge/
|
|
189
|
-
鈹溾攢鈹€ config.json # 涓婚厤缃紙onboard 鐢熸垚锛?
|
|
190
|
-
鈹溾攢鈹€ agent-bridge.pid # PID 鏂囦欢锛坉aemon 妯″紡锛?
|
|
191
|
-
鈹溾攢鈹€ agents/ # per-agent 鐘舵€侊紙澶?agent 妯″紡锛?
|
|
192
|
-
鈹? 鈹溾攢鈹€ coder/
|
|
193
|
-
鈹? 鈹? 鈹斺攢鈹€ cli-sessions.json # coder 鐨?session 鏄犲皠
|
|
194
|
-
鈹? 鈹溾攢鈹€ reviewer/
|
|
195
|
-
鈹? 鈹? 鈹斺攢鈹€ cli-sessions.json
|
|
196
|
-
鈹? 鈹斺攢鈹€ default/ # 闅愬紡 agent锛堟湭閰?list 鏃讹級
|
|
197
|
-
鈹? 鈹斺攢鈹€ cli-sessions.json
|
|
198
|
-
鈹溾攢鈹€ data/
|
|
199
|
-
鈹? 鈹溾攢鈹€ sessions/ # 鏃х増 session 瀛樺偍锛堝崌绾у悗鑷姩杩佺Щ锛?
|
|
200
|
-
鈹? 鈹溾攢鈹€ files/ # 鏂囦欢涓浆涓存椂鐩綍
|
|
201
|
-
鈹? 鈹斺攢鈹€ logs/ # 鏃ュ織鏂囦欢
|
|
202
|
-
鈹斺攢鈹€ skills/ # 鑷畾涔夋妧鑳?
|
|
203
|
-
```
|
|
158
|
+
多 agent 模式通过 `agents.list` 定义运行实例,通过 `bindings` 决定消息路由到哪个 agent。
|
|
204
159
|
|
|
205
|
-
|
|
160
|
+
追加 agent 时,也可以直接运行:
|
|
206
161
|
|
|
162
|
+
```bash
|
|
163
|
+
agents-bridge add-agent
|
|
207
164
|
```
|
|
208
|
-
agents-bridge/
|
|
209
|
-
鈹溾攢鈹€ bin/
|
|
210
|
-
鈹? 鈹斺攢鈹€ agent-bridge.mjs # CLI 鍏ュ彛锛坣pm 鍏ㄥ眬瀹夎锛?
|
|
211
|
-
鈹溾攢鈹€ src/
|
|
212
|
-
鈹? 鈹溾攢鈹€ entry.ts # 涓诲叆鍙o紝瀛愬懡浠よ矾鐢?
|
|
213
|
-
鈹? 鈹溾攢鈹€ cli/ # CLI 鍛戒护瀹炵幇
|
|
214
|
-
鈹? 鈹? 鈹溾攢鈹€ run-main.ts # 鍙傛暟瑙f瀽
|
|
215
|
-
鈹? 鈹? 鈹溾攢鈹€ cmd-start.ts # start 鍛戒护
|
|
216
|
-
鈹? 鈹? 鈹溾攢鈹€ cmd-stop.ts # stop 鍛戒护
|
|
217
|
-
鈹? 鈹? 鈹溾攢鈹€ cmd-status.ts # status 鍛戒护
|
|
218
|
-
鈹? 鈹? 鈹溾攢鈹€ cmd-onboard.ts # onboard 浜や簰寮曞
|
|
219
|
-
鈹? 鈹? 鈹溾攢鈹€ cmd-doctor.ts # doctor 鐜璇婃柇
|
|
220
|
-
鈹? 鈹? 鈹溾攢鈹€ cmd-logs.ts # logs 鏌ョ湅
|
|
221
|
-
鈹? 鈹? 鈹斺攢鈹€ cmd-config.ts # config 鏌ョ湅
|
|
222
|
-
鈹? 鈹溾攢鈹€ config/ # 閰嶇疆鍔犺浇涓庢牎楠?
|
|
223
|
-
鈹? 鈹? 鈹溾攢鈹€ config.ts # 涓诲姞杞藉櫒
|
|
224
|
-
鈹? 鈹? 鈹溾攢鈹€ zod-schema.ts # Zod schema
|
|
225
|
-
鈹? 鈹? 鈹溾攢鈹€ paths.ts # 鏁版嵁鐩綍璺緞甯搁噺
|
|
226
|
-
鈹? 鈹? 鈹溾攢鈹€ env-vars.ts # 鐜鍙橀噺璇诲彇
|
|
227
|
-
鈹? 鈹? 鈹溾攢鈹€ merge-config.ts # 閰嶇疆鍚堝苟
|
|
228
|
-
鈹? 鈹? 鈹斺攢鈹€ agent-dirs.ts # 鐩綍鍒濆鍖?
|
|
229
|
-
鈹? 鈹溾攢鈹€ channels/ # Channel 鎻掍欢妗嗘灦
|
|
230
|
-
鈹? 鈹? 鈹溾攢鈹€ registry.ts # 鎻掍欢娉ㄥ唽琛?
|
|
231
|
-
鈹? 鈹? 鈹溾攢鈹€ session.ts # 浼氳瘽绠$悊
|
|
232
|
-
鈹? 鈹? 鈹斺攢鈹€ ...
|
|
233
|
-
鈹? 鈹溾攢鈹€ agents/ # Agent 杩愯鏃?
|
|
234
|
-
鈹? 鈹? 鈹溾攢鈹€ agent-resolver.ts # 澶?agent 閰嶇疆瑙f瀽锛坉efaults + list 鍚堝苟锛?
|
|
235
|
-
鈹? 鈹? 鈹溾攢鈹€ agent-router.ts # 娑堟伅璺敱锛坆indings 鍖归厤锛?
|
|
236
|
-
鈹? 鈹? 鈹溾攢鈹€ cli-backends.ts # CLI backend provider id / 榛樿閰嶇疆瑁呴厤
|
|
237
|
-
鈹? 鈹? 鈹溾攢鈹€ cli-session-store.ts # CLI session 鏄犲皠鎸佷箙鍖栵紙per-agent锛?
|
|
238
|
-
鈹? 鈹? 鈹溾攢鈹€ cli-runner.ts # Claude/Codex CLI 鎵ц鍣?
|
|
239
|
-
鈹? 鈹? 鈹斺攢鈹€ ...
|
|
240
|
-
鈹? 鈹溾攢鈹€ types/ # 绫诲瀷瀹氫箟
|
|
241
|
-
鈹? 鈹斺攢鈹€ logger.ts # Pino 鏃ュ織
|
|
242
|
-
鈹溾攢鈹€ extensions/ # Channel 鎻掍欢锛坆otlink锛?
|
|
243
|
-
鈹溾攢鈹€ skills/ # 鎶€鑳藉畾涔?
|
|
244
|
-
鈹溾攢鈹€ config.example.json # 閰嶇疆绀轰緥
|
|
245
|
-
鈹溾攢鈹€ .env.example # 鐜鍙橀噺绀轰緥
|
|
246
|
-
鈹溾攢鈹€ Dockerfile
|
|
247
|
-
鈹溾攢鈹€ docker-compose.yml
|
|
248
|
-
鈹溾攢鈹€ package.json
|
|
249
|
-
鈹斺攢鈹€ tsconfig.json
|
|
250
|
-
```
|
|
251
165
|
|
|
252
|
-
|
|
166
|
+
该命令会在现有配置上:
|
|
167
|
+
|
|
168
|
+
- 追加一个 `agents.list[]` 项
|
|
169
|
+
- 可选绑定已有 botlink `accountId`
|
|
170
|
+
- 可选创建新的 botlink account 并立刻绑定
|
|
171
|
+
- 写入前自动备份原配置文件
|
|
253
172
|
|
|
254
|
-
|
|
173
|
+
例如:
|
|
174
|
+
|
|
175
|
+
- 一个 bot 绑定到 Codex
|
|
176
|
+
- 一个 bot 绑定到 Claude Code
|
|
177
|
+
- 不同工作区使用不同 `workspace`
|
|
178
|
+
- 通过预置 `cliSessionId` 复用既有 CLI 会话
|
|
179
|
+
|
|
180
|
+
详见 [config.multi-agent.example.json](./config.multi-agent.example.json)。
|
|
181
|
+
|
|
182
|
+
### 环境变量覆盖
|
|
183
|
+
|
|
184
|
+
环境变量可覆盖配置文件中的对应值:
|
|
185
|
+
|
|
186
|
+
| 环境变量 | 覆盖字段 | 说明 |
|
|
255
187
|
|---|---|---|
|
|
256
|
-
|
|
|
257
|
-
|
|
|
258
|
-
|
|
|
188
|
+
| `AGENT_BRIDGE_CONFIG` | 配置文件路径 | 指定要加载的 `config.json` |
|
|
189
|
+
| `AGENT_BRIDGE_GATEWAY_URL` | `channels.botlink.gateway_url` | botlink 网关地址 |
|
|
190
|
+
| `AGENT_BRIDGE_BOT_TOKEN` | `channels.botlink.bot_token` | Bot Token |
|
|
191
|
+
| `AGENT_BRIDGE_LOG_LEVEL` | `logging.level` | 日志级别 |
|
|
192
|
+
| `AGENT_BRIDGE_TEMP_DIR` | `files.temp_dir` | 临时文件目录 |
|
|
193
|
+
| `ANTHROPIC_API_KEY` | 环境变量 | 供诊断或后续 API 模式使用 |
|
|
194
|
+
| `OPENAI_API_KEY` | 环境变量 | 供诊断或后续 API 模式使用 |
|
|
259
195
|
|
|
260
|
-
|
|
196
|
+
## 模型与运行模式
|
|
261
197
|
|
|
262
|
-
|
|
198
|
+
当前消息执行链路仅支持 CLI 模式模型,也就是:
|
|
263
199
|
|
|
264
|
-
-
|
|
265
|
-
- `
|
|
266
|
-
- `SessionEnvelope.sessionId` 是 botlink 稳定会话键,不等于 Claude/Codex 自己的 session id。
|
|
267
|
-
- CLI backend session id 会持久化到 `~/.agent-bridge/data/sessions/cli-sessions.json` 的 `cliSessionIds[providerId]`。
|
|
268
|
-
- `serialize: true` 的语义是“同一 botlink session 串行、跨 session 可并发”。
|
|
269
|
-
- Claude CLI 走 JSON 输出;Codex CLI 首次运行走 JSONL,resume 走 text。
|
|
270
|
-
- agents-bridge 会把运行日志同时写到 stdout 和 `~/.agent-bridge/data/logs/agent-bridge-YYYY-MM-DD.log`。
|
|
271
|
-
- `agents-bridge doctor` 会检查 Codex 会话是否缺失 `thread_id` 持久化,便于定位“每次都 fresh”的问题。
|
|
200
|
+
- `claude-cli/...`
|
|
201
|
+
- `codex-cli/...`
|
|
272
202
|
|
|
273
|
-
|
|
203
|
+
配置层已经允许 `anthropic/...`、`openai/...` 这类 API provider 引用,但当前主运行时尚未实现 API 模式;若把它们设为主模型,程序会返回“当前仅支持 CLI 模式模型”。
|
|
274
204
|
|
|
275
|
-
|
|
276
|
-
- pnpm (>= 9.0.0)
|
|
277
|
-
- Pino锛堟棩蹇楋級
|
|
278
|
-
- Zod锛堥厤缃牎楠岋級
|
|
279
|
-
- JSON锛堥厤缃牸寮忥級
|
|
205
|
+
## 数据目录
|
|
280
206
|
|
|
281
|
-
|
|
207
|
+
运行时数据默认保存在 `~/.agent-bridge/`:
|
|
208
|
+
|
|
209
|
+
```text
|
|
210
|
+
~/.agent-bridge/
|
|
211
|
+
├── config.json
|
|
212
|
+
├── agent-bridge.pid
|
|
213
|
+
├── agents/
|
|
214
|
+
│ └── <agentId>/
|
|
215
|
+
│ └── cli-sessions.json
|
|
216
|
+
├── data/
|
|
217
|
+
│ ├── files/
|
|
218
|
+
│ ├── logs/
|
|
219
|
+
│ └── sessions/
|
|
220
|
+
└── skills/
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
其中:
|
|
224
|
+
|
|
225
|
+
- `config.json`:全局配置文件
|
|
226
|
+
- `agent-bridge.pid`:守护进程 PID 文件
|
|
227
|
+
- `agents/<agentId>/cli-sessions.json`:每个 agent 的 CLI 会话映射
|
|
228
|
+
- `data/logs/`:按天滚动的日志文件
|
|
229
|
+
- `skills/`:自定义技能目录
|
|
230
|
+
|
|
231
|
+
## 项目结构
|
|
232
|
+
|
|
233
|
+
```text
|
|
234
|
+
agent-bridge/
|
|
235
|
+
├── bin/ # CLI 入口
|
|
236
|
+
├── src/
|
|
237
|
+
│ ├── cli/ # start / stop / onboard / doctor 等命令
|
|
238
|
+
│ ├── agents/ # Agent 解析、路由、CLI 执行
|
|
239
|
+
│ ├── channels/ # Channel 插件(如 botlink)
|
|
240
|
+
│ ├── config/ # 配置加载、校验、默认值
|
|
241
|
+
│ ├── types/ # 类型定义
|
|
242
|
+
│ └── logger.ts # 日志
|
|
243
|
+
├── extensions/ # 扩展点
|
|
244
|
+
├── skills/ # 本地技能目录
|
|
245
|
+
├── config.example.json
|
|
246
|
+
├── config.multi-agent.example.json
|
|
247
|
+
├── docker-compose.yml
|
|
248
|
+
├── Dockerfile
|
|
249
|
+
└── package.json
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
## 开发
|
|
282
253
|
|
|
283
254
|
```bash
|
|
284
|
-
pnpm install
|
|
285
|
-
pnpm build
|
|
286
|
-
pnpm
|
|
287
|
-
pnpm
|
|
255
|
+
pnpm install
|
|
256
|
+
pnpm build
|
|
257
|
+
pnpm typecheck
|
|
258
|
+
pnpm dev
|
|
288
259
|
```
|
|
289
260
|
|
|
261
|
+
环境要求:
|
|
262
|
+
|
|
263
|
+
- Node.js >= 22.0.0
|
|
264
|
+
- pnpm >= 9.0.0
|
|
265
|
+
|
|
266
|
+
## 相关文档
|
|
267
|
+
|
|
268
|
+
- [文档索引](../agent-bridge-docs/INDEX.md)
|
|
269
|
+
- [配置文档](../agent-bridge-docs/docs/guides/configuration.md)
|
|
270
|
+
|
|
271
|
+
## 许可证
|
|
290
272
|
|
|
273
|
+
[MIT](./LICENSE)
|