💻
QMMMS的笔记
博客
  • QMMMS的笔记
  • agent
    • MCP的背景、原理和开发
    • Agent 历史与背景
    • Agentic Workflows
    • 环境检查与基础工具
    • Tool Call
    • 工具与运行时的值
    • temp
    • 处理 Tool Call error
    • trick
  • algorithm
    • 线性结构
    • 二叉树
    • 图
    • 查找
    • 排序
    • 动态规划
    • 优化方法
    • 数学
    • 迁移至Java
  • computer_composition
    • 系统总线
    • 存储器
    • 输入输出系统
    • 计算机的运算方法
    • 指令系统
    • 补充
  • computer_network
    • 引入
    • 应用层
    • 传输层
    • 网络层(数据平面)
    • 网络层(控制平面)
    • 链路层
    • 常见问答
    • 实验
  • database
    • SQL实战
    • 关系代数
    • 数据库设计
    • 规范化
    • 数据库基本概念
    • 查询原理
    • 数据库恢复技术
    • 并发控制
  • dev_tools
    • Git
    • Nginx
    • Spring
    • LangChain
    • PyTorch Cheat Sheet
    • MyBatis
    • MySQL Cheat Sheet
    • MySQL 补充
    • Redis
    • Docker
    • RocketMQ
    • Chrome
  • linux
    • Linux基础命令与使用
    • 文件与权限
    • 文件与目录操作
    • 权限属性高级
    • 命令与文件的查找
    • 文件压缩和打包
    • vim编辑器
    • shell变量
    • 命令补充
    • 数据流重定向
    • 管道命令
    • shell脚本
    • 用户管理
    • 用户间交流
    • 计划任务
    • 进程管理
    • 软件管理
    • 认识系统服务
    • 运维常用命令
    • 常用命令
  • llm
    • 大规模语言模型概述
    • 分布式训练概述
    • 有监督微调概述
    • 强化学习与LLM
    • LLM评估概述
    • 大模型应用
    • 理解大模型
    • 量化
    • 预训练
    • 上下文学习
  • machine_learning
    • 引入
    • 大致正确学习
    • 一致收敛
    • 偏差还是过拟合?
    • 可学习的充要条件
    • 非均匀可学习性
    • 计算复杂性
  • mathematics
    • 概率与统计基础
    • 线性代数基础
  • operating_system
    • 操作系统基本概念
    • 进程和线程
    • 同步,互斥与死锁
    • 内存管理
    • 文件系统
    • I/O系统
    • 保护与安全
    • 《现代操作系统》
  • statistical_learning
    • 统计学习引入
    • 线性回归
    • 分类
    • 重抽样方法
    • 线性模型选择与正则化
    • 非线性模型
    • 基于树的方法
    • 支持向量机
    • 无指导学习
    • 马尔科夫链和蒙托卡罗方法简明理解
    • R语言速查
  • deep_learning
    • basic_concepts
      • 逻辑回归与损失函数
      • 神经网络
      • 正则化、预处理、权重初始化
      • 优化算法
      • 机器学习策略
      • 复习:从计算机视觉的角度
      • 卷积神经网络
      • 深度卷积网络示例
      • 计算机视觉任务
      • 循环神经网络
      • 自然语言处理任务
      • 注意力
      • Transformers 家族
      • 显卡扫盲
      • 强化学习概述
    • semi-supervise
      • 半监督学习简介
      • Consistency Regularization
      • Proxy-label Methods
      • Holistic Methods
      • Generative Models
      • Graph-Based SSL
      • Self-Supervision for SSL
      • Other SSL methods
  • programming
    • cpp
      • STL
      • C++基础
      • 内存管理
      • 面向对象
    • java
      • 环境和介绍
      • 注释
      • String
      • 面向对象思想
      • Object
      • 包
      • 访问权限修饰符
      • 初始化块
      • 接口
      • 内部类
      • 注解
      • 枚举
      • 集合框架
      • List
      • Map
      • 泛型
      • 迭代
      • IO与流
      • 序列化
      • 异常
      • Lambda
      • Stream流
      • Socket
      • 缓冲
      • 命名规范
      • 拆箱装箱
      • 值传递
      • 深拷贝
      • 反射
      • JVM
      • 并发编程基础
    • python
      • 并发编程
      • 环境管理
  • software_engineering
    • basic_concepts
      • 系统分析与设计概述
      • 规划
      • 需求分析与原型设计
      • 项目管理
      • 建模
      • 数据库设计
      • 架构
      • 配置管理
      • 测试管理
      • 安全
      • 编码原则
      • 微服务
      • 补充内容
    • software_testing
      • CMMI基础
      • PPQA与SQA
      • 软件测试基础
      • 黑盒测试
      • 白盒测试
      • 集成测试
      • 系统测试
      • 测开面试补充
由 GitBook 提供支持
在本页
  • 工作流
  • Agent工作流模式
  • 规划模式(Planning Pattern)
  • 工具使用模式(Tool Use Pattern)
  • 反思模式(Reflection Pattern)
  • Agent工作流应用
在GitHub上编辑
  1. agent

Agentic Workflows

AI 代理是一种结合了大型语言模型(LLMs)的推理与决策能力,以及现实世界交互工具的系统,使其能够在有限的人类干预下完成复杂任务。代理被赋予特定的角色,并拥有不同程度的自主性来实现最终目标。它们还具备记忆能力,能够从过去的经验中学习,并随着时间的推移提升性能。

AI代理本身并无太多实际用途,只有通过赋予其角色、目标和结构,只有通过工作流,才能真正发挥作用。

工作流

工作流(Workflow) 指的是一系列相互关联的步骤,旨在完成特定任务或目标。最简单的工作流是确定性的(Deterministic),即它们遵循预定义的步骤序列,无法适应新信息或变化的环境。

例如,一个自动化的报销审批工作流可能如下所示:如果费用标签为“餐饮”,且金额小于$30,则自动批准。

一些工作流利用大型语言模型(LLMs)或其他机器学习模型来增强其能力。这些通常被称为 AI 工作流,可分为代理型(Agentic)和非代理型(Non-Agentic)两种:

  • 非代理型 AI 工作流:LLM 根据输入的指令生成输出。例如,文本摘要工作流的流程可能是:接收长文本 → 让 LLM 进行总结 → 输出摘要。这种流程仅仅依赖 LLM 的文本处理能力,并不具备自主决策或任务执行能力,因此不属于代理型工作流。

  • 代理型 AI 工作流:由一个或多个AI 代理(Agents)动态执行一系列步骤,以完成特定任务。代理在用户授予的权限范围内,具备一定程度的自主性,可以收集数据、执行任务,并做出实际决策。此外,代理型工作流利用 AI 代理的推理能力、工具使用能力和持久记忆能力,使传统工作流更具响应性、适应性和自我进化能力

区别主要体现在:

  • AI 工作流 vs. 传统工作流:AI 工作流依赖 AI 模型,而传统工作流依赖预定义步骤。

  • 代理型 vs. 非代理型 AI 工作流:代理型 AI 工作流使用动态 AI 代理,而非代理型 AI 工作流只是使用静态 AI 模型处理任务。

一个 AI 工作流要成为代理型工作流,至少需要具备以下三个核心特点:

  1. 制定计划(Make a plan) 代理型工作流从规划开始。LLM 负责任务分解(Task Decomposition),将复杂任务拆解为更小的子任务,并确定最佳执行路径。

  2. 使用工具执行任务(Execute actions with tools) 代理型工作流使用一系列预定义工具(如 API、数据库、搜索引擎等),并配合相应的权限管理,以执行任务并实施规划方案。

  3. 反思和迭代(Reflect and iterate) 代理可以在每个步骤评估结果,如有必要调整计划,并反复执行,直到得到满意的结果。

我们可以区分三种不同类型的工作流:

类型

特点

传统非 AI 工作流

依赖固定规则,按照预设步骤执行,无法适应变化。

非代理型 AI 工作流

使用 LLM 执行任务,但不具备动态决策或自主性。

代理型 AI 工作流

通过 AI 代理动态执行任务,具备适应性和决策能力。

随着新技术的发展,相关术语也在不断增加。尽管有些人会混用“代理架构(Agentic Architectures)”和“代理工作流(Agentic Workflows)”,但二者实际上有明显区别。

  • 代理工作流 关注任务执行的流程,即代理如何分解任务、使用工具、调整策略等。

  • 代理架构 关注系统设计,即如何构建一个包含代理、工具和记忆系统的整体框架。

Agent工作流模式

规划模式(Planning Pattern)

使代理能够自主地将复杂任务拆解为一系列更小、更简单的子任务,这一过程称为任务分解。任务分解能够提高工作流的质量,具体来说它可以:降低 LLM 的认知负荷,减少其计算压力;提升推理能力,增强问题解决能力;减少幻觉(Hallucination)和其他不准确性,提高输出的可靠性。

规划模式在目标达成路径不明确且需要灵活适应问题解决过程的情况下尤其有效。

例如:当 AI 代理被指示修复软件 bug 时,它可能会按照如下方式分解任务:阅读 bug 报告、识别相关代码片段、生成可能的错误原因列表、选择合适的调试策略、运行修复代码并观察错误信息,若失败则调整方案。

虽然规划模式有助于代理更好地解决复杂任务,但它可能导致比确定性工作流更不可预测的结果。因此,规划模式适用于需要深入推理和多步推理的任务。

工具使用模式(Tool Use Pattern)

生成式 LLM 具有一个显著的局限性:它们只能基于已有的训练数据进行回答,无法实时检索信息或验证事实。因此,LLM 可能会:生成错误信息(“幻觉”)并且在遇到不确定问题时“猜测”答案。

针对这个问题,可以通过RAG来解决,即通过提供相关的、实时的外部数据来增强 LLM 的响应准确性,但它仅限于数据检索,而非与外部环境的动态交互。

工具使用模式 则进一步拓展了代理的能力,使其能够与外部系统动态交互,而不仅仅是被动地检索数据。工具使用模式适用于需要实时数据支持或依赖外部资源的任务,例如:在网页上搜索最新新闻;从数据库中获取用户历史记录;自动发送电子邮件。以下列举一些常用的工具及用途。

工具

用途

API

访问外部服务,执行任务

信息检索(如向量搜索)

获取外部数据库中的相关信息

Web 浏览器

进行网络搜索,获取最新信息

机器学习模型

调用外部 AI 模型,增强能力

代码解释器

运行代码,实现自动化计算

反思模式(Reflection Pattern)

反思模式 是一种自我反馈机制,代理在采取最终行动前,会迭代评估自己的输出质量或决策,并据此优化自身的推理过程。这个过程可以帮助代理:纠正错误,减少不准确性;持续改进,提高决策质量;增强适应性,更好地满足用户需求。

反思模式对于那些一次执行难以成功的任务特别有用,例如代码生成:

  1. 代理生成代码片段;

  2. 在沙盒或执行环境中运行代码;

  3. 获取错误信息,并将其反馈给 LLM;

  4. 让 LLM 迭代优化代码,直到成功执行。

反思的力量在于代理能够批评自己的输出并将这些见解动态地整合到工作流程中,从而实现持续改进而无需直接人工反馈。这些反思可以编码在代理的内存中,从而允许在当前用户会话期间更有效地解决问题,并通过适应用户偏好实现个性化并改善未来的交互。

Agent工作流应用

Agentic RAG:代理RAG 在 RAG 流程中引入一个或多个 AI 代理,使其更加智能和动态。具体来说:

  • 在规划阶段(Planning Phase):代理可以将复杂查询拆解为更小的子查询(查询分解,Query Decomposition)并判断是否需要向用户请求额外信息以更精准地完成任务。

  • 在数据检索和评估阶段:代理可以评估检索到的数据的相关性和准确性,避免提供无用或错误的信息。当查询结果不满意,代理可以重新调整查询,回到查询分解阶段,甚至制定新的查询方案。


代理研究助手(Agentic Research Assistants),有时也被 AI 公司称为“深度研究(Deep Research)”,用于生成深入的报告和复杂主题的详细见解。它们基于代理 RAG,但不仅仅是检索信息,还能分析和综合数据,提供更有深度的结果。

特点

传统 RAG

代理研究助手

信息获取

仅从外部数据源检索信息

检索 + 分析 + 综合信息

查询适应性

查询固定,不会动态调整

能根据任务调整查询方案

用户交互

只返回查询结果

可主动请求用户澄清需求

计划调整

无适应能力

可改变检索方向,挖掘新信息

数据整合

仅提供单一查询结果

合并多源数据,发现趋势

具体来说:代理研究助手通常使用专门针对网页浏览、任务分解和动态规划微调过的 LLM;并能够主动请求用户提供额外信息,以更清晰地理解任务目标;结合根据检索到的信息调整研究方向,探索新的角度,确保获取完整的数据。

代理研究助手不仅检索信息,还能识别趋势,形成系统化见解;除此之外,它还能够跨时间段分析数据,编写详细的研究报告;提高研究人员的效率,减少人工查找和分析的时间。当前,OpenAI、Perplexity 和 Google 都已推出各自的深度研究产品。


代理编码助手(Agentic Coding Assistants) 可以在最少的人为干预下完成代码生成、重构、优化和调试,支持创建 PR 和提交代码,提升团队协作效率。相比之下,非代理型编码助手(如 GitHub Copilot 的早期版本)仅限于代码生成,缺乏环境交互和自适应能力。

代理编码助手的核心特性具备以下几点:

  1. 执行与自我改进:不仅能生成代码,还可以执行代码并基于错误信息迭代优化。

  2. 代码库管理权限:代理可以创建提交(Commits)和 PR(Pull Requests),自动化软件开发流程。(如Anthropic Claude Code)。代理可在执行前征求用户确认,确保人类掌控关键决策。(如Cursor 的 Agent)。

  3. 长期记忆(Long-term Memory):代理能够记住错误并自我改进,在未来的任务中表现得更加智能。

上一页Agent 历史与背景下一页环境检查与基础工具

最后更新于1个月前