DSH 大肥鱼权限边界:Session 派活与完全访问模式

作者
DeepSeekAgent.io 编辑部
发布
更新

大肥鱼可以显示 Agent 状态,也可以成为发送任务的入口,但这两件事需要的权限完全不同。一个只播放本地动画的桌宠几乎不需要业务权限;一个能向 DSH Session 派活的桌宠,则可能间接触发文件修改、命令执行和网络访问。

安全设计的关键不是禁止桌宠派活,而是让“角色显示层”“任务发送层”和“Agent 执行层”保持清晰边界。

五种能力对应五种权限

能力通常需要不应顺便获得
播放本地动画读取包内素材、保存位置API Key、会话正文、文件系统
显示 DSH 状态订阅结构化 Session/Tool 事件屏幕截图、窗口文字抓取
显示余额通过宿主授权的余额服务直接回显或保存明文 Key
向 Session 派活选择 Session、提交用户输入自动提升 Session 权限
创建并执行任务工作区、工具与审批策略默认 danger-full-access 与永不审批

如果一个插件只需要显示“正在思考”,就不应要求辅助功能、无障碍、屏幕录制或全盘访问。dsh-dafeiyu 的公开边界就是从 DSH 会话事件取状态,不读取屏幕。

派活继承的是 Session 风险

气泡输入框本身只是一个输入入口。真正决定风险的是接收任务的 Session:

  • 它绑定哪个工作区;
  • 使用什么模型和工具;
  • 是只读、工作区可写还是完全访问;
  • 命令、网络和工作区外写入是否需要批准;
  • 当前是否还有未完成的任务。

因此派活前至少应显示 Session 名称、工作区和权限模式。找不到明确目标时,宁可要求用户选择,也不要静默发送到“最近活动”的高权限会话。

不要让桌宠替用户偷偷升级权限

常见的危险捷径是:为了让桌宠“什么都能做”,自动创建一个完全访问 Session,并把审批设置为永不询问。这虽然让演示很顺畅,却把角色点击变成了远程命令入口。

更合理的默认值是:

  1. 复用用户明确选中的 Session;
  2. 保留该 Session 原有权限与审批策略;
  3. 新建 Session 时默认工作区可写,而不是全盘访问;
  4. 涉及工作区外写入、安装软件、发送消息或账户操作时继续询问;
  5. 在气泡里显示等待批准,而不是绕过批准。

屏幕感知不是状态联动的前提

桌宠想知道 Agent 正在做什么,应优先读取 DSH 的结构化事件,而不是截图、OCR 或扫描窗口标题。结构化事件能告诉它 Session、阶段、工具、结果和错误,而且不会顺带采集用户正在浏览的其他内容。

如果独立桌宠确实需要前台应用感知,应做到:

  • 默认关闭;
  • 只读取实现功能必需的最小元数据;
  • 不上传截图和窗口内容;
  • 清楚展示开启状态;
  • 允许用户随时撤销;
  • 与 DSH 原生事件模式分开说明。

API Key 与余额

显示余额不应意味着桌宠自行保存一份明文 API Key。优先方案是复用 DSH 已有凭据服务,让 Host 返回最小化的余额结果,客户端只看数值和更新时间。

日志、错误提示、设置导出和截图中都不应包含 Key。第三方项目若要求用户把 Key 写进角色包的公开配置,应被市场明确警告。

本地接口和跨站请求

部分桌宠使用本地 HTTP 服务连接 Host 与透明窗口。此时需要检查:

  • 是否只监听 Loopback;
  • 是否有随机令牌或同源保护;
  • 是否允许任意网页调用派活接口;
  • 端口冲突与旧进程如何清理;
  • 请求体、日志和错误是否泄露会话内容。

能使用 DSH Remote 或宿主内通信时,不应为了方便再开放一个无认证的固定端口。

上架前权限清单

  • 动画模式不要求 Agent 权限;
  • 状态来自结构化事件,不默认读取屏幕;
  • 派活前能看见目标 Session、工作区与权限;
  • 不自动把 Session 切换为完全访问;
  • 高风险工具保留审批;
  • 客户端拿不到明文 API Key;
  • 本地接口仅监听 Loopback 并有认证;
  • 日志不记录 Key、完整提示词和私密文件内容;
  • 卸载后说明哪些关系、记忆和缓存会保留;
  • 权限变化有可见提示和撤销入口。

实现侧可继续阅读大肥鱼 Session 与 Tool Call 状态联动;产品侧先看大肥鱼桌宠生态。

参考资料