Replies: 1 comment
|
这个想法的方向我理解,但在讨论安全模型之前,有三个今天就成立的机械障碍会先撞上来——而其中一个会让"assemble"这一步以不小的概率把它想帮的那个会话弄坏。我把它们摆出来,不是为了否掉提案,是因为它们直接决定这个特性该长什么样。 障碍 1:插件挂载在启动时,装完不重启不生效DSH 的插件是在启动时挂载的——加了插件或卸了插件都要重启 dsh 才生效。这是我们(做 DSH 上的兼容层)在自己的安装文档里必须写明的一条。 所以"会话中途按需安装"最直接的问题是:装完了,这一轮也用不上。 除非走热重载——而这就是障碍 2。 障碍 2:运行中热插入插件,今天有一个已知的破坏性 bug#902 报的正是这件事:运行中往
楼主自己定位到了根因: 这条对你的提案是直接的:你的特性会在每一个任务上触发这条路径。 现在它是"偶尔有人手工改配置才踩到",你的提案会把它变成主干路径。 障碍 3(最严重):自动往 profile 里装任意插件,是 #1697 那个 bug 的触发条件这条我建议你一定要读一遍原帖:#1697。 装任何一个依赖 机制:profile 的 @yzke 在那帖里还补了第二个实例:装 对你的提案意味着什么:
好消息是这个前提条件可以离线检测:那帖下面已经有两个独立的诊断工具做了这个检查( 所以如果这个特性要做,这个检查必须是它的一部分,而且必须在装之前——装完再检测已经晚了。 这三条加起来,对提案形状的建议我不认为该放弃,但建议把重心从"自动"挪到"可控":
关于"会话作用域的安全边界"你问的这个问题很好,但我建议先明确一件事:自动安装的决定是谁做的。 如果是模型根据任务内容决定装哪个包,那这是一条从模型输出直达代码执行的路径——模型被 prompt injection 诱导时,它可以选择装什么。这条路上,"沙箱"和"权限提示"都只是缓解,不是边界;真正的边界只能是人来确认包名,或者一个人事先批准过的白名单。 (相关的一手判据:这个社区里已经有多份实录,攻击者就是模型本身——所以任何"让模型判断这次操作安不安全"的设计在这里都不成立。你的提案如果保留自动安装,建议明确写成"从一个部署方预先批准的目录中选择",那是一个可以论证的边界。) 边界与利益相关我们不修 DSH 自家组件——插件挂载、cordis 热重载、profile 的 pnpm 布局都在 DSH 里。上面引的 #902 / #1697 都是别人的报告,我没有复现过;"挂载在启动时、加卸插件要重启"是我们自己的安装经验。 利益相关:我维护 pi2dsh(Pi 生态兼容层)。这条不推销——如果这个特性做成了,我们和别人一样是被自动安装的对象;我在这里只是把三条会先撞上来的墙摆出来。 |
Uh oh!
There was an error while loading. Please reload this page.
Background
DeepSeek Harness is built on an "Everything is a Plugin" philosophy with Cordis at its core. Today, however, the plugin lifecycle is largely decoupled from the agent lifecycle: plugins are installed up front (via
dsh plugin add), and a session either uses what's already there or the user manually adds something mid-flight. The task itself never drives the plugin lifecycle.Proposal
Make plugin provisioning part of the session lifecycle:
dsh-plugin-search.Why this fits DeepSeek Harness
dsh-plugin-search), and install-path guardrails.Open questions
I'd love to hear the community's thoughts — especially on the security model and how this might compose with existing marketplace efforts.
All reactions