DSH 适配器
framework/adapters/dsh/ 是 DeepSeek Harness 的 headless 宿主适配器。它只消费已经由 Muse 派发层解析好的 FrameworkExecutionRequest,不读取角色合同、数据库、额度或候选状态。
当前支持面
- DSH profile:
headless。 - 会话:每次新建 fresh session;不接受
continue。 - 工具:只接受空
toolAllowlist。当前 DSH 内建工具没有与 Muse 五个只读工具形成可证明的闭集,因此非空白名单在启动前失败。 - 轨迹:通过一次性 patch 把会话持久化切到本次运行私有的
compression=noneJSONL;flush 后再归一为FrameworkEvent工件。stdout 不是审计事实源。 - 模型:provider/model 必须由调用方显式传入,适配器只把它们写入 DSH 的
agent-default-modelpatch 并记录实际 session route。 - PI 路由:
load_pi_ai_route()只读 PI 的models.json,把 provider、api协议、baseUrl和模型目录投影为llm-pi-aipatch;凭据只通过apiKeyEnv引用,不能进入 patch。 - 权限:默认
read-only;适配器关闭 headless profile 中未经过 Muse 授权证明的工具、Skill 自动注入和会话标题模型调用。
这条路径是 DSH 对照臂和宿主接缝,不改变当前生产默认 Pi,也不允许 DSH 直接写 Canonical 或数据库。
本机验证
当前本机安装的官方 DSH 版本是 0.1.1-rc.2,与 npm latest 和官方仓库 b150a551b8d465e31e418e1b2eaf5e79bbb7d28e 一致。无 API key 时只做配置与失败关闭检查:
dsh --version
dsh --profile web --dump-config
dsh --profile headless --dump-config
PI 兼容网关的真实运行由调用方在当前进程注入凭据,例如:
PI_KEY="$(pi auth print-api-key --provider "$PI_PROVIDER")"
DEEPSEEK_API_KEY="$PI_KEY" .venv/bin/python <调用方脚本>
unset PI_KEY
调用方应使用 load_pi_ai_route() 读取协议和地址,再把 pi_ai_route 传给 DshExecutionPolicy;密钥不写入仓库。真实模型运行还需要用户显式提供凭据和预算。
代码入口
runner.py:启动 DSH、生成一次性 patch、超时/非零退出失败关闭、读取 session artifact。normalization.py:保留未知事件并将 DSH append-only session 映射为通用事件工件。tests/architecture/test_dsh_adapter.py:无网络、无模型、无数据库的协议回归。
外部事实以 DSH 官方 README、Architecture、Headless bundle README 为准;公众号文章只作为产品模式的二手说明,不作为 API 合同。