目录1. 引言2. 什么是智能体AI2.1 自主性程度2.2 智能体AI的优势2.3 智能体AI的应用场景3. 任务分解识别工作流中的步骤3.1 分解原则3.2 分解示例3.3 形式化表示4. 智能体AI评估Evals4.1 为什么需要评估4.2 评估指标4.3 评估数据集构建5. 智能体设计模式5.1 常见设计模式5.2 ReAct模式的形式化描述6. 反射设计模式通过反思提升输出质量6.1 为什么不直接生成呢6.2 反射工作流程6.3 反射的Prompt模板6.4 评估反射的影响6.5 使用外部反馈7. 工具使用扩展智能体的能力边界7.1 什么是工具7.2 创建工具7.3 工具语法7.4 代码执行工具1. 引言欢迎来到这门关于智能体AIAgentic AI的完整课程。本课程将带你从零开始系统性地理解智能体AI的核心概念、设计模式、工程实践与高级架构。无论你是刚接触AI的初学者还是希望深化理解的开发者这份指南都将为你提供清晰的学习路径。本课程共分为六大模块覆盖从基础概念到知识图谱构建的完整知识体系。我们将深入探讨智能体AI的定义、自主性程度、优势与应用场景并逐步掌握反射设计模式、工具使用、评估方法、高度自主智能体的规划与多智能体协作最后进入Agent知识图谱与Google ADK的实战环节。在开始之前建议你先准备好以下环境Python 3.9用于运行示例代码。Google ADKAgent Development Kit本课程核心框架可通过pip install google-adk安装。一个LLM API密钥如Gemini、OpenAI或Anthropic的API密钥。基础图数据库如Neo4j用于知识图谱实践。2. 什么是智能体AI智能体AIAgentic AI是指能够自主感知环境、做出决策并执行行动以达成特定目标的人工智能系统。与传统AI模型不同智能体AI不仅仅是生成文本或进行分类它能够主动规划、调用工具、与环境交互并根据反馈持续调整策略。2.1 自主性程度智能体AI的自主性是一个连续谱系从完全受控到高度自主可分为以下几个层级自主性层级描述示例L0无自主完全由人类控制AI仅提供建议传统聊天机器人L1规则驱动基于预定义规则执行任务IFTTT自动化L2有限自主在限定范围内自主决策客服FAQ机器人L3条件自主根据环境状态动态调整策略自动驾驶辅助系统L4高度自主自主规划、执行并优化复杂任务自主研究助手、多智能体系统自主性程度决定了智能体需要多少人类监督。在设计智能体时需要根据任务的风险等级和复杂度选择合适的自主性水平。2.2 智能体AI的优势智能体AI相比传统AI系统具有显著优势任务自动化能够端到端地完成复杂任务减少人工干预。环境交互通过工具调用与外部系统交互获取实时数据。自我改进通过反馈循环持续优化输出质量。多任务处理能够并行处理多个子任务提升效率。可扩展性多智能体系统可以协同工作处理超大规模问题。2.3 智能体AI的应用场景智能体AI已在多个领域展现出强大的应用价值代码开发自动生成、审查和修复代码。数据分析自动探索数据、生成报告和可视化。客户服务自主处理用户咨询、工单和投诉。研究辅助自动检索文献、总结要点和生成综述。流程自动化协调多个系统完成业务流程。3. 任务分解识别工作流中的步骤构建智能体AI的第一步是学会将复杂任务分解为可管理的子步骤。任务分解Task Decomposition是智能体规划能力的核心基础。3.1 分解原则一个良好的任务分解应遵循以下原则原子性每个子任务应尽可能小且独立。可验证性每个子任务应有明确的完成标准。顺序性子任务之间应存在清晰的依赖关系。可组合性子任务的结果应能组合成最终输出。3.2 分解示例以「撰写一篇技术博客」为例可以分解为确定主题和目标读者。收集相关资料和参考文献。生成文章大纲。逐节撰写正文。生成代码示例并验证。校对、润色和格式化。发布并推广。3.3 形式化表示任务分解可以用树形结构或DAG有向无环图表示。设总任务为T分解后的子任务集合为{t1, t2, ..., tn}则满足T f(t1, t2, ..., tn) ∀i, ti 是原子任务或可进一步分解的子任务 ∃ 偏序关系 ≤使得 ti ≤ tj 表示 ti 必须在 tj 之前完成4. 智能体AI评估Evals评估是智能体AI开发中不可或缺的环节。没有评估就无法知道智能体的表现如何更无法持续改进。4.1 为什么需要评估智能体AI的行为具有不确定性同样的输入可能产生不同的输出。评估帮助我们量化智能体的性能表现。发现失败模式和边界情况。比较不同设计方案的优劣。建立回归测试防止性能退化。4.2 评估指标常见的评估指标包括指标定义适用场景准确率Accuracy正确预测数 / 总预测数分类任务任务完成率成功完成的任务 / 总任务端到端任务工具调用成功率成功调用 / 总调用次数工具使用延迟Latency从输入到输出的时间实时系统成本Cost每次任务的API调用费用生产环境用户满意度用户对输出的主观评分对话系统4.3 评估数据集构建构建高质量的评估数据集是评估工作的基础。一个典型的评估样本包含{ input: 请帮我查询北京明天的天气并建议是否适合户外跑步。, expected_tool_calls: [ {name: get_weather, args: {city: 北京, date: 明天}} ], expected_output: 北京明天晴转多云气温18-26℃适合户外跑步。, criteria: [正确调用天气工具, 输出包含温度范围, 给出跑步建议] }5. 智能体设计模式智能体设计模式是经过验证的、可复用的解决方案模板。掌握这些模式可以帮助你更快地构建可靠的智能体系统。5.1 常见设计模式ReAct模式推理Reasoning 行动Acting交替进行智能体先思考再行动观察结果后继续推理。反射模式Reflection智能体生成输出后自我审视并改进。规划模式Planning在执行前先制定详细计划再逐步执行。多智能体模式Multi-Agent多个智能体分工协作各司其职。工具使用模式Tool Use智能体通过调用外部工具扩展能力边界。5.2 ReAct模式的形式化描述ReAct模式可以描述为以下循环状态: s0 → 思考: t1 → 行动: a1 → 观察: o1 → 思考: t2 → 行动: a2 → ... → 最终答案其中每个思考ti由LLM生成行动ai是工具调用或推理步骤观察oi是工具返回的结果。6. 反射设计模式通过反思提升输出质量反射Reflection设计模式是提升智能体输出质量最有效的方法之一。其核心思想是智能体在生成初步输出后通过自我审视和批评来改进输出。6.1 为什么不直接生成呢LLM的一次性生成往往存在以下问题遗漏细节可能忽略用户需求中的某些约束。逻辑漏洞推理链条可能存在跳跃或矛盾。格式问题输出可能不符合预期的结构。事实错误可能产生幻觉或过时信息。反射机制通过「生成-批评-改进」的循环让智能体有机会发现并修正这些问题。6.2 反射工作流程一个典型的反射流程包含以下步骤初始生成LLM根据用户请求生成第一版输出。自我批评LLM审视自己的输出找出问题。改进建议LLM提出具体的修改建议。重新生成LLM根据建议生成改进后的输出。迭代验证重复上述过程直到满足质量阈值。6.3 反射的Prompt模板以下是一个用于反射的Prompt模板示例你是一个AI批评家。请审视以下AI生成的回答找出其中的问题。 用户请求{user_request} AI回答{ai_response} 请从以下维度进行批评 是否完整回答了用户的问题 是否存在事实性错误 逻辑是否清晰、连贯 格式是否符合要求 是否有遗漏的重要信息 请列出具体问题并给出改进建议。6.4 评估反射的影响研究表明反射机制可以显著提升输出质量。在一个典型的文本生成任务中指标无反射单次反射两次反射事实准确率72%85%89%完整性评分3.1/54.2/54.5/5格式合规率68%92%96%需要注意的是反射并非越多越好。过多的反射会增加延迟和成本且收益递减。实践中通常1-2次反射即可达到较好的效果。6.5 使用外部反馈除了自我反思还可以引入外部反馈来提升输出质量代码执行反馈运行生成的代码根据报错信息修正。用户反馈收集用户对输出的评价和修正。工具结果反馈根据工具返回的数据验证输出。专家评审由领域专家对输出进行审核。7. 工具使用扩展智能体的能力边界工具使用Tool Use是智能体AI最核心的能力之一。通过调用外部工具智能体可以获取实时数据、执行代码、操作外部系统从而突破纯文本生成的限制。7.1 什么是工具工具是智能体可以调用的外部函数或API。每个工具通常包含名称唯一标识符。描述说明工具的功能和适用场景。参数Schema定义输入参数的格式和约束。执行逻辑实际执行的功能代码。7.2 创建工具在Google ADK中创建工具非常简单。以下是一个获取天气的工具示例from google.adk import Agent, tool tool def get_weather(city: str, date: str today) - dict: 获取指定城市在指定日期的天气信息。 Args: city: 城市名称如北京。 date: 日期格式为YYYY-MM-DD默认为今天。 Returns: 包含天气状况、温度、湿度等信息的字典。 这里调用真实的天气API 示例返回 return { city: city, date: date, condition: 晴, temperature: 25, humidity: 40 } agent Agent( nameweather_agent, modelgemini-2.0-flash, tools[get_weather] )7.3 工具语法工具定义的核心是函数签名和文档字符串。LLM通过解析这些信息来理解工具的功能和参数。关键要素包括类型注解明确参数类型帮助LLM正确传参。文档字符串清晰描述工具功能、参数含义和返回值。默认值为可选参数提供默认值。7.4 代码执行工具代码执行是智能体最强大的工具之一。它允许智能体编写并运行代码实现计算、数据处理和可视化等功能。tool def execute_python(code: str) - str: 在沙箱环境中执行Python代码并返回输出。 Args: code: 要执行的Python代码字符串。 Returns: 代码执行的标准输出或错误信息。 import subprocess result subprocess.run( [python, -c, code], capture_outputTrue, textTrue, timeout30 ) return result.stdout if result.returncode 0 else result.stderr7.5 MCPModel Context ProtocolMCP模型上下文协议是Anthropic提出的开放标准用于标准化AI模型与外部工具、数据源之间的通信。MCP的核心优势标准化统一的协议格式工具可以跨平台复用。安全性通过权限控制保护敏感操作。可发现性工具可以动态发现和注册。流式传输支持长任务的流式结果返回。一个MCP工具服务器的基本结构from mcp.server import Server from mcp.types import Tool, TextContent server Server(my-tools) server.list_tools() async def list_tools(): return [ Tool( nameget_weather, description获取天气信息, inputSchema{ type: object, properties: { city: {type: string} } } ) ] server.call_tool() async def call_tool(name: str, arguments: dict): if name get_weather: return [TextContent(typetext, textf天气{arguments[city]} 晴)] raise ValueError(f未知工具: {name})8. 构建智能体AI的实用技巧评估与优化构建一个可靠的智能体AI不仅仅是编写代码更重要的是建立系统的评估和优化流程。8.1 评估Evals的深入实践评估是智能体开发的核心环节。一个完整的评估流程包括定义评估目标明确要评估的能力维度。构建评估数据集收集覆盖各种场景的测试样本。运行评估批量执行测试并记录结果。分析结果识别失败模式和性能瓶颈。迭代优化根据分析结果改进智能体。8.2 误差分析与确定后续步骤优先级误差分析Error Analysis是评估的延伸。当评估发现失败案例时需要深入分析失败原因并据此确定优化优先级。常见的失败原因分类失败类型示例优化方向工具调用错误参数格式错误、工具不存在改进工具描述、增加参数校验推理错误逻辑跳跃、错误结论改进Prompt、增加推理步骤知识缺失无法回答领域问题增加RAG、补充知识库格式错误输出不符合预期结构增加格式约束、使用结构化输出上下文丢失长对话中遗忘早期信息改进记忆机制、增加摘要8.3 组件级评估除了端到端评估还需要对智能体的各个组件进行单独评估LLM生成质量评估单次生成的文本质量。工具选择准确性评估智能体是否正确选择了工具。参数填充正确性评估工具参数是否正确填充。规划质量评估生成的计划是否合理。记忆管理评估智能体是否正确存储和检索信息。8.4 如何解决你发现的问题根据误差分析的结果可以采取以下优化措施改进Prompt增加示例、明确约束、优化指令。增加工具补充缺失的工具或改进现有工具。调整模型更换更强的模型或调整参数。增加反射引入自我批评机制。增加RAG为智能体提供外部知识检索能力。改进记忆优化上下文管理和长期记忆。8.5 延迟与成本优化生产环境中的智能体需要关注延迟和成本。优化策略包括模型选择简单任务使用小模型复杂任务使用大模型。缓存缓存重复的LLM调用结果。并行化并行执行独立的子任务。减少Token精简Prompt、压缩上下文。提前终止满足条件后立即停止生成。延迟优化示例并行工具调用import asyncio async def parallel_tool_calls(agent, queries): 并行执行多个工具调用。 tasks [agent.call_tool(q) for q in queries] return await asyncio.gather(*tasks)8.6 开发过程总结一个完整的智能体开发流程可以总结为需求分析明确任务目标和约束。原型设计快速搭建最小可行版本。评估基线建立评估数据集和基线指标。迭代优化基于评估结果持续改进。生产部署部署到生产环境并监控。持续监控监控性能、延迟、成本和失败率。9. 高度自主智能体的模式规划与多智能体高度自主智能体能够自主规划、执行和优化复杂任务。本节将深入探讨规划工作流和多智能体系统。9.1 规划工作流规划Planning是高度自主智能体的核心能力。规划工作流通常包含目标理解解析用户意图明确最终目标。任务分解将目标分解为可执行的子任务。排序调度确定子任务的执行顺序和依赖关系。执行监控逐步执行计划并监控进度。动态调整根据执行结果调整计划。9.2 创建和执行LLM计划LLM计划是指由LLM生成的、结构化的任务执行方案。以下是一个计划生成的示例from google.adk import Agent, tool tool def create_plan(goal: str) - list: 为给定目标生成一个执行计划。 Args: goal: 要实现的目标描述。 Returns: 一个包含步骤列表的计划。 # 这里调用LLM生成计划 # 示例返回 return [ {step: 1, action: 收集资料, tool: search_web}, {step: 2, action: 分析数据, tool: analyze_data}, {step: 3, action: 生成报告, tool: generate_report} ] planning_agent Agent( nameplanning_agent, modelgemini-2.0-flash, tools[create_plan] )9.3 结合代码执行的规划将规划与代码执行结合可以让智能体在规划后直接执行代码来完成任务。这种模式特别适合数据分析和自动化任务。规划阶段读取CSV数据文件数据清洗处理缺失值统计分析计算均值、中位数生成可视化图表输出分析报告执行阶段→ 调用 read_file(data.csv) → 调用 execute_python(df.dropna(inplaceTrue)) → 调用 execute_python(df.describe()) → 调用 execute_python(df.plot()) → 调用 generate_report()9.4 多智能体工作流多智能体系统Multi-Agent System通过多个智能体分工协作处理复杂任务。常见的多智能体架构包括主管-工人模式一个主管智能体负责任务分配和结果汇总多个工人智能体执行具体任务。流水线模式多个智能体按顺序处理任务每个智能体的输出作为下一个的输入。协作模式多个智能体平等协作共同解决问题。竞争模式多个智能体独立尝试解决问题选择最佳结果。9.5 多智能体系统的通信模式多智能体之间的通信是系统设计的关键。常见的通信模式模式描述适用场景直接消息智能体之间直接传递消息小规模系统共享黑板通过共享存储交换信息协作式任务事件总线通过事件发布/订阅通信松耦合系统层级路由通过上级智能体转发消息主管-工人模式一个多智能体系统的简单示例from google.adk import Agent 定义工人智能体 researcher Agent( nameresearcher, modelgemini-2.0-flash, instruction你负责收集和整理资料。 ) writer Agent( namewriter, modelgemini-2.0-flash, instruction你负责根据资料撰写文章。 ) reviewer Agent( namereviewer, modelgemini-2.0-flash, instruction你负责审查文章质量并提出修改建议。 ) 定义主管智能体 supervisor Agent( namesupervisor, modelgemini-2.0-flash, sub_agents[researcher, writer, reviewer], instruction你负责协调研究、写作和审查三个智能体完成文章创作任务。 )10. Agent知识图谱结构化知识的强大工具知识图谱Knowledge Graph是一种以图结构组织信息的方式它通过实体节点和关系边来表示知识。将知识图谱与智能体AI结合可以显著提升智能体的知识管理和推理能力。10.1 什么是知识图谱知识图谱由三要素组成实体Entity现实世界中的对象如「北京」「Python」「张三」。关系Relation实体之间的语义联系如「位于」「编写」「属于」。属性Property实体或关系的特征如「人口」「发布时间」。知识图谱可以用三元组主语谓语宾语表示(北京, 位于, 中国) (Python, 是一种, 编程语言) (张三, 编写, Python程序)10.2 多智能体系统的架构在多智能体系统中知识图谱可以作为共享的知识层帮助不同智能体之间共享和推理知识。典型架构包括中央知识图谱所有智能体共享一个知识图谱。分布式知识图谱每个智能体维护自己的知识子图通过映射实现互操作。混合架构中央图谱存储核心知识各智能体维护私有知识。10.3 Google ADK简介Google ADKAgent Development Kit是Google推出的智能体开发框架提供了构建、测试和部署智能体AI的完整工具链。ADK的核心特性多模型支持支持Gemini、OpenAI、Anthropic等多种LLM。工具系统内置工具注册、调用和错误处理机制。记忆管理提供短期和长期记忆能力。多智能体编排支持子智能体的创建和协调。评估框架内置评估工具和数据集管理。安装ADKpip install google-adk创建一个基本智能体from google.adk import Agent agent Agent( namemy_agent, modelgemini-2.0-flash, instruction你是一个乐于助人的AI助手。, tools[my_tool1, my_tool2] ) 运行智能体 response agent.run(你好请帮我查询明天的天气。) print(response)10.4 了解用户意图理解用户意图是智能体正确响应的前提。意图识别通常包括意图分类判断用户想要什么查询、操作、对话等。实体抽取提取关键信息地点、时间、对象等。情感分析判断用户情绪状态。上下文理解结合对话历史理解当前请求。10.5 文件建议在知识图谱构建中文件建议是指根据用户需求推荐相关的文件或数据源。这通常通过以下方式实现元数据匹配根据文件名、标签、描述匹配。内容相似度通过向量检索找到内容相似的文件。知识图谱关联通过实体关系推荐相关文件。10.6 结构化数据的架构建议对于结构化数据如数据库表、CSV文件构建知识图谱的架构建议数据建模将表结构映射为实体和关系。数据清洗处理缺失值、重复值和格式问题。实体解析识别并合并指向同一实体的记录。关系抽取根据外键或业务规则建立实体间关系。图存储将数据导入图数据库如Neo4j。使用Neo4j构建知识图谱示例from neo4j import GraphDatabase driver GraphDatabase.driver(bolt://localhost:7687, auth(neo4j, password)) def create_graph(tx, data): for row in data: tx.run( MERGE (a:Entity {name: $source}) MERGE (b:Entity {name: $target}) MERGE (a)-[r:RELATES {type: $relation}]-(b), sourcerow[source], targetrow[target], relationrow[relation] ) with driver.session() as session: session.execute_write(create_graph, data)10.7 非结构化数据的模式建议对于非结构化数据如文本、文档构建知识图谱通常采用以下模式文本预处理分词、去停用词、词性标注。命名实体识别NER识别文本中的人名、地名、组织名等实体。关系抽取识别实体之间的语义关系。知识融合将抽取的知识与已有图谱对齐。图构建将三元组导入图数据库。使用spaCy进行NER示例import spacy nlp spacy.load(zh_core_web_sm) doc nlp(Google公司位于美国加州由拉里·佩奇和谢尔盖·布林创立。) entities [(ent.text, ent.label_) for ent in doc.ents] print(entities) 输出: [(Google, ORG), (美国, GPE), (加州, GPE), (拉里·佩奇, PERSON), (谢尔盖·布林, PERSON)]10.8 知识图谱构建实战一个完整的知识图谱构建流程包括需求分析明确图谱要回答的问题。数据收集收集结构化或非结构化数据。本体设计定义实体类型、关系类型和属性。知识抽取从数据中抽取实体和关系。知识融合消除冲突、合并重复实体。图存储导入图数据库。查询与推理通过图查询和推理获取知识。一个简单的知识图谱查询示例// 查询与Python相关的所有实体 MATCH (n)-[r]-(m) WHERE n.name Python RETURN n, r, m // 查询张三编写过的所有程序 MATCH (p:Person {name: 张三})-[:编写]-(prog:Program) RETURN prog.name11. 结论与下一步学习路径恭喜你完成了这份智能体AI的完整指南你已经掌握了从基础概念到高级架构的全面知识。让我们回顾一下关键要点智能体AI是能够自主感知、决策和行动的AI系统自主性程度从低到高连续变化。任务分解是智能体规划的基础好的分解应具备原子性、可验证性、顺序性和可组合性。评估Evals是智能体开发的核心环节需要建立系统的评估数据集和指标体系。反射设计模式通过「生成-批评-改进」循环显著提升输出质量。工具使用扩展了智能体的能力边界MCP提供了标准化的工具通信协议。高度自主智能体通过规划工作流和多智能体协作处理复杂任务。知识图谱为智能体提供了结构化的知识表示和推理能力。11.1 推荐学习资源以下资源可以帮助你进一步深入学习Google ADK官方文档Agent Development Kit (ADK) - Agent Development Kit (ADK)Anthropic MCP文档What is the Model Context Protocol (MCP)? - Model Context ProtocolLangChain文档LangChain overview - Docs by LangChainNeo4j图数据库Neo4j documentation - Neo4j DocumentationspaCy NLP库spaCy · Industrial-strength Natural Language Processing in PythonReAct论文[2210.03629] ReAct: Synergizing Reasoning and Acting in Language ModelsReflexion论文[2303.11366] Reflexion: Language Agents with Verbal Reinforcement LearningGoogle AI Studiohttps://aistudio.google.com/建议的学习路径先通过ADK快速搭建一个带工具调用的智能体然后逐步引入反射、规划、多智能体和知识图谱能力最后通过系统的评估和优化流程打磨你的智能体应用。智能体AI是一个快速发展的领域保持学习和实践是掌握它的关键。祝你在智能体AI的探索之旅中收获满满