前言
欢迎阅读《Agentic Design Patterns: A Hands-On Guide to Building Intelligent Systems》。纵观当代人工智能的全景,我们清晰地看到从简单的、被动响应的程序,演进到能够理解上下文、做出决策,并与其环境及其他系统进行动态交互的复杂自主实体的过程。这些就是智能体以及由它们构成的 agentic 系统。
强大的大型语言模型(LLMs)的出现,为理解和生成类人的文本与媒体内容提供了前所未有的能力,成为众多此类智能体的认知引擎。然而,要将这些能力编排为能够可靠地实现复杂目标的系统,远不止依赖一个强大的模型。它需要结构、设计,以及对智能体如何感知、规划、行动与交互的深思熟虑的方法。
将构建智能系统想象成在画布上创作一件复杂的艺术或工程作品。这幅画布并非空白的视觉空间,而是为你的智能体提供存在与运作环境和工具的底层基础设施与框架。它是你构建智能应用的基石,用于管理状态、通信、工具访问,以及逻辑流程。
要在这张智能体画布上高效构建,不能只是把组件随意拼凑在一起。你需要理解那些经过验证的技术——模式——以解决在设计与实现智能体行为时常见的挑战。正如建筑模式指导建筑的构造,或设计模式为软件提供结构一样,智能体设计模式为你在所选画布上赋予智能体生命时反复出现的问题提供可复用的解决方案。
什么是代理型系统(Agentic Systems)?
从本质上讲,代理式系统是一种计算实体,旨在感知其所处环境(包括数字环境以及潜在的物理环境),基于这些感知以及一组预定义或学习得到的目标做出明智决策,并自主执行行动以达成这些目标。与按照僵化、逐步指令运行的传统软件不同,智能体具备一定程度的灵活性与主动性。
设想你需要一个系统来处理客户咨询。传统系统可能会遵循固定脚本。而代理式系统则能够感知客户问题的细微差别,访问知识库,与其他内部系统(如订单管理)交互,必要时提出澄清性问题,并主动解决问题,甚至可能预见未来需求。这些代理在你的应用基础设施的画布上运行,利用可用的服务和数据为其所用。
具备行动能力的系统通常以诸如自治性为特征,使其无需持续的人类监督即可行动;主动性,能够为实现其目标而发起行动;以及反应性,能够有效应对环境中的变化。它们从根本上是以目标为导向,不断朝着既定目标努力。一个关键能力是工具使用,使其能够与外部 API、数据库或服务进行交互——实质上将触角延伸到其即时画布之外。它们具备记忆,在多次交互中保留信息,并且能够与用户、其他系统,甚至在同一或互联画布上运行的其他智能体进行交流。
要有效实现这些特性会引入显著的复杂性。智能体如何在其画布上的多步操作中维护状态?它如何决定何时以及如何使用工具?不同智能体之间的通信如何管理?如何为系统构建韧性以应对意外结果或错误?
为何在智能体开发中模式至关重要
正是由于这种复杂性,具备主体性的设计模式才显得不可或缺。它们并非僵化的规则,而是经过实战检验的模板或蓝图,为主体性领域中的标准设计与实现挑战提供行之有效的方法。通过识别并应用这些设计模式,你可以获得能够提升你在画布上构建的智能体的结构性、可维护性、可靠性与效率的解决方案。
使用设计模式有助于避免为诸如管理对话流程、集成外部能力或协调多个智能体行为等任务重复发明基础性解决方案。它们提供了一种通用语言与结构,使你的智能体逻辑更清晰,也更便于他人(以及未来的你自己)理解与维护。实施为错误处理或状态管理而设计的模式,将直接促进构建更加健壮且可靠的系统。借助这些成熟的方法可以加速开发进程,让你能够将精力集中在应用的独特方面,而非 Agent 行为的基础机制上。
本书提炼出 21 种关键设计模式,代表在不同技术平台上构建复杂智能体的基础构件与技术。理解并运用这些模式,将显著提升你有效设计和实现智能系统的能力。
本书概览及使用指南
这本书《Agentic Design Patterns: A Hands-On Guide to Building Intelligent Systems》旨在成为一份实用且易上手的资源。其主要目标是清晰地解释每一种智能体设计模式,并提供可运行的具体代码示例来展示其实现方式。在全书 21 个专章中,我们将探索多样的设计模式,从基础概念(如组织顺序操作的 Prompt Chaining 和外部交互的 Tool Use),到更高级的主题(如协作工作 Multi-Agent Collaboration 和自我改进 Self-Correction)。
本书按章节组织,每一章深入探讨一种智能体模式。在每一章中,你将看到:
- 详尽的“模式概览”,提供对该模式的清晰解释及其在智能体设计中的作用。
- “实际应用与使用场景”部分,展示该模式在真实场景中的重要价值及其带来的收益。
- 一段实操代码示例,提供可运行的代码,使用主流的智能体开发框架来演示该模式的实现。通过这些内容,你将看到如何在技术画布中应用该模式。
- 关键要点,总结最重要的信息,便于快速回顾。
- 参考资料,提供更深入的学习资源,帮助进一步探索该模式及相关概念。
尽尽管各章的编排旨在循序渐进地构建概念,你仍可将本书当作参考书使用,直接跳转到能解决你在智能体开发项目中所遇到的特定挑战的章节。附录全面介绍了高级提示技术、在真实环境中应用 AI 自主体的原则,以及关键自主体框架的概览。为此还配套了只在网上提供的实用教程,包含在特定平台(如 AgentSpace)和命令行界面上构建自主体的分步指导。全书始终强调实践应用;我们强烈建议你运行代码示例,对其进行试验,并基于此在你选择的平台上改造、构建属于你自己的智能系统。
我常听到一个很好的问题:“在 AI 变化如此之快的情况下,为什么要写一本可能很快过时的书?”其实我的动机恰恰相反。正因为事物发展得如此迅速,我们才需要退一步,识别那些正在固化的底层原则。像 RAG、Reflection、Routing、Memory 等我讨论的模式,正在成为基本的构建模块。这本书是一个邀请,促使人们思考这些核心理念,它们为我们提供了构建所需的基础。人类需要在这些基础模式上进行这样的反思时刻。
所用框架简介
为了给我们的代码示例提供一个具体可感知的“画布”(另见附录),我们将主要使用三个知名的智能体开发框架。LangChain 及其有状态扩展 LangGraph 提供了一种灵活的方式来将语言模型和其他组件串联起来,为构建复杂的操作序列与图提供了强大的画布。Crew AI 提供了一个专为编排多个 AI 智能体、角色和任务而设计的结构化框架,作为一块特别适合协作型智能体系统的画布。Google Agent Developer Kit(Google ADK)提供了用于构建、评估和部署智能体的工具与组件,提供了另一块有价值的画布,且常与 Google 的 AI 基础设施集成使用。
这些框架代表了智能体开发画布的不同侧面,各有其优势。通过展示这些工具的示例,你将更全面地理解这些模式如何在你为智能体系统选择的任何特定技术环境中应用。这些示例旨在清晰呈现模式的核心逻辑及其在框架画布上的实现,重点强调清晰性和实用性。
在本书结束时,你不仅会理解 21 种关键代理模式背后的基本概念,还将掌握将其有效应用的实践知识与代码示例,从而在你选择的开发平台上构建更智能、更强大、更自主的系统。让我们开始这段实践之旅吧!