personal-bot 0.2.6 → 0.2.8
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 +47 -13
- package/README.zh-CN.md +46 -12
- package/docs/README.md +4 -2
- package/docs/agent-collaboration.md +4 -4
- package/docs/capability-design.md +12 -6
- package/docs/dsh-implementation-plan.md +9 -7
- package/docs/dsh-support-proposal.md +6 -22
- package/docs/dsh.en.md +333 -0
- package/docs/dsh.md +346 -48
- package/docs/file-storage.md +1 -1
- package/docs/history.md +2 -0
- package/docs/installation-design.md +7 -4
- package/docs/model-context.md +60 -0
- package/docs/model-instruction-guidelines.md +51 -0
- package/docs/release.md +10 -6
- package/docs/subagent-upgrade-proposal.md +1 -1
- package/docs/technical-design.md +21 -15
- package/docs/validation.md +64 -7
- package/lib/dsh.js +4 -0
- package/lib/extension/dsh/agent-events.js +1 -1
- package/lib/extension/dsh/agent-runtime.js +8 -5
- package/lib/integrations/dsh/resources.d.ts +1 -1
- package/lib/integrations/dsh/resources.js +14 -14
- package/lib/integrations/dsh/session.js +1 -0
- package/lib/integrations/installation/pi-bridge.js +9 -9
- package/lib/integrations/team-context.js +7 -3
- package/lib/services/agents/agent-notices.js +2 -2
- package/lib/services/agents/team-service.js +1 -1
- package/lib/tools/agents/contract.d.ts +1 -1
- package/lib/tools/agents/contract.js +7 -7
- package/lib/tools/agents/dsh-contract.js +4 -4
- package/lib/tools/history/contract.d.ts +1 -1
- package/lib/tools/history/contract.js +2 -2
- package/lib/tools/teams/contract.d.ts +2 -2
- package/lib/tools/teams/contract.js +11 -11
- package/npm-shrinkwrap.json +30 -25
- package/package.json +28 -25
- package/python/README.md +1 -1
- package/resources/agents/coordinator.md +5 -33
- package/resources/agents/general-purpose.md +3 -15
- package/resources/prompts/history-summary.md +1 -1
- package/resources/prompts/team-member.md +7 -0
- package/resources/prompts/workspace.md +13 -24
- package/resources/references/compute-finance.md +22 -0
- package/resources/references/compute.md +11 -88
- package/resources/references/task-conductor.md +20 -15
- package/resources/skills/project-maintenance/SKILL.md +9 -11
- package/resources/skills/provider-connections/SKILL.md +7 -7
- package/scripts/README.md +1 -1
- package/src/dsh.ts +4 -0
- package/src/extension/agent-events.ts +17 -4
- package/src/extension/command.ts +1 -1
- package/src/extension/dsh/agent-events.ts +1 -1
- package/src/extension/dsh/agent-runtime.ts +7 -6
- package/src/extension/events.ts +14 -9
- package/src/extension/subagent-entry.ts +24 -16
- package/src/integrations/dsh/resources.ts +17 -14
- package/src/integrations/dsh/session.ts +2 -0
- package/src/integrations/installation/pi-bridge.ts +9 -7
- package/src/integrations/pi/agent-context.ts +1 -1
- package/src/integrations/team-context.ts +7 -3
- package/src/services/agents/agent-notices.ts +2 -2
- package/src/services/agents/team-service.ts +1 -1
- package/src/tools/agents/contract.ts +7 -7
- package/src/tools/agents/dsh-contract.ts +4 -4
- package/src/tools/history/contract.ts +2 -2
- package/src/tools/register.ts +1 -7
- package/src/tools/teams/contract.ts +11 -11
- package/resources/prompts/tool-guidelines.md +0 -3
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ English | [简体中文](README.zh-CN.md)
|
|
|
4
4
|
|
|
5
5
|
**A personal assistant connecting knowledge, research, and action.**
|
|
6
6
|
|
|
7
|
-
Personal Bot provides a workspace-scoped [Pi](https://pi.dev) extension and a native Web integration
|
|
7
|
+
Personal Bot provides a workspace-scoped [Pi](https://pi.dev) extension and a native dsh Web integration. It supports learning, project work, research, decision support, investment analysis, and explicitly authorized operations. See the [dsh guide](docs/dsh.en.md) for installation, commands, and acceptance limits.
|
|
8
8
|
|
|
9
9
|
The model handles analysis, coordination, and native tools. Personal Bot adds workspace materials, specialist collaboration, and Python environment preparation. It does not create a second main agent or start tasks or trades automatically.
|
|
10
10
|
|
|
@@ -31,7 +31,7 @@ pbot setup
|
|
|
31
31
|
|
|
32
32
|
This global npm installation provides the command; it does not register a global Pi extension. `pbot setup` uses the globally installed installer version. Update it with npm, or use `npx personal-bot@latest setup` for the latest installer. The npx command does not install itself globally.
|
|
33
33
|
|
|
34
|
-
A core failure stops startup. An optional plugin failure allows the other plugins to proceed and is reported before you choose whether to start Pi. Completed steps remain in place; fix the cause and rerun setup. There is no automatic rollback across package managers. See the [installation design](docs/installation-design.md) for scope and recovery rules.
|
|
34
|
+
A core failure stops startup. If a configured Git or local directory source is missing or has no identifiable package name, setup stops and asks you to repair the source through Pi; it preserves the declaration. Existing standalone extension files remain supported. An optional plugin failure allows the other plugins to proceed and is reported before you choose whether to start Pi. Completed steps remain in place; fix the cause and rerun setup. There is no automatic rollback across package managers. See the [installation design](docs/installation-design.md) for scope and recovery rules.
|
|
35
35
|
|
|
36
36
|
### Install directly with Pi
|
|
37
37
|
|
|
@@ -70,35 +70,69 @@ Replace the example paths with your actual paths. A local installation loads the
|
|
|
70
70
|
|
|
71
71
|
### Use with dsh
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
Use the latest dsh release with Node.js 24.9+ (or the newer minimum declared by that release), npm, pnpm, and Python 3.11+. `pbot setup` installs for Pi; dsh uses its native profiles and plugin manager. Run in a terminal:
|
|
74
74
|
|
|
75
|
-
|
|
75
|
+
```bash
|
|
76
|
+
npm install -g @deepseek-ai/dsh@latest pnpm@latest
|
|
77
|
+
dsh --version
|
|
78
|
+
pnpm --version
|
|
79
|
+
# First creation only: this replaces an existing profile of the same name.
|
|
80
|
+
dsh --profile pbot --from-default-profile web --dump-config
|
|
81
|
+
dsh plugin --profile pbot add personal-bot@latest
|
|
82
|
+
dsh --profile pbot
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
The last command starts the Web server and normally opens a browser. Select your workspace and main session there, then configure models and authentication in dsh's native settings. In the chat input, use `/pbot` to open the workspace, specialist, team, and history tabs; `/pbot status` checks the workspace and Python environment; `/pbot init` optionally creates missing material directories. Loading the plugin and these checks do not call a model.
|
|
86
|
+
|
|
87
|
+
For subsequent starts, run `dsh --profile pbot`. After stopping active specialists and the server, update the host and plugin separately:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
npm install -g @deepseek-ai/dsh@latest
|
|
91
|
+
dsh plugin --profile pbot update personal-bot --latest
|
|
92
|
+
dsh plugin --profile pbot list personal-bot --depth 0
|
|
93
|
+
dsh --profile pbot
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
Do not repeat `--from-default-profile` during updates. For the desktop application, install and manage `personal-bot@latest` through its native Plugins page; the npm CLI's `pbot` profile and the application's `desktop` profile are separate.
|
|
97
|
+
|
|
98
|
+
The [full English guide](docs/dsh.en.md) ([中文](docs/dsh.md)) covers launcher options, plugin inspection and removal, source tarballs, every `/pbot` subcommand, JSON parameters, and examples. Specialists use native Agent/Session instances in the server process; refreshing a page does not stop accepted work. Pi and dsh query shared history archives while owning their own sessions, models, authentication, and MCP configuration. The tested dsh baseline is `0.2.2-rc.1`; `latest` can change and does not imply that future releases have passed acceptance. See the [validation record](docs/validation.md).
|
|
76
99
|
|
|
77
100
|
### Optional: Task Conductor
|
|
78
101
|
|
|
79
|
-
For scheduled tasks, recurring workflows, or DAGs,
|
|
102
|
+
For scheduled tasks, recurring workflows, or DAGs, use the optional `task-conductor-plugin` and its shared `using-task-conductor` skill. The plugin and the `task-conductor` service are installed separately. Follow the [upstream integration guide](https://github.com/realqiyan/task-conductor/blob/master/docs/host-integrations.md) for service setup, connection settings, and updates.
|
|
80
103
|
|
|
81
|
-
Check `pi list`
|
|
104
|
+
**Pi:** Check `pi list` for an existing installation and its resource settings. For the published Pi integration, run from the workspace root:
|
|
82
105
|
|
|
83
106
|
```bash
|
|
84
107
|
pi install --local npm:task-conductor-plugin
|
|
85
108
|
```
|
|
86
109
|
|
|
87
|
-
|
|
110
|
+
For unreleased plugin changes, use `pi install --local /absolute/path/to/task-conductor/plugin` instead. Keep one source enabled. Run `/reload` in Pi, then `/skill:using-task-conductor`. The skill covers service installation, `task-conductor setup`, and Pi's native MCP registration. `--local` limits plugin loading; choose MCP scope separately and reuse existing connections.
|
|
111
|
+
|
|
112
|
+
**dsh:** The native Host integration is included in the unpublished Task Conductor `0.1.6` release candidate. Until publication, build the plugin and matching service from that source, then install the plugin tarball into your existing Web profile:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
cd /absolute/path/to/task-conductor
|
|
116
|
+
npm run pack:plugin
|
|
117
|
+
dsh plugin --profile pbot add /absolute/path/to/task-conductor/task-conductor-plugin-<version>.tgz
|
|
118
|
+
dsh plugin --profile pbot list task-conductor-plugin --depth 0
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Use the actual tarball path printed by the packaging command. Restart `dsh --profile pbot`, open the main session, and invoke `/using-task-conductor`. The plugin provides the shared skill through native filesystem discovery and creates a native MCP connection for each root main session, using that session's working directory. Tools retain names such as `mcp__task-conductor__executor_list`; avoid adding a duplicate manual connection. The desktop application's native Plugins page accepts the same local tarball; its profile is separate. See the [dsh Task Conductor guide](docs/dsh.md#task-conductor) for the matching local service build and setup.
|
|
88
122
|
|
|
89
|
-
|
|
123
|
+
The service keeps its own coordinator model configuration and `pi-durable` runtime. Using dsh as the host does not require the interactive Pi CLI. To also run task nodes with dsh, register the canonical absolute dsh executable through Task Conductor's admin CLI or Web interface as custom executor `dsh-acp`, with arguments `["--profile", "acp"]`. Follow the upstream skill's [custom ACP instructions](https://github.com/realqiyan/task-conductor/blob/master/plugin/skills/using-task-conductor/references/custom-acp.md); `dsh` is not a built-in executor ID. Nodes use their own dsh profile, authentication, tools, and environment.
|
|
90
124
|
|
|
91
|
-
|
|
125
|
+
Notifications return to the originating persistent host session; resume that session to receive pending events. Closing Pi or dsh does not stop service tasks. Update the plugin and service separately, following upstream instructions to check active work, stop the service, and back up its data. Keep credentials in your terminal or private files. Use the skill's native tool discovery and read-only connection checks; these do not establish successful model execution or task delivery.
|
|
92
126
|
|
|
93
127
|
## Optional workspace preparation
|
|
94
128
|
|
|
95
|
-
Personal Bot works without initialization. Run `/pbot init` only if you want the standard material layout. It creates missing material directories and a missing root `AGENTS.md`; it does not overwrite files or start model tasks.
|
|
129
|
+
Personal Bot works without initialization. Run `/pbot init` only if you want the standard material layout. It creates missing material directories and a missing root `AGENTS.md`; it does not overwrite files or start model tasks. In Pi, the new `AGENTS.md` enters native context after `/reload` or the next startup. The bundled directory guide is available from the first task.
|
|
96
130
|
|
|
97
131
|
Keep goals, markets, preferences, and working agreements in ordinary documents. Ask the assistant to organize them as needed. For external tools, provide the CLI/MCP name, purpose, official documentation, or configuration location—not credential values.
|
|
98
132
|
|
|
99
133
|
## Daily use
|
|
100
134
|
|
|
101
|
-
Describe the task directly: organize project materials, compare research findings, delegate an independent review, or run calculations. No fixed workflow is required. The command table and process details below describe Pi; see the [dsh guide](docs/dsh.md) for its Web interface and commands.
|
|
135
|
+
Describe the task directly: organize project materials, compare research findings, delegate an independent review, or run calculations. No fixed workflow is required. The command table and process details below describe Pi; see the [dsh guide](docs/dsh.en.md) for its Web interface and commands.
|
|
102
136
|
|
|
103
137
|
| Command | Purpose |
|
|
104
138
|
| --- | --- |
|
|
@@ -116,7 +150,7 @@ Describe the task directly: organize project materials, compare research finding
|
|
|
116
150
|
- **Research and analysis:** Ask the assistant to synthesize evidence, explain conflicts, check calculations and definitions, or identify assumptions to validate first.
|
|
117
151
|
- **Independent sub-sessions:** Personal Bot supports tmux and independent Pi sessions; install tmux on the system to use them. `pbot_agent start` returns immediately; without a message, prompts, or files it creates an idle process without calling a model. Task completion produces a notification. Options cover models, directories, files, tools, and resources. Operations include send, follow-up, rename, status, read, stop, and explicit resume; there is no foreground/background flag or wait operation. `/pbot agents` shows active agents and can open their TUI. Main-session reload preserves running agents; exit or session switching stops them and retains history. Sub-sessions use native CLI/MCP within their delegated scope. See [specialist collaboration](docs/agent-collaboration.md).
|
|
118
152
|
- **Teams:** `pbot_team` groups existing agents for `roundRobin` discussion or `parallel` rounds. Members exchange original messages through `pbot_team_message`; ordinary posts do not wake models. A running team reserves its members. Pause and drain in-flight work before private messages; reload pauses teams without replaying requests. The first release uses fixed membership and bounded rounds, not dynamic ask/reply wake-ups. See [specialist collaboration](docs/agent-collaboration.md).
|
|
119
|
-
- **Scheduled and durable tasks:** The main session uses optional Task Conductor directly through native MCP, its `using-task-conductor` skill, and actual tool contracts. Without it, ordinary Personal Bot features still work, but scheduling is unavailable. Personal Bot adds no durable task scheduler or forwarding layer. Query and stop external tasks separately from sub-sessions. Cancelling the current run does not stop future recurrences, and closing Pi does not imply that external tasks stopped.
|
|
153
|
+
- **Scheduled and durable tasks:** The main session uses optional Task Conductor directly through native MCP, its `using-task-conductor` skill, and actual tool contracts. Without it, ordinary Personal Bot features still work, but scheduling is unavailable. Personal Bot adds no durable task scheduler or forwarding layer. Query and stop external tasks separately from sub-sessions. Cancelling the current run does not stop future recurrences, and closing Pi or dsh does not imply that external tasks stopped.
|
|
120
154
|
- **Python:** All workspaces share one dedicated venv for the current user. Loading Personal Bot creates or updates it with locked dependencies and activates it in the current Pi process. Main and specialist sessions use `python` or `python3` through Bash. Failures are reported; fix the cause and retry with `/pbot python setup`. System Python, external terminals, existing scripts, and historical results are not changed. Shared dependency updates affect other workspaces, so stop relevant scripts before changing plugin versions or retrying setup. See the [Python guide](python/README.md) and [computation reference](resources/references/compute.md).
|
|
121
155
|
- **Material maintenance:** Ask to organize project materials, reproduce a report using its previous definitions, or review delivery and close a task. The [project maintenance skill](resources/skills/project-maintenance/SKILL.md) updates the current task and affected materials within your requested scope. Current guidance is consolidated by topic, with reusable methods and analysis definitions extracted from project conclusions. Sources and important decisions remain traceable. Cleanup removes unnecessary temporary outputs within scope, not formal materials, history, or backups.
|
|
122
156
|
|
|
@@ -142,7 +176,7 @@ Personal Bot stores no private activation state in the workspace. Pi owns its co
|
|
|
142
176
|
|
|
143
177
|
## Updates and historical data
|
|
144
178
|
|
|
145
|
-
Current release: **0.2.
|
|
179
|
+
Current release: **0.2.8**. Personal Bot maintains no workspace format, initialization state, or workspace upgrade mechanism. Update the plugin through its native host package manager. For a local Pi installation, update the source, run `npm ci --ignore-scripts` if dependencies changed, then reload or restart Pi.
|
|
146
180
|
|
|
147
181
|
Stop active sub-sessions before changing versions. Sub-session compatibility follows the minor version before 1.0 and the major version from 1.0 onward. Sessions from another compatibility line cannot be resumed directly.
|
|
148
182
|
|
package/README.zh-CN.md
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
**个人助手,连接知识、研究与行动。**
|
|
6
6
|
|
|
7
|
-
提供 Pi
|
|
7
|
+
提供 Pi 工作区扩展和 dsh 原生 Web 接入,用于学习、项目推进、研究与决策支持,也支持投资分析与已授权业务。dsh 的安装、命令和当前验收范围见[专门说明](docs/dsh.md)。
|
|
8
8
|
|
|
9
9
|
定位为可信模型驱动的个人助手。模型负责分析、协调与原生工具使用;pbot 提供资料入口、专家协作和 Python 环境准备。不另建主 Agent,不自动开展任务或交易。
|
|
10
10
|
|
|
@@ -31,7 +31,7 @@ pbot setup
|
|
|
31
31
|
|
|
32
32
|
这里的全局 npm 安装只提供 `pbot` 命令,不向 Pi 注册全局扩展。`pbot setup` 使用全局安装的安装器版本;用 npm 更新它,或继续使用 `npx personal-bot@latest setup` 获取最新安装器。安装器不自动全局安装自己。
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
核心步骤失败时停止启动。已配置的 Git 或本地目录来源缺失、或无法识别包名时,setup 保留声明并停止,须先通过 Pi 修复来源;已有独立单文件扩展仍可使用。可选插件失败时继续处理其他项并汇总。成功步骤保留,修复后重跑同一命令;不自动整体回滚。工作区作用域、版本选择和边界见[安装与升级](docs/installation-design.md)。
|
|
35
35
|
|
|
36
36
|
### 直接使用 Pi 安装
|
|
37
37
|
|
|
@@ -68,29 +68,63 @@ pi
|
|
|
68
68
|
|
|
69
69
|
### 使用 dsh
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
使用最新版 dsh,需要 Node.js 24.9+(若新版声明更高要求,以新版为准)、npm、pnpm 和 Python 3.11+。`pbot setup` 面向 Pi,dsh 使用原生 profile 和插件管理。在终端执行:
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
```bash
|
|
74
|
+
npm install -g @deepseek-ai/dsh@latest pnpm@latest
|
|
75
|
+
dsh --version
|
|
76
|
+
pnpm --version
|
|
77
|
+
# 仅首次创建:此命令会覆盖已有同名 profile。
|
|
78
|
+
dsh --profile pbot --from-default-profile web --dump-config
|
|
79
|
+
dsh plugin --profile pbot add personal-bot@latest
|
|
80
|
+
dsh --profile pbot
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
最后一条命令启动 Web 服务,通常会自动打开浏览器。在页面中选择工作区和主会话,通过 dsh 原生设置配置模型与认证。在聊天输入框执行 `/pbot` 打开工作区、专家、团队和历史四页;`/pbot status` 检查工作区与 Python 环境;`/pbot init` 可选地补建缺失资料目录。加载插件和这些检查不调用模型。
|
|
84
|
+
|
|
85
|
+
以后启动只需 `dsh --profile pbot`。停止活动专家和服务后,分别更新宿主与插件:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
npm install -g @deepseek-ai/dsh@latest
|
|
89
|
+
dsh plugin --profile pbot update personal-bot --latest
|
|
90
|
+
dsh plugin --profile pbot list personal-bot --depth 0
|
|
91
|
+
dsh --profile pbot
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
更新时不要重复 `--from-default-profile`。使用桌面应用时,在原生“插件”页面安装和管理 `personal-bot@latest`;npm CLI 的 `pbot` profile 与应用的 `desktop` profile 分开。
|
|
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)。
|
|
74
97
|
|
|
75
98
|
### 可选安装 Task Conductor
|
|
76
99
|
|
|
77
|
-
需要周期任务、重复流程或 DAG
|
|
100
|
+
需要周期任务、重复流程或 DAG 时,使用可选接入包 `task-conductor-plugin` 及其共享的 `using-task-conductor` 技能。插件与 `task-conductor` 服务分别安装;服务初始化、连接设置和更新按[上游接入说明](https://github.com/realqiyan/task-conductor/blob/master/docs/host-integrations.md)操作。
|
|
78
101
|
|
|
79
|
-
先用 `pi list`
|
|
102
|
+
**Pi:** 先用 `pi list` 检查已有安装及资源设置。使用已发布的 Pi 接入时,从工作区根目录执行:
|
|
80
103
|
|
|
81
104
|
```bash
|
|
82
105
|
pi install --local npm:task-conductor-plugin
|
|
83
106
|
```
|
|
84
107
|
|
|
85
|
-
|
|
108
|
+
使用未发布插件改动时,改为 `pi install --local /absolute/path/to/task-conductor/plugin`,只启用一个来源。在 Pi 内执行 `/reload`,再调用 `/skill:using-task-conductor`。技能提供服务安装、`task-conductor setup` 和 Pi 原生 MCP 注册方法。`--local` 限定插件加载范围;MCP 作用域另行选择,复用已有连接。
|
|
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
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
使用打包命令输出的实际 tarball 路径。重启 `dsh --profile pbot`,打开主会话并调用 `/using-task-conductor`。插件通过原生文件系统技能发现提供共享技能,为每个根主会话创建使用该会话工作目录的原生 MCP 连接。工具保留 `mcp__task-conductor__executor_list` 等名称,避免另加重复的手工连接。桌面应用在原生“插件”页安装同一 tarball,profile 与 CLI 分开。配套本地服务的构建和设置见 [dsh Task Conductor 指南](docs/dsh.md#task-conductor)。
|
|
86
120
|
|
|
87
|
-
|
|
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、认证、工具和环境。
|
|
88
122
|
|
|
89
|
-
|
|
123
|
+
通知回到提交任务的持久宿主会话;恢复原会话可接收待处理事件。关闭 Pi 或 dsh 不停止服务任务。插件与服务分别更新,按上游说明检查活动工作、停服并备份数据。凭据留在终端或私有文件中。连接检查沿用技能的原生工具发现与只读调用;它们不证明模型执行或任务交付已经成功。
|
|
90
124
|
|
|
91
125
|
## 可选资料准备
|
|
92
126
|
|
|
93
|
-
加载 Personal Bot 后可直接使用,无需初始化。需要标准资料布局时执行 `/pbot init`:只创建缺失的资料目录和根 `AGENTS.md
|
|
127
|
+
加载 Personal Bot 后可直接使用,无需初始化。需要标准资料布局时执行 `/pbot init`:只创建缺失的资料目录和根 `AGENTS.md`,不覆盖已有文件,不触发模型任务。在 Pi 中,新建的 `AGENTS.md` 经 `/reload` 或下次启动后进入原生上下文;包内目录用途说明在首次任务即可使用。
|
|
94
128
|
|
|
95
129
|
目标、市场、偏好和工作约定保存在普通资料中,可直接请助手整理。需要接入外部工具时提供 CLI/MCP 名称、用途、官方文档或配置位置,不提供凭据值。
|
|
96
130
|
|
|
@@ -114,7 +148,7 @@ pi install --local npm:task-conductor-plugin
|
|
|
114
148
|
- **研究与分析**:可要求“综合这些资料并说明证据冲突”“核验这份分析的口径与计算”或“找出先要验证的关键假设”。
|
|
115
149
|
- **独立子会话**:包内提供 tmux 与独立 Pi 会话,需系统安装 tmux。`pbot_agent start` 立即返回;省略 message/prompts/files 时只创建待命进程,不调用模型。工作完成后自动通知。支持模型/目录/文件/工具与资源选项、send、follow-up、rename、status、read、stop 和显式 resume,没有前后台参数或 wait。`/pbot agents` 展示正在工作的 agent,可进入子 TUI。主 reload 保持运行,退出或切换会话停止并保留历史。子会话也使用原生 CLI/MCP,按委派范围工作。详见[专家协作](docs/agent-collaboration.md)。
|
|
116
150
|
- **团队协作**:`pbot_team` 将已有 agent 组成固定团队,支持 roundRobin 轮流讨论和 parallel 并行轮次。成员通过 `pbot_team_message` 直接交换原文,普通 post 不唤醒模型。运行中的团队占用成员;先暂停并收尾,再切换私人工作。reload 暂停团队,不重放旧请求。首版不包含动态 ask/返回唤醒,详见[专家协作](docs/agent-collaboration.md)。
|
|
117
|
-
- **周期与持久任务**:主会话通过原生 MCP 直接使用可选的 Task Conductor,处理周期、重复流程和 DAG;使用其 `using-task-conductor` 技能与实际工具契约。安装与接入见[可选安装引导](#可选安装-task-conductor)。缺失不影响普通 pbot 功能,但不能执行调度。pbot 不另建持久任务调度器或转发层。外部任务与子会话分别查询和停止,取消本轮不等于停止未来周期,关闭 Pi 也不代表外部任务已停止。
|
|
151
|
+
- **周期与持久任务**:主会话通过原生 MCP 直接使用可选的 Task Conductor,处理周期、重复流程和 DAG;使用其 `using-task-conductor` 技能与实际工具契约。安装与接入见[可选安装引导](#可选安装-task-conductor)。缺失不影响普通 pbot 功能,但不能执行调度。pbot 不另建持久任务调度器或转发层。外部任务与子会话分别查询和停止,取消本轮不等于停止未来周期,关闭 Pi 或 dsh 也不代表外部任务已停止。
|
|
118
152
|
- **Python 环境**:所有工作区共用当前用户的独立 venv。Personal Bot 加载后自动创建环境或安装锁定依赖,成功后在当前 Pi 进程激活;主会话与专家通过 Bash 使用 `python` 或 `python3`。环境异常时提醒,修复后用 `/pbot python setup` 重试。系统 Python、外部终端、已有脚本和历史结果不变。共享依赖更新会影响其他工作区;更换插件版本或手工重试前应停止相关脚本。详见 [Python 说明](python/README.md)与[计算参考](resources/references/compute.md)。
|
|
119
153
|
- **资料维护**:可要求“整理当前项目资料”“按上次口径重做报告”或“检查交付并结项”。助手按[项目整理与维护技能](resources/skills/project-maintenance/SKILL.md)更新当前任务及实际受影响的资料;整体整理按用户指定范围进行。当前说明按主题合并更新,从项目结论中提炼可复用的方法与口径;来源与重要决策保持可追溯。整理或结项时归集成果并清理范围内无用的临时产物,保留正式资料、历史记录与备份。
|
|
120
154
|
|
|
@@ -140,7 +174,7 @@ Personal Bot 不在工作区内保存私有启用状态。Pi 配置仍由 Pi 管
|
|
|
140
174
|
|
|
141
175
|
## 更新与历史数据
|
|
142
176
|
|
|
143
|
-
当前版本为 **0.2.
|
|
177
|
+
当前版本为 **0.2.8**。不维护工作区格式、初始化状态或升级机制。插件更新使用对应宿主的原生包管理;Pi 本地安装则更新来源源码,依赖变化后执行 `npm ci --ignore-scripts`,再重载或重启 Pi。更换版本前先停止活动子会话;不同兼容线的子会话不能直接恢复。
|
|
144
178
|
|
|
145
179
|
子会话 JSONL 由 Pi 保存在原生 sessions 目录或原生配置指定的位置;`pbot/subagents/` 只保存控制记录与会话引用,团队公共记录保存在 `pbot/teams/`。0.2.0 不兼容旧会话位置,不迁移或删除 0.1.x 历史;旧记录不进入当前列表或后台调度。先在旧版停止活动成员,更新后重新创建 agent。共享 Python 环境使用用户级 `pbot/python/.venv`,具体系统路径见 [Python 说明](python/README.md)。不自动导入其他应用的会话、配置或环境,也不修改其数据。MCP 连接与 CLI 环境按原生方式显式配置;用户资料、历史证据和备份原样保留。
|
|
146
180
|
|
package/docs/README.md
CHANGED
|
@@ -6,8 +6,10 @@
|
|
|
6
6
|
| --- | --- |
|
|
7
7
|
| [架构原则](architecture-guidelines.md) | 模块划分、依赖和开发方法 |
|
|
8
8
|
| [技术设计](technical-design.md) | 系统组成、生命周期与资源加载 |
|
|
9
|
+
| [模型指令编写原则](model-instruction-guidelines.md) | 提示、角色、技能与工具说明的取舍、表达、加载和验证要求 |
|
|
10
|
+
| [模型上下文](model-context.md) | 主会话、专家与摘要入口的内容、加载时机和验证边界 |
|
|
9
11
|
| [界面设计](interaction-design.md) | Pi TUI 与 dsh GUI |
|
|
10
|
-
| [dsh
|
|
12
|
+
| [dsh 使用(中文)](dsh.md) / [English](dsh.en.md) | 安装、更新、原生 profile、完整命令与 Web 管理 |
|
|
11
13
|
| [工具与执行](capability-design.md) | CLI/MCP 接入、授权和结果核验 |
|
|
12
14
|
| [专家协作](agent-collaboration.md) | 子会话工具、通信、通知和生命周期 |
|
|
13
15
|
| [历史对话](history.md) | 自动收录、连续摘要树、全文查询与原文展开 |
|
|
@@ -20,4 +22,4 @@
|
|
|
20
22
|
|
|
21
23
|
Python 环境与库许可见 [python/README.md](../python/README.md)。模型使用的方法维护在 resources/skills,运行时职责维护在 resources/agents。
|
|
22
24
|
|
|
23
|
-
|
|
25
|
+
每个主题维护当前说明,总览通过链接引用;提供中英文版本时同步维护命令、参数和限制。版本以 package.json 为准;历史设计查 Git 记录,临时排查过程不进入设计文档。
|
|
@@ -24,7 +24,7 @@ Pi 的 start 支持 noExtensions、noSkills、noPromptTemplates 和 noContextFil
|
|
|
24
24
|
|
|
25
25
|
## dsh 专家
|
|
26
26
|
|
|
27
|
-
dsh 使用原生 provider/model/reasoning effort,拒绝 Pi
|
|
27
|
+
dsh 使用原生 provider/model/reasoning effort,拒绝 Pi 专属扩展、提示模板和上下文文件开关。创建与恢复时通过原生 composeFrom 应用父 preset,保留其文件工具、AGENTS 和技能发现;tools 使用原生能力名,专家排除协调管理及递归委派工具。noSkills 关闭模型技能目录和 skill 工具,用户显式技能手势仍按宿主处理。只在模型选择仍与父一致时继承父 effort。恢复保留原生选择,不用新父默认值覆盖旧会话。
|
|
28
28
|
|
|
29
29
|
服务器文件由原生附件存储保留内容,图片使用原生准入;Web 人工对话还接受本机文件与图片。人工对话先成功暂停所属团队,再进入原生 inbox;队列接纳、实际进入、模型消费和完成分别记录,未来排队输入不提前改变此前回答的归因。
|
|
30
30
|
|
|
@@ -83,7 +83,7 @@ run 要求全部成员空闲、无未消费的私人输入,并已加载可用
|
|
|
83
83
|
|
|
84
84
|
团队公共记录独立于各自私人会话。Pi 通过原 inbox 投递,在 before_agent_start 和 turn_end 的安全边界注入已署名的公共原文,不请求额外 continuation。dsh 使用原生 inbox 和 pre-step;团队领取先获得原生 maintenance 准入,人工输入待处理或当前步骤已有人工消息时不追加团队背景。空闲成员在下一次团队请求时取得信息,私人工作不自动注入新群消息。
|
|
85
85
|
|
|
86
|
-
成员任务、团队背景、自动注入的公共消息和批次通知使用 Markdown
|
|
86
|
+
成员任务、团队背景、自动注入的公共消息和批次通知使用 Markdown 文档。普通专家只加载公共约定与专家职责;处理团队任务时才补充共同目标、成员职责、身份、轮次及团队操作说明。本批次要求仅在成员任务输入中给出,避免重复。公共消息按 seq 分节,列出作者、回复关系与来源,正文放入保留原文的代码区块,包含代码围栏的正文也不会破坏区块边界。成员原文中的 JSON 保留原样。
|
|
87
87
|
|
|
88
88
|
read 的文本结果也使用 Markdown,同时保留工具的结构化结果。nextOffset 非空表示该条正文未读完,用同一 teamId、seq 和 offset 续读;nextAfterSeq 用于后续消息。自动注入按实际 Markdown 长度限制上下文,并用 remainingFromSeq 标明未包含的消息,从 afterSeq: remainingFromSeq - 1 继续读取。不能将展示片段当作完整记录。Pi 压缩不删除公共记录。
|
|
89
89
|
|
|
@@ -138,8 +138,8 @@ dsh 的 Web、原生 Remote、附件、长记录、冷读与恢复,以及真
|
|
|
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
144
|
|
|
145
|
-
Pi 1.5.0 的本地 SDK、实际无认证 Pi/tmux 进程、文件并发与恢复测试已覆盖基础契约。未使用假模型或模拟 provider。2026-10-28 在 0.1.3 上的真实模型双成员冒烟已通过两种策略的单轮通信、原文引用与主通知;0.2.0
|
|
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)。单轮通过不证明一般协作质量或外部操作恰好一次。
|
|
@@ -22,21 +22,27 @@ Pi 处理信任、认证与工具暴露。使用 /mcp 查看连接、工具和
|
|
|
22
22
|
|
|
23
23
|
子会话按自己的 cwd 和 Pi agent dir 加载配置。需要工作区项目 MCP 时,以工作区根目录作为 cwd,在命令中切换计算目录。父进程临时注册的连接不会自动转移到子进程。
|
|
24
24
|
|
|
25
|
-
dsh
|
|
25
|
+
dsh 使用当前安装版本的原生 MCP 组件和 profile 配置,模型与认证也由 dsh 管理。不得将上述 Pi 命令、配置目录或安装包声明直接用于 dsh,也不自动同步两套配置。同进程专家遵循 dsh 的原生作用域与工具可见性;不模拟 Pi 子进程的扩展开关。
|
|
26
26
|
|
|
27
|
-
##
|
|
27
|
+
## 执行范围与结果
|
|
28
28
|
|
|
29
|
-
|
|
29
|
+
模型按用户请求、已有约定和委派范围行动。提示说明具体操作,不为普通任务额外建立授权、证据收集或独立复核流程。必要的交互确认由当前任务及宿主原生机制决定。
|
|
30
30
|
|
|
31
31
|
Bash、Python、MCP 和扩展拥有其实际账户与凭据权限。dsh 的原生 write、edit、apply_patch 检查原工作区,主会话越界要求一次原生批准,专家越界拒绝;整份 patch 和确认后的路径身份都需有效。文件确认与工具选择是防误操作措施,不是执行隔离;硬性限制使用只读凭据、服务端控制或受限环境。
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
工具保留原生结果与错误格式。操作后查看结果,取消、超时和断连后先查询原生状态与业务标识,再决定是否重试,避免重复执行。任务资料按实际需要保存,不要求每次操作留证。
|
|
34
34
|
|
|
35
35
|
## 可选 Task Conductor
|
|
36
36
|
|
|
37
|
-
Task Conductor 通过原生 MCP 提供周期任务、重复流程和 DAG
|
|
37
|
+
Task Conductor 通过原生 MCP 提供周期任务、重复流程和 DAG,独立管理任务定义与运行状态。Pi 和 dsh 使用同一接入包及 `using-task-conductor` 技能,分别由自己的原生机制加载。安装入口见[项目 README](../README.zh-CN.md#可选安装-task-conductor);dsh 接入包含于 Task Conductor `0.1.6` 候选版本,发布前使用源码与配套本地 tarball,具体步骤见 [dsh 指南](dsh.md#task-conductor)。
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
dsh 接入由 Task Conductor 插件的原生 Host 入口、包导出和 bundle patch 装配,共享技能通过原生 SkillFilesystem 提供。插件为每个根 Agent 建立独立的原生 MCP 连接,stdio 使用该会话 cwd;工具保留 `mcp__task-conductor__<tool>` 命名。Personal Bot 只提供按需参考入口,不增加包装工具、私有 MCP 客户端或安装平台,`pbot setup` 仍面向 Pi。
|
|
40
|
+
|
|
41
|
+
通知 origin 绑定 dsh 原生持久 Session。插件轮询服务事件,将通知送入原会话,在确认原生接收并 flush 持久记录后才向服务 ack;恢复同一会话可继续领取。页面查询和另一主会话不代替原会话接收,宿主关闭不撤销服务中的任务。
|
|
42
|
+
|
|
43
|
+
服务内部协调者继续使用 `pi-durable`,独立配置模型与认证;dsh 宿主不要求 Pi 交互 CLI。dsh 节点通过已有自定义 ACP 注册机制接入,管理员 CLI/Web 注册规范绝对程序路径与 `["--profile", "acp"]`,ID 为 `dsh-acp`;不预留新的内置 `dsh`。该节点的 profile、工具与环境由执行端管理,不从主会话复制。
|
|
44
|
+
|
|
45
|
+
提交任务时明确输入、cwd、工具与认证前提和输出;周期任务还需明确频率、时区、执行范围及每轮数据时点。项目资料保存任务定义、taskId、runId、节点 ID 和结果位置,实时状态向 Task Conductor 查询。
|
|
40
46
|
|
|
41
47
|
pbot 子会话绑定父会话,Task Conductor 可在所属宿主会话关闭后继续。两者分别查询和停止;取消当前 run 与停止未来周期也是两个操作。
|
|
42
48
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# dsh 双宿主实施技术方案
|
|
2
2
|
|
|
3
|
-
状态:双宿主实现及本机 SDK、分发、Web
|
|
3
|
+
状态:双宿主实现及本机 SDK、分发、Web 和桌面验证已完成;2026-11-06 的 Linux CI 全量检查通过,成功模型工作流仍待验收。产品边界见[双宿主方案](dsh-support-proposal.md),分批验证结果见[验证](validation.md)。
|
|
4
4
|
|
|
5
5
|
## 目标与完成条件
|
|
6
6
|
|
|
7
|
-
在同一个 `personal-bot` npm 包中保留 Pi 入口,增加 dsh 服务端和 Web 客户端入口。两端共用资料、业务规则和历史查询;各自管理原生会话、模型、认证、配置与执行生命周期。dsh
|
|
7
|
+
在同一个 `personal-bot` npm 包中保留 Pi 入口,增加 dsh 服务端和 Web 客户端入口。两端共用资料、业务规则和历史查询;各自管理原生会话、模型、认证、配置与执行生命周期。dsh 首轮实现与当前开发依赖基线为 `0.2.2-rc.1`,开发和完整验证使用 Linux、Node.js 24.9.0 以上。用户安装跟随 `latest`,包声明只设最低宿主版本;保留精确开发依赖与锁文件以复现检查。本文后续“固定版”指这批实施记录的版本,不限制用户更新。
|
|
8
8
|
|
|
9
9
|
交付必须覆盖专家、团队、通知、history、共享 Python、资源、文件确认及人工管理。接入验证和部分功能可作为实施里程碑,不能被表述为完整支持。先验证真实接口,再调整共享服务,避免以假定 API 建立大范围改动。
|
|
10
10
|
|
|
@@ -74,8 +74,8 @@ bundle patch 基于原生 Web profile,声明默认 pbot 组合、服务端插
|
|
|
74
74
|
| A 固定版接入 | 隔离 home、真实插件加载、空 Agent flush/冷恢复、setup 清旧 inbox、只读查询、Remote/客户端加载、Bash 环境继承 | 已通过下列接入验证 |
|
|
75
75
|
| B 公共边界 | 异步 AgentHost、原生引用、运行规则与工具契约提取;Pi 完整回归、既有持久契约保留 | 已通过 Linux 回归 |
|
|
76
76
|
| C dsh 业务 | 专家、团队、通知、资源、文件确认、多会话与 Python 生命周期 | 核心接入和本地验证通过;完整工作流待验收 |
|
|
77
|
-
| D History 与 Web | 来源查询与写隔离、原生历史及摘要、完整人工管理与重连 |
|
|
78
|
-
| E 分发与验收 | tarball 双宿主加载、CLI 独立运行、文档更新、Linux 全量检查和真实 Web 验收 | 本机全量、双宿主 tarball
|
|
77
|
+
| D History 与 Web | 来源查询与写隔离、原生历史及摘要、完整人工管理与重连 | 实现及本机 SDK、Web、桌面验证完成;真实模型摘要成功与取消仍待验收 |
|
|
78
|
+
| E 分发与验收 | tarball 双宿主加载、CLI 独立运行、文档更新、Linux 全量检查和真实 Web 验收 | 本机全量、双宿主 tarball、Web 与桌面验证通过;2026-11-06 Linux CI 通过,真实模型工作流仍待验收,见[验证](validation.md) |
|
|
79
79
|
|
|
80
80
|
阶段 A 在临时目录安装固定发布包,不使用个人认证或工作区配置。使用真实 SDK 和 Session API 构造本地记录,不使用 mock、stub、假模型或模拟 provider。SDK 行为验证与最终插件行为测试分开记录;仅保留能覆盖实际正确性风险的测试。
|
|
81
81
|
|
|
@@ -86,7 +86,7 @@ bundle patch 基于原生 Web profile,声明默认 pbot 组合、服务端插
|
|
|
86
86
|
- 固定发布包的真实 Cordis、AgentLoop、JSONL persistence 和内存 query:空专家经 flush 后可被独立进程读取;冷恢复保留身份;恢复 setup 清除旧 inbox 后没有开启旧轮次;错误归属或缺失记录不会激活或替换会话。
|
|
87
87
|
- 使用原生 Session API 写入轮次记录,验证报告固定到持久的 `turn/end`,后续对话及 Agent 释放不改变旧报告。
|
|
88
88
|
- 原生 Bash 在 spawn 时读取进程 venv,两个工作区保留各自 cwd,禁用 user site,环境恢复通过。原生命令的两个父会话分别绑定工作区;关闭一个不影响另一个;卸载插件后旧 handler 失效。
|
|
89
|
-
- Linux Node.js 24.15.0 的初始完整检查通过:`npm ci --ignore-scripts`、`npm run check`、`npm test`,103
|
|
89
|
+
- Linux Node.js 24.15.0 的初始完整检查通过:`npm ci --ignore-scripts`、`npm run check`、`npm test`,103 项测试通过。之后新增的固定报告及工作区生命周期测试已在本地通过;该接入检查点尚未重跑最终 Linux 全量检查。
|
|
90
90
|
- npm tarball 经原生插件命令安装到隔离 `pbot` profile;真实 Chrome 打开 Web,选择临时工作区,展开 `/pbot` 菜单、执行 status 和 init、刷新后再次查询,工作区和父会话身份保持一致,没有 pageerror。客户端需要同时声明 `remote` 与 `remote.commands` 注入。包根发现规则及 Remote 依赖问题已修正。
|
|
91
91
|
- Web 测试中的 Python 目录刻意包含无关数据,原生 setup 如实返回错误且没有覆盖该数据。该测试不证明完整 Python 依赖安装成功;真实计算环境测试由既有 Python 验证及原生 Bash 测试覆盖。
|
|
92
92
|
|
|
@@ -102,7 +102,7 @@ bundle patch 基于原生 Web profile,声明默认 pbot 组合、服务端插
|
|
|
102
102
|
|
|
103
103
|
原生 `write`、`edit`、`apply_patch` 已接入文件规则。整份 patch 的源与移动目标先检查,执行前重核 cwd 和目标身份;专家工作区外直接拒绝,主会话使用原生一次批准。真实文件测试覆盖内部修改、符号链接外逃、move 和混合补丁拒绝,以及原生 `rejected`/`unavailable` 审计。真实附件服务验证二进制文件跨块保存后原字节可读、图片准入、原路径删除后附件仍可读,以及目录、取消和图片数量上限拒绝。图片总字节与数量在批量载入期间按宿主限额检查。
|
|
104
104
|
|
|
105
|
-
阶段 C
|
|
105
|
+
阶段 C 检查点当时未完成 Linux 回归:服务器 SSH 不可达,本机没有 Docker、Colima、Lima 或 Podman,先前 C1 安装未取得成功退出证据。这是历史检查点记录;当时浏览器产物只到阶段 A,后续审批、资源与管理验收结果见下文。
|
|
106
106
|
|
|
107
107
|
阶段 D 的 history 服务和原生工具已接入。两个来源可共同搜索、分别维护;Pi 旧 ID、摘要、关系、分页和旧归档导入继续保留,dsh 不清理或导入 Pi 归档。公开 Session query 读取当前工作区及关联专家,按父级归属纳入不同 cwd 的专家,不把别的工作区专家因 cwd 相同而混入。普通 fork 保留为自身的原生会话;`isSeeded` 是 fork 标记,不是应排除的模板标记。人工 steering、未结束或截断答复保留为原文,工具记录仍由完整原生视图提供。
|
|
108
108
|
|
|
@@ -143,7 +143,9 @@ Web 管理已接入固定版公开的 `TypertRemoteService`、`Remote` 和 Typer
|
|
|
143
143
|
|
|
144
144
|
本机桌面应用 0.2.2-rc.1(内置 Node.js 24.21.0)也完成实际验收:独立 Electron userData、DSH_HOME、HOME 与 Documents 目录,通过原生插件 UI 安装 tarball、启用并执行完整管理流程。附件、长记录、团队失败暂停、history、恢复与刷新通过,10 次管理写命令且页面错误为空;32 MiB 上传在关闭面板后取消,没有提交 chat 或追加 inbox。完整退出应用会停止专家,重开及插件重新启用均不自动恢复。临时登录 Shell 的 PATH 提供 Python 3.12 后,应用真实安装锁定依赖并达到 ready,pip check 和 5 项原生库测试通过。隔离实例模型选择器显示 `No models available`;原日常应用进程保持运行,测试进程已退出。详见[桌面验收记录](validation.md#macos-桌面应用实测),证据在 `/tmp/pbot-dsh-desktop-test/`。
|
|
145
145
|
|
|
146
|
-
|
|
146
|
+
后续证据:2026-11-06,提交 `1625a78af324de412ba12b0689de6c9ebde61698` 的 Linux CI 全量检查及同一候选包的 Node.js 22.19.0 Pi/CLI 消费者检查通过,详见[CI 与发布记录](validation.md#ci-与发布2026-11-06)。
|
|
147
|
+
|
|
148
|
+
后台模型整理成功、输入优先取消真实模型请求、成功专家/团队协作,以及模型实际使用资源与团队上下文仍未验收。无模型检查和旧版 Pi 冒烟不能替代本次真实提供方工作流。
|
|
147
149
|
|
|
148
150
|
## 优先核查的风险
|
|
149
151
|
|
|
@@ -15,14 +15,14 @@
|
|
|
15
15
|
| Q5 配置共享 | 业务约定、用户偏好、角色补充、专业方法和提供方手册共用文件;模型、认证、插件加载和 MCP 连接分别原生管理 |
|
|
16
16
|
| Q6 历史共享 | 两端共同查询问答、摘要和关系;各自收录和生成自己来源的摘要,保留旧 Pi 归档和节点身份 |
|
|
17
17
|
| Q7 生命周期 | 页面切换、刷新和关闭浏览器不主动停止已授权工作;服务端资源关闭时清理执行,重启不自动重放旧任务 |
|
|
18
|
-
| Q8 版本基线 |
|
|
18
|
+
| Q8 版本基线 | 用户安装跟随 dsh `latest`,不精确锁定宿主;`0.2.2-rc.1` 为最低版本及当前开发、验收基线,开发依赖与锁文件保留精确版本;当前 dsh 要求 Node.js ≥24.9.0 |
|
|
19
19
|
| Q9 专家执行 | dsh 在同一服务进程内创建独立原生 Agent / Session;Pi 保留独立进程和 tmux |
|
|
20
20
|
| Q10 加载范围 | 从原生 Web 模板创建独立 `pbot` profile,可承载多个工作区 |
|
|
21
21
|
| Q11 兼容标准 | 业务操作含义一致;模型、思考强度和资源选项按宿主原生能力表达,不支持的输入明确拒绝 |
|
|
22
22
|
| Q12 人工操作 | `/pbot` 配合原生菜单和轻量管理界面;人工操作调用同一业务服务 |
|
|
23
23
|
| Q13 分发 | 一个 npm 包和统一版本,分别提供 Pi 入口、dsh 服务端入口及 Web 客户端模块 |
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
设计树没有剩余的用户选项。下文把上述决定落实为实现边界和验收条件;运行验证仍是实施阶段的工作,不把静态核查视为通过验收。版本策略已按后续使用要求调整为跟随 `latest`;下文 `0.2.2-rc.1` 的接口说明及固定版本资料链接保留首轮实现依据,当前命令以中英文使用指南和实际安装版本为准。
|
|
26
26
|
|
|
27
27
|
```text
|
|
28
28
|
保留 Pi,同时支持 dsh
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
└─ 单包分发
|
|
43
43
|
├─ Pi 源码入口
|
|
44
44
|
├─ dsh 服务端与客户端构建产物
|
|
45
|
-
└─
|
|
45
|
+
└─ 原生安装跟随 latest,验收记录实际版本
|
|
46
46
|
```
|
|
47
47
|
|
|
48
48
|
## 架构与最小改动
|
|
@@ -100,7 +100,7 @@ flowchart TD
|
|
|
100
100
|
| 多会话 | 按确切父 Session 绑定实例 | 切换页面不释放后台工作;fork 不接管原会话的专家或团队 |
|
|
101
101
|
| 安装与客户端 | 原生 profile/bundle/client 模块 | 单包发布;未来客户端可复用服务端业务接口,首版以 Web 验收 |
|
|
102
102
|
|
|
103
|
-
“能力完整”以业务行为和结果核对,不要求界面控件或启动参数逐字相同。Pi 的 `noExtensions`、`noPromptTemplates` 等参数没有 dsh 对应含义时不出现在 dsh
|
|
103
|
+
“能力完整”以业务行为和结果核对,不要求界面控件或启动参数逐字相同。Pi 的 `noExtensions`、`noPromptTemplates` 等参数没有 dsh 对应含义时不出现在 dsh 契约中;误传时报错。模型、思考强度、工具和资源选择由接入层按当前宿主能力校验,不维护 pbot 模型目录。
|
|
104
104
|
|
|
105
105
|
## 工作区、资源与配置
|
|
106
106
|
|
|
@@ -231,23 +231,7 @@ dsh 服务端产物使用 ESM。浏览器产物按 0.2.2-rc.1 的客户端 modul
|
|
|
231
231
|
|
|
232
232
|
完整双宿主开发和 CI 使用 Linux、Node.js ≥24.9.0。包的 Pi 消费路径及安装 CLI 保留 Node.js ≥22.19.0 的要求;dsh 入口声明并检查自己的兼容范围。`prepack` 生成 CLI、dsh 服务端和客户端产物,`dist` 仍不进入发布包。此次不预先指定 Personal Bot 发布版本,不改变已有兼容线规则。
|
|
233
233
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
```bash
|
|
237
|
-
# 环境已具备符合要求的 Node.js;安装固定 dsh 基线。
|
|
238
|
-
npm install -g @deepseek-ai/dsh@0.2.2-rc.1
|
|
239
|
-
|
|
240
|
-
# 仅在 pbot profile 尚不存在时执行;创建 Web 组合并输出配置,不启动服务。
|
|
241
|
-
dsh --profile pbot --from-default-profile web --dump-config
|
|
242
|
-
|
|
243
|
-
# 安装本次构建好的 tarball;文件名按实际版本替换。
|
|
244
|
-
dsh plugin --profile pbot add /absolute/path/to/personal-bot-VERSION.tgz
|
|
245
|
-
|
|
246
|
-
# 查看组合后配置,再从目标工作区启动。
|
|
247
|
-
dsh --profile pbot --dump-config
|
|
248
|
-
cd /absolute/path/to/workspace
|
|
249
|
-
dsh --profile pbot
|
|
250
|
-
```
|
|
234
|
+
2026-11-06 发布的 `personal-bot@0.2.6` 已包含上述 dsh Host/Web 入口。跟随 `latest` 的 dsh、pnpm 安装、插件更新及 tarball 使用步骤统一见[dsh 中文指南](dsh.md)与[英文指南](dsh.en.md);已完成的 CI、发布检查与尚未完成的全新 registry 安装、真实模型验收见[验证](validation.md)。
|
|
251
235
|
|
|
252
236
|
`--from-default-profile` 会替换同名自定义 profile,不能作为重复安装或升级命令。已有 profile 只使用原生插件管理更新包,保留用户层配置。配置 dump 不启动 Agent,但会准备 profile 文件,不能将其描述为完全无写入操作。
|
|
253
237
|
|
|
@@ -300,7 +284,7 @@ bundle 只组合所需原生插件、默认 pbot 会话组合、服务端接入
|
|
|
300
284
|
| Bash local、subprocess、home paths | 支持现有 venv 激活方向和原生用户目录解析,仍需实际进程验证 |
|
|
301
285
|
| 发布版 CLI 与 MCP client | 支持原生 profile/bundle 安装和分别管理 MCP 配置 |
|
|
302
286
|
|
|
303
|
-
|
|
287
|
+
当前已验收的 dsh 基线仍为预发布版本,同进程运行共享故障范围。专家无法跨执行组件重载继续运行;协作取消不能保证强制终止单个 Agent。客户端 bundle、Remote、scope 组合和恢复顺序已纳入首轮验证,升级宿主后仍须重新核对。若新版公开接口变化,应记录具体阻碍并调整接入,不以版本范围声明代替运行验收,也不依赖私有日志格式。
|
|
304
288
|
|
|
305
289
|
历史共享是已提取资料的共享,不等于跨宿主恢复。多进程摘要调用和外部业务执行均不承诺恰好一次。Bash、Python、MCP 与扩展使用实际环境权限,不宣称宿主隔离。未来具体 Desktop 载体不属于本次 Web 验收结果。
|
|
306
290
|
|