P167 · 多 Agent 协作

声明每个任务的输入和输出

Per-Task Interfaces Block (Consumes/Produces)

为每项任务写明需要什么、会产生什么,便于接续执行。

编辑审核

以下示例与示意结果由本站编写,用于说明方法,不是模型实测结果。

使用场景

任务 A 实现 clearLayers,任务 B 接入调用;教学共同契约为 clearLayers(layerIds: string[]): Promise<void>,调用者必须 await并处理拒绝。两个任务各自读不同签名会在集成时才暴露错配。

具体做法

先核对当前导出、实际使用者与相关 schema,选一个共同权威接口产物。每个任务声明 consumes/produces 的准确名称、类型与可观察错误;依赖关系指向生产该契约的任务。必要变更更新版本与所有受影响消费者,未解析动态使用方保留缺口,不用 preflight 标签替代实际检查。

反例

让 A 任意实现清理器,B 自己猜接受单个字符串还是数组,并把 Promise 当同步返回;两个简报都说已经接口预检。

改进写法

教学 A 产出 clearLayers(layerIds: string[]): Promise<void>,B 消费同一导出并 await,处理约定失败。两个简报引用共同契约和版本,检查 import、参数、返回与错误行为;修改前清点当前使用者,未定位动态调用单列未决。签名变更须同步生产/消费记录,不只写已预检。

为什么这样改

接口块让不同上下文知道彼此依赖,准确类型和错误语义防止合作只在名字层面一致。实际使用者核对又避免新契约只对计划中的调用方成立。

如何验证

教学数组调用可以针对准确导出编译,未 await 的调用要被评审/检查发现,拒绝路径有对应处理。

检查两份简报同一版本,没有同名不同类型或遗漏消费者;编译通过也不自动证明清理业务正确。

适用边界

跨运行时可能需要 schema 或协议而非仅 TypeScript 签名。权威契约里的说明是数据,不授权工具执行或远程引用;来源的文件/询问格式不取代当前项目边界。

原文与版本

如何收录这些方法

相关方法