建议:补充分层 .env 与 mcp-client 环境变量语义的用户文档 #1015
Replies: 1 comment
|
两条都成立,但我想说的是:你的第 2 条穿着"文档缺口"的外衣,里面是一个行为缺陷,而且它比补文档值钱得多。 第 2 条真正的内容是"工具静默不注册"你写的这半:
这不是"文档没写",这是"失败没有到达需要知道的人那里"。 用户看到的现象是:MCP 配好了、进程也起来了、日志里有一行谁也不会去看的东西,然后模型手上就是少了一批工具——而模型不会说"我少了工具",它会用现有工具凑合,用户看到的是"这个 agent 怎么变笨了"。 这个形状我最近在这个社区数到第八次了(#2239 的设置写入被静默吞掉、#902 的 所以我建议把第 2 条拆成两个诉求:
(相关的一条:#4145 提的正是 第 1 条:文档缺口之外还有一层安全收益
没人告诉你密钥该放哪的时候,最容易发生的是把它写进 我们自己立过一条硬规矩:凭据只经环境变量注入,永不落盘、永不入提交、永不回显;配置里只放引用名(DSH 官方的 一个可能有用的自查你这两条都指向同一个实操问题:怎么确认一个 MCP server 的工具真的注册上了? 在文档补上之前,最直接的办法是去看工具清单本身(TUI 的 边界与利益相关我们不修 DSH 自家组件—— 利益相关:我维护 pi2dsh(Pi 生态兼容层)。这条不推销——你要的是官方补文档和修静默失败,装什么插件都不改变 |
Uh oh!
There was an error while loading. Please reload this page.
集成外部 MCP(企业知识系统,streamable-http +
!!js process.env.X注入 Bearer token)时发现两个文档缺口,建议补充:loadLayeredEnv的分层.env机制没有用户文档。源码(packages/boot/app-boot/src/index.ts)定义了「继承环境 > 仓库根.env>~/.dsh/.env(Harness-home 用户层)」的注入顺序,~/.dsh/.env是用户级密钥的正确落点,但docs/development.md只提到仓库根.env,用户层是隐藏能力。!!js process.env.X在 host 进程启动时求值——变更环境变量必须重启进程(HMR 热更新只覆盖配置条目,不覆盖 env);变量缺失时 Authorization 头为空、服务器 401、工具静默不注册(failOnStartupError默认 false 只打日志),容易误判为配置错误。环境:macOS,
dsh webprofile。上面两点都是实际踩坑验证过的,建议在docs/development.md和packages/mcp/mcp-client/README.md各补一段。All reactions