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/README.zh-CN.md
CHANGED
|
@@ -2,15 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
[English](README.md) | 简体中文
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**连接知识、研究与行动的个人助手。**
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
Personal Bot 提供按工作区加载的 [Pi](https://pi.dev) 扩展和原生 dsh Web 接入,支持资料整理、项目推进、研究分析、专家协作和已授权的业务操作。模型负责分析与协调,插件提供资料目录、专家会话、历史查询和共享 Python 环境。
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
## 工作区启用
|
|
10
|
+
|
|
11
|
+
安装后,从目标工作区打开 Pi 或 dsh,执行 `/pbot init` 初始化并启用。Pi 和 dsh 共用该命令创建的 `.pbot/config.json`:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{ "enabled": true }
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
文件缺失或设为 false 时,Personal Bot 保持未启用,不加载包内技能和提示词,并引导执行 `init`。Pi 状态栏和 dsh 工作区页显示启动状态;`/pbot status` 随时可用。手工修改配置后,Pi 执行 `/reload`,dsh 重启宿主。规则见[工作区配置](docs/workspace-configuration.md)。
|
|
10
18
|
|
|
11
19
|
## 安装
|
|
12
20
|
|
|
13
|
-
|
|
21
|
+
### Pi 安装向导
|
|
22
|
+
|
|
23
|
+
支持 Linux 和 macOS,需要 Node.js 22.19+、npm,以及 Python 3.11+ 和 venv/ensurepip。在交互终端运行:
|
|
14
24
|
|
|
15
25
|
```bash
|
|
16
26
|
npx personal-bot@latest setup
|
|
@@ -18,185 +28,132 @@ npx personal-bot@latest setup
|
|
|
18
28
|
npx personal-bot@latest setup --workspace ~/pbot-workspace
|
|
19
29
|
```
|
|
20
30
|
|
|
21
|
-
|
|
31
|
+
向导选择或创建目录,安装或更新 Pi,再为该工作区安装 Personal Bot。首次默认勾选 Task Conductor 和 Pi Web Access;后续按已有安装预选。普通 npm 来源更新到最新稳定版,本地、Git 和固定版本默认保留,可选择切换。取消勾选会保留已有插件。
|
|
22
32
|
|
|
23
|
-
缺少 tmux
|
|
33
|
+
缺少 tmux 时使用已有 Homebrew 或受支持的 Linux 包管理器安装。Python 前置条件缺失时给出修复说明。安装完成后可启动 Pi 并执行 `/pbot init`;项目信任、登录和模型选择按 Pi 提示操作。
|
|
24
34
|
|
|
25
|
-
|
|
35
|
+
需要固定短命令时,可全局安装 CLI:
|
|
26
36
|
|
|
27
37
|
```bash
|
|
28
38
|
npm install -g personal-bot@latest
|
|
29
39
|
pbot setup
|
|
30
40
|
```
|
|
31
41
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
核心步骤失败时停止启动。已配置的 Git 或本地目录来源缺失、或无法识别包名时,setup 保留声明并停止,须先通过 Pi 修复来源;已有独立单文件扩展仍可使用。可选插件失败时继续处理其他项并汇总。成功步骤保留,修复后重跑同一命令;不自动整体回滚。工作区作用域、版本选择和边界见[安装与升级](docs/installation-design.md)。
|
|
42
|
+
此命令副本通过 npm 更新,工作区扩展由 Pi 管理。安装失败后修复原因并重跑,已完成步骤与现有资料保留;可选插件失败时仍可选择进入 Pi。
|
|
35
43
|
|
|
36
|
-
###
|
|
44
|
+
### 已有 Pi
|
|
37
45
|
|
|
38
|
-
|
|
46
|
+
从工作区根目录执行:
|
|
39
47
|
|
|
40
48
|
```bash
|
|
41
49
|
pi install --local npm:personal-bot
|
|
42
50
|
pi
|
|
43
51
|
```
|
|
44
52
|
|
|
45
|
-
`--local`
|
|
46
|
-
|
|
47
|
-
### 从源码安装
|
|
48
|
-
|
|
49
|
-
开发时可改用本地源码;试用源码中的安装器先构建 CLI:
|
|
50
|
-
|
|
51
|
-
```bash
|
|
52
|
-
git clone https://github.com/realqiyan/personal-bot.git
|
|
53
|
-
cd personal-bot
|
|
54
|
-
npm ci --ignore-scripts
|
|
55
|
-
npm run build:cli
|
|
56
|
-
node bin/pbot.mjs setup
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
若只需将源码作为 Pi 扩展加载:
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
cd /path/to/workspace
|
|
63
|
-
pi install --local /absolute/path/to/personal-bot
|
|
64
|
-
pi
|
|
65
|
-
```
|
|
66
|
-
|
|
67
|
-
将示例路径换成实际路径。本地安装直接加载来源目录,请保留源码和依赖。不要同时加载源码与 npm 两个来源。
|
|
53
|
+
`--local` 将安装声明保存在项目 `.pi/settings.json`。启动后在聊天框执行 `/pbot init`。全局安装可让同一份扩展服务多个显式启用的工作区。已有来源通过 `pi list` 或 `pi config` 管理,同一包保留一个有效来源。
|
|
68
54
|
|
|
69
|
-
###
|
|
55
|
+
### dsh
|
|
70
56
|
|
|
71
|
-
|
|
57
|
+
需要 Node.js 24.9+、npm、pnpm 和 Python 3.11+;新版本的要求以 dsh `engines` 为准。使用原生 profile 和插件管理器安装:
|
|
72
58
|
|
|
73
59
|
```bash
|
|
74
60
|
npm install -g @deepseek-ai/dsh@latest pnpm@latest
|
|
75
|
-
|
|
76
|
-
pnpm --version
|
|
77
|
-
# 仅首次创建:此命令会覆盖已有同名 profile。
|
|
61
|
+
# 仅首次创建;该参数会覆盖已有同名 profile
|
|
78
62
|
dsh --profile pbot --from-default-profile web --dump-config
|
|
79
63
|
dsh plugin --profile pbot add personal-bot@latest
|
|
80
64
|
dsh --profile pbot
|
|
81
65
|
```
|
|
82
66
|
|
|
83
|
-
|
|
67
|
+
在浏览器中选择工作区和主会话,配置模型与认证,执行 `/pbot init` 初始化并启用。聊天输入框的 `/pbot` 打开管理界面,`/pbot status` 查看状态。
|
|
84
68
|
|
|
85
|
-
|
|
69
|
+
以后直接运行 `dsh --profile pbot`。停止活动专家和服务后更新插件:
|
|
86
70
|
|
|
87
71
|
```bash
|
|
88
|
-
npm install -g @deepseek-ai/dsh@latest
|
|
89
72
|
dsh plugin --profile pbot update personal-bot --latest
|
|
90
|
-
dsh plugin --profile pbot list personal-bot --depth 0
|
|
91
|
-
dsh --profile pbot
|
|
92
73
|
```
|
|
93
74
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
[完整中文指南](docs/dsh.md)([English](docs/dsh.en.md))包含启动参数、插件查询与移除、源码打包、全部 `/pbot` 子命令、JSON 参数及示例。专家使用同进程的原生 Agent/Session,页面刷新不停止已接纳工作。Pi 和 dsh 共同查询历史归档,各自管理会话、模型、认证与 MCP。已验证的 dsh 基线为 `0.2.2-rc.1`;`latest` 会变化,不代表未来版本已经通过验收,详见[验证记录](docs/validation.md)。
|
|
97
|
-
|
|
98
|
-
### 可选安装 Task Conductor
|
|
99
|
-
|
|
100
|
-
需要周期任务、重复流程或 DAG 时,使用可选接入包 `task-conductor-plugin` 及其共享的 `using-task-conductor` 技能。插件与 `task-conductor` 服务分别安装;服务初始化、连接设置和更新按[上游接入说明](https://github.com/realqiyan/task-conductor/blob/master/docs/host-integrations.md)操作。
|
|
75
|
+
桌面应用通过原生“插件”页面安装 `personal-bot@latest`,使用独立的 desktop profile。完整终端参数、更新步骤与聊天命令见 [dsh 指南](docs/dsh.md)。
|
|
101
76
|
|
|
102
|
-
|
|
77
|
+
### 从源码使用
|
|
103
78
|
|
|
104
79
|
```bash
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
**dsh:** 原生 Host 接入包含于尚未发布的 Task Conductor `0.1.6` 候选版本。发布前从该源码构建插件和配套服务,再将插件 tarball 安装到已有 Web profile:
|
|
111
|
-
|
|
112
|
-
```bash
|
|
113
|
-
cd /absolute/path/to/task-conductor
|
|
114
|
-
npm run pack:plugin
|
|
115
|
-
dsh plugin --profile pbot add /absolute/path/to/task-conductor/task-conductor-plugin-<version>.tgz
|
|
116
|
-
dsh plugin --profile pbot list task-conductor-plugin --depth 0
|
|
80
|
+
git clone https://github.com/realqiyan/personal-bot.git
|
|
81
|
+
cd personal-bot
|
|
82
|
+
npm ci --ignore-scripts
|
|
83
|
+
npm run build:cli
|
|
84
|
+
node bin/pbot.mjs setup
|
|
117
85
|
```
|
|
118
86
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
服务仍使用独立的协调模型配置及 `pi-durable` 运行时,以 dsh 为宿主不需要安装 Pi 交互 CLI。需要同时用 dsh 执行任务节点时,通过 Task Conductor 管理员 CLI 或 Web,将 dsh 的规范绝对可执行路径注册为自定义执行端 `dsh-acp`,参数为 `["--profile", "acp"]`。具体操作见上游技能的[自定义 ACP 说明](https://github.com/realqiyan/task-conductor/blob/master/plugin/skills/using-task-conductor/references/custom-acp.md);`dsh` 不是内置执行端 ID。节点使用自己的 dsh profile、认证、工具和环境。
|
|
87
|
+
只加载 Pi 源码扩展时,在工作区执行 `pi install --local /absolute/path/to/personal-bot`,并保留该目录和依赖。dsh 的源码打包安装见[专门说明](docs/dsh.md#从源码安装)。
|
|
122
88
|
|
|
123
|
-
|
|
89
|
+
### 可选安装 Task Conductor
|
|
124
90
|
|
|
125
|
-
|
|
91
|
+
周期任务、重复流程、DAG 和宿主退出后继续执行的任务使用 `task-conductor-plugin`。插件与配套服务分别安装,服务准备和配置遵循[上游接入指南](https://github.com/realqiyan/task-conductor/blob/master/docs/host-integrations.md)。
|
|
126
92
|
|
|
127
|
-
|
|
93
|
+
Pi 用户从工作区运行 `pi install --local npm:task-conductor-plugin`,重载后读取 `/skill:using-task-conductor`。dsh 用户按 [Task Conductor 接入说明](docs/dsh.md#task-conductor)安装,在主会话读取 `/using-task-conductor`。
|
|
128
94
|
|
|
129
|
-
|
|
95
|
+
任务通知回到提交任务的原会话。关闭 Pi 或 dsh 后,服务任务继续运行;当前执行和未来周期分别查询、停止。
|
|
130
96
|
|
|
131
97
|
## 日常使用
|
|
132
98
|
|
|
133
|
-
|
|
99
|
+
直接说明任务,例如整理资料、比较研究结论、委派复核或运行计算。以下命令面向 Pi,dsh 命令见其指南。
|
|
134
100
|
|
|
135
101
|
| 命令 | 用途 |
|
|
136
102
|
| --- | --- |
|
|
137
103
|
| `/pbot` | 打开工作区菜单 |
|
|
138
|
-
| `/pbot init` |
|
|
139
|
-
| `/pbot status` |
|
|
140
|
-
| `/pbot history [关键词]` |
|
|
141
|
-
| `/pbot agents` |
|
|
142
|
-
| `/pbot teams` |
|
|
143
|
-
| `/pbot python setup` |
|
|
144
|
-
| `/reload` | Pi
|
|
145
|
-
|
|
146
|
-
-
|
|
147
|
-
-
|
|
148
|
-
-
|
|
149
|
-
-
|
|
150
|
-
-
|
|
151
|
-
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
主会话和子会话对话都使用 Pi 原生存储。聊天恢复可用 `pi --resume` 明确选择;`pi --continue` 可能选中最近活跃的子会话。受管子会话可从 `/pbot agents` 进入,已停止时加载原会话并待命,不调用模型;`pbot_agent resume` 用于携新要求继续工作。运行中不要另开进程写同一会话文件;不要因恢复而重发可能已产生副作用的操作。
|
|
156
|
-
|
|
157
|
-
不维护独立 provider 调用账本或结果包装。工具结果及大结果处理由原生工具负责,项目结论引用相关来源与结果。结果不明时先查询原生状态;进程崩溃后不保证保存完整结果。
|
|
104
|
+
| `/pbot init` | 启用工作区,补建资料目录与缺失的根 `AGENTS.md` |
|
|
105
|
+
| `/pbot status` | 查看启用状态、工作区、版本和 Python 状态 |
|
|
106
|
+
| `/pbot history [关键词]` | 搜索历史问答与摘要,展开原文 |
|
|
107
|
+
| `/pbot agents` | 查看、进入、重命名、停止专家,或补充要求 |
|
|
108
|
+
| `/pbot teams` | 查看团队与公共消息,开始轮次、暂停或关闭 |
|
|
109
|
+
| `/pbot python setup` | 重试共享 Python 环境准备 |
|
|
110
|
+
| `/reload` | Pi 原生命令,重载扩展与资源 |
|
|
111
|
+
|
|
112
|
+
- **初始化与资料准备**:`/pbot init` 补建资料并启用工作区,保留已有资料与其他配置字段。Pi 首次启用时自动重载;已启动时补建的根 AGENTS 经 `/reload` 加载。
|
|
113
|
+
- **原生工具**:CLI 通过 Bash 使用,MCP 使用宿主配置。Pi 新增项目连接时执行 `pi mcp add --local <server> ...`,通过 `/mcp` 查看来源。接入方法见[技能](resources/skills/provider-connections/SKILL.md)。
|
|
114
|
+
- **历史回溯**:Pi 与 dsh 共同查询工作区归档。原文先可查询,主交互结束后用当前模型补齐摘要,会产生额外模型调用;新输入优先取消整理。详见[历史对话](docs/history.md)。
|
|
115
|
+
- **专家与团队**:可独立委派、持续对话,或组织轮流讨论和并行轮次。Pi 专家需要 tmux;dsh 使用原生会话。团队运行时占用成员,切换私人工作前先暂停并等待在途工作结束。详见[专家协作](docs/agent-collaboration.md)。
|
|
116
|
+
- **Python**:所有已启用工作区共用当前用户的一份 venv,启用后自动准备并在宿主进程激活,通过 Bash 使用 `python` 或 `python3`。更新依赖前停止使用该环境的脚本。路径、排障与许可见 [Python 说明](python/README.md)。
|
|
117
|
+
- **资料维护**:可请助手整理项目、按既有口径重做分析或检查交付。按[维护技能](resources/skills/project-maintenance/SKILL.md)更新当前说明、提炼方法,保留正式资料、历史与备份。
|
|
118
|
+
|
|
119
|
+
Pi 主会话恢复用 `pi --resume` 明确选择;`pi --continue` 可能选中最近活跃的子会话。受管专家从 `/pbot agents` 进入,停止后打开原会话会保持待命,携新要求继续时使用 resume。运行中的会话只保留一个写入进程。
|
|
158
120
|
|
|
159
121
|
## 工作区资料
|
|
160
122
|
|
|
161
123
|
| 位置 | 用途 |
|
|
162
124
|
| --- | --- |
|
|
125
|
+
| `.pbot/config.json` | Pi/dsh 共用的工作区启用与配置 |
|
|
163
126
|
| `AGENTS.md` | 资料导航与工作约定 |
|
|
164
|
-
| `areas/`、`projects/` |
|
|
127
|
+
| `areas/`、`projects/` | 长期目标、任务、结论与交付物 |
|
|
165
128
|
| `knowledge/` | 可复用的概念、方法与口径 |
|
|
166
|
-
| `.
|
|
167
|
-
| `providers/` |
|
|
168
|
-
| `scratch/` |
|
|
169
|
-
| `agents/`、`.agents/skills/` |
|
|
170
|
-
|
|
171
|
-
可再次查询的数据在使用时按保存的口径获取。
|
|
172
|
-
|
|
173
|
-
Personal Bot 不在工作区内保存私有启用状态。Pi 配置仍由 Pi 管理,配置变更后按原生要求执行 `/reload`。复制工作区前停止旧实例;不支持多机同时写入同步目录。存储布局与复制边界见[文件存储](docs/file-storage.md)。
|
|
129
|
+
| `.pbot/history/` | Pi/dsh 问答原文、摘要与节点关系 |
|
|
130
|
+
| `providers/` | 外部工具的使用说明、数据口径与来源 |
|
|
131
|
+
| `scratch/` | 临时脚本、计算数据、下载与运行环境 |
|
|
132
|
+
| `agents/`、`.agents/skills/` | 职责补充与工作区技能 |
|
|
174
133
|
|
|
175
|
-
|
|
134
|
+
已有布局与工作约定优先。可再次查询的数据在需要时按记录的口径获取。复制工作区前停止旧实例的写入,不支持多机同时写同步目录。详细位置与保留规则见[文件存储](docs/file-storage.md)。
|
|
176
135
|
|
|
177
|
-
|
|
136
|
+
## 更新与操作范围
|
|
178
137
|
|
|
179
|
-
|
|
138
|
+
当前版本为 **0.2.10**。通过宿主原生包管理更新;本地 Pi 来源更新源码,依赖变化后运行 `npm ci --ignore-scripts`,再重载或重启。更换版本前停止活动专家;不同兼容线的专家需重新创建,旧资料、历史和备份保留。
|
|
180
139
|
|
|
181
|
-
|
|
140
|
+
操作按用户请求、已有约定和必要确认执行。Bash、Python、MCP 和扩展使用实际账户与凭据权限;硬限制应由只读凭据、服务端控制或受限环境提供。交易、转账和账本修改需要相应授权。取消、超时或断连后,先查原生状态再决定是否重试,避免重复执行。
|
|
182
141
|
|
|
183
|
-
|
|
184
|
-
- 工具可用不等于用户授权。研究、接入与验证不授权交易、转账或账本修改。
|
|
185
|
-
- 协议成功不证明业务完成。取消、超时和会话恢复不撤销外部副作用;可能已发送的操作先核对原生状态,不自动重发。
|
|
186
|
-
- Task Conductor 节点不自动继承主会话的工具、环境和技能。用户未授权或原生服务要求人工确认的业务,不安排无人值守执行。
|
|
187
|
-
|
|
188
|
-
完整边界见[原生工具与执行边界](docs/capability-design.md)。真实模型、外部服务和完整 TUI/RPC 交互仍需获准环境验收,本地测试不证明实盘可用。
|
|
142
|
+
Task Conductor 节点单独配置工具、环境、技能与认证;需要人工确认的业务保留人工交互。具体规则见[工具与执行](docs/capability-design.md)。
|
|
189
143
|
|
|
190
144
|
## 开发与文档
|
|
191
145
|
|
|
146
|
+
双宿主开发使用 Linux、Node.js 24.9+。安装锁定依赖后运行:
|
|
147
|
+
|
|
192
148
|
```bash
|
|
193
149
|
npm run check
|
|
194
150
|
npm test
|
|
195
151
|
git diff --check
|
|
152
|
+
npm pack --dry-run
|
|
196
153
|
```
|
|
197
154
|
|
|
198
|
-
|
|
155
|
+
`npm test` 包含冒烟与 E2E 测试,并生成测试用 `dist/` 和发布用 `lib/`。Pi 运行时加载源码。
|
|
199
156
|
|
|
200
|
-
- [
|
|
201
|
-
- [npm 发布](docs/release.md)
|
|
202
|
-
- [领域术语](CONTEXT.md)
|
|
157
|
+
- [文档索引](docs/README.md):当前架构、使用与开发说明。
|
|
158
|
+
- [npm 发布](docs/release.md):候选检查、发布配置与操作。
|
|
159
|
+
- [领域术语](CONTEXT.md)。
|
package/docs/README.md
CHANGED
|
@@ -1,25 +1,28 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 文档索引
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## 使用
|
|
4
|
+
|
|
5
|
+
- [项目介绍与安装](../README.zh-CN.md) / [English](../README.md)
|
|
6
|
+
- [dsh 使用](dsh.md):profile、插件、Web 管理与聊天命令
|
|
7
|
+
- [工作区配置](workspace-configuration.md):Pi/dsh 共用配置、启用范围与重载
|
|
8
|
+
- [专家协作](agent-collaboration.md):独立委派、团队、通知与恢复
|
|
9
|
+
- [历史对话](history.md):查询、摘要与归档
|
|
10
|
+
- [Python 环境](../python/README.md):准备、排障、计算库与许可
|
|
11
|
+
- [领域术语](../CONTEXT.md)
|
|
12
|
+
|
|
13
|
+
## 开发
|
|
4
14
|
|
|
5
15
|
| 文档 | 内容 |
|
|
6
16
|
| --- | --- |
|
|
7
|
-
| [架构原则](architecture-guidelines.md) |
|
|
8
|
-
| [技术设计](technical-design.md) |
|
|
9
|
-
| [模型指令编写原则](model-instruction-guidelines.md) |
|
|
10
|
-
| [模型上下文](model-context.md) |
|
|
17
|
+
| [架构原则](architecture-guidelines.md) | 模块划分、依赖与开发方法 |
|
|
18
|
+
| [技术设计](technical-design.md) | 系统组成、生命周期与分发 |
|
|
19
|
+
| [模型指令编写原则](model-instruction-guidelines.md) | 提示、角色、技能与工具说明的取舍 |
|
|
20
|
+
| [模型上下文](model-context.md) | 内容来源、加载时机与更新 |
|
|
11
21
|
| [界面设计](interaction-design.md) | Pi TUI 与 dsh GUI |
|
|
12
|
-
| [
|
|
13
|
-
| [
|
|
14
|
-
| [
|
|
15
|
-
| [
|
|
16
|
-
| [
|
|
17
|
-
| [验证](validation.md) | 本地测试、真实模型冒烟结果与剩余验收 |
|
|
18
|
-
| [npm 发布](release.md) | 发布配置、授权、操作与验收 |
|
|
19
|
-
| [安装与升级](installation-design.md) | npx setup、工作区选择、插件安装、初始化与失败恢复 |
|
|
20
|
-
|
|
21
|
-
双宿主范围见[dsh 接入方案](dsh-support-proposal.md),执行与验收进度见[实施记录](dsh-implementation-plan.md)。既有子会话范围取舍见 [Subagent 升级方案](subagent-upgrade-proposal.md)。团队策略在 0.1.3 实现,0.2.0 将子会话对话交给 Pi 原生存储,不迁移旧历史。当前用法见专家协作;0.1.3 的真实模型冒烟、0.2.0 本地验证与剩余验收见验证。
|
|
22
|
-
|
|
23
|
-
Python 环境与库许可见 [python/README.md](../python/README.md)。模型使用的方法维护在 resources/skills,运行时职责维护在 resources/agents。
|
|
22
|
+
| [工具与执行](capability-design.md) | CLI/MCP、操作范围与外部任务 |
|
|
23
|
+
| [文件存储](file-storage.md) | 数据位置、写入规则与历史保留 |
|
|
24
|
+
| [安装器设计](installation-design.md) | setup 的计划、来源、作用域与失败恢复 |
|
|
25
|
+
| [npm 发布](release.md) | 候选检查、发布配置与操作 |
|
|
26
|
+
| [维护脚本](../scripts/README.md) | 构建与安装包检查 |
|
|
24
27
|
|
|
25
|
-
|
|
28
|
+
根目录 README 保留中英文版本,其他主题各维护一份当前说明。测试结果放在任务、PR 或 CI 输出中,历史方案与变更过程通过 Git 查询。
|
|
@@ -28,7 +28,7 @@ dsh 使用原生 provider/model/reasoning effort,拒绝 Pi 专属扩展、提
|
|
|
28
28
|
|
|
29
29
|
服务器文件由原生附件存储保留内容,图片使用原生准入;Web 人工对话还接受本机文件与图片。人工对话先成功暂停所属团队,再进入原生 inbox;队列接纳、实际进入、模型消费和完成分别记录,未来排队输入不提前改变此前回答的归因。
|
|
30
30
|
|
|
31
|
-
每个专家绑定父身份与 generation。启动、校验与释放在短控制锁外等待,预约期间的停止会取消启动;旧代次不能释放新实例。原生 registry 中由其他实例持有的 Agent 不能被替换或假称释放。正常完成要求请求实际消费、持久的正常 stop
|
|
31
|
+
每个专家绑定父身份与 generation。启动、校验与释放在短控制锁外等待,预约期间的停止会取消启动;旧代次不能释放新实例。原生 registry 中由其他实例持有的 Agent 不能被替换或假称释放。正常完成要求请求实际消费、持久的正常 stop 和非空最终答复。
|
|
32
32
|
|
|
33
33
|
`/pbot` Web 管理页提供人工对话、完整原生记录、停止和携新要求恢复。离页不停止已接纳工作;父 Agent 或组件关闭会暂停安排并释放其拥有的专家。重新打开页面不会恢复或重放旧工作。详情见[dsh 使用](dsh.md)。
|
|
34
34
|
|
|
@@ -51,7 +51,7 @@ dsh 使用原生 provider/model/reasoning effort,拒绝 Pi 专属扩展、提
|
|
|
51
51
|
|
|
52
52
|
默认 2 轮、15 分钟。轮数为 1–10;parallel 默认并发为成员数与 2 的较小值,可调到 1–成员数。期限可设 1–86400 秒。总发言请求数不超过成员数乘轮数,普通 post 不增加请求。
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
团队采用固定成员与有限轮次;轮内研究、实现、计算与审查方法由角色和技能决定。
|
|
55
55
|
|
|
56
56
|
### 工具
|
|
57
57
|
|
|
@@ -64,7 +64,7 @@ dsh 使用原生 provider/model/reasoning effort,拒绝 Pi 专属扩展、提
|
|
|
64
64
|
| pause | 停止新增安排和领取,已领取请求继续收尾 |
|
|
65
65
|
| close | 已暂停或结束且没有在途工作时关闭,保留历史;不阻塞等待 |
|
|
66
66
|
|
|
67
|
-
run 要求全部成员空闲、无未消费的私人输入,并已加载可用的团队入口与通信工具。条件不满足时返回原因,不在后台等待成员就绪。
|
|
67
|
+
run 要求全部成员空闲、无未消费的私人输入,并已加载可用的团队入口与通信工具。条件不满足时返回原因,不在后台等待成员就绪。
|
|
68
68
|
|
|
69
69
|
主会话与成员通过 pbot_team_message read/post 通信。post 参数为 teamId、text、可选 replyTo,正文最多 24000 字符;不允许指定 sender。成员 post 必须属于其当前团队工作,主会话可在暂停时补充信息。所有发言公开,没有私密 to 信箱。
|
|
70
70
|
|
|
@@ -85,7 +85,7 @@ run 要求全部成员空闲、无未消费的私人输入,并已加载可用
|
|
|
85
85
|
|
|
86
86
|
成员任务、团队背景、自动注入的公共消息和批次通知使用 Markdown 文档。普通专家只加载公共约定与专家职责;处理团队任务时才补充共同目标、成员职责、身份、轮次及团队操作说明。本批次要求仅在成员任务输入中给出,避免重复。公共消息按 seq 分节,列出作者、回复关系与来源,正文放入保留原文的代码区块,包含代码围栏的正文也不会破坏区块边界。成员原文中的 JSON 保留原样。
|
|
87
87
|
|
|
88
|
-
read 的文本结果也使用 Markdown,同时保留工具的结构化结果。nextOffset 非空表示该条正文未读完,用同一 teamId、seq 和 offset 续读;nextAfterSeq 用于后续消息。自动注入按实际 Markdown 长度限制上下文,并用 remainingFromSeq 标明未包含的消息,从 afterSeq: remainingFromSeq - 1
|
|
88
|
+
read 的文本结果也使用 Markdown,同时保留工具的结构化结果。nextOffset 非空表示该条正文未读完,用同一 teamId、seq 和 offset 续读;nextAfterSeq 用于后续消息。自动注入按实际 Markdown 长度限制上下文,并用 remainingFromSeq 标明未包含的消息,从 afterSeq: remainingFromSeq - 1 继续读取。Pi 压缩不删除公共记录。
|
|
89
89
|
|
|
90
90
|
只自动公开本次团队请求正常结束后的最终答复,不广播完整历史、推理或原始工具输出。人工输入混入周期时标记 mixed 并暂停团队,不自动公开混合答复;此前显式 post 的内容保留。成员信息与人工子会话输入都不扩大原用户授权。
|
|
91
91
|
|
|
@@ -101,7 +101,7 @@ read 的文本结果也使用 Markdown,同时保留工具的结构化结果。
|
|
|
101
101
|
| teamId / runId | 团队 / 一批有限轮次,不与 Task Conductor 的标识混用 |
|
|
102
102
|
| seq | 团队内公共消息顺序 |
|
|
103
103
|
|
|
104
|
-
|
|
104
|
+
请求按接纳、消费和完成记录状态。工作结果通过对应 cycle 的报告读取;团队批次状态用于控制轮次安排。
|
|
105
105
|
|
|
106
106
|
历史报告使用固定叶节点;后续工作不覆盖旧报告。团队先保存 requestId 关联,再写原 inbox;同 ID 不重复增加序号。普通锁竞争仅重试当前进程中已知尚未发布的输入,reload 丢弃这份临时等待,不自动补发。I/O 错误使当前文件实例停止后续写入与投递。
|
|
107
107
|
|
|
@@ -118,7 +118,7 @@ Pi 独立周期的 read 结果进入当前分支后领取该周期通知,包
|
|
|
118
118
|
| 事件 | 行为 |
|
|
119
119
|
| --- | --- |
|
|
120
120
|
| 独立周期完成 | 保持 idle,可继续对话 |
|
|
121
|
-
| Pi 主 reload |
|
|
121
|
+
| Pi 主 reload | 工作区仍启用时保留子进程并暂停团队;配置关闭或无效时停止所属专家;不续排旧批次 |
|
|
122
122
|
| dsh 页面关闭、刷新、重连 | 已接纳工作继续归服务端,查看不恢复旧任务 |
|
|
123
123
|
| dsh 父 Agent 释放、组件停用或卸载 | 暂停安排,取消预约并等待自己的专家资源释放;后续须显式恢复 |
|
|
124
124
|
| 主中断 | 暂停团队新增安排,已领取工作默认收尾 |
|
|
@@ -128,18 +128,16 @@ Pi 独立周期的 read 结果进入当前分支后领取该周期通知,包
|
|
|
128
128
|
| 到达期限 | 停止新安排和领取;子入口尽力中断自身未被人工接管的团队工作 |
|
|
129
129
|
| 恢复主 session | 恢复记录与通知,不自动启动旧工作 |
|
|
130
130
|
|
|
131
|
-
pause 返回时可能仍有在途请求。unresolved
|
|
131
|
+
pause 返回时可能仍有在途请求。unresolved 区分排队、已接收、未公开、未知结果与中断等状态;只有进程确已停止或请求已经结束,才能解除在途占用。结果未知时先查原生报告和外部状态,避免重复执行。
|
|
132
132
|
|
|
133
|
-
##
|
|
133
|
+
## 界面与故障恢复
|
|
134
134
|
|
|
135
|
-
dsh
|
|
135
|
+
dsh 的管理界面与命令见[dsh 使用说明](dsh.md)。下面介绍 Pi 的 TUI。
|
|
136
136
|
|
|
137
137
|
`/pbot` 打开工作区菜单。`/pbot agents` 提供专家列表、详情、会话入口、补充要求、重命名和停止;`/pbot teams` 提供团队状态、公共消息、批次及成员入口。长记录使用只读阅读页。完整报告仍通过 `pbot_agent read` 获取;非 TUI 模式保留结构化输出。
|
|
138
138
|
|
|
139
139
|
后台扫描遇到短暂的 `.control` 锁竞争时,在下一次扫描重试;连续至少 5 秒仍无法取得锁,包括主会话中断后暂停团队仍被锁阻塞的情况,会保留 UI 错误并通知模型。暂停未成功时,通知明确说明暂停尚未确认。报告或控制记录读取失败也会通知模型。同一持续故障在当前分支去重;恢复要求升级时补发一次通知。主会话中断期间延后投递,恢复输入后再通知。
|
|
140
140
|
|
|
141
|
-
通知按实际服务状态说明恢复方式:锁释放后自动恢复扫描;可恢复的读取错误先排障,修复后由后台重试;团队服务或协作存储已停用时,修复文件仍不能恢复当前实例,须请用户在当前 Pi 会话执行 `/reload`。重载前不反复调用 pbot_team,可通过 pbot_agent list/status/read 核对仍可读取的成员状态与报告;重载后再用 pbot_team status/read
|
|
141
|
+
通知按实际服务状态说明恢复方式:锁释放后自动恢复扫描;可恢复的读取错误先排障,修复后由后台重试;团队服务或协作存储已停用时,修复文件仍不能恢复当前实例,须请用户在当前 Pi 会话执行 `/reload`。重载前不反复调用 pbot_team,可通过 pbot_agent list/status/read 核对仍可读取的成员状态与报告;重载后再用 pbot_team status/read 核对团队。完整扫描成功且待暂停、待入队操作不再受阻后清除故障状态。当前实例中已恢复的故障若曾在当前分支通知,会补发一次关联的恢复消息;中断期间延后投递,成员结果优先交付。未投递的故障不补发恢复消息,重载不追认旧实例的恢复。通知不重发任务、不删除锁,命令和工具的错误仍直接返回。
|
|
142
142
|
|
|
143
143
|
进入成员前提示返回快捷键,团队成员使用相同入口。默认 tmux 绑定下,普通终端按 Ctrl+B 后按 d 脱离;主会话已在 tmux 中时,按 Ctrl+B 后按小写 l 切回。自定义绑定以自己的配置为准。返回不停止成员,不要用 /exit 代替。
|
|
144
|
-
|
|
145
|
-
Pi 1.5.0 的本地 SDK、实际无认证 Pi/tmux 进程、文件并发与恢复测试已覆盖基础契约。未使用假模型或模拟 provider。2026-10-28 在 0.1.3 上的真实模型双成员冒烟已通过两种策略的单轮通信、原文引用与主通知;0.2.0 的原生存储调整及后续 Pi 升级未追加真实模型调用。Pi 1.4.0 已完成 `/pbot` 菜单、只读状态页、历史入口和窗口缩放的真实终端验收;Pi 1.5.0 的人工 TUI 回归、专家 attach 与运行中人工交互,以及异构模型、多轮讨论和长期使用仍待验收,详见[验证](validation.md)。单轮通过不证明一般协作质量或外部操作恰好一次。
|
|
@@ -28,10 +28,10 @@
|
|
|
28
28
|
|
|
29
29
|
测试业务契约和具体失败风险,使用真实本地文件、进程、计算和各宿主 SDK。测试不依赖假模型、模拟 provider、个人凭据或真实交易,也不以文案和实现结构作为行为断言。
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
测试结果在本次任务、PR 或 CI 输出中说明,写清实际检查与影响判断的未决问题。
|
|
32
32
|
|
|
33
33
|
## 维护文档
|
|
34
34
|
|
|
35
|
-
文档组织见[索引](README.md)
|
|
35
|
+
文档组织见[索引](README.md)。按读者需要维护当前说明,变更时直接修订所属主题。用户指南保留操作所需内容,开发细节放在相应设计文档。删除重复解释、过时方案与排查流水,历史通过 Git 查询。
|
|
36
36
|
|
|
37
37
|
描述当前规则及必要理由,使用短句和一致术语。运行时提示词与开发文档分开维护,避免把开发细节加入模型上下文。
|
|
@@ -34,18 +34,10 @@ Bash、Python、MCP 和扩展拥有其实际账户与凭据权限。dsh 的原
|
|
|
34
34
|
|
|
35
35
|
## 可选 Task Conductor
|
|
36
36
|
|
|
37
|
-
Task Conductor 通过原生 MCP 提供周期任务、重复流程和 DAG
|
|
37
|
+
Task Conductor 通过原生 MCP 提供周期任务、重复流程和 DAG,独立管理任务定义与运行状态。两种宿主使用 `task-conductor-plugin` 和 `using-task-conductor` 技能。安装见[项目 README](../README.zh-CN.md#可选安装-task-conductor),服务配置见[上游接入指南](https://github.com/realqiyan/task-conductor/blob/master/docs/host-integrations.md)。
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
Personal Bot 提供按需参考入口,工具调用、连接和通知由 Task Conductor 插件与宿主管理。通知绑定提交任务的原生持久会话,恢复原会话后继续接收。
|
|
40
40
|
|
|
41
|
-
|
|
41
|
+
提交任务时明确输入、工作目录、工具与认证前提、输出;周期任务还需频率、时区、执行范围与每轮数据时点。项目资料保存任务定义、taskId、runId、节点 ID 和结果位置,实时状态向服务查询。
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
提交任务时明确输入、cwd、工具与认证前提和输出;周期任务还需明确频率、时区、执行范围及每轮数据时点。项目资料保存任务定义、taskId、runId、节点 ID 和结果位置,实时状态向 Task Conductor 查询。
|
|
46
|
-
|
|
47
|
-
pbot 子会话绑定父会话,Task Conductor 可在所属宿主会话关闭后继续。两者分别查询和停止;取消当前 run 与停止未来周期也是两个操作。
|
|
48
|
-
|
|
49
|
-
外部节点需单独配置工具、技能、Python 环境和认证,不自动继承主会话能力。需要人工确认的业务不安排无人值守执行。提交结果不明时先按原标识查询,避免重复创建。
|
|
50
|
-
|
|
51
|
-
外部工具与真实任务的验收范围见[验证](validation.md)。
|
|
43
|
+
服务任务可在宿主关闭后继续。pbot 专家、外部任务、当前 run 和未来周期分别查询、停止。外部节点单独配置工具、技能、Python 与认证;需要人工确认的业务保留人工交互。提交结果不明时按原标识查询,避免重复创建。
|