## Parent Spec: https://github.com/1123786563/OpenBot/issues/472 — 内置 Agent 执行迁移 Mastra。本 Issue 是其正式子 Issue。 ## What to build 用户让 Bot 调用已连接应用,Bot 只使用被授权工具,正确处理结果/拒绝,并在多步执行中持续遵守预算。 ## Acceptance criteria - [ ] 工具发现与授权分离;只提供经过现有 grant 和工具筛选的工具,参数经原 schema 校验,实际调用仍过 policy、credential 和 audit。 - [ ] 执行时重新检查撤权与连接归属;同名工具、保留名冲突或非法工具名明确处理,不能覆盖系统工具。 - [ ] 供应商错误、平台拒绝和外部不可信内容保持原语义,不把供应商拒绝当普通成功数据。 - [ ] 模型每一步签发不同 capability,首步预算 100 消耗 70 后次步最多申请 30;预算拒绝不自动 retry 或换路由。 - [ ] 保留现有最多 8 步的工具循环;到上限给出真实结果/原因,不能伪造工具执行或完整成功。 - [ ] 工具提议、实际执行、receipt 与观测只关联同一操作一次;失去 owner 或用户撤权后阻断新的外部调用。 ## Blocked by - https://github.com/1123786563/OpenBot/issues/475 — 聊天刷新与附件往返保留完整历史和稳定顺序 ## Scope boundary 受管连接器工具适配;不重写插件/凭据系统,不把原始 MCP tools 直接绕过执行器挂载。 ## Interfaces - Consumes:前置票经审查的实际交付合同,以及父 Spec 的身份、预算、消息与恢复约束。 - Produces:统一受控工具包装、toolCallId/operationId/参数摘要与模型多步治理合同。 - Responsibility:backend_implementer;相应只读验证者 + 独立 Spec/质量 reviewer。 ## Verification 一个真实受控包装的只读连接器工具完成调用后回答;另测未授予、撤权、多步预算、超时和供应商错误;逐步核对 capability/receipt。 ## Failure handling 未知工具和权限失败明确拒绝;结果未知不标记成功或直接重放。 ## Acceptance mapping 父 Spec:A03, A05, A17。既有实施计划关联:T2, T5。Issue 是完整业务切片,计划 Task 是票内或前置工程步骤,两者不一一等同。 ## Handoff notes - 方案、测试 seam 与拆票已由用户于 2026-10-19 确认,按该范围登记 Issue。ready-for-agent 只表示规格可接手,不表示依赖已完成、已实现或已获上线授权。 - 使用根 CONTEXT 的术语,遵守公司/团队/本人/逻辑 Bot、计费准入、个人记忆和测试运行器 ADR;不得因框架替换重定权威。 - 每票保留独立可演示的行为;跨端时先固定事件/状态接口,再按专业角色安排票内实现 Task,不把业务票另拆成数据库/后端/前端水平交付。 - 领取前核验前置代码及其同哈希验证/Review 已集成;关闭状态不是实现证据,外部引用不是自动扩大的实施范围。 - 按仓库 writing-plans/SDD/独立 Review/OCR 流程实施;无提交授权用完整未提交增量检查点。该流程在真正实施时适用,本 Issue 登记不启动实现。 - 验证由 e2e 统一调度,native/driven 清单与实际用例数对账,数据库仅用明确的一次性受限角色 fixture;skip/缺环境/零用例不算通过。 - 结束或中断记录 HEAD、范围、完整 patch/新增文件及哈希、实际命令与结果、Review 和限制,方便新 Agent 恢复;不擅自提交、推送、合并、生产导入、部署或关闭其他 Issue。 <!-- openbot:mastra-agent-execution:ME04 -->
Activity
1123786563 commentedon Oct 23, 2026
完成关闭(用户 2026-10-23 授权)。
🤖 Generated with Claude Code
1123786563 commentedon Oct 23, 2026
更正上一条评论中的证据路径笔误:应为
docs/plans/2026-10-19-mastra-execution-run/me04/report.md(me04 对应本票)。