feat: run agent tools with host permissions

This commit is contained in:
mesalogo
2026-08-15 18:06:03 +08:00
parent 79e2511f6f
commit 34bbfab2af
38 changed files with 224 additions and 1395 deletions
@@ -29,7 +29,7 @@ GoodBuddy 当前的定时任务支持单次、每日和每周触发固定 Ask
1. 自动化定义与每次运行分离,编辑计划不改变已启动 Run。
2. 第一阶段保留现有定时任务的 Ask 限制,Execute 分阶段开放。
3. Execute 自动化不能因无人值守而绕过现有审批、沙箱和工具控制。
3. Execute 自动化不能因无人值守而绕过现有审批、主机执行策略和工具控制。
4. 应用退出后不承诺继续运行,重启后只进行状态恢复和错过执行结算。
5. 目标任务必须有成功标准,以及预算或人工结束条件。
6. 模型可以提出计划,确定性状态机负责预算、停止、权限和恢复。
@@ -77,7 +77,7 @@ SQLite、FTS 和可选本地向量已经足够支撑第一阶段。只有出现
- 工具权限和审批策略。
- Electron 安全边界。
- 项目根目录和数据访问范围。
- Runtime 沙箱
- Runtime 当前用户执行权限与 Ask/Execute 边界
- 系统级提示词。
- 远程消息发送或其他外部副作用策略。
@@ -408,7 +408,7 @@ Trigger
## 13. 安全与隐私
1. Ask 在 Runtime 边界保持只读,而不只是提示词要求只读。
2. Execute 继续通过现有审批、沙箱、工具和目录控制。
2. Execute 继续通过现有审批、主机执行策略、工具和目录控制。
3. 无人值守只允许用户显式批准的能力集合;遇到未预授权动作时进入等待审批。
4. Supervisor、Evaluator 和 Heartbeat 都把消息、工具输出、记忆和成果视为不可信数据。
5. 监督器不能读取隐藏推理,只能读取产品允许持久化和展示的事件。
@@ -519,7 +519,7 @@ experiment_runs
- [ ] 心跳、定时、目标和实验使用统一的 Plan 与 Run 术语。
- [ ] 每个自动 Run 都能解释触发原因、目标、范围、预算、状态和结果。
- [ ] Ask 自动化无法调用写工具或产生外部副作用。
- [ ] Execute 自动化不能绕过现有审批、沙箱和能力控制。
- [ ] Execute 自动化不能绕过现有审批、主机执行策略和能力控制。
- [ ] 会话监督默认只评论,不能替用户发言或批准工具。
- [ ] 并行 Run 的变量、会话、运行记忆、任务和成果相互隔离。
- [ ] 失败 Run 不参与最佳结果选择,全部失败不报告成功。
@@ -40,7 +40,7 @@ GoodBuddy 已将企业微信、钉钉和微信 ClawBot 远程消息通道纳入
8. “对话”映射为 GoodBuddy `Ask`;“执行”映射为 `Execute`
9. 每个通道项目默认使用“模型连接”中的默认直连文本模型,也可以显式选择其他直连文本模型、OpenCode 或 Continue。选择 OpenCode/Continue 时,通道只保存 Runtime 类型,并在每次远程请求开始时动态跟随“Agent Runtime”中的对应全局配置,不维护第二套模型来源或 Runtime 配置。
10. 远程 Execute 不显示通道专属请求级或逐工具确认;收到合法消息后立即按所选后端运行。
11. 任务仍受工作目录、Runtime 能力、沙箱、能力开关、直连模型工具安全策略和活动审计约束。
11. 任务仍受工作目录上下文、Runtime 能力、Ask/Execute 边界、能力开关、直连模型工具安全策略和活动审计约束Agent Runtime 工具使用当前用户权限
12. 停用或断开通道不得删除通道项目、远程会话、任务、活动或成果历史。
13. 通道项目由系统管理,用户不能永久删除;用户可以修改其工作目录、处理后端和默认模式。
@@ -372,7 +372,7 @@ Execute 消息通过身份、长度、去重和并发检查后:
4. 所选后端不支持工具执行时,不启动任务,并返回设置修复说明。
远程 Execute 不创建 GoodBuddy 通道专属请求确认或逐工具确认。安全边界由
发送者白名单、私聊限制、项目根目录、所选 Runtime、沙箱、能力开关和工具
发送者白名单、私聊限制、项目根目录上下文、所选 Runtime、工作模式边界、能力开关和工具
安全策略共同提供。UI 必须持续说明该行为,不能让用户误以为仍会弹窗确认。
通道只回传最终结果或可操作的失败信息,不发送“执行已开始”等无操作价值的
中间状态消息。
@@ -381,10 +381,10 @@ Execute 消息通过身份、长度、去重和并发检查后:
不同后端按现有行为运行:
- OpenCode 和 Continue 使用各自的工具系统能力检查和沙箱配置
- OpenCode 和 Continue 使用各自的工具系统能力检查,并以 GoodBuddy 客户端当前用户权限运行
- 直连模型只可调用已启用的内置工作区工具及已分配 MCP 工具。
- “Execute 自动授权已启用的工具”策略无需逐次确认;“禁止所有工具执行”策略拒绝所有直连模型工具调用。
- Runtime 沙箱模式继续有效。
- 平台不提供 Runtime OS 沙箱模式Ask 的只读边界和各 Runtime 工具策略继续有效。
- 任何工具结果都进入现有任务和活动审计。
### 9.5 结果回传
@@ -689,7 +689,7 @@ Renderer 快照只返回是否已配置和脱敏标识。
- [ ] 直连模型、OpenCode 和 Continue 均按各自能力正确路由。
- [ ] 通道不发送“执行已开始”等中间占位消息,只发送最终结果或可操作失败。
- [ ] 任务使用对应通道项目根目录。
- [ ] Runtime、沙箱、能力和直连模型工具安全策略继续生效。
- [ ] Runtime、工作模式边界、能力和直连模型工具安全策略继续生效。
- [ ] 任务、活动、工具、成果和最终结果关联到通道项目与远程会话。
### 16.6 生命周期与安全