@keyou007/agent-bot 0.1.13-alpha.0 → 0.1.13-alpha.2

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.
Files changed (97) hide show
  1. package/.env.example +2 -2
  2. package/CHANGELOG.md +15 -0
  3. package/README.md +107 -98
  4. package/README.zh.md +81 -72
  5. package/dist/acp/AcpProcessManager.js +8 -3
  6. package/dist/acp/AcpProcessManager.js.map +1 -1
  7. package/dist/acp/AcpSessionManager.js +15 -0
  8. package/dist/acp/AcpSessionManager.js.map +1 -1
  9. package/dist/cli/ServerStarter.js +17 -2
  10. package/dist/cli/ServerStarter.js.map +1 -1
  11. package/dist/cli/controlProtocol.js.map +1 -1
  12. package/dist/cli/help.js +16 -4
  13. package/dist/cli/help.js.map +1 -1
  14. package/dist/cli/serverStatus.js +27 -0
  15. package/dist/cli/serverStatus.js.map +1 -1
  16. package/dist/cli/taskListOutput.js +72 -0
  17. package/dist/cli/taskListOutput.js.map +1 -0
  18. package/dist/cli.js +88 -54
  19. package/dist/cli.js.map +1 -1
  20. package/dist/codex/CodexProcessManager.js +34 -4
  21. package/dist/codex/CodexProcessManager.js.map +1 -1
  22. package/dist/codex/CodexRuntime.js +3 -0
  23. package/dist/codex/CodexRuntime.js.map +1 -1
  24. package/dist/commands/CommandRouter.js +5 -0
  25. package/dist/commands/CommandRouter.js.map +1 -1
  26. package/dist/config/FeishuUserOpenIdStore.js +76 -0
  27. package/dist/config/FeishuUserOpenIdStore.js.map +1 -0
  28. package/dist/config/loadConfig.js +3 -0
  29. package/dist/config/loadConfig.js.map +1 -1
  30. package/dist/feishu/CardRenderer.js +123 -22
  31. package/dist/feishu/CardRenderer.js.map +1 -1
  32. package/dist/feishu/FeishuConnector.js +16 -5
  33. package/dist/feishu/FeishuConnector.js.map +1 -1
  34. package/dist/index.js +125 -26
  35. package/dist/index.js.map +1 -1
  36. package/dist/presentation/turnGraph.js +36 -0
  37. package/dist/presentation/turnGraph.js.map +1 -0
  38. package/dist/proxy/ProxySessionController.js +425 -104
  39. package/dist/proxy/ProxySessionController.js.map +1 -1
  40. package/dist/runtime/AcpRuntimeAdapter.js +3 -0
  41. package/dist/runtime/AcpRuntimeAdapter.js.map +1 -1
  42. package/dist/runtime/agentEnvironment.js +24 -4
  43. package/dist/runtime/agentEnvironment.js.map +1 -1
  44. package/dist/runtime/createAgentRuntimeRegistry.js +7 -3
  45. package/dist/runtime/createAgentRuntimeRegistry.js.map +1 -1
  46. package/dist/startup/StartupNotifier.js +16 -7
  47. package/dist/startup/StartupNotifier.js.map +1 -1
  48. package/dist/startup/startFeishu.js +2 -2
  49. package/dist/startup/startFeishu.js.map +1 -1
  50. package/dist/state/StateStore.js +172 -0
  51. package/dist/state/StateStore.js.map +1 -1
  52. package/dist/state/migrations.js +21 -0
  53. package/dist/state/migrations.js.map +1 -1
  54. package/dist/supervision/SafeRestartNotifier.js +46 -3
  55. package/dist/supervision/SafeRestartNotifier.js.map +1 -1
  56. package/dist/supervision/SafeRestartScheduler.js +65 -6
  57. package/dist/supervision/SafeRestartScheduler.js.map +1 -1
  58. package/dist/supervision/replacementSupervisor.js +27 -2
  59. package/dist/supervision/replacementSupervisor.js.map +1 -1
  60. package/dist/supervisor.js +27 -2
  61. package/dist/supervisor.js.map +1 -1
  62. package/docs/technical-reference.md +20 -7
  63. package/docs/technical-reference.zh.md +20 -7
  64. package/npm-shrinkwrap.json +2 -2
  65. package/package.json +1 -1
  66. package/skills/agent-bot/SKILL.md +63 -26
  67. package/src/acp/AcpProcessManager.ts +16 -3
  68. package/src/acp/AcpSessionManager.ts +14 -0
  69. package/src/cli/ServerStarter.ts +25 -2
  70. package/src/cli/controlProtocol.ts +6 -1
  71. package/src/cli/help.ts +16 -4
  72. package/src/cli/serverStatus.ts +28 -0
  73. package/src/cli/taskListOutput.ts +91 -0
  74. package/src/cli.ts +123 -51
  75. package/src/codex/CodexProcessManager.ts +38 -3
  76. package/src/codex/CodexRuntime.ts +6 -0
  77. package/src/commands/CommandRouter.ts +4 -0
  78. package/src/commands/commandTypes.ts +1 -0
  79. package/src/config/FeishuUserOpenIdStore.ts +81 -0
  80. package/src/config/loadConfig.ts +3 -0
  81. package/src/feishu/CardRenderer.ts +169 -22
  82. package/src/feishu/FeishuConnector.ts +13 -4
  83. package/src/index.ts +195 -23
  84. package/src/presentation/turnGraph.ts +48 -0
  85. package/src/proxy/ProxySessionController.ts +507 -112
  86. package/src/runtime/AcpRuntimeAdapter.ts +5 -0
  87. package/src/runtime/agentEnvironment.ts +41 -3
  88. package/src/runtime/createAgentRuntimeRegistry.ts +18 -3
  89. package/src/runtime/types.ts +5 -0
  90. package/src/startup/StartupNotifier.ts +23 -7
  91. package/src/startup/startFeishu.ts +3 -2
  92. package/src/state/StateStore.ts +224 -0
  93. package/src/state/migrations.ts +21 -0
  94. package/src/supervision/SafeRestartNotifier.ts +53 -4
  95. package/src/supervision/SafeRestartScheduler.ts +78 -7
  96. package/src/supervision/replacementSupervisor.ts +27 -1
  97. package/src/supervisor.ts +33 -2
package/README.zh.md CHANGED
@@ -14,6 +14,7 @@ Agent Bot 运行在你的电脑上,把飞书机器人连接到本机编程 Age
14
14
 
15
15
  - 在飞书中使用本机已有的 Codex 或 TraeX 登录
16
16
  - 创建、继续、切换、分支和停止任务
17
+ - 从任意成功完成的思考卡片重置当前对话
17
18
  - 使用文字、图片、群聊和话题协作
18
19
  - 排队后续 Prompt,或在任务运行中追加指令
19
20
  - Agent Bot 重启后继续已有工作
@@ -29,7 +30,7 @@ Agent Bot 运行在你的电脑上,把飞书机器人连接到本机编程 Age
29
30
 
30
31
  检查已安装的 Agent 和登录状态:
31
32
 
32
- ```powershell
33
+ ```bash
33
34
  codex --version
34
35
  codex login status
35
36
  traex --version
@@ -40,112 +41,123 @@ Codex 或 TraeX 中任意一个准备完成后即可继续初始化。`agentbot
40
41
 
41
42
  ### 安装
42
43
 
43
- ```powershell
44
+ ```bash
45
+ # 安装正式版
44
46
  npm install --global @keyou007/agent-bot
47
+ # 如果想要使用最新功能,可以安装 Alpha 版本
48
+ # npm install --global @keyou007/agent-bot@alpha
45
49
  agentbot --version
46
50
  agentbot --help
47
51
  ```
48
52
 
49
- 如需试用当前 Alpha 通道,同时不影响 npm 的稳定版 `latest` 标签:
50
-
51
- ```powershell
52
- npm install --global @keyou007/agent-bot@alpha
53
- ```
54
-
55
- 该命令会把 `agentbot` 安装为主命令。旧的 `agent-bot` 命令暂时保留,运行时会显示弃用警告,并将在后续版本中移除。命令行帮助、状态、进度、交互提示和错误会根据系统语言显示中文或英文;其他未支持语言统一回退英文。JSON 输出不做本地化并保持字段稳定。从源码安装的方法见[技术参考](docs/technical-reference.zh.md#开发与源码安装)。
53
+ 从源码安装的方法见[技术参考](docs/technical-reference.zh.md#开发与源码安装)。
56
54
 
57
55
  ### 初始化
58
56
 
59
- ```powershell
57
+ ```bash
60
58
  agentbot init
61
59
  ```
62
60
 
63
- 初始化会检测 Codex 和 TraeX,并显示已安装的版本。未安装或版本较旧的 Agent 会汇总显示对应的安装或升级命令;输入一个或多个操作编号(用逗号分隔)、输入 `all`,或直接回车跳过维护。命令执行失败不会阻塞后续初始化。检查完成后,可输入编号或标准名选择默认 Agent;当前默认值仍可用时,直接回车即可确认。Agent Bot 会把选择保存到 `config.yaml` 的 `defaults.agent`,供后续新任务使用。
61
+ 初始化会检测 Codex 和 TraeX,并显示已安装的版本。未安装或版本较旧的 Agent 会汇总显示对应的安装或升级命令。Agent Bot 会把配置保存到 `~/.agent-bot/config.yaml` 中。
64
62
 
65
- 然后打开命令显示的链接或扫描二维码,完成飞书机器人创建和授权。初始化会准备 `~/.agent-bot`、保存机器人凭据和授权用户、检查所需权限,并自动启动 Agent Bot。
63
+ 全新的初始化,终端通常会依次显示 3 轮二维码或链接。
66
64
 
67
- 只有 App ID 和 App Secret 都已保存到本地才视为机器人创建成功。如果初始化在完整凭据保存前中断,再次运行 `agentbot init` 会创建新机器人;如果凭据已经保存,则会继续检查该机器人的远端权限和订阅。
65
+ 1. **创建机器人。** 创建带有标准基础消息配置的飞书应用,并保存 App ID、App Secret 和授权用户。该步骤不能跳过,否则 Agent Bot 无法连接飞书。创建时已经提供的权限不再在下方重复列出。
66
+ 2. **添加“接收所有群消息”权限。** 创建机器人后唯一需要额外处理的核心权限是 `im:message.group_msg`,用于接收未 @ 机器人的普通群消息。飞书要求用户在开发者后台手动添加该权限。可以输入 `Y` 跳过等待;缺少该权限时,私聊仍然可用,但群成员必须 @ 机器人才会响应。
67
+ 3. **补充剩余事件和回调。** 创建机器人时使用的模板已经提供 Agent Bot 所需的其他权限,第三步实际只新增:
68
68
 
69
- `im:message.group_msg` 无法通过飞书一键配置新增。缺少该权限时,Agent Bot 会显示二维码,以及已筛选该权限的开发者后台直达链接。请手动新增权限、发布应用版本,并在需要时完成租户管理员审批。Agent Bot 等待权限生效时,可输入 `Y` 跳过该权限并继续初始化;最终结果会提示机器人无法响应未 @ 它的普通群消息。
69
+ | 类型 | 事件或回调 | 功能 |
70
+ | ---- | ---------- | ------------------ |
71
+ | 事件 | `im.chat.updated_v1` | 检测群改名,把群名同步到 agent 任务标题。 |
72
+ | 回调 | `card.action.trigger` | 卡片按钮交互。 |
70
73
 
71
- 缺少非核心权限或订阅时,Agent Bot 会先显示二维码和授权链接,然后立即等待最多 5 分钟使配置生效。终端只提供一个选项:输入 `Y` 跳过可选授权并继续;否则直接在浏览器中完成授权,Agent Bot 会持续等待。可选授权失败或超时不会阻止启动,Agent Bot 会提示可能无法使用的功能。
74
+ 完成这些步骤后,即完成了 `~/.agent-bot` 目录的初始化。Agent Bot 会自动启动,并使用飞书机器人向你发送欢迎消息,你可以开始在飞书中使用 Agent Bot 了。
72
75
 
73
- | 参数 | 作用 |
74
- | ---------------------- | ------------------------- |
75
- | `--reset` | 备份并完整重置显式指定的 Profile |
76
- | `--skip-feishu` | 仅初始化 Console 使用环境,不启动 Server |
77
- | `--reconfigure-feishu` | 替换已有飞书凭据 |
78
- | `--json` | 输出便于程序读取的结果 |
79
- | `--profile <目录>` | 使用指定目录中的独立 Profile |
80
- | `--config <路径>` | 使用指定配置文件 |
76
+ Agent Bot 自带保活机制,确保在 Agent Bot,Codex 或 TraeX 崩溃后能够自动重新连接。
81
77
 
82
- 升级 Agent Bot 后,可以重新运行 `agentbot init` 刷新 Profile。它会保留现有 `config.yaml` 和 `.env` 中的值,补齐当前版本新增的配置项和环境变量,允许确认或更换默认 Agent,并重新检查 Agent 与机器人配置。如果 Server 已在运行,初始化会保留当前服务。非交互式终端无法询问选择,此时会保留配置中已有的默认 Agent。
78
+ ### 启动与停止
83
79
 
84
- 如需完整重新配置一个 Profile,请先停止它的 Server,并显式指定 Profile:
80
+ 启动服务:
85
81
 
86
- ```powershell
87
- agentbot --profile ~/.agent-bot init --reset
82
+ ```bash
83
+ # agentbot init 会自动启动 Server,一般不需要手动启动。
84
+ agentbot server start
88
85
  ```
89
86
 
90
- 重置会把当前 `config.yaml`、`.env`、`data/` 和 `logs/` 移入 `.reset-backups` 下新的时间戳目录,再创建干净的新文件和目录。已有备份会永久保留,不会被后续重置覆盖或清理。远端旧飞书应用不会被删除。
91
-
92
- ### 启动与停止
87
+ 查看服务状态:
93
88
 
94
- ```powershell
89
+ ```bash
95
90
  agentbot server status
96
91
  ```
97
92
 
98
- `agentbot init` 会自动启动 Server。之后如果手动停止了服务,可执行 `agentbot server start` 再次启动。仅在本地使用时,请通过 `--skip-feishu` 初始化并运行 `agentbot console`。
99
-
100
- `Agent Bot 已启动` 启动卡片会显示当前正在运行的 Agent Bot 版本。
101
-
102
- 打开飞书,找到机器人并发送消息。当前会话没有任务时,Agent Bot 会自动创建。
103
-
104
93
  停止服务:
105
94
 
106
- ```powershell
95
+ ```bash
107
96
  agentbot server stop
108
97
  ```
109
98
 
99
+ 安全重启服务:
100
+
101
+ ```bash
102
+ agentbot server restart
103
+ ```
104
+
105
+ 他会等待当前运行中的 Agent 任务完成后自动重启,确保所有任务都能正常执行。
106
+
110
107
  ### 更新或卸载
111
108
 
112
109
  替换或移除全局包前,先停止正在运行的服务:
113
110
 
114
- ```powershell
111
+ ```bash
115
112
  agentbot server stop
116
113
  npm install --global @keyou007/agent-bot@latest
117
- agentbot server start
114
+ agentbot init # 更新 Profile 并启动 Server
118
115
  ```
119
116
 
120
117
  卸载:
121
118
 
122
- ```powershell
119
+ ```bash
123
120
  agentbot server stop
124
121
  npm uninstall --global @keyou007/agent-bot
125
122
  ```
126
123
 
127
124
  卸载 npm 包不会删除 `~/.agent-bot` 中的用户数据。
128
125
 
129
- ## 日常命令
126
+ ### 多 Profile
130
127
 
131
- ### 服务管理
128
+ 多 Profile 支持在同一台设备上运行多个 Agent Bot 机器人,它们互相独立,互不干扰。
132
129
 
133
- ```powershell
134
- agentbot server status
135
- agentbot server start
136
- agentbot server stop
137
- agentbot server restart
130
+ 使用以下命令创建新 Profile:
131
+
132
+ ```bash
133
+ # 指定新 profile 目录,初始化新机器人
134
+ agentbot --profile ~/.agent-bot-rescue init
135
+ agentbot --profile ~/.agent-bot-rescue server start
136
+ agentbot --profile ~/.agent-bot-rescue server status
137
+ ```
138
+
139
+ 不指定 `--profile` 时使用位于 `~/.agent-bot` 的主 Profile。
140
+
141
+ 每个 Profile 都在所选目录内保存自己的 `config.yaml`、`.env`、`data/` 和 `logs/`,飞书凭据与本地控制端点也相互隔离。
142
+
143
+ ### 重置 Profile
144
+
145
+ 如需完整重新配置一个现有 Profile,请先停止它的 Server,并显式指定 Profile:
146
+
147
+ ```bash
148
+ agentbot --profile ~/.agent-bot server stop # 停止主 Profile 的 Server
149
+ agentbot --profile ~/.agent-bot init --reset # 重置主 Profile
138
150
  ```
139
151
 
140
- `server restart` 默认等待当前工作完成后再重启;等待期间可通过状态卡片下方的 `Cancel` 按钮取消。只有可接受中断时才使用 `--immediate`。
152
+ 重置会把当前 `config.yaml`、`.env`、`data/` 和 `logs/` 移入 `.reset-backups` 目录中,再创建干净的新文件和目录。已有备份会永久保留,不会被后续重置覆盖或清理。远端旧飞书应用不会被删除。
141
153
 
142
- Windows 下每次启动 Supervisor 或 Worker 都会重新读取最新的系统和用户环境变量。修改 `PATH` 或其他系统环境变量后重启服务即可生效,当前 Profile 选择仍保持隔离。
154
+ 重置不会清理 Codex 或 TraeX 的聊天会话,只会重建飞书机器人以及清理 Agent Bot 的本地数据。
143
155
 
144
- `server status` 会显示当前运行服务使用的 Lark App ID;添加 `--json` 后可从 `feishuAppId` 字段读取。
156
+ ## 日常命令
145
157
 
146
- ### Console
158
+ ### Console UI/TUI
147
159
 
148
- ```powershell
160
+ ```bash
149
161
  agentbot console
150
162
  ```
151
163
 
@@ -153,8 +165,9 @@ Console UI 不需要飞书凭据。除非传入 `--force`,否则不会与正
153
165
 
154
166
  ### 任务管理
155
167
 
156
- ```powershell
168
+ ```bash
157
169
  agentbot task list
170
+ agentbot task current [--json]
158
171
  agentbot task status <任务>
159
172
  agentbot task prompt <任务> "<prompt>"
160
173
  agentbot task newgroup <任务> [标题] [--agent <标准名>] [--dir <路径> | --nodir]
@@ -163,13 +176,13 @@ agentbot task title <任务> "<标题>"
163
176
  agentbot task stop <任务>
164
177
  ```
165
178
 
166
- `<任务>` 可以是 `task list` 中的序号、任务 ID 或唯一的任务 ID 前缀。运行 `agentbot --help` 可查看完整 CLI 参数。
179
+ `task current` 会显示当前调用 CLI 的 Codex 或 TraeX 任务详情;JSON 输出包含 Agent Bot 的 `localSessionId` 和原生 `remoteSessionId`。`<任务>` 可以是 `task list` 中的序号、任务 ID 或唯一的任务 ID 前缀。运行 `agentbot --help` 可查看完整 CLI 参数。
167
180
 
168
181
  `task newgroup` 会创建飞书群和新任务。默认继承源任务的 Agent 和运行设置;`--agent <标准名>` 可选择另一个已配置的 Agent,此时仍继承源任务的项目形态,但 Provider、模型、思考强度和权限模式使用目标 Agent 自己的 Runtime 默认值。`--dir` 可覆盖项目目录并支持 `~`,`--nodir` 会强制创建 Projectless App Server 任务。`task forkgroup` 从源任务最新可用的已完成 turn 创建分支,不会中断正在执行的 turn。两个命令都要求 Server 正在运行,邀请 Profile 中保存的授权用户,不会切换源会话的当前任务,并支持 `--json`。
169
182
 
170
183
  ## 飞书命令
171
184
 
172
- 普通文本会继续当前任务,以 `/` 开头的消息会作为命令处理。
185
+ 在飞书聊天框直接输入 `/` 开头的消息会作为命令处理。
173
186
 
174
187
  | 命令 | 作用 |
175
188
  | --------------------------------------- | -------------------------- |
@@ -177,6 +190,7 @@ agentbot task stop <任务>
177
190
  | `/sessions [关键词]` | 浏览可用的 App Server 任务 |
178
191
  | `/switch [任务]` | 切换任务,或返回上一个任务 |
179
192
  | `/fork [任务]` | 创建并打开任务分支 |
193
+ | `/turns` | 浏览历史对话轮次并重置对话 |
180
194
  | `/status [任务]` | 查看任务进度和结果 |
181
195
  | `/title <标题>` | 修改当前任务标题 |
182
196
  | `/stop` | 停止当前执行 |
@@ -190,17 +204,16 @@ agentbot task stop <任务>
190
204
  | `/newgroup [标题] [--dir <cwd> \| --nodir]` | 为新任务创建私有群 |
191
205
  | `/forkgroup [标题]` | 将当前位置分支到私有群 |
192
206
  | `/agent [名称]` | 打开 Agent 设置或切换默认 Agent |
193
- | `! <命令>` | 在任务目录执行本地命令 |
194
207
  | `/restart [--force]` | 默认安全重启;`--force` 立即重启 |
195
208
  | `/help` | 显示聊天内帮助 |
196
209
 
197
210
  斜杠命令支持任意唯一前缀,复合命令还支持首字母缩写:`/sess` 等同于 `/sessions`,`/fg` 等同于 `/forkgroup`,`/ng` 等同于 `/newgroup`,`/ns` 等同于 `/nosteer`。完整命令名优先;`/s`、`/f` 等匹配多个命令的前缀会被拒绝,并列出全部候选命令。
198
211
 
199
- `/agent`、`/provider`、`/model`、`/thinking` 和 `/permissions` 在存在可选项时使用同一张运行设置卡片。配置了多个 Agent 时,卡片会增加 Agent tab,用于选择后续新任务使用的默认 Agent;即使当前聊天还没有任务,`/agent` 也能打开该 tab。只配置一个 Agent 时,`/agent` 直接显示当前 Agent,不打开卡片。现有任务仍保持原来的 Agent,使用不同 Agent 的任务可以相互独立地运行。`/agent <名称>` 继续支持直接选择。没有可切换的 Provider 时,`/provider` 同样只显示当前 Provider。其余四个命令激活各自对应的 tab,且不接受参数。没有可继承设置的新任务使用所选 Agent 的默认 Provider。
200
-
201
212
  私聊、群正文和话题分别维护当前任务。可以单独发送图片,也可以同时发送文字和图片。任务运行中发送普通文字会追加指令;需要确保形成后续 turn 时使用 `/queue`(或 `/nosteer`)。
202
213
 
203
- `/sessions` 卡片为每个任务提供 `NewGroup` 和 `ForkGroup` 操作,可直接按所选任务创建同项目的新群,或把所选任务 Fork 到新群。
214
+ `/sessions` 卡片每页显示 5 个任务,通过 `Previous` 和 `Next` 原地翻页。每个任务都提供 `NewGroup` 和 `ForkGroup` 操作,可直接按所选任务创建同项目的新群,或把所选任务 Fork 到新群。
215
+
216
+ `/turns` 会打开当前任务的已完成轮次列表,每页显示 10 个 turn。每条 turn 使用独立的序号节点和缩进内容;图谱 lane 按真实父轮次绘制 Reset 产生的分支与合并,并跨分页保持连续,不再按完成时间相邻关系直接连线。当前对话位置标记为“当前”,其余记录后的 `Reset` 按钮会把对话上下文恢复到该轮完成时并将标记移动到这里,但不会回退本地文件。成功提示会显示目标轮次的 Prompt 摘要、完成时间和 Turn ID。所选位置之后原本已经完成的轮次仍会保留在历史列表中,Reset 后新分支产生的轮次也会显示;任务执行期间不能 Reset。
204
217
 
205
218
  在话题中使用 `/forkgroup` 时,如果话题任务还没有完成过自己的 turn,则从话题原始 turn fork;完成过后则从话题任务最近完成的 turn fork。正在执行的 turn 不会作为 fork 点。
206
219
 
@@ -212,6 +225,12 @@ agentbot task stop <任务>
212
225
 
213
226
  把已绑定任务的群改名为 `[agent] [project dir] title` 时,只会把 `title` 同步到当前任务;Agent 和工程目录前缀仅作为群元数据,不会写入任务标题。旧的 `[agent] title` 格式仍然兼容。
214
227
 
228
+ ## 本地命令
229
+
230
+ 在飞书聊天框直接输入 `!` 开头的消息会作为本地命令处理,命令会在当前任务目录执行。
231
+
232
+ 比如 `! ls` 会列出当前目录下的文件,`! git status` 会显示当前 Git 仓库的状态。
233
+
215
234
  ## 配置与数据
216
235
 
217
236
  Agent Bot 将用户相关文件保存在仓库之外:
@@ -225,19 +244,9 @@ Agent Bot 将用户相关文件保存在仓库之外:
225
244
 
226
245
  可通过 `AGENT_BOT_HOME` 修改用户数据目录。配置示例见 [config.example.yaml](config.example.yaml)。
227
246
 
228
- 默认情况下,Agent Bot 会响应机器人所在群内的普通消息。将 `feishu.respondToAllGroupMessages` 设为 `false` 后,群消息必须 @ 当前机器人才会响应,私聊不受影响。初始化仍会申请完整的群消息权限,因此以后切换该配置无需重新授权。
229
-
230
- ### 多 Profile
231
-
232
- 不指定 `--profile` 时使用位于 `~/.agent-bot` 的主 Profile。运行其他相互隔离的机器人时,需要在每次命令中显式指定其目录:
247
+ Agent 进程会继承普通父进程变量及其显式配置的 `agents.<name>.env`。启动 Agent 前,Agent Bot 会移除继承的 `FEISHU_*` 凭据和内部 `AGENT_BOT_*` 状态,再仅提供带命名空间的非敏感 Profile 与 Lark 身份上下文;`FEISHU_APP_SECRET` 永远不会传入 Agent 进程。
233
248
 
234
- ```powershell
235
- agentbot --profile ~/.agent-bot-rescue init
236
- agentbot --profile ~/.agent-bot-rescue server start
237
- agentbot --profile ~/.agent-bot-rescue server status
238
- ```
239
-
240
- 其他 Profile 不按名称注册,而是直接使用目录。每个 Profile 都在所选目录内保存自己的 `config.yaml`、`.env`、`data/` 和 `logs/`,飞书凭据与本地控制端点也相互隔离。`--profile` 不能和 `--config` 同时使用。
249
+ 默认情况下,Agent Bot 会响应机器人所在群内的普通消息。将 `feishu.respondToAllGroupMessages` 设为 `false` 后,群消息必须 @ 当前机器人才会响应,私聊不受影响。初始化仍会申请完整的群消息权限,因此以后切换该配置无需重新授权。
241
250
 
242
251
  ## 常见问题
243
252
 
@@ -1,18 +1,23 @@
1
1
  import readline from "node:readline";
2
2
  import { AcpJsonRpcConnection } from "./AcpJsonRpcConnection.js";
3
- import { agentBotEnvironment } from "../runtime/agentEnvironment.js";
3
+ import { agentBotEnvironment, } from "../runtime/agentEnvironment.js";
4
4
  import { spawnStdioCommand } from "../utils/spawnCommand.js";
5
5
  export class AcpProcessManager {
6
6
  logger;
7
+ environmentContext;
7
8
  processes = new Map();
8
- constructor(logger) {
9
+ constructor(logger, environmentContext = () => ({})) {
9
10
  this.logger = logger;
11
+ this.environmentContext = environmentContext;
10
12
  }
11
13
  start(processKey, agentName, agent) {
12
14
  if (this.processes.has(processKey)) {
13
15
  throw new Error(`ACP process already exists: ${processKey}`);
14
16
  }
15
- const child = spawnStdioCommand(agent.command, agent.args, agentBotEnvironment(process.env, agent.env));
17
+ const child = spawnStdioCommand(agent.command, agent.args, agentBotEnvironment(process.env, agent.env, {
18
+ ...this.environmentContext(),
19
+ agentName,
20
+ }));
16
21
  const childLogger = this.logger.child({ processKey, agentName });
17
22
  const connection = new AcpJsonRpcConnection(child, childLogger);
18
23
  const managed = {
@@ -1 +1 @@
1
- {"version":3,"file":"AcpProcessManager.js","sourceRoot":"","sources":["../../src/acp/AcpProcessManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcpProcessManager.js","sourceRoot":"","sources":["../../src/acp/AcpProcessManager.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export class AcpSessionManager {
7
7
  sessions = new Map();
8
8
  sessionsByAcpId = new Map();
9
9
  processStart;
10
+ processVersion;
10
11
  constructor(agentName, agent, processManager, logger) {
11
12
  this.agentName = agentName;
12
13
  this.agent = agent;
@@ -16,6 +17,15 @@ export class AcpSessionManager {
16
17
  get(localSessionId) {
17
18
  return this.sessions.get(localSessionId);
18
19
  }
20
+ getProcessInfo() {
21
+ const pid = this.processManager.get(this.agentName)?.child.pid;
22
+ if (!pid)
23
+ return {};
24
+ return {
25
+ pid,
26
+ ...(this.processVersion ? { version: this.processVersion } : {}),
27
+ };
28
+ }
19
29
  async create(input) {
20
30
  if (input.agentName !== this.agentName)
21
31
  throw new Error(`Unexpected agent: ${input.agentName}`);
@@ -86,6 +96,7 @@ export class AcpSessionManager {
86
96
  this.sessions.clear();
87
97
  this.sessionsByAcpId.clear();
88
98
  this.processStart = undefined;
99
+ this.processVersion = undefined;
89
100
  this.processManager.stopAll();
90
101
  }
91
102
  async setMode(localSessionId, modeId) {
@@ -131,6 +142,7 @@ export class AcpSessionManager {
131
142
  }
132
143
  }
133
144
  async startProcess() {
145
+ this.processVersion = undefined;
134
146
  const managed = this.processManager.start(this.agentName, this.agentName, this.agent);
135
147
  try {
136
148
  const connection = managed.connection;
@@ -162,6 +174,9 @@ export class AcpSessionManager {
162
174
  version: "0.1.0",
163
175
  },
164
176
  });
177
+ const version = initializeResult.agentInfo?.version?.trim();
178
+ if (version)
179
+ this.processVersion = version;
165
180
  if (initializeResult.authMethods?.length) {
166
181
  const method = initializeResult.authMethods[0];
167
182
  this.logger.info({ methodId: method.id }, "Authenticating ACP agent with first advertised method.");
@@ -1 +1 @@
1
- {"version":3,"file":"AcpSessionManager.js","sourceRoot":"","sources":["../../src/acp/AcpSessionManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AcpSessionManager.js","sourceRoot":"","sources":["../../src/acp/AcpSessionManager.ts"],"names":[],"mappings":"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"}
@@ -6,13 +6,18 @@ import { nodeDiagnosticReportArguments, prepareCrashReportDirectory, resolveSupe
6
6
  import { refreshedSystemEnvironment } from "../supervision/systemEnvironment.js";
7
7
  import { controlEndpoint } from "./controlProtocol.js";
8
8
  import { cliText } from "./i18n.js";
9
- import { isServerReachable, isServerRunning } from "./LocalControlClient.js";
9
+ import { isServerReachable, isServerRunning, sendControlRequest, } from "./LocalControlClient.js";
10
10
  const SERVER_START_TIMEOUT_MS = 45_000;
11
11
  export async function startInitializedServer(options, dependencies = defaultInitializationDependencies) {
12
12
  if (options.skipFeishu) {
13
13
  return { status: "skipped", reason: "feishu-skipped" };
14
14
  }
15
- return dependencies.startServer(dependencies.loadConfig(options.configPath));
15
+ const config = dependencies.loadConfig(options.configPath);
16
+ const result = await dependencies.startServer(config);
17
+ if (result.status !== "already-running")
18
+ return result;
19
+ await dependencies.restartServer(config);
20
+ return { status: "restart-scheduled" };
16
21
  }
17
22
  export async function startServer(config, dependencies = defaultDependencies) {
18
23
  try {
@@ -70,6 +75,16 @@ const defaultDependencies = {
70
75
  const defaultInitializationDependencies = {
71
76
  loadConfig,
72
77
  startServer: (config) => startServer(config),
78
+ restartServer: async (config) => {
79
+ const response = await sendControlRequest(controlEndpoint(config.storage.sqlitePath), {
80
+ action: "server_restart",
81
+ mode: "safe",
82
+ reason: "Agent Bot 初始化完成,需要加载当前版本",
83
+ });
84
+ if (!response.ok) {
85
+ throw new Error(response.message?.trim() || cliText("Could not schedule the Agent Bot restart after initialization.", "初始化完成后无法安排 Agent Bot 重启。"));
86
+ }
87
+ },
73
88
  };
74
89
  async function waitForServer(endpoint, timeoutMs) {
75
90
  const deadline = Date.now() + timeoutMs;
@@ -1 +1 @@
1
- {"version":3,"file":"ServerStarter.js","sourceRoot":"","sources":["../../src/cli/ServerStarter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServerStarter.js","sourceRoot":"","sources":["../../src/cli/ServerStarter.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"controlProtocol.js","sourceRoot":"","sources":["../../src/cli/controlProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AA8C7B,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO;QACjC,CAAC,CAAC,0BAA0B,GAAG,EAAE;QACjC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"controlProtocol.js","sourceRoot":"","sources":["../../src/cli/controlProtocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,IAAI,MAAM,WAAW,CAAC;AAmD7B,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAC9C,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/F,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO;QACjC,CAAC,CAAC,0BAA0B,GAAG,EAAE;QACjC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC;AACtE,CAAC"}
package/dist/cli/help.js CHANGED
@@ -12,10 +12,11 @@ export function renderCliHelp(version, language = cliLanguage) {
12
12
  init --reset 重置并重新配置显式指定的 Profile
13
13
  console 打开本地控制台
14
14
  server start 在后台启动 Agent Bot
15
- server status 显示服务、飞书 App ID 和安全重启状态
16
- server restart 安排安全重启
15
+ server status 显示服务、飞书 App ID、Agent 进程和安全重启状态
16
+ server restart [--task <任务>] 安排安全重启并将状态发回指定任务会话
17
17
  server stop 停止 Agent Bot
18
18
  task list 列出任务
19
+ task current [--json] 显示当前调用任务的详情
19
20
  task status <任务> 显示任务状态
20
21
  task chat <任务> 显示任务绑定的飞书会话
21
22
  task prompt <任务> <提示词> 向任务发送提示词
@@ -38,6 +39,11 @@ export function renderCliHelp(version, language = cliLanguage) {
38
39
  --skip-feishu 仅初始化 Console 环境
39
40
  --reconfigure-feishu 仅替换现有飞书凭据
40
41
 
42
+ 重启选项:
43
+ --task <任务> 将安全重启状态发回任务所在会话
44
+ --reason <原因> 设置重启原因
45
+ --immediate 立即重启,可能中断任务
46
+
41
47
  示例:
42
48
  agentbot init
43
49
  agentbot --profile ~/.agent-bot init --reset
@@ -59,10 +65,11 @@ Common commands:
59
65
  init --reset Reset and reconfigure an explicit profile
60
66
  console Open the local console
61
67
  server start Start Agent Bot in the background
62
- server status Show the server, Lark App ID, and safe-restart status
63
- server restart Schedule a safe restart
68
+ server status Show the server, Lark App ID, Agent processes, and safe-restart status
69
+ server restart [--task <task>] Schedule a safe restart and return status to the task's conversation
64
70
  server stop Stop Agent Bot
65
71
  task list List tasks
72
+ task current [--json] Show details for the task invoking the CLI
66
73
  task status <task> Show task status
67
74
  task chat <task> Show the task's Lark chat binding
68
75
  task prompt <task> <prompt> Send a Prompt to a task
@@ -85,6 +92,11 @@ Init options:
85
92
  --skip-feishu Initialize for Console only
86
93
  --reconfigure-feishu Replace only the existing Lark credentials
87
94
 
95
+ Restart options:
96
+ --task <task> Return safe-restart status to the task's conversation
97
+ --reason <reason> Set the restart reason
98
+ --immediate Restart immediately and possibly interrupt tasks
99
+
88
100
  Examples:
89
101
  agentbot init
90
102
  agentbot --profile ~/.agent-bot init --reset
@@ -1 +1 @@
1
- {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,WAAW,CAAC;AAE1D,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,QAAQ,GAAgB,WAAW;IAChF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,aAAa,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C9B,CAAC;IACA,CAAC;IAED,OAAO,aAAa,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6C5B,CAAC;AACF,CAAC"}
1
+ {"version":3,"file":"help.js","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,WAAW,CAAC;AAE1D,MAAM,UAAU,aAAa,CAAC,OAAe,EAAE,QAAQ,GAAgB,WAAW;IAChF,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;QACtB,OAAO,aAAa,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmD9B,CAAC;IACA,CAAC;IAED,OAAO,aAAa,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmD5B,CAAC;AACF,CAAC"}
@@ -22,17 +22,44 @@ export function formatServerStatus(data, language = cliLanguage) {
22
22
  const safeRestart = value.safeRestartScheduled
23
23
  ? cliText(`pending (${String(value.safeRestartReason ?? "no reason provided")})`, `等待中(${String(value.safeRestartReason ?? "未提供原因")})`, language)
24
24
  : cliText("not scheduled", "未计划", language);
25
+ const agents = formatAgentProcesses(value.agents, language);
25
26
  return [
26
27
  `${cliText("Agent Bot server: ", "Agent Bot 服务:", language)}${state}`,
27
28
  `${cliText("Lark App ID: ", "飞书 App ID:", language)}${value.feishuAppId ?? cliText("not configured", "未配置", language)}`,
28
29
  `${cliText("PID: ", "PID:", language)}${value.pid ?? "-"}`,
29
30
  `${cliText("Started at: ", "启动时间:", language)}${value.startedAt ?? "-"}`,
30
31
  `${cliText("Supervisor: ", "Supervisor:", language)}${value.supervised ? cliText("enabled", "已启用", language) : cliText("disabled", "未启用", language)}`,
32
+ ...agents,
31
33
  `${cliText("Running tasks: ", "运行中任务:", language)}${activity.runningSessions ?? 0}`,
32
34
  `${cliText("Pending final deliveries: ", "待发送最终结果:", language)}${activity.pendingFinalDeliveries ?? 0}`,
33
35
  `${cliText("Safe restart: ", "安全重启:", language)}${safeRestart}`,
34
36
  "",
35
37
  ].join("\n");
36
38
  }
39
+ function formatAgentProcesses(value, language) {
40
+ const agents = Array.isArray(value)
41
+ ? value.filter((item) => Boolean(item) && typeof item === "object")
42
+ : [];
43
+ if (agents.length === 0) {
44
+ return [`${cliText("Agents: ", "Agent 进程:", language)}-`];
45
+ }
46
+ return [
47
+ cliText("Agents:", "Agent 进程:", language),
48
+ ...agents.map((agent) => {
49
+ const name = typeof agent.name === "string" && agent.name.trim() ? agent.name.trim() : "-";
50
+ const title = typeof agent.title === "string" && agent.title.trim() ? agent.title.trim() : undefined;
51
+ const label = title && title !== name ? `${name} (${title})` : name;
52
+ const pid = typeof agent.pid === "number" && Number.isInteger(agent.pid) && agent.pid > 0
53
+ ? String(agent.pid)
54
+ : "-";
55
+ const version = typeof agent.version === "string" && agent.version.trim()
56
+ ? agent.version.trim()
57
+ : "-";
58
+ return language === "zh"
59
+ ? ` ${label}:PID ${pid},版本 ${version}`
60
+ : ` ${label}: PID ${pid}, version ${version}`;
61
+ }),
62
+ ];
63
+ }
37
64
  import { cliLanguage, cliText } from "./i18n.js";
38
65
  //# sourceMappingURL=serverStatus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverStatus.js","sourceRoot":"","sources":["../../src/cli/serverStatus.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,yBAAyB,CACvC,IAAa,EACb,qBAA8B;IAE9B,MAAM,KAAK,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;QAC5C,CAAC,CAAC,IAA+B;QACjC,CAAC,CAAC,EAAE,CAAC;IACP,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,OAAO;QACL,GAAG,KAAK;QACR,WAAW,EAAE,qBAAqB,IAAI,IAAI;KAC3C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAa,EAAE,QAAQ,GAAgB,WAAW;IACnF,MAAM,KAAK,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAA+B,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,KAAK,QAAQ;QACnE,CAAC,CAAC,KAAK,CAAC,QAAmC;QAC3C,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,KAAK,KAAK;QACnC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC;QACzC,CAAC,CAAC,KAAK,CAAC,KAAK,KAAK,KAAK;YACrB,CAAC,CAAC,OAAO,CAAC,+BAA+B,EAAE,aAAa,EAAE,QAAQ,CAAC;YACnE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC1C,MAAM,WAAW,GAAG,KAAK,CAAC,oBAAoB;QAC5C,CAAC,CAAC,OAAO,CACL,YAAY,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,oBAAoB,CAAC,GAAG,EACtE,OAAO,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,EACpD,QAAQ,CACT;QACH,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9C,OAAO;QACL,GAAG,OAAO,CAAC,oBAAoB,EAAE,eAAe,EAAE,QAAQ,CAAC,GAAG,KAAK,EAAE;QACrE,GAAG,OAAO,CAAC,eAAe,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,WAAW,IAAI,OAAO,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE;QACvH,GAAG,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE;QAC1D,GAAG,OAAO,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,SAAS,IAAI,GAAG,EAAE;QACxE,GAAG,OAAO,CAAC,cAAc,EAAE,aAAa,EAAE,QAAQ,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE;QACrJ,GAAG,OAAO,CAAC,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,eAAe,IAAI,CAAC,EAAE;QACnF,GAAG,OAAO,CAAC,4BAA4B,EAAE,UAAU,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,sBAAsB,IAAI,CAAC,EAAE;QACvG,GAAG,OAAO,CAAC,gBAAgB,EAAE,OAAO,EAAE,QAAQ,CAAC,GAAG,WAAW,EAAE;QAC/D,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AACD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAoB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"serverStatus.js","sourceRoot":"","sources":["../../src/cli/serverStatus.ts"],"names":[],"mappings":"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"}