Skip to main content
章节9 min read

前言

欢迎阅读《Agentic Design Patterns: A Hands-On Guide to Building Intelligent Systems》。纵览现代人工智能的图景,我们看到一条清晰的演进路径:从简单的、反应式的程序,发展为能够理解上下文、做出决策并与环境及其他系统动态交互的复杂自主实体。这些就是智能...

欢迎阅读《Agentic Design Patterns: A Hands-On Guide to Building Intelligent Systems》。纵览现代人工智能的图景,我们看到一条清晰的演进路径:从简单的、反应式的程序,发展为能够理解上下文、做出决策并与环境及其他系统动态交互的复杂自主实体。这些就是智能 Agent 和由它们组成的 Agentic 系统。

强大的 Large Language Model(LLM)的出现,为理解和生成如文本与媒体等类人内容提供了前所未有的能力,成为许多 Agent 的认知引擎。然而,将这些能力编排成能够可靠地实现复杂目标的系统,需要的不仅仅是一个强大的模型。它需要结构、设计,以及一种周密的方法来指导 Agent 如何感知、规划、行动和交互。

可以将构建智能系统想象成在画布上创作一件复杂的艺术品或工程作品。这张画布不是一个空白的视觉空间,而是底层基础设施和框架,为你的 Agent 提供存在和运行所需的环境及工具。它是你构建智能应用的基础,管理着状态、通信、工具访问和逻辑流程。

在这张 Agentic 画布上有效地构建,需要的不仅仅是把组件堆在一起。它需要理解经过验证的技术——模式(Patterns),这些模式解决了设计和实现 Agent 行为时常见的挑战。正如建筑模式指导楼宇的建造,或设计模式结构化软件,Agentic 设计模式为你将智能 Agent 在你选择的画布上变为现实时遇到的重复性问题,提供了可复用的解决方案。

什么是 Agentic 系统?

从本质上讲,Agentic 系统是一个计算实体,旨在感知其环境(包括数字环境,也可能包括物理环境),根据这些感知和一组预定义或学习到的目标做出明智的决策,并执行行动以自主实现这些目标。与传统软件遵循严格的、逐步的指令不同,Agent 表现出一定程度的灵活性和主动性。

想象一下,你需要一个系统来管理客户问询。传统系统可能遵循固定的脚本。而 Agentic 系统则可以感知客户查询的细微差别,访问知识库,与其他内部系统(如订单管理)交互,可能提出澄清性问题,并主动解决问题,甚至可能预测未来的需求。这些 Agent 在你应用基础设施的画布上运行,利用它们可用的服务和数据。

Agentic 系统通常具有以下特征:自主性(Autonomy),允许它们在没有持续人类监督的情况下行动;主动性(Proactiveness),朝着目标发起行动;反应性(Reactiveness),有效响应环境变化。它们在根本上是以目标为导向的,持续朝着目标努力。一个关键能力是 Tool Use,使它们能够与外部 API、数据库或服务交互——有效地越过其直接画布的边界。它们拥有 Memory,可以在多次交互中保留信息,并能够与用户、其他系统或甚至在同一或相连画布上运行的其他 Agent 进行 Communication。

有效实现这些特性带来了重大的复杂性。Agent 如何在画布上跨多个步骤维护状态?它如何决定何时以及如何使用工具?不同 Agent 之间的通信如何管理?如何构建系统的韧性以处理意外结果或错误?

为什么模式在 Agent 开发中至关重要

这种复杂性正是 Agentic 设计模式不可或缺的原因。它们不是僵化的规则,而是经过实战检验的模板或蓝图,为 Agentic 领域的标准设计和实现挑战提供了经过验证的方法。通过识别和应用这些设计模式,你获得了能够增强你在画布上构建的 Agent 的结构性、可维护性、可靠性和效率的解决方案。

使用设计模式可以帮助你避免在诸如管理对话流程、集成外部功能或协调多个 Agent 行动等任务中重复发明基础性方案。它们提供了一种通用语言和结构,使你的 Agent 逻辑更清晰,让他人(以及未来的你自己)更容易理解和维护。实现专为错误处理或状态管理设计的模式,直接有助于构建更健壮、更可靠的系统。利用这些经过验证的方法能够加速你的开发过程,让你可以专注于应用的独特方面,而不是 Agent 行为的基础机制。

本书提炼了 21 个关键设计模式,代表在各种技术画布上构建复杂 Agent 的基本构建块和技巧。

理解并应用这些模式,将显著提升你有效设计和实现智能系统的能力。

本书概览及使用方法

本书《Agentic Design Patterns: A Hands-On Guide to Building Intelligent Systems》旨在成为一本实用且易于获取的资源。它的主要焦点是清晰地阐释每个 Agentic 模式,并提供具体的、可运行的代码示例来演示其实现。在 21 个专门章节中,我们将探索广泛的设计模式,从基础概念如结构化顺序操作(Prompt Chaining)和外部交互(Tool Use),到更高级的主题如协同工作(Multi-Agent Collaboration)和自我改进(Self-Correction)。

本书按章节组织,每章深入探讨一个 Agentic 模式。在每章中,你将找到:

  • 详细的模式概述,对模式及其在 Agentic 设计中的角色进行清晰说明。
  • 实际应用与用例部分,展示该模式在实际场景中不可或缺的价值及其带来的益处。
  • 动手代码示例,提供可运行的实用代码,展示使用主流 Agent 开发框架实现该模式。在此你将看到如何在技术画布的上下文中应用该模式。
  • 关键要点,总结最重要的内容以便快速回顾。
  • 延伸阅读参考,为深入探索该模式及相关概念提供资源。

尽管章节按逐渐推进的方式组织概念,你尽可以将本书作为参考,直接跳转到解决你自己 Agent 开发项目中具体挑战的章节。附录提供了对高级提示技术、在真实环境中应用 AI Agent 的原则,以及关键 Agentic 框架的全面介绍。为补充这些内容,书中还包含了实用的线上教程,提供在特定平台(如 AgentSpace 和命令行界面)上构建 Agent 的分步指导。全书强调实践应用;我们强烈鼓励你运行代码示例,对其进行实验,并调整它们以在你选择的画布上构建自己的智能系统。

我经常听到的一个重要问题是:"AI 变化如此之快,为什么还要写一本可能很快就会过时的书?"而我的动机恰恰相反。正是因为事物变化如此之快,我们才需要退后一步,识别那些正在固化的底层原则。像 RAG、Reflection、Routing、Memory 以及我所讨论的其他模式,正在成为基础性的构建块。这本书是对反思这些核心思想的邀请,它们为我们提供了需要在其上构建的基础。人类需要这些对基础模式的反思时刻。

所用框架简介

为了给我们的代码示例提供一个有形的"画布"(另见附录),我们将主要使用三个主流的 Agent 开发框架。LangChain 及其有状态扩展 LangGraph,提供了一种灵活的方式来串联语言模型和其他组件,为构建复杂操作序列和图谱提供了强大的画布。Crew AI 提供了一个专门为编排多个 AI Agent、角色和任务而设计的结构化框架,作为特别适合协作式 Agent 系统的画布。Google Agent Developer Kit(Google ADK)提供了用于构建、评估和部署 Agent 的工具和组件,提供了另一张有价值的画布,通常与 Google 的 AI 基础设施集成。

这些框架代表了 Agent 开发画布的不同方面,各有其优势。通过在这些工具之间展示示例,你将更广泛地理解这些模式如何应用,无论你为你的 Agentic 系统选择哪种具体的技术环境。这些示例旨在清晰地说明模式的核心逻辑及其在框架画布上的实现,侧重于清晰性和实用性。

到本书结束时,你不仅将理解 21 个基本 Agentic 模式背后的基本概念,还将拥有有效应用它们的实践知识和代码示例,使你能够在你选择的开发画布上构建更智能、更有能力和更自主的系统。让我们一起开始这段动手之旅吧!