在人工智能的发展长河中,有那么几个时刻会让整个行业为之震撼,为之兴奋。2024年12月,谷歌发布了由Julia Wiesinger, Patrick Marlow 和 Vladimir Vuskovic共同撰写的题为Agents的 AI Agents 白皮书,无疑就是这样一个里程碑式的时刻。这份白皮书不仅仅是对一项新技术的介绍,更是对AI未来发展方向的一次大胆宣言。今天,让我们一起深入解读这份重磅白皮书,看看谷歌是如何描绘AI的未来蓝图的。
从静态知识到动态智能:AI Agents 的诞生
传统的大型语言模型(LLM)就像是一个博学多才但与世隔绝的朋友。他知识渊博,可以与你畅聊各个领域的话题,但他的知识永远停留在几年前,并且无法获取最新的信息。这就是当前LLM所面临的困境。它们可以基于训练数据生成令人惊叹的文本,但却无法实时获取新信息或与现实世界互动。正如原文所定义的:“Knowledge is limited to what is available in their training data.”(知识仅限于其训练数据中可用的内容)。
AI Agents的出现,彻底打破了这种局限。它不仅能够获取实时信息,还能够根据信息做出决策并采取行动。根据IBM的研究[1],AI Agents具备了自主性、适应性和持续学习的能力,这使得它们能够在复杂、动态的环境中执行任务。这种能力使得 AI 代理能够执行复杂的多步骤任务,而无需持续的人工监督。通过利用大型语言模型 (LLM) 的能力进行类人推理和批判性思考,分解复杂问题,制定执行计划,并根据反馈调整策略。并且 AI 代理可以探索多个推理路径,评估不同选项,找到最佳解决方案。正如原文所说:“Agents are autonomous and can act independently of human intervention, especially when provided with proper goals or objectives they are meant to achieve. Agents can also be proactive in their approach to reaching their goals.”(代理是自主的,可以在没有人为干预的情况下采取行动,特别是当提供了适当的目标或目的时。代理也可以在其实现目标的过程中采取主动。)
编排层是AI Agents的决策中枢,它负责协调模型和工具,实现复杂任务的规划和执行。编排层的设计直接决定了AI Agents的推理能力和问题解决能力。正如原文中提到的:“At the core of agent cognitive architectures lies the orchestration layer, responsible for maintaining memory, state, reasoning and planning.”(代理认知架构的核心在于编排层,负责维护记忆、状态、推理和规划)
# 假设这是你的客户端代码中定义的函数,用于调用 Google Flights API defget_flights(origin: str, destination: str, date: str): # 这里应该是调用 Google Flights API 的实际代码 # 作为示例,这里只是模拟返回一些航班信息 print(f"调用 Google Flights API,查询{date}从{origin}到{destination}的航班") return[ {"flight":"航班1","price":"$300","departure":"10:00","arrival":"14:00"}, {"flight":"航班2","price":"$350","departure":"12:00","arrival":"16:00"}, ]
# 假设这是你的客户端代码中定义的函数,用于调用 Google Places API defget_hotels(location: str, check_in: str, check_out: str): # 这里应该是调用 Google Places API 的实际代码 # 作为示例,这里只是模拟返回一些酒店信息 print(f"调用 Google Places API,查询{location}的酒店,入住日期{check_in},退房日期{check_out}") return[ {"hotel":"酒店A","price":"$100/晚","rating":4.5}, {"hotel":"酒店B","price":"$150/晚","rating":4.8}, ]
# 假设这是你的客户端代码中定义的函数,用于调用 Google Places API defget_events(location: str, date: str): # 这里应该是调用 Google Places API 的实际代码 # 作为示例,这里只是模拟返回一些事件信息 print(f"调用 Google Places API,查询{date}在{location}的活动") return[ {"event":"事件1","description":"这是事件1的描述","time":"10:00"}, {"event":"事件2","description":"这是事件2的描述","time":"14:00"}, ]
在这个示例代码中,AI 模型可以根据用户的自然语言查询(例如,“我想在9月10号至14号去纽约旅行,帮我查找航班、酒店和当地的活动。”)来理解用户的旅行计划需求。模型会解析这个查询,并决定调用get_flights、get_hotels和get_events这些在客户端定义的函数来获取必要的信息。这些函数会模拟调用 Google 的 Flights API 和 Places API 来获取航班、酒店和活动信息。
使用 Functions 的方式,AI 模型生成一个结构化的函数调用消息,其中包含函数名和参数,客户端代码接收到这个消息后,执行实际的 API 调用,并将结果返回给用户。这种方式下,AI 模型充当了“大脑”,负责理解用户需求和选择合适的工具,而客户端代码充当了“手脚”,负责执行具体的操作。通过 Functions,可以构建出非常复杂和强大的 AI 应用,例如,一个企业级的 AI 助手可以通过 Functions 与公司的各种内部系统无缝集成,执行诸如更新客户信息、生成报告、安排会议等任务,而所有这些操作都可以在公司的安全基础设施内完成。
Data Stores的一个重要应用是检索增强生成(RAG)技术。RAG允许AI在生成响应时,先检索相关信息,然后基于这些信息生成答案。这不仅提高了回答的准确性,还大大减少了AI产生幻觉(生成虚假信息)的可能性。通过这种方法,AI 生成的响应是基于向量数据库中存储的数据,而不仅仅是依赖于模型在训练时学习到的知识。这意味着,即使模型没有接触过某些特定的信息,它仍然可以通过 RAG 技术获取这些信息,并在生成的响应中利用它们。
AI Agents的发展趋势预示着专家系统和AI群体智能的崛起。未来,我们可能会看到由多个专门的AI Agents组成的复杂系统,每个Agent负责特定的任务或领域,它们协同工作,共同解决复杂的问题。例如,在医疗诊断领域,可能会有专门负责影像分析的Agent,负责病史分析的Agent,负责药物相互作用分析的Agent等,它们协作完成全面的诊断和治疗方案制定。