AIHero

    Google 的智能体入门白皮书非常棒

    解读 Google 的 AI 智能体白皮书,了解智能体、工具、编排层等概念的定义。

    Matt Pocock
    Matt Pocock
    本页目录

    2024 年 9 月,Google 的一群研究者发布了一份 智能体白皮书.

    这份白皮书没有特别有争议或新颖的内容。

    但它很好地定义了一组与智能体相关的术语。

    它定义了什么是智能体、什么是工具,还提出了几个值得讨论的有趣定义。

    我认为它是这个领域极好的入门材料,因此值得介绍。

    “智能体”的定义

    先从最有价值的部分——定义——开始:

    智能体是“通过观察世界,并利用可用工具对世界采取行动,尝试实现目标的应用”。

    这个定义听起来合理,不过按它来看,恒温器当然也算智能体。

    白皮书还很有帮助地区分了智能体与模型。

    其中有一张很清晰的表格:

    • 模型受限于训练数据中的信息,而智能体可以访问外部系统。
    • 智能体能够访问聊天历史,从而随时间向上下文中补充信息。

    换句话说,模型本身不能成为智能体。智能体是一个包含记忆、推理、规划和工具调用的系统。

    不过,白皮书也避免严格定义智能体。引言中有一句有趣的话,称这些因素的组合“唤起了智能体的概念”。

    基本上,如果它闻起来像 agentic ,那它很可能就是智能体。

    编排层

    白皮书还指出,编排层对智能体非常重要。

    编排层控制智能体如何“接收信息、进行内部推理,并用推理结果指导下一项决策或行动”。

    换句话说,它就是我在 Vercel AI SDK 教程.

    “工具”的定义

    几乎所有人都同意,一个系统要成为 agentic ,必须能够访问工具。

    白皮书把工具定义为“弥合智能体内部能力与外部世界之间的鸿沟”。

    它比大多数工具定义更进一步,实际划分了两类工具:扩展和函数。

    扩展

    扩展用于增强智能体能力。文中以调用 API 为例,例如获取天气或查询两地之间的路线。

    可以把扩展理解为智能体无需询问即可执行的操作。

    它们类似典型工具定义:通过示例告诉智能体如何使用工具,并说明成功调用所需的参数。

    函数

    函数不同于扩展。教 LLM 使用它们的方式完全相同,但工具调用的控制权属于用户,而非智能体。

    以删除数据库中的帖子为例。智能体所在系统可能没有删除权限,而且出于各种原因,你也可能不想授予它该权限。

    因此,智能体不会自行删除,而是告诉用户“删除这篇帖子”。

    这就是白皮书定义的函数:“调用实际 API 端点的逻辑和执行从智能体移出,交还给客户端应用。”

    这样做可能有几个原因:

    • 如前所述,你不想赋予智能体执行这些操作的权限
    • 你希望进行 human-in-the-loop 评审
    • 或者希望在构建智能体时复用现有 API 端点

    总结一下:扩展由智能体执行工具,函数则由客户端执行工具。

    我的看法

    这个定义有些奇怪。我一直不太喜欢把新概念挂在如此常用的词上。开发者本来就知道什么是函数,而函数与扩展的界限也不够清楚。

    白皮书随后提到 Google Vertex AI 平台,因此函数与扩展的区别可能是该平台中的关键概念。

    作为教学手段,我确实喜欢这种划分,但不确定自己是否会采用这套定义。

    总结

    总体而言,Google 的白皮书是很好的领域入门材料,也为讨论增加了几个有趣定义。

    文中还有使用 LangChain 和 Python 的示例等更多内容,值得亲自阅读。

    希望你喜欢这篇总结,我们下篇再见。