{"_id":"@99percentpeople/pi-deepseek-anchor","_rev":"2-e5cb66a84f7ac4163bf14ce9e5effe9d","name":"@99percentpeople/pi-deepseek-anchor","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@99percentpeople/pi-deepseek-anchor","version":"0.1.0","keywords":["pi-package","pi","coding-agent","deepseek","harness","reasoning","anchored-standard"],"author":{"name":"99percentpeople"},"license":"MIT","_id":"@99percentpeople/pi-deepseek-anchor@0.1.0","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"homepage":"https://github.com/99percentpeople/pi-extensions#deepseek-anchor","bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"pi":{"extensions":["./index.min.js"]},"dist":{"shasum":"1c714058c6633dd250d7a65acc37fb33a34bc531","tarball":"https://registry.npmjs.org/@99percentpeople/pi-deepseek-anchor/-/pi-deepseek-anchor-0.1.0.tgz","fileCount":6,"integrity":"sha512-OFQ4I5A8zJP+XskUZIt+VopVkTvJbk6Ie9hXVqeyssdIn1bsXhwk9TSBvvWvRTEDBj6arUpd3AtT9mmNcgHqBQ==","signatures":[{"sig":"MEUCIQD4zhSWlDSEVpWtoJpGcKjV5vNQMwpXxB+q7YttPHU28wIgV80UAyJK8qZzCJHhGRKdpJX5llPeB9Tunm5RD/b1QHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166474},"type":"module","gitHead":"b5f9782d800ac3d0a9214e86fed9b9a82a0ce31d","_npmUser":{"name":"99percentpeople","email":"myzzzyearz@outlook.com"},"repository":{"url":"git+https://github.com/99percentpeople/pi-extensions.git","type":"git","directory":"extensions/deepseek-anchor"},"_npmVersion":"12.0.1","description":"Simulate DSH minimal mode's first request to induce a stronger DeepSeek V4 Pro agent trajectory","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"typebox":"*","@earendil-works/pi-ai":"*","@earendil-works/pi-tui":"*","@earendil-works/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-deepseek-anchor_0.1.0_1786797744406_0.9012474852593786","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@99percentpeople/pi-deepseek-anchor","version":"0.1.1","description":"Simulate DSH minimal mode's first request to induce a stronger DeepSeek V4 Pro agent trajectory","type":"module","pi":{"extensions":["./index.min.js"]},"keywords":["pi-package","pi","coding-agent","deepseek","harness","reasoning","anchored-standard"],"author":{"name":"99percentpeople"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/99percentpeople/pi-extensions.git","directory":"extensions/deepseek-anchor"},"bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"homepage":"https://github.com/99percentpeople/pi-extensions#deepseek-anchor","publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"peerDependencies":{"@earendil-works/pi-ai":"*","@earendil-works/pi-coding-agent":"*","@earendil-works/pi-tui":"*","typebox":"*"},"gitHead":"fe4c44f3b4d4b52bd2c31d6d4d5a833c4ad60d9d","_id":"@99percentpeople/pi-deepseek-anchor@0.1.1","_nodeVersion":"24.19.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-jnx14spWrXQFz8E6ldd6qaGz/EMUZXzoJA1UQvEtqrceX3TS3Vev/Fz6S4GjL8ycNREbuovgvI3UiNzn7IsVEg==","shasum":"9fb15740ac48ff92ee96755f915014bd87aef750","tarball":"https://registry.npmjs.org/@99percentpeople/pi-deepseek-anchor/-/pi-deepseek-anchor-0.1.1.tgz","fileCount":6,"unpackedSize":182776,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@99percentpeople%2fpi-deepseek-anchor@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHD3Dpish30lOqvfMKNPEg2xlRI3Po83ARRBIFoEWmFkAiEA76KqM2Rjfj/OlvGBzO1Kznf+LNfL1LheihCUyjoIqOM="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c3f699c5-1071-4bd2-aa68-aae84774f73b"}},"directories":{},"maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-deepseek-anchor_0.1.1_1786895060176_0.13264990027640366"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-15T12:42:24.311Z","modified":"2026-08-16T15:44:20.644Z","0.1.0":"2026-08-15T12:42:24.564Z","0.1.1":"2026-08-16T15:44:20.310Z"},"bugs":{"url":"https://github.com/99percentpeople/pi-extensions/issues"},"author":{"name":"99percentpeople"},"license":"MIT","homepage":"https://github.com/99percentpeople/pi-extensions#deepseek-anchor","keywords":["pi-package","pi","coding-agent","deepseek","harness","reasoning","anchored-standard"],"repository":{"type":"git","url":"git+https://github.com/99percentpeople/pi-extensions.git","directory":"extensions/deepseek-anchor"},"description":"Simulate DSH minimal mode's first request to induce a stronger DeepSeek V4 Pro agent trajectory","maintainers":[{"name":"99percentpeople","email":"myzzzyearz@outlook.com"}],"readme":"# @99percentpeople/pi-deepseek-anchor\n\n[English](README.md) | **简体中文**\n\n面向 [Pi coding agent] 的实验性 DeepSeek V4 Pro 请求锚定扩展。\n\nDeepSeek Anchor 用于在 Pi 中模拟 DeepSeek Harness（DSH）minimal 模式的模型可见首次请求。它的目标是让 V4 Pro 从一开始进入更有效、与训练接口对齐的工具使用轨迹，从而改善 agent 的任务表现，而不只是让模型显示可见 reasoning。\n\n扩展会让新会话先使用精简工具脚手架启动；bootstrap 工具批次结束后，恢复 Pi 的完整工具目录，同时继续将 profile 的完整 system prompt 作为会话级锚点。默认 `pi-native` 是兼容性更好的近似方案；`exact-dsh` 会更严格地复现 DSH bootstrap prompt 和 schema。实际效果仍取决于任务和运行环境，扩展不能保证性能提升或选择服务端路由。\n\n## 原理\n\nProject2 V4.1b 的 harness 分析显示，DeepSeek V4 Pro 对首次请求中的 system prompt 和工具 schema 较为敏感。DeepSeek Harness（DSH）官方 minimal preset 将一句 system prompt、持久化 `bash` 和 `str_replace_editor` schema 称为“exact RL prompt and schemas”。另一组 `anchored-standard` 实验保留 minimal 的完整 system prompt，在首次工具调用后恢复更大的工具目录，并延续了更强的任务轨迹。\n\nDeepSeek Anchor 在 Pi 中应用这一客户端诱导方式：让首次请求对齐 DSH minimal 模式，形成初始工具策略，然后在不丢失完整 prompt anchor 的前提下恢复更丰富的 Pi 工具目录。它只改变请求结构，不会修改模型权重、保证隐藏推理、选择服务端路由或保证任务结果。\n\n参考资料：\n\n- [DeepSeek V4 Pro harness 分析]\n- [审计提交中的 DSH minimal preset]\n- [DSH minimal 请求快照]\n\n## Profiles\n\n### `pi-native`（默认）\n\n执行时使用 Pi 的原生工具：\n\n- 每个符合条件的请求都使用固定或用户配置的一句完整 system prompt；\n- bootstrap 阶段默认使用 `bash` 和 `edit`，并保留 Pi 原有 schema；\n- bootstrap 工具批次完成后，恢复启动前的完整活动工具集。\n\n此 profile 不会注册 DSH Bash wrapper，因此 Pi 自身的 `bash` 工具完全不被改动，包括用户配置的 `shellPath` 和 `shellCommandPrefix`。它不使用 DSH 持久化 shell，Windows 上仍由 PowerShell Adapter 管理 Bash。它是可互操作的近似方案，而不是 DSH schema 契约。\n\n### `exact-dsh`\n\n更严格地复现模型可见的 DSH bootstrap 契约：\n\n- 会话中的完整 system prompt 固定为 `You are a helpful software engineer assistant.`；\n- bootstrap payload 只包含 `bash` 和 `str_replace_editor`；\n- 使用 DSH 兼容的工具名称、描述、JSON schema 和编辑器输出；\n- bootstrap 期间使用会话级持久化本地 Bash；\n- 恢复 Pi 普通工具目录时移除兼容编辑器。\n\nBash 兼容 wrapper 只会在启用此 profile 后注册。在 exact bootstrap 之外，它会委托给当前 SSH Bash 后端，或使用宿主的 `shellPath` / `shellCommandPrefix` 配置重建 Pi 的普通本地 Bash，因此普通 Bash 调用仍保持 Pi 原有行为。如果其他扩展占用了 `bash` 或 `str_replace_editor` 工具名，扩展会拒绝激活，而不是对外宣称 DSH schema 却执行其他实现。\n\n`exact-dsh` 仅支持 POSIX。它的 bootstrap 直接操作本地文件系统；如果其他扩展把 Bash 委托给远程或不可用环境，扩展会拒绝激活。离开 exact bootstrap 后，wrapper 会跟随当前 SSH Bash 委托，否则退回 Pi 的普通本地 Bash。Windows 上仍由 PowerShell Adapter 管理 Bash，只能使用 `pi-native`。\n\n该 profile 在 bootstrap prompt/schema 边界上保持精确，并在之后继续保持同一个完整 prompt，但它并不是 DSH runtime 的完整复制。扩展不会复制 DSH 服务端路由、关闭 Pi 自动压缩、强制实现 DSH 的网络或软件包镜像描述，也不会增加文件系统 sandbox。持久化 shell 和绝对路径编辑器拥有与 Pi 进程相同的操作系统权限。\n\n设置修改后立即生效，无需 reload。会话 gate 与 profile 绑定；如果对已有消息的会话切换 profile，请使用 `/new`。\n\n## 生命周期\n\n默认 Anchored 模式的生命周期如下：\n\n1. 要求当前 provider/model 与配置匹配，并且对话是新会话。\n2. 在活动 session branch 中记录与 profile/model 绑定的 gate。\n3. 首次 agent run 前保存当前活动工具集，只暴露该 profile 的 bootstrap 工具。\n4. 将 provider payload 规范化为一条完整 profile system instruction 和选定的 bootstrap 工具目录。\n5. 同一工具批次中的并列调用始终看到相同目录。\n6. 在 `turn_end` 恢复保存的工具，确保 Pi 准备下一次请求前已经获得完整目录。\n7. 后续每次 provider 请求继续使用同一条完整 system instruction，同时保留已恢复的工具目录。\n8. 持久化 anchored phase，使 `/reload` 和 resume 能恢复完整目录，而不会丢失 system anchor 或重复 bootstrap 限制。\n\n如果第一次响应没有调用工具，会话会继续停留在 bootstrap，直到之后的 bootstrap 响应产生工具调用。模型不匹配、关闭扩展、更换会话、reload 或 shutdown 时，工具限制都会被安全恢复。\n\n工具 staging 固定为会话作用域：每个会话只在 bootstrap → anchored 时切换一次，\n因此完整 system prompt 和展开后的工具目录在后续请求中保持稳定。\n\n## Thinking level\n\n参考运行使用 `max` thinking。DeepSeek Anchor 不会自动修改用户选择的 thinking level。符合条件的会话如果没有使用 `max`，扩展只会警告一次。\n\n## 安装\n\n```bash\npi install npm:@99percentpeople/pi-deepseek-anchor\n```\n\n源码开发：\n\n```bash\npi -e ./extensions/deepseek-anchor/index.ts\n```\n\n安装后使用目标模型开始新会话：\n\n```text\n/model deepseek/deepseek-v4-pro\n/new\n```\n\n## 设置\n\nDeepSeek Anchor 不注册私有 slash command。请打开共享设置菜单：\n\n```text\n/99settings\n```\n\n选择 **DeepSeek Anchor**。下表说明每个选项的作用、可选值以及它会影响哪些相关选项：\n\n| 设置 | 作用 | 可选值 | 默认值 | 显示条件 |\n| --- | --- | --- | --- | --- |\n| Profile | 选择首个请求使用的 bootstrap 契约与整个会话的 system anchor | Pi native、Exact DSH | Pi native | 始终显示 |\n| Mode | 控制何时启用 bootstrap 工具目录，以及是否修改 provider 请求 | Anchored、Minimal、Off | Anchored | 始终显示 |\n| Bootstrap tools | 决定 `pi-native` 首个请求暴露哪些 Pi 工具 | bash + edit、bash + read | bash + edit | 仅 Pi native |\n\n### Profile\n\n- **Pi native**：兼容性更强的近似方案。bootstrap 请求使用 Pi 自身的 `bash`\n  和 `edit`（或自定义工具）schema，并把 `nativeSystemPrompt` 作为整个会话的\n  system anchor。它不会注册 DSH Bash wrapper，也不会使用 DSH 持久化 shell。\n- **Exact DSH**：更严格地复现 DSH minimal preset。system prompt 固定为\n  `You are a helpful software engineer assistant.`，使用 DSH 的\n  `bash` + `str_replace_editor` schema 和编辑器输出，bootstrap 期间运行会话级\n  持久化本地 Bash。需要 POSIX 主机和本地 Bash 后端；存在 SSH Bash 委托时\n  该 profile 会拒绝激活。\n\n相关选项：`Bootstrap tools` 只影响 Pi native；Exact DSH 的 prompt 和\nbootstrap 工具不可修改。会话 gate 与 profile 绑定，因此在已有消息的会话中\n切换 Profile 需要 `/new` 才能让新 profile 生效。\n\n### Mode\n\n- **Anchored**（默认）：会话开始时使用 profile 的精简 bootstrap 工具目录，\n  整个会话保持完整 profile system prompt；首个包含工具调用的 bootstrap 响应\n  结束后恢复 Pi 完整工具目录，之后该会话的后续请求一直保持完整目录。\n- **Minimal**：每次 provider 请求都使用精简 bootstrap 工具目录，同时保持\n  完整 profile system prompt。目录永远不会展开，适合与完整 Pi 工具集做\n  对照实验。\n- **Off**：完全不修改 provider payload 和 Pi 当前活动工具目录，是 A/B 对比\n  的干净基线。切换后完整工具目录会立即恢复。\n\n相关选项：Pi native 下即使 Mode 为 Off，`Bootstrap tools` 仍会显示，\n方便先准备好基线再重新开启模式。\n\n### Bootstrap tools\n\n- **bash + edit**（默认）：最接近 DSH minimal 的两工具组合，但继续使用 Pi\n  自身 schema。\n- **bash + read**：偏只读检查的组合；bootstrap 阶段允许用 read 读取文件，\n  并把 Pi 的专用文件编辑工具推迟到完整工具目录恢复之后。\n\nJSON 字段 `nativeBootstrapTools` 可以填写任何已注册的 Pi 工具名，例如\n`[\"bash\", \"read\", \"grep\"]`。如果配置的工具未注册，或 provider payload 中缺少\n该工具，扩展会恢复完整工具目录并拒绝修改请求，而不会发送不完整的\nbootstrap。\n\n相关选项：Exact DSH 忽略该设置，始终使用 `bash` + `str_replace_editor`\nbootstrap。Pi native 下即使 Mode 为 Off 也会显示该设置，但它只在 Anchored\n或 Minimal 模式下影响请求。\n\n### 高级 JSON 字段\n\n配置保存在仓库扩展共享的设置文件中：\n\n```text\n~/.pi/agent/99extensions.json\n```\n\n使用 `deepseek-anchor` 命名空间，默认配置如下：\n\n```json\n{\n  \"deepseek-anchor\": {\n    \"version\": 1,\n    \"profile\": \"pi-native\",\n    \"mode\": \"anchored\",\n    \"targetProvider\": \"deepseek\",\n    \"targetModelId\": \"deepseek-v4-pro\",\n    \"nativeBootstrapTools\": [\"bash\", \"edit\"],\n    \"nativeSystemPrompt\": \"You are a helpful software engineer assistant.\"\n  }\n}\n```\n\n| 字段 | 作用 |\n| --- | --- |\n| `version` | 命名空间 schema 版本，保持 `1` |\n| `profile` / `mode` | 与 `/99settings` 菜单相同的取值 |\n| `targetProvider` | 模型 gate 的 provider 部分；只有该 provider 符合条件 |\n| `targetModelId` | 模型 gate 的 model id 部分；provider payload 的 model 也必须匹配 |\n| `nativeBootstrapTools` | Pi native bootstrap 请求暴露的 Pi 工具名；Exact DSH 会忽略 |\n| `nativeSystemPrompt` | 注入到每个符合条件 Pi native 请求的完整 system instruction；Exact DSH 使用固定的 DSH prompt |\n\n缺失或非法字段会在扩展加载时归一化回默认值。通过菜单修改会立即保存并\n生效；直接编辑 JSON 文件需要下次扩展 reload 或新会话才会被读取。运行时工具\n快照仅存在于当前会话，不会写入该文件。\n\n## 调试\n\n```bash\nDEEPSEEK_ANCHOR_DEBUG=1 pi -e ./extensions/deepseek-anchor/index.ts\n```\n\n调试日志包含请求 phase、工具名称、规范化后的完整 system prompt，以及第一段可见 reasoning 的最多前 120 个字符。Reasoning 日志可能包含敏感项目数据，只应在明确需要实验时启用。\n\n## 实验性注意事项\n\n- 可见 reasoning 风格只能作为轨迹诊断信号；它不是 anchoring 的目标，也不能证明能力提升或读取隐藏 chain-of-thought。\n- 对比 profile 时，应分别使用新会话，并保持相同的模型、thinking level、任务、workspace 和评估流程。\n- 后加载的 `before_provider_request` 扩展仍可能修改最终 payload。需要严格请求快照时，请使用最小扩展集合。\n- 为保持 schema 一致，扩展复现了 DSH 的 shell 描述，但不会强制实现其中的网络或软件包镜像声明。\n- `str_replace_editor` 接受绝对路径，能够读取或修改 workspace 之外的文件。只应在 Pi 已拥有预期文件系统权限的环境中安装。\n\n## 开发\n\n```bash\nbun run lint\nnode --import tsx --test --test-isolation=process tests/deepseek-anchor.test.ts\nbun run --cwd extensions/deepseek-anchor build\nbun pm pack --dry-run --cwd dist/deepseek-anchor\n```\n\n## License\n\nMIT\n\n[Pi coding agent]: https://pi.dev/\n[DeepSeek V4 Pro harness 分析]: https://github.com/xiaobright/modeltest/blob/main/docs/v4.1/DEEPSEEK_V4_PRO_HARNESS_ANALYSIS_20260814.md\n[审计提交中的 DSH minimal preset]: https://github.com/deepseek-ai/deepseek-harness/blob/47f943859bef60e4160492346772ded9b24f765a/apps/cli/config/agent-presets/minimal/agent.cordis.yml\n[DSH minimal 请求快照]: https://github.com/deepseek-ai/deepseek-harness/blob/47f943859bef60e4160492346772ded9b24f765a/apps/web/tests/minimal-preset.snapshot.ts\n","readmeFilename":"README.zh-CN.md"}