多 Agent 预算协作:先把场地信息传完整
多 Agent 分工中,一个容易忽略的问题是:用户已经提供的信息,是否真的到达了需要它的角色?总指挥理解了“免费借用教室”,不代表预算会计也收到了这个条件。如果中间接口只传活动类型、级别和人数,后续计算再认真,也可能缺少决定费用的关键依据。
本文以华为云 AI Agent 开发实践中心的“AI 校园活动策划助手”为例,记录一次对公开仓库的静态协议检查,并给出可复用的核查方法。本文没有运行完整多 Agent 流程,没有复现错误预算金额,也没有验证修复效果;下面会区分已看到的协议事实、可能的影响和建议。
一、先画出信息经过的三个位置
这个案例由总指挥协调预算、风险和宣传等角色。阅读时,可以先沿着一个业务字段向下追踪,而不用立即研究所有提示词。
| 位置 | 要检查的内容 | 本次关注点 |
|---|---|---|
| 用户输入到总指挥 | 是否提取场地 | 已有“举办场地”的提取规则 |
| 总指挥到预算会计 | 激活消息携带哪些字段 | 是否保留已确认的场地 |
| 预算会计到预算表 | 计价依赖什么 | 场地类型、租赁标准及免费条件 |
这样检查的原因很直接:场地不是仅用于最终页面展示的文字,它还可能改变费用。相同规模的活动,使用免费教室和收费报告厅,不能只因为人数相同就忽略场地差异。
二、静态阅读中确认了什么
核对日期为 2026 年 10 月 28 日,分支为 main。相关文件位于 GitCode 的 agent-best-practices / ai-campus-event-planner 仓库。
第一处是 skills/event-orchestrator/SKILL.md。总指挥的 Step 1 包含“举办场地”提取规则,确认活动信息的 EVENT_CONFIRMED 格式也包含场地。
第二处是同文件的 Signal Protocol,以及 skills/event-orchestrator/resources/signal_protocol.json。两处对预算激活消息的定义都是:
ACTIVATE|BUDGET_ACCOUNTANT|{类型}|{级别}|{人数}
这份明文接口没有场地字段。作为对照,风险角色的激活消息包含场地和日期,说明不同角色收到的业务上下文本来就有差别。
第三处是 skills/budget-accountant/SKILL.md。预算会计的激活参数解析同样只列出类型、级别和人数;但后续流程要求从知识库读取场地租赁标准,并在费用规则中处理免费场地为零的情况。
因此,能够直接确认的是:**文档定义的预算激活接口没有显式传递场地,而预算流程又依赖场地计价信息。**这属于接口表达的缺口。至于实际运行时是否还有共享上下文补足这些数据,需要进一步确认框架行为,不能仅凭这几份文档断言每次都会算错。
三、用一对输入揭示信息损失
可以构造两组活动条件:
| 字段 | 输入 A | 输入 B |
|---|---|---|
| 类型 | 歌手大赛 | 歌手大赛 |
| 级别 | 院级 | 院级 |
| 人数 | 100 人 | 100 人 |
| 场地 | 免费借用教室 | 收费报告厅 |
按照当前格式,两组输入映射出的预算激活消息相同:
ACTIVATE|BUDGET_ACCOUNTANT|歌手大赛|院级|100人
这里没有运行模型,也不需要先猜一个收费金额。仅对照字段就能发现:接收方如果只能看到这条消息,便无法区分两组不同的场地条件。
这种方法适合检查 Agent 之间的交接:保留其他条件,只改变一个会影响业务结果的字段,观察接口能否表达这项变化。如果接口完全相同,就应追问该字段通过什么渠道到达下游。
四、修复时同时明确数据来源和未知状态
一种较小的调整是,在预算激活协议中加入场地及已确认的免费或收费条件,同时更新总指挥、资源协议文件和预算会计的解析说明。只在一份提示词中补一句话,会让多个协议定义继续不一致。
另一种方案是生成统一的活动信息文件,在激活消息中传递文件路径。这样可以集中维护活动字段,但必须保证接收方有权限读取该文件,明确字段含义,并在读取失败时返回错误。
无论选择哪种方案,都应区分三种状态:
- 已确认免费:场地费用可按已确认条件记为零。
- 已确认收费:按知识库中的对应标准和适用条件计算。
- 尚未确认:列出待确认项,不能把“没有提供价格”当成“价格为零”。
如果实际框架已经提供共享上下文,也可以保留原接口,但需要在协议中写清预算会计从哪里读取场地、以哪个版本为准。依靠未说明的上下文约定,会增加后续排查成本。
五、验收应覆盖信息到达和计价结果
建议分两层验证。第一层检查预算角色实际收到的结构化参数或活动信息文件,确认场地没有丢失;第二层再检查预算输出是否采用对应标准。只看最终 Excel 能打开,不能证明业务条件传对了。
| 场景 | 建议检查点 |
|---|---|
| 同类型、同级别、同人数,更换场地 | 预算侧能读到变化后的场地 |
| 明确免费场地 | 场地费为零,并保留免费依据 |
| 收费场地,知识库有适用标准 | 正确匹配标准及计价条件 |
| 场地已知,但收费条件不明确 | 输出待确认项,避免自行猜价 |
| 场地数据文件读取失败 | 返回可定位的错误,避免用旧条件继续生成 |
这些是建议的回归用例,不是已经通过的测试记录。正式验证时,还应记录输入、知识库版本、实际传递参数和输出文件,才能判断问题发生在信息交接、检索还是计算阶段。
六、把发现整理成可处理的 Issue
提交开源反馈时,最有用的内容通常是文件位置、当前接口、对照输入和预期行为。本次反馈已整理为该仓库 Issue #290,标题为“预算激活协议未传递场地,建议保留已确认的场地信息”。反馈中明确说明了静态检查的范围,没有把推断写成已复现的运行故障。
这次检查带来的实践要点是:当业务结果依赖某个字段,就沿着“提取—交接—使用”逐段核对。对于多 Agent 系统,角色能否完成工作,既取决于能力,也取决于它是否拿到了足够且明确的输入。
参考材料:华为云 AI Agent 开发实践中心“AI 校园活动策划助手”;GitCode 仓库 agent-best-practices / ai-campus-event-planner 中的上述三份文件及 Issue #290。项目许可证为 Apache-2.0;本文为独立分析与改进建议,不代表项目维护方结论。
- 点赞
- 收藏
- 关注作者
评论(0)