AI Pulse

如何用Google ADK 2.0和A2UI将脆弱AI代理变成可靠系统

如何用Google ADK 2.0和A2UI将脆弱AI代理变成可靠系统

想象一下:你给AI代理五个工具和一条指令。退款流程可能完美运行。然后,确认邮件发送失败。AI代理从头重新开始整个流程,重复已经成功的操作。结果?双倍退款。

原型运行完美,生产系统却没有。

问题不在于提示词。问题在于让模型运行一个它本不该运行的流程!LLM一直被强迫做路由、调度和错误管理。这些是传统软件已经能完美处理的任务。

然而,我们却让AI做两项冲突工作:解读世界(理解不可预测的非结构化数据)和运行流程(编排严格预定义的顺序事件)。前者是AI擅长的,后者属于传统代码。

当下一步已知时,模型不应该需要猜测。

想象一个自主AI代理被赋予五个工具和一条大指令:→ 检索购买历史 → 检查退款政策 → 如果符合条件则退款 → 发送邮件 → 然后关闭工单。要做到这些,代理必须记住顺序,检查每个工具的结果,推断下一步。如果确认邮件在退款之后失败,模型尝试从上下文窗口重构工作流,而不是从安全执行状态恢复。结果就是我们之前提到的双倍退款。

谷歌ADK 2.0如何化混乱为有序

谷歌的ADK 2.0通过采用全新的方法来解决这个问题。它将可预测的动作重新变成具体的工作流步骤,只在真正需要解读的地方插入AI。

在上述示例中,拉取购买历史、发起退款、关闭工单都是常规软件动作。分析投诉、撰写个性化确认信息则交给AI处理。结果是一个美丽的混合体:固定执行加上集中推理。

但你可能在想:这难道不是回到僵化的自动化吗?我们不是在硬编码本应由代理替换的工作流吗?其实不然。

工作流定义已知的边界。代理仍然处理需要解读、语言或判断的部分。

目标不是去掉灵活性,而是避免让模型每次运行都重新摸索相同的执行路径。

通过消除那些不必要的模型决策,这个架构彻底改变了数据。同样的退款流程,同样的模型。但使用ADK 2.0,token从5152下降到2265,延迟从7.2秒下降到5.7秒🔥。

这个结构充当天然过滤器,将token用量减半。不再传递全部历史,代理只看到它们需要的内容(例如,策略代理只看到投诉)。

好处是立竿见影的:更少的提示词噪音和更高的隐私性;严格受限的执行;故障安全:模型可能做出错误决定,但永远无法自行发明路线。

前端也需要边界:A2UI如何让你掌控UI

太好了。退款工作流现在可控了。ADK 2.0定义了路径,防止代理自己发明顺序。但用户仍然需要安全的方式来查看和操作代理产生的内容。换句话说,前端也需要边界!

想象每个批准的退款现在都需要主管签字。代理不应该简单地生成文本说“该退款已批准”。它需要展示一个结构化的卡片,包含金额、交易、政策原因、清晰的“批准/拒绝”按钮。

这正是谷歌的A2UI登场之处!

使用A2UI,代理返回声明式JSON负载,而非可执行前端代码。主机验证该负载,只渲染其组件库支持的组件。代理决定显示哪些信息,应用控制如何渲染。

👇 以下是A2UI渲染卡片的示例,展示了A2UI可以实现的多种UI组合。

谷歌的A2UI-over-MCP Recipe Studio演示了这套架构的实际运行:
👆 可以看到,静态选择表单通过MCP资源传递,而动态生成的食谱卡片通过MCP工具返回。A2UI在主机应用内原生渲染两者。

注意到对称性了吗?

ADK 2.0约束AI代理在后端的行为,A2UI约束AI代理在前端的输出。两种情况都给了模型推理空间,但只在应用定义的边界内。

回到我们之前讨论的退款示例,标准退款可能只需要一个简单的批准卡片。但涉及例外、附件或部分还款的争议案件可能需要更丰富的体验。这正是MCP应用可以发挥作用的地方,为复杂交互提供封闭的工作区:→ ADK控制可以发生什么 → A2UI使结果可见且可操作 → MCP应用处理复杂工作区。

阅读原文
📚 相关主题 大语言模型谷歌

📬 订阅 AI Pulse

每天三次更新,不错过重要信号

▲ 回到顶部