大肥鱼权限边界
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,并把审批设置为永不询问。这虽然让演示很顺畅,却把角色点击变成了远程命令入口。
更合理的默认值是:
- 复用用户明确选中的 Session;
- 保留该 Session 原有权限与审批策略;
- 新建 Session 时默认工作区可写,而不是全盘访问;
- 涉及工作区外写入、安装软件、发送消息或账户操作时继续询问;
- 在气泡里显示等待批准,而不是绕过批准。
屏幕感知不是状态联动的前提
桌宠想知道 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 状态联动;产品侧先看大肥鱼桌宠生态。