Files
deepseek-harness/packages/credentials/credentials-local/README.zh.md

2.4 KiB
Raw Blame History

dsh-credentials-local

English | 中文

只读凭据提供方,包含两个由外部管理的来源:

层 优先级
活跃进程环境 点名的值非空时始终优先
$DSH_HOME/.env 文档 其余情况

环境优先,因为启动时覆盖(DEEPSEEK_API_KEY=… dsh、CI 机密或预先设置好环境的 shell)代表操作者对该进程的意图。提供方不会写入任何一个来源。

配置

字段 默认值 含义
path <harness home>/.env 凭据文档位置。
dshHome $DSH_HOME 或 ~/.dsh path 缺省时使用的 harness home。

解析

每次调用 resolve(ref) 时,提供方先读取 process.env[ref]。若该值不存在或为空,提供方再读取 dotenv 文档并以 dotenv 解析;文件不存在、键不存在或值为空时返回 undefined,其他文件错误则使该操作失败。实现不使用 watcher 或缓存,因此外部编辑无需经过提供方生命周期或变更 API,即可在下一次解析时生效。

提供方接受 dotenv 的解析语义,包括最后一次赋值优先。它既不创建文档,也不控制其权限;两者均归操作者或外部凭据管理接口所有。

安全边界

harness 不会向模型暴露解析后的文档路径,也不会把文件载入进程环境(见 app-boot 的个人配置)。这是审慎,不是隔离:工具以同一 OS 用户身份运行,可以读取该用户权限允许的任何文件。必须让提供方密钥远离自身 agent(智能体)的部署,需要采用由这些工具进程无法读取的存储支撑的提供方。

Model Experience

经由消费它的 LLM(大语言模型)适配器间接生效:解析出的值为适配器的提供方请求授权,每个模型可见面都归适配器所有。

KV Cache effect

无直接失效;凭据绝不进入请求前缀。

Known Limitations and Deferred Work

  • 修改由外部完成:请编辑 dotenv 文档、启动环境或上游机密存储;该提供方刻意不提供写入 API。
  • 每次回退到文件都会执行 I/O:实现选择小而始终读取当前值的路径,不引入 watcher、缓存和失效生命周期。
  • 同一 OS 用户的进程可以读取该文档:文件权限无法将机密与以同一用户身份运行的模型调用工具隔离。