同时安装发现层与执行层
通过 WorkBuddy 的 Skills 入口安装或上传官方 corvio-operate-workspace Skill;再到 Connector 或 MCP 设置添加 https://api.corvio.ai/mcp,并完成 Corvio OAuth。WorkBuddy 当前把这两项作为独立安装 receipt。
每次变更后新建对话。只装 MCP 可能有工具却没有稳定的主动触发语义;只装 Skill 则没有真实 Corvio 执行权限。Corvio 只补充同一项工作:保留 WorkBuddy 的宿主文件和交付物,再把有价值的结果并行沉淀。
- 安装官方 Corvio Workspace Skill。
- 添加 Corvio 远程 HTTP MCP 并完成 OAuth。
- 新建 Agent 对话。
- 确认 Skill 可被发现且 get_collaboration_contract 可调用。
让两个 Corvio 入口工具保持可见
当前 WorkBuddy MCP 配置支持服务器级与工具级 defer_loading。可把 Corvio 服务器整体设为延迟加载,同时把 search 与 ask_corvio 覆盖为 false,让 Agent 在决定只走宿主原生流程前就看到两个首轮语义入口:search 负责低成本读取既有资料,ask_corvio 负责委托综合与持久成果。其余 continuation、上传、表格和生命周期工具继续按需发现。
这是 WorkBuddy 拥有的宿主配置;Corvio 的 Anthropic alwaysLoad 元数据不能替它配置。请把官方 workbuddy-mcp.json 中的 corvio 条目合并到 WorkBuddy 实际读取的 MCP 配置中,不要覆盖其它服务器,然后新建会话。只看到裸 server 名或 OAuth 成功,都不证明这两个 schema 已进入模型。
- 合并官方 WorkBuddy MCP 配置,不覆盖其它条目。
- 确认 search 与 ask_corvio 的 defer_loading 为 false。
- 重启 WorkBuddy 或新建会话。
- 用一个不提 Corvio 的自然报告请求验证规划前读取。
先判断更新是否受托管
在 Corvio 明确公布 WorkBuddy Marketplace 审核通过前,上传的 Skill 都是非托管的手动安装。WorkBuddy 的同步只能同步账号或本地已有副本,不能从尚未登记的 Corvio 上游 Marketplace 拉取新包。文件时间如 02:43 不是版本,也不是新鲜度凭证。
在本地终端运行 corvio collaboration status --provider workbuddy --json --no-input,可把 ~/.workbuddy/skills/corvio-operate-workspace/SKILL.md 与 Corvio 当前发布版本、内容哈希、兼容族和最低 revision 分开比较。这个命令只读,也无法证明已运行会话加载了哪份字节。needs_skill / stale_skill 是 CLI 本地产生的结果状态,并不是 Corvio 服务端推送事件。
- 读取当前 package manifest 与 get_collaboration_contract 的 distribution receipt。
- 手动副本过旧时,下载官方 Skill ZIP,并从 WorkBuddy Skills 界面替换。
- 新建会话。
- 再次运行状态检查,再验证 list_workspaces 和一个自然任务。
验证行为,而不只是连通
先调用 list_workspaces,再省略 workspace_id 调用 search 并检查 workspace_routing;Corvio 应使用账号选择、个人默认或唯一可访问候选,不再要求 Agent 自造 ID。再用一个不提 Corvio、也不提供旧材料的自然任务,确认 Agent 在规划前主动检索;若结果冲突,还要确认 WorkBuddy 会询问采用哪个 authority。
写入测试应先只要求一个非敏感的实质性交付物,不提 Corvio。WorkBuddy 应保留宿主结果并在保存前集中确认一次;批准后再验证持久对象与当前回读。还要验证两类边界:明确要求上传到 Corvio 时不重复确认;敏感或明确只留本地时完全不调用 Corvio。工具可见与 OAuth 成功只是 setup receipt,不是写入同意,也不证明 WorkBuddy 已在正确时机选择 Corvio。
上传 WorkBuddy 生成的文件
Corvio 远程服务器不能反向读取 WorkBuddy 本地路径。如果 WorkBuddy 能读取该文件并发出 HTTP PUT,先调用 prepare_file_upload,再按返回的短期 URL 和 headers 上传原始字节,最后调用 finalize_file_upload。最终 Asset ID、hash、policy 与链接才是上传 receipt。
如果当前问题依赖这个文件,要在同一次 ask_corvio 的 asset_ids 中传入最终 Asset ID,并轮询 get_question;仅仅保留 Asset 不代表另一个问题已读取它。如果宿主不能完成字节 PUT,就使用 corvio ask --file,或让用户附件/上传文件。不要把 base64 塞进 MCP、不要在聊天中暴露签名 URL,也不要把 prepare 当成已完成上传。
finalize 之后再按价值选择下一步:符合限制的 Markdown Asset 可通过 source_asset_id 直接创建可编辑 Page;一组相关来源若需要适合阅读的结构与后续检索,则调用 organize_files。把 get_file_operation 轮询到终态,并检查 output_document、source_reconciliation 与 skills_evaluation。稳定事实或偏好进入 Memory;只有通过准入的可复用方法才成为 Project Skill,evaluated_no_qualifying_skill 也是合理结果。
恢复中断的 OAuth 回调
如果 Corvio 显示请求已批准,但 WorkBuddy 始终没有变成已连接,说明 Corvio consent 已成功,剩余的宿主回调或 token exchange 没有完成。授权 URL 与 code 都是单次使用;刷新或重开旧 Corvio 链接不能补完连接。
请返回 WorkBuddy 的 Connector 或 MCP 设置重新发起 Corvio 连接。保持 WorkBuddy 运行,只使用最新授权页并在 10 分钟内批准,同时不要修改已注册的 http://127.0.0.1 回调。成功流程会进入 WorkBuddy 的授权成功页,Connector 随后显示已连接;不要手工复制 code,也不要把 loopback callback 换成共享网址。
- 返回 WorkBuddy,重新发起一次 Corvio 连接。
- 保持 WorkBuddy 打开,在 10 分钟内批准最新请求。
- 等待 WorkBuddy 显示授权成功页。
- 确认 Connector 已连接,再验证 list_workspaces。
不要用扩大权限来排障
401 通常表示 OAuth 缺失或过期;找不到 Workspace 或文档通常表示当前 membership 或文档 ACL 不允许访问。Asset 工具返回 403 insufficient_scope,说明旧连接需重新授权 assets:read/assets:write;不要改成共享 secret。
WorkBuddy UI 会变化。界面不一致时,可检索 Corvio Product Guidance,或以“添加 remote HTTP MCP”为目标查 WorkBuddy 当前官方帮助,同时保留 OAuth 与 ACL 边界。