personal-bot 0.2.8 → 0.2.10
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/CONTEXT.md +40 -59
- package/README.md +70 -119
- package/README.zh-CN.md +73 -116
- package/docs/README.md +22 -19
- package/docs/agent-collaboration.md +10 -12
- package/docs/architecture-guidelines.md +2 -2
- package/docs/capability-design.md +4 -12
- package/docs/dsh.md +32 -96
- package/docs/file-storage.md +8 -5
- package/docs/history.md +5 -12
- package/docs/installation-design.md +56 -198
- package/docs/model-context.md +23 -37
- package/docs/model-instruction-guidelines.md +2 -2
- package/docs/release.md +5 -5
- package/docs/technical-design.md +16 -12
- package/docs/workspace-configuration.md +55 -0
- package/lib/client.js +28 -3
- package/lib/common/typebox.LICENSE +23 -0
- package/lib/common/typebox.js +4740 -0
- package/lib/dsh.js +0 -5
- package/lib/extension/dsh/command.js +15 -11
- package/lib/extension/dsh/history.js +1 -1
- package/lib/extension/dsh/management.d.ts +4 -0
- package/lib/extension/dsh/management.js +21 -6
- package/lib/extension/dsh/workspace.d.ts +7 -1
- package/lib/extension/dsh/workspace.js +68 -1
- package/lib/extension/setup-cli.js +1 -1
- package/lib/integrations/dsh/skills.d.ts +4 -0
- package/lib/integrations/dsh/skills.js +27 -0
- package/lib/model/history.d.ts +1 -0
- package/lib/model/workspace-config.d.ts +9 -0
- package/lib/model/workspace-config.js +1 -0
- package/lib/services/history/history-service.d.ts +1 -2
- package/lib/services/history/history-service.js +27 -40
- package/lib/services/workspace/workspace-config.d.ts +7 -0
- package/lib/services/workspace/workspace-config.js +50 -0
- package/lib/services/workspace/workspace-preparation.d.ts +1 -0
- package/lib/services/workspace/workspace-preparation.js +8 -0
- package/lib/storage/history-files.d.ts +5 -1
- package/lib/storage/history-files.js +68 -15
- package/lib/tools/agents/contract.js +1 -1
- package/lib/tools/agents/dsh-contract.js +1 -1
- package/lib/tools/history/contract.js +1 -1
- package/lib/tools/teams/contract.js +1 -1
- package/lib/ui/dsh/management.js +27 -3
- package/npm-shrinkwrap.json +10 -3
- package/package.json +102 -31
- package/python/README.md +6 -6
- package/resources/prompts/workspace.md +3 -3
- package/scripts/README.md +16 -15
- package/src/dsh.ts +0 -5
- package/src/extension/command.ts +25 -8
- package/src/extension/dsh/command.ts +13 -8
- package/src/extension/dsh/history.ts +2 -2
- package/src/extension/dsh/management.ts +21 -5
- package/src/extension/dsh/workspace.ts +62 -5
- package/src/extension/events.ts +18 -1
- package/src/extension/lifecycle.ts +9 -2
- package/src/extension/setup-cli.ts +1 -1
- package/src/extension/subagent-entry.ts +4 -1
- package/src/integrations/dsh/skills.ts +30 -0
- package/src/integrations/pi/skills.ts +52 -0
- package/src/model/history.ts +1 -0
- package/src/model/workspace-config.ts +10 -0
- package/src/pbot.ts +2 -3
- package/src/services/history/history-service.ts +15 -25
- package/src/services/workspace/workspace-config.ts +49 -0
- package/src/services/workspace/workspace-preparation.ts +8 -0
- package/src/storage/history-files.ts +53 -15
- package/src/ui/dsh/management.ts +20 -3
- package/docs/dsh-implementation-plan.md +0 -160
- package/docs/dsh-support-proposal.md +0 -298
- package/docs/dsh.en.md +0 -333
- package/docs/subagent-upgrade-proposal.md +0 -357
- package/docs/validation.md +0 -189
package/docs/dsh.md
CHANGED
|
@@ -1,46 +1,25 @@
|
|
|
1
1
|
# dsh 使用说明
|
|
2
2
|
|
|
3
|
-
[English](dsh.en.md) | 简体中文
|
|
4
|
-
|
|
5
3
|
Personal Bot 使用 dsh 原生 Web 界面,提供工作区资料、专家、团队、历史查询和 Python 环境。它与 Pi 共用资料、角色、方法及协作规则,各自管理原生会话、模型配置、认证与 MCP。
|
|
6
4
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
本文分别介绍终端命令和聊天框中的 `/pbot` 命令。升级后以实际安装版的帮助为准。已完成检查及真实模型验收缺口见[实施记录](dsh-implementation-plan.md)和[验证](validation.md)。
|
|
5
|
+
安装和更新使用 dsh 最新版,最低宿主版本为 `0.2.2-rc.1`。本文区分终端命令与聊天框中的 `/pbot` 命令,升级后可查看实际安装版的帮助。
|
|
10
6
|
|
|
11
7
|
## 安装与首次启动(CLI + 浏览器)
|
|
12
8
|
|
|
13
|
-
需要 Node.js 24.9+、npm、pnpm,以及 Python 3.11+ 和 venv/ensurepip
|
|
14
|
-
|
|
15
|
-
在终端检查要求,安装最新 dsh 与插件管理所需的 pnpm:
|
|
9
|
+
需要 Node.js 24.9+、npm、pnpm,以及 Python 3.11+ 和 venv/ensurepip。新版本的 Node.js 要求以 dsh 的 engines 为准。安装使用原生插件与 profile:
|
|
16
10
|
|
|
17
11
|
```bash
|
|
18
|
-
node --version
|
|
19
|
-
npm --version
|
|
20
|
-
python3 --version
|
|
21
12
|
npm view @deepseek-ai/dsh@latest version engines --json
|
|
22
13
|
npm install -g @deepseek-ai/dsh@latest pnpm@latest
|
|
23
|
-
|
|
24
|
-
pnpm --version
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
仅首次创建独立的 `pbot` Web profile 时执行:
|
|
28
|
-
|
|
29
|
-
```bash
|
|
14
|
+
# 仅首次创建;会覆盖已有同名 profile
|
|
30
15
|
dsh --profile pbot --from-default-profile web --dump-config
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
`pbot` 是可自选的 profile 名称,后续命令应保持一致。`--from-default-profile web` **会覆盖已有同名 profile**;这里的 `--dump-config` 只让创建后打印配置并退出,不会把整个命令变成只读操作。更新时不要重复执行。
|
|
34
|
-
|
|
35
|
-
安装 Personal Bot 并启动:
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
16
|
dsh plugin --profile pbot add personal-bot@latest
|
|
39
|
-
dsh plugin --profile pbot list personal-bot --depth 0
|
|
40
17
|
dsh --profile pbot
|
|
41
18
|
```
|
|
42
19
|
|
|
43
|
-
|
|
20
|
+
`pbot` 是可自选的 profile 名称,内置 `web` 也可安装同一插件。安装和插件开关作用于 profile,各工作区通过 `/pbot init` 创建共用的 `.pbot/config.json` 并启用 Personal Bot,规则见[工作区配置](workspace-configuration.md)。已有 profile 更新时不要重复执行 `--from-default-profile`。
|
|
21
|
+
|
|
22
|
+
dsh 启动 Web 服务并通常自动打开浏览器。SSH 或 `--no-open` 模式下手动打开输出的 URL;该地址含访问令牌,应妥善保管。选择工作区和主会话,配置模型与认证,再在聊天框执行:
|
|
44
23
|
|
|
45
24
|
```text
|
|
46
25
|
/pbot status
|
|
@@ -48,9 +27,9 @@ dsh 启动 Web 服务,输出带访问令牌的 URL,通常会自动打开浏
|
|
|
48
27
|
/pbot
|
|
49
28
|
```
|
|
50
29
|
|
|
51
|
-
`status`
|
|
30
|
+
`status` 显示未启用或已启动状态;`init` 补建资料目录和根 AGENTS,保留已有资料与其他配置字段,并立即启用此目录下已打开的主会话;裸 `/pbot` 打开管理界面。已启用工作区加载后会自动准备当前用户共享的 Python venv。准备失败时修复基础环境,再运行 `/pbot python setup`。
|
|
52
31
|
|
|
53
|
-
一个 profile
|
|
32
|
+
一个 profile 可管理多个工作区。通过原生工作区选择器指定目录;默认使用系统 Documents。pbot 绑定主会话创建时的根目录,后续 cwd 变化只影响相对路径解析。
|
|
54
33
|
|
|
55
34
|
## 日常启动与终端命令
|
|
56
35
|
|
|
@@ -87,7 +66,7 @@ dsh --profile pbot --port 8080 --no-open
|
|
|
87
66
|
| `--trusted-host app.example` | 增加原生 Host/Origin 检查允许的主机名或主机名与端口 |
|
|
88
67
|
| `--tls-cert /path/server-chain.pem --tls-key /path/server-key.pem` | 成对指定证书链与未加密 PEM 私钥,为监听服务启用 HTTPS |
|
|
89
68
|
|
|
90
|
-
|
|
69
|
+
远程部署的代理、网络访问与认证设置见 [dsh 原生 Web 文档](https://github.com/deepseek-ai/deepseek-harness/tree/main/packages/bundle/web-app)。
|
|
91
70
|
|
|
92
71
|
## 更新、查询与移除插件
|
|
93
72
|
|
|
@@ -102,7 +81,7 @@ dsh plugin --profile pbot list personal-bot --depth 0
|
|
|
102
81
|
dsh --profile pbot
|
|
103
82
|
```
|
|
104
83
|
|
|
105
|
-
`update personal-bot --latest` 只选择 Personal Bot 更新到当前 `latest`,允许越过原先保存的版本范围;不带 `--latest` 的 update
|
|
84
|
+
`update personal-bot --latest` 只选择 Personal Bot 更新到当前 `latest`,允许越过原先保存的版本范围;不带 `--latest` 的 update 受已有声明限制。更新后用 `/pbot status` 核对版本与环境,旧专家需显式恢复。停用或重载插件也可能释放专家。
|
|
106
85
|
|
|
107
86
|
`dsh plugin --profile pbot` 后面的包管理参数交给 pnpm,必须选对 profile:
|
|
108
87
|
|
|
@@ -137,25 +116,19 @@ dsh plugin --profile pbot add /absolute/path/to/personal-bot-<version>.tgz
|
|
|
137
116
|
dsh --profile pbot
|
|
138
117
|
```
|
|
139
118
|
|
|
140
|
-
|
|
119
|
+
本地来源更新时重新构建并安装 tarball。切回 registry 来源时运行 `dsh plugin --profile pbot add personal-bot@latest`。
|
|
141
120
|
|
|
142
121
|
## 桌面应用
|
|
143
122
|
|
|
144
|
-
在 DeepSeek Harness 的“插件 →
|
|
145
|
-
|
|
146
|
-
CLI 的 `pbot` profile 与 Electron 管理的 `desktop` profile 分开;普通 npm dsh CLI 不管理 `desktop`,也不会把 CLI profile 的插件安装同步到应用。宿主更新使用桌面应用自身的更新方式,插件通过应用的原生插件页面更新。
|
|
123
|
+
在 DeepSeek Harness 的“插件 → 添加插件”中安装并启用 `personal-bot@latest`,也可输入本地 tarball 的绝对路径。应用提供运行时和包管理,宿主与插件分别通过应用更新。
|
|
147
124
|
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
已在 macOS 桌面应用 `0.2.2-rc.1`(内置 Node.js 24.21.0)通过 tarball 验证四页签、附件、完整记录、团队失败暂停、历史查询及刷新;隔离 Python 准备和 5 项原生库测试通过。这不代表从 registry 全新安装或成功模型流程已验收,见[验证记录](validation.md)。
|
|
125
|
+
桌面应用使用独立的 desktop profile;CLI 的 pbot profile 分开管理。应用从登录 Shell 读取环境,Python 3.11+ 应在该 PATH 中可见。安装后选择工作区和主会话,用 `/pbot status` 检查环境。
|
|
151
126
|
|
|
152
127
|
## Task Conductor
|
|
153
128
|
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
### 安装未发布接入
|
|
129
|
+
周期任务、重复流程和 DAG 使用可选的 `task-conductor-plugin`。插件与服务分别安装,配置和更新见[上游接入指南](https://github.com/realqiyan/task-conductor/blob/master/docs/host-integrations.md)。
|
|
157
130
|
|
|
158
|
-
dsh 接入包含于尚未发布的 Task Conductor
|
|
131
|
+
dsh 接入包含于尚未发布的 Task Conductor 0.1.6 候选版本。发布前从同一源码构建插件和服务:
|
|
159
132
|
|
|
160
133
|
```bash
|
|
161
134
|
cd /absolute/path/to/task-conductor
|
|
@@ -164,58 +137,21 @@ npm pack
|
|
|
164
137
|
npm run pack:plugin
|
|
165
138
|
```
|
|
166
139
|
|
|
167
|
-
|
|
140
|
+
使用实际生成的 tarball 路径安装:
|
|
168
141
|
|
|
169
142
|
```bash
|
|
170
|
-
dsh plugin --profile pbot add /absolute/path/to/task-conductor
|
|
171
|
-
|
|
172
|
-
```
|
|
173
|
-
|
|
174
|
-
使用桌面应用时,在应用原生“插件 → 添加插件”中安装并启用同一 tarball。CLI 与桌面 profile 分开,安装一个不会同步到另一个。已有同名插件时切换其来源,只保留一份;后续源码更新重新打包并安装,不能用 registry `update --latest` 获取尚未发布的改动。
|
|
175
|
-
|
|
176
|
-
插件安装不安装或初始化服务。新安装配套服务时,在终端使用本地服务包,再由上游技能指导 setup:
|
|
177
|
-
|
|
178
|
-
```bash
|
|
179
|
-
npm install -g /absolute/path/to/task-conductor/task-conductor-<version>.tgz
|
|
143
|
+
dsh plugin --profile pbot add /absolute/path/to/task-conductor-plugin-<version>.tgz
|
|
144
|
+
npm install -g /absolute/path/to/task-conductor-<version>.tgz
|
|
180
145
|
task-conductor setup
|
|
181
146
|
```
|
|
182
147
|
|
|
183
|
-
已有服务按[
|
|
184
|
-
|
|
185
|
-
### 主会话连接与通知
|
|
186
|
-
|
|
187
|
-
重启相应 dsh 宿主,打开主会话,在聊天框调用 `/using-task-conductor`,或让模型通过原生 skill 工具读取同名技能。技能由插件的原生文件系统 provider 提供,详细安装、任务契约和排障方法均以上游技能为准。
|
|
188
|
-
|
|
189
|
-
聊天命令 `/task-conductor status` 查看当前会话连接与通知归属;完成 setup、注册执行端或修复连接后,用 `/task-conductor connect` 重连。默认连接使用宿主 PATH 中的 `task-conductor` 和默认服务 home。自定义安装时,在启动宿主的环境中设置 `TASK_CONDUCTOR_PREFLIGHT_COMMAND` 为实际程序绝对路径、`TASK_CONDUCTOR_PREFLIGHT_HOME` 为原服务目录,使插件连接、检查与通知使用同一服务。
|
|
190
|
-
|
|
191
|
-
插件为每个根 Agent 建立使用该会话 cwd 的原生 MCP 连接。通过 dsh 的工具发现使用实际名称,例如 `mcp__task-conductor__executor_list` 和 `mcp__task-conductor__task_list`;`task-conductor` 中的连字符保留。普通专家不会因共享 profile 而获得一份独立的协调连接。避免另行注册同名手工 MCP;已有连接按[上游接入说明](https://github.com/realqiyan/task-conductor/blob/master/docs/host-integrations.md)调整来源。原生技能仍可用于服务未就绪时的设置和排障。
|
|
192
|
-
|
|
193
|
-
提交任务时使用目标项目的绝对 `workspace`。通知归属于提交任务的原生持久 Session;恢复原会话后可以补收待处理事件,同项目其他会话不会代收。关闭页面、主会话或 dsh 不停止已提交的服务任务,需通过 Task Conductor 查询和控制;取消当前 run 与停止未来周期分别操作。
|
|
194
|
-
|
|
195
|
-
### 使用 dsh 执行节点
|
|
196
|
-
|
|
197
|
-
以 dsh 为主会话宿主和用 dsh 执行任务节点是两项独立配置。节点通过现有自定义 ACP 注册机制接入,使用 ID `dsh-acp`;`dsh` 不是内置执行端 ID。dsh 的原生命令为 `dsh --profile acp`,可用 `dsh --profile acp --help` 查看当前版本帮助,无需 `--stdio` 参数。
|
|
198
|
-
|
|
199
|
-
在 Task Conductor 管理员 CLI 或 Web 中注册本机 dsh 的规范绝对可执行路径。使用解析符号链接后的实际路径,以下 JSON 中的路径须替换:
|
|
200
|
-
|
|
201
|
-
```json
|
|
202
|
-
{
|
|
203
|
-
"id": "dsh-acp",
|
|
204
|
-
"command": "/absolute/canonical/path/to/dsh/lib/bin.js",
|
|
205
|
-
"args": ["--profile", "acp"]
|
|
206
|
-
}
|
|
207
|
-
```
|
|
208
|
-
|
|
209
|
-
将无秘密的 JSON 保存到选定文件后,在已运行的同一服务实例注册并查询:
|
|
148
|
+
已有服务按[上游升级步骤](https://github.com/realqiyan/task-conductor/blob/master/docs/upgrades.md)更新,保留原服务目录与数据。桌面用户在应用的插件页安装同一插件包。
|
|
210
149
|
|
|
211
|
-
|
|
212
|
-
task-conductor executor register --file /absolute/private/dsh-acp.json --yes
|
|
213
|
-
task-conductor executor show dsh-acp
|
|
214
|
-
```
|
|
150
|
+
重启宿主后,在主会话读取 `/using-task-conductor`;用 `/task-conductor status` 查看连接,修复配置后用 `/task-conductor connect` 重连。插件创建原生 MCP 连接,已有同名连接先按上游指南调整来源。
|
|
215
151
|
|
|
216
|
-
|
|
152
|
+
任务通知回到提交任务的原会话。关闭页面或宿主后服务任务继续运行,当前 run 与未来周期分别查询、停止。
|
|
217
153
|
|
|
218
|
-
ACP
|
|
154
|
+
使用 dsh 执行任务节点时,按上游[自定义 ACP 方法](https://github.com/realqiyan/task-conductor/blob/master/plugin/skills/using-task-conductor/references/custom-acp.md)注册 `dsh-acp`,提供 dsh 的规范绝对可执行路径和 `["--profile", "acp"]` 参数。节点的模型、工具、认证和 Python 环境单独配置。
|
|
219
155
|
|
|
220
156
|
## 管理界面与生命周期
|
|
221
157
|
|
|
@@ -223,7 +159,7 @@ ACP 节点使用后台继承的环境与 dsh 的 `acp` profile,模型认证、
|
|
|
223
159
|
|
|
224
160
|
| 页签 | 操作 |
|
|
225
161
|
| --- | --- |
|
|
226
|
-
| 工作区 |
|
|
162
|
+
| 工作区 | 启动状态、来源、目录、模型、Python 和历史整理状态;初始化启用、准备资料或重试 Python |
|
|
227
163
|
| 专家 | 创建、重命名、停止、显式恢复;人工对话、附件和完整原生记录 |
|
|
228
164
|
| 团队 | 固定成员与职责、有限轮次、暂停、关闭、公共原文和长消息分页 |
|
|
229
165
|
| 历史 | 按 Pi/dsh 来源与时间查询,读取问答和摘要,沿父子节点导航 |
|
|
@@ -232,9 +168,9 @@ ACP 节点使用后台继承的环境与 dsh 的 `acp` profile,模型认证、
|
|
|
232
168
|
|
|
233
169
|
页面通过原生 Remote 查询,不启动专家、领取模型通知或生成摘要。人工命令会保留原生审计记录。关闭面板会取消尚未接纳的上传;关闭、刷新或重连页面不停止已经接纳的工作。结果不明确时先查询状态与记录,再决定后续动作。
|
|
234
170
|
|
|
235
|
-
服务端组件停用、所属父 Agent
|
|
171
|
+
服务端组件停用、所属父 Agent 释放或整个桌面应用退出,会暂停安排并释放其拥有的专家。重新打开页面、重启宿主或启用插件只读取保存记录,需要明确恢复才继续工作。
|
|
236
172
|
|
|
237
|
-
主会话使用原生 write、edit、apply_patch
|
|
173
|
+
主会话使用原生 write、edit、apply_patch 修改原工作区外文件时要求一次原生批准;专家的这些工具拒绝越界修改。Bash、Python、MCP 和扩展使用实际账户权限,详见[工具与执行](capability-design.md)。
|
|
238
174
|
|
|
239
175
|
## 聊天命令总表
|
|
240
176
|
|
|
@@ -283,7 +219,7 @@ ACP 节点使用后台继承的环境与 dsh 的 `acp` profile,模型认证、
|
|
|
283
219
|
| `tools` | 非空的原生能力工具名数组,不用 `run_code` 传输名;团队成员需保留 `pbot_team_message` |
|
|
284
220
|
| `noSkills` | 默认 false;true 关闭该专家的模型技能目录与 skill 工具,用户显式技能命令仍按宿主处理 |
|
|
285
221
|
|
|
286
|
-
专家创建和恢复时应用父会话的原生 preset,保留其文件工具、AGENTS
|
|
222
|
+
专家创建和恢复时应用父会话的原生 preset,保留其文件工具、AGENTS 和技能发现,再应用专家工具限制。显式 complete persona 由宿主按其完整配置提供行为要求。
|
|
287
223
|
|
|
288
224
|
Pi 专属的 `noExtensions`、`noPromptTemplates`、`noContextFiles` 在 dsh 中拒绝。`send.delivery` 为 `steer`(默认,补充当前工作)或 `followUp`(当前工作之后)。`send/resume` 不支持 files、prompts 或模型切换参数。成员被团队占用时私人 send 被拒绝,应先 pause 并等在途工作结束。
|
|
289
225
|
|
|
@@ -302,7 +238,7 @@ Pi 专属的 `noExtensions`、`noPromptTemplates`、`noContextFiles` 在 dsh 中
|
|
|
302
238
|
/pbot agent {"action":"resume","agentId":"AGENT_ID","message":"核对新增资料,只报告变化。"}
|
|
303
239
|
```
|
|
304
240
|
|
|
305
|
-
报告 read 默认选择最近周期,offset 默认 0,limit 默认及上限均为 16000,最小 1,单位为 UTF-16 代码单元。续读固定返回的 `cycle.cycleId`,并把 `nextOffset` 传回 offset;null
|
|
241
|
+
报告 read 默认选择最近周期,offset 默认 0,limit 默认及上限均为 16000,最小 1,单位为 UTF-16 代码单元。续读固定返回的 `cycle.cycleId`,并把 `nextOffset` 传回 offset;null 表示当前报告读完。工作结果查看 `cycle.state` 与报告;人工读取保留模型的完成通知。
|
|
306
242
|
|
|
307
243
|
## 人工对话与完整记录
|
|
308
244
|
|
|
@@ -313,7 +249,7 @@ Pi 专属的 `noExtensions`、`noPromptTemplates`、`noContextFiles` 在 dsh 中
|
|
|
313
249
|
/pbot records {"agentId":"AGENT_ID","offset":0,"limit":30}
|
|
314
250
|
```
|
|
315
251
|
|
|
316
|
-
chat 的相对文件路径以专家创建时固定的 cwd 为基准。服务器 files 与本机输入框附件二选一,每次最多 32 个;图片格式及字节上限遵循宿主准入。上传附件使用原生输入框,不传 JSON `attachments` 字段。chat 自动先暂停所属团队,暂停失败不接纳输入;成功后可对在途工作 steer。返回 queued 仅表示入队。人工接管的 interactive/mixed
|
|
252
|
+
chat 的相对文件路径以专家创建时固定的 cwd 为基准。服务器 files 与本机输入框附件二选一,每次最多 32 个;图片格式及字节上限遵循宿主准入。上传附件使用原生输入框,不传 JSON `attachments` 字段。chat 自动先暂停所属团队,暂停失败不接纳输入;成功后可对在途工作 steer。返回 queued 仅表示入队。人工接管的 interactive/mixed 周期不自动公开;需要独立保密上下文时新建专家。专家必须存活,停止后先 resume。
|
|
317
253
|
|
|
318
254
|
`records` 读取完整事件,不等同于 `agent read` 的最终报告;停止后可冷读,不恢复专家或领取通知。
|
|
319
255
|
|
|
@@ -363,11 +299,11 @@ pause 不停止专家;等待 status 的 `activeCount=0` 后才可 close:
|
|
|
363
299
|
/pbot team {"action":"close","teamId":"TEAM_ID"}
|
|
364
300
|
```
|
|
365
301
|
|
|
366
|
-
没有 team resume;继续时用新 instruction 发起 run。paused 仍可能有在途请求;unresolved
|
|
302
|
+
没有 team resume;继续时用新 instruction 发起 run。paused 仍可能有在途请求;unresolved 可包含失败、未知或混合输入,继续前先查询报告与实际状态。正常完成的纯团队答复才自动公开。完整规则见[专家协作](agent-collaboration.md)。
|
|
367
303
|
|
|
368
304
|
`/pbot post` 必填 teamId、非空 text(最多 24000 字符),可选 `replyTo` 引用已有消息 seq(≥1)。返回 stored 只表示保存,不唤醒模型或增加轮次;关闭团队不能再 post。人工作者为 user;模型 `pbot_team_message` 必须带 `action:"post"` 或 `action:"read"`,作者由服务确定为 coordinator/member。
|
|
369
305
|
|
|
370
|
-
公共消息 read 的 afterSeq 默认 0,只返回后续消息;seq 从 1 开始,可指定单条。offset 默认 0,非零时必须同时指定 seq。limit 默认及上限为 16000,最小 1,是正文合计的 UTF-16 代码单元数,不是消息条数。先按消息的 `nextOffset` 固定 seq 读完正文,再将列表的 `nextAfterSeq` 传回 afterSeq
|
|
306
|
+
公共消息 read 的 afterSeq 默认 0,只返回后续消息;seq 从 1 开始,可指定单条。offset 默认 0,非零时必须同时指定 seq。limit 默认及上限为 16000,最小 1,是正文合计的 UTF-16 代码单元数,不是消息条数。先按消息的 `nextOffset` 固定 seq 读完正文,再将列表的 `nextAfterSeq` 传回 afterSeq 继续列表。
|
|
371
307
|
|
|
372
308
|
## 历史查询
|
|
373
309
|
|
|
@@ -387,7 +323,7 @@ query 按不区分大小写的连续文本搜索已就绪问答与摘要;省
|
|
|
387
323
|
|
|
388
324
|
search 返回 matches、total、nextOffset 和 warnings,续页保持筛选条件并回填 nextOffset。read 返回 node:`node.nextOffset` 用于正文 offset,`node.nextChildrenOffset` 用于 childrenOffset;沿 parents/children 的 id 继续读取。没有 childrenLimit 参数。摘要提供线索,关键事实应回到问答原文;历史归档不能替代专家完整工具记录。
|
|
389
325
|
|
|
390
|
-
Pi
|
|
326
|
+
Pi 与 dsh 共用 `.pbot/history/`,共同查询已有归档,只更新和整理自己的来源。查询不调用模型;正常主交互结束后的空闲阶段才使用当前宿主模型补齐摘要,新人工输入优先取消整理。详见[历史对话](history.md)。
|
|
391
327
|
|
|
392
328
|
## 模型工具
|
|
393
329
|
|
|
@@ -398,4 +334,4 @@ Pi 维护 `.pi/pbot/history/`,dsh 维护 `.dsh/pbot/history/`。两者共同
|
|
|
398
334
|
| `pbot_team_message` | read、post;read 分页同 team read,post 使用 teamId/text/可选 replyTo |
|
|
399
335
|
| `pbot_history` | search、read |
|
|
400
336
|
|
|
401
|
-
模型使用实际工具 schema;人工使用上面的命令或管理页。chat、records
|
|
337
|
+
模型使用实际工具 schema;人工使用上面的命令或管理页。chat、records 是人工管理入口,没有同名模型工具。
|
package/docs/file-storage.md
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
| 位置 | 内容与所有者 |
|
|
6
6
|
| --- | --- |
|
|
7
|
+
| 工作区 .pbot/config.json | Pi/dsh 共用的启用与功能配置 |
|
|
7
8
|
| 工作区 AGENTS.md、areas/、projects/、knowledge/ 等 | 用户资料、任务定义、方法、结论与交付物 |
|
|
8
9
|
| 工作区 providers/<id>/GUIDE.md | 提供方使用说明 |
|
|
9
10
|
| 工作区 .pi/settings.json、.pi/mcp.json | Pi 原生项目配置 |
|
|
@@ -12,10 +13,10 @@
|
|
|
12
13
|
| 当前 Pi agent dir 的 pbot/teams/ | Pi 团队资料、批次与公共原文 |
|
|
13
14
|
| dsh 原生会话存储 | dsh 主会话与专家的原生事件,由 dsh 管理 |
|
|
14
15
|
| dsh home 的 pbot/subagents/、pbot/teams/ | dsh 专家控制记录、原生 ID 引用与团队公共记录 |
|
|
15
|
-
| 工作区 .
|
|
16
|
+
| 工作区 .pbot/history/ | Pi/dsh 问答、摘要、节点关系;双方共同查询,各写本来源 |
|
|
16
17
|
| 用户级 pbot/python/.venv | 共享 Python 环境 |
|
|
17
18
|
|
|
18
|
-
各宿主管理自己的主会话、专家对话与原生配置,不跨宿主恢复或接管。Personal Bot
|
|
19
|
+
各宿主管理自己的主会话、专家对话与原生配置,不跨宿主恢复或接管。Personal Bot 的工作区资料是普通文件,启用配置集中在 `.pbot/config.json`,不维护工作区格式版本。详细目录用途见[项目 README](../README.zh-CN.md#工作区资料),Python 路径见 [Python 说明](../python/README.md)。
|
|
19
20
|
|
|
20
21
|
## 资料准备
|
|
21
22
|
|
|
@@ -40,7 +41,7 @@
|
|
|
40
41
|
|
|
41
42
|
新 agent 以 agentId 作为原生 session ID,通过 `--session-id` 由 Pi 创建。默认文件位于当前 Pi agent dir 的 `sessions/<Pi 编码的 cwd>/<时间戳>_<sessionId>.jsonl`;遵循子进程的原生环境变量与 settings,不自行编码目录或生成文件名。父会话一次性的 `--session-dir` 参数不会自动传给子进程。
|
|
42
43
|
|
|
43
|
-
Pi 对没有用户或助手消息的会话延迟落盘。`session-ref.json` 初始为 `{ "file": null }`;子入口在领取请求或接受人工输入前固定 Pi
|
|
44
|
+
Pi 对没有用户或助手消息的会话延迟落盘。`session-ref.json` 初始为 `{ "file": null }`;子入口在领取请求或接受人工输入前固定 Pi 返回的实际路径,已存在的原生文件在载入时固定引用。固定后不清空、不改指向,恢复时使用该位置。
|
|
44
45
|
|
|
45
46
|
恢复已绑定会话使用 `--session <绝对路径>`,不根据最近会话或当前目录设置重新选择。文件缺失、非法记录、身份或 cwd 不匹配时拒绝恢复;引用已固定但输入尚未落盘的崩溃窗口也不创建空白替代。只有从未交付输入的待命会话可以重新由 Pi 创建。报告使用 Pi 原生解析器和内存树按固定叶节点只读提取,不写入或迁移 JSONL。
|
|
46
47
|
|
|
@@ -60,7 +61,9 @@ I/O 失败后当前文件实例停止后续写入,不能因下一次读取成
|
|
|
60
61
|
|
|
61
62
|
## 历史索引
|
|
62
63
|
|
|
63
|
-
|
|
64
|
+
历史存档统一保存在工作区 `.pbot/history/`,按 host 与原生 session ID 关联会话。两种来源使用相同格式,顶层 `host` 字段标明 `pi` 或 `dsh`,文件名与根 ID 一致。归档包含问答文本、来源消息 ID、分支内的四叉摘要与父子关系,复用原子 JSON 写入;双方分别持有本来源的短写锁,只更新自己的记录。
|
|
65
|
+
|
|
66
|
+
原生会话不可用时仍可查询归档,复制到其他目录或机器后仍可读取,重新发现原生会话时复用原节点。收录范围与查询见[历史对话](history.md)。
|
|
64
67
|
|
|
65
68
|
## 历史与复制
|
|
66
69
|
|
|
@@ -68,4 +71,4 @@ I/O 失败后当前文件实例停止后续写入,不能因下一次读取成
|
|
|
68
71
|
|
|
69
72
|
加载、资料准备和重载保留已有资料、历史记录及备份。扩展管理自己的子会话、历史存档与 Python 环境,不自动导入或转换其他应用数据。
|
|
70
73
|
|
|
71
|
-
|
|
74
|
+
复制工作区前停止旧实例。包含 `.pbot/history/` 的副本会带上两种来源的问答与摘要,但不会转移用户级原生会话、运行进程、环境或认证;不支持多机同时写入同步目录。
|
package/docs/history.md
CHANGED
|
@@ -33,21 +33,14 @@ dsh 通过公开 SessionQuery 冷读本工作区根会话与按父关系关联
|
|
|
33
33
|
|
|
34
34
|
新人工输入、下一模型步骤、所属资源关闭或 Pi 会话切换会取消当前整理。失败保留待处理内容与警告,下次正常交互结束再试。超长输入分段概括再合并,完整原文保留;摘要失败不妨碍原文查询。来源扫描错误与摘要错误分别保留,刷新成功不会掩盖尚未修复的摘要失败。
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
摘要产生额外模型调用。原生上下文、压缩、模型路由和认证继续由宿主管理。
|
|
37
37
|
|
|
38
38
|
## 存储与并发
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
| --- | --- | --- |
|
|
42
|
-
| Pi | `.pi/pbot/history/<id>.json` | Pi 收录与整理自己的原生会话 |
|
|
43
|
-
| dsh | `.dsh/pbot/history/<id>.json` | dsh 收录与整理自己的原生会话 |
|
|
40
|
+
历史归档统一保存在 `.pbot/history/<id>.json`,顶层 `host` 字段标明 `pi` 或 `dsh`。两种来源共用归档格式,保存问答文本、来源 ID、节点关系与摘要;文件名与根 ID 一致。目录决定工作区,读取器按 `host` 筛选记录,双方只收录和整理自己的原生来源。复制 `.pbot/history/` 即可查询现成内容;原生恢复仍需各宿主自己的会话数据,工具日志和附件二进制不在归档内。
|
|
44
41
|
|
|
45
|
-
|
|
42
|
+
每个来源在共用目录内有独立的短写锁 `.write-pi`、`.write-dsh`。原生扫描和模型调用在锁外进行,提交时重读最新归档;过时扫描不能覆盖后来保存的原文,过时摘要不能覆盖变更后的子节点或已提交摘要。损坏文件产生警告,其他归档仍可查询。多个进程同时整理可能产生重复模型调用。
|
|
46
43
|
|
|
47
|
-
|
|
44
|
+
服务位于 `services/history`,负责分组、查询、摘要队列与提交规则;`integrations/pi/history` 和 `integrations/dsh/history` 负责各自原生投影,`storage/history-files` 负责校验、短锁与原子文件发布。命令和工具调用同一服务。查询使用全文扫描,不增加数据库或向量索引。
|
|
48
45
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
服务位于 `services/history`,负责分组、查询、摘要队列与提交规则;`integrations/pi/history` 和 `integrations/dsh/history` 负责各自原生投影,`storage/history-files` 负责校验、短锁与原子文件发布。命令和工具调用同一服务。首版仍使用全文扫描,不增加数据库或向量索引。
|
|
52
|
-
|
|
53
|
-
这些归档是用户历史资料。原生数据还在时可以重新提取;原生数据已不可用时,删除归档会失去这份历史。复制前停止原工作区的活动写入,不支持多机同时写同步目录。真实模型、长历史性能和平台验收边界见[验证](validation.md)。
|
|
46
|
+
这些归档是用户历史资料。原生数据还在时可以重新提取;原生数据已不可用时,删除归档会失去这份历史。复制前停止原工作区的活动写入,不支持多机同时写同步目录。
|