前言¶
在 DeepSeek Harness (DSH) 的开发流程中,开发者通常通过 system prompt 定义模型的行为,通过工具定义能力。但模型在执行任务时,往往缺乏对当前运行环境的感知。例如,模型不知道当前是运行在 Ubuntu 还是 Windows,不知道 CPU 型号或内存占用。dsh-where-am-i 插件通过注入类似 neofetch 的设备信息块,解决了这一问题。
插件介绍¶
这是一个由 gausszhou 维护的客户端插件。它的核心功能是向每个新建的会话注入包含主机名、操作系统、内核版本、架构、CPU 型号、内存使用情况、运行时间、时区、语言环境、终端 Shell 以及 Node 版本的设备信息块。
核心功能¶
- 注入时机:仅在会话的第一个步骤注入一次,随后持久化到该会话的历史记录中,后续步骤不再重复。
- 不影响现有会话:安装后,已有的会话或系统提示词保持字节级一致,不会触发 KV 缓存失效。
- 子代理支持:默认跳过子代理会话(避免重复),可通过配置开启
includeSubagents。 - 零子进程:使用 Node.js 原生 API 获取系统信息,不依赖外部命令(如
uname或sw_vers)。
安装与启用¶
使用官方命令安装:
dsh plugin --profile web add "@gausszhou/dsh-where-am-i"
安装完成后需要重启 dsh web 服务使配置生效:
systemctl --user restart dsh-web
配置¶
所有配置项均为可选,默认开启所有字段。配置文件位于 ~/.dsh/profiles/web/cordis.patch.yml。
# ~/.dsh/profiles/web/cordis.patch.yml
- id: where-am-i
config:
fields: [os, kernel, arch, cpu, memory, timezone]
includeSubagents: true
注意事项¶
- Node.js 版本:要求 Node.js >= 20.3。
- 子代理默认关闭:默认不向子代理会话注入信息,避免重复,需手动开启。
- 无系统提示词修改:插件通过
agent/pre-step水听器机制工作,不修改共享的系统提示词,因此不会破坏现有会话的上下文。
总结¶
该插件通过在会话历史中插入一次性的设备信息快照,帮助模型更好地感知运行环境,无需配置即可使用。更多细节请查看 GitHub 仓库。