Agent 框架预研

Agent:能够自主收集信息、制定计划并执行动作的智能体

  • 3 个特征:感知、规划和行动
  • 5 个要素:LLMs,逻辑链,记忆,知识,工具

Agent 分层:

  • Agent 专家 = LLMs + RAG + Tools
  • Agent 团队 = 多个 Agent + 任务分配 + 管理协作
  • Agent 企业 = 多个 Agent 团队 + 自适应决策 + 监控与运维

Agent 分类:

  • 编译型 (如 Dify) :构建明确的工作流程图,Agent 按照预设的流程执行任务;特点是效率高,可控性强,但灵活性低,适合流程相对固定和场景相对单一的情况
  • 解释型 (如 Manus):实时理解用户输入,并动态规划步骤,根据反馈调整行为;特点是灵活自适应,具备学习和改进的能力,适合处理没有标准流程的任务,但效率低,行为可预测性较弱

阶段总结:

  • 编译型 Agent 与解释型 Agent 各有优势,二者将长期共存,而非相互替代
  • 基础模型是通用 Agent 能力提升的关键,不要把人类的思维方式强加给 AI
  • Anthropic 提出的 MCP 协议为 Agent 生态系统的互联互通提供了标准化方案
  • RL 训练是构建竞争壁垒的重要手段,可以将行业经验和专业知识转化为模型能力
  • Agent 未来可能会分为 “快思考” (用户交互) 和 “慢思考” (后台处理) 两个部分协同工作
  • Agent 未来会通过自动化解决越来越复杂的场景来逐步走向通用,从 B 端迁移到 C 端

Agent 基准测试

当前局限性:

  • 大模型本身的不足:幻觉、欺骗、越狱,长文本处理能力有限
  • 需要 RAG 技术进行兜底,但 RAG 可能引入额外的误差
  • 系统设计难:难以精确引导模型行为,执行复杂任务容易陷入死循环;任务链越长,误差累积越多;公开信息有限,而且主要是为人服务,而不是为大模型服务

改进建议(Anthropic

  • 一个好的工具定义通常包括使用示例、边界情况、输入格式要求等
  • 持续测试模型如何使用工具,观察模型犯的错误,然后不断迭代改进。
  • 设定 “防呆机制”(Poka-yoke),调整参数设置,降低模型出错的概率

LangChain 推理应用开发框架

项目地址 104k ⭐️

LangChain 的生态系统:

  • LangChain:主要包括模型调用、文本嵌入表示和向量存储等功能
  • LangSmith:生产级部署,包括 Agent 运维监控、评估改善和版本管理等功能
  • LangGraph 10.4k⭐️:以图的方式构建 Agent 处理复杂任务,包括长期记忆、人工参与等
  • LangGraph Platform:用于 Agent 长期稳定运行的部署平台,也包括流程设计与扩展
  • LangGraph Studio:以可视化的方式快速迭代原型,实现 Agent 的复用、配置和共享

Langflow 52.1k⭐️:基于 LangChain 的 GUI,以友好的交互方式组合 LLMs 功能和程序逻辑

总结:

  • 重视思维链提示与向量搜索增强,是目前流行的 Agent 开发框架
  • 内置大量工具集,但整个生态过于复杂丰富,上手门槛高,历史包袱重

扩展阅读:DL.ai 大模型系列-课程总结

Dify 低代码 LLM 应用开发平台

项目地址 82.7k ⭐️(苏州语灵)

核心功能:在画布上可视化搭建和测试 AI 工作流

  • 主流模型和 API 兼容,也集成了自托管方案
  • Prompt IDE,支持提示词自定义、模型性能比较
  • RAG Pipeline,支持常见的 PDF、PPT 和其他文档格式
  • Agent 智能体,内置 50+工具,可自定义函数
  • LLMOps,程序日志和性能监控,企业级权限控制
  • 后端即服务(Backend as Service),所有功能都有相应的 API

LLMOps(Large Language Model Operations),涵盖了大型语言模型(如GPT系列或 DeepSeek)开发、部署、维护和优化的一整套实践和流程

架构设计(图源):

  • 数据层:数据集的提取、转换和加载(Dataset ETL);用于检索增强的数据管道(RAG Pipeline)
  • 开发层:提示词的编写、测试和版本管理(Prompts IDE);Agent 的感知、规划和行动(DSL)
  • 编排层:以 Orchestration Studio 为核心的可视化编排工具,负责协调各个组件的运行,并通过 Moderation System(审核系统)和 Cache System(缓存系统)保障应用质量
  • 基础层:存储系统(Storage)和基础大模型(LLMs);工具库(Toolbox)和模型运行(LLMOps)

总结:

  • 功能全面,插件生态丰富,文档更新及时
  • Docker 部署方便,但依赖的环境和镜像复杂

参考:Dify 开源 AI 大模型应用开发平台 (Apache 2.0)

AutoGen 多智能体 AI 应用框架

项目地址 41.6k ⭐️(微软)

架构设计:

  • Core API:消息传递、事件驱动代理,支持本地运行和分布式运行
  • AgentChat API:用于快速原型设计,包括 Agent 对话或 Agent 群组
  • Extensions API:框架功能扩展,比如第三方 LLMs 支持或代码运行
  • AutoGen Studio 工具:提供图形界面,用于构建多智能体应用
  • AutoGen Bench 工具:提供基准测试套件,用于评估 Agent 性能

官方简单示例:定义一个旅行规划系统

from autogen_agentchat.agents import AssistantAgent
from autogen_agentchat.conditions import TextMentionTermination
from autogen_agentchat.teams import RoundRobinGroupChat
from autogen_agentchat.ui import Console
from autogen_ext.models.openai import OpenAIChatCompletionClient

planner_agent = AssistantAgent(
    "planner_agent",
    model_client=OpenAIChatCompletionClient(model="gpt-4o"),
    description="A helpful assistant that can plan trips.",
    system_message="You are a helpful assistant that can suggest a travel plan for a user based on their request.",
)

local_agent = AssistantAgent(
    "local_agent",
    model_client=OpenAIChatCompletionClient(model="gpt-4o"),
    description="A local assistant that can suggest local activities or places to visit.",
    system_message="You are a helpful assistant that can suggest authentic and interesting local activities or places to visit for a user and can utilize any context information provided.",
)

language_agent = AssistantAgent(
    "language_agent",
    model_client=OpenAIChatCompletionClient(model="gpt-4o"),
    description="A helpful assistant that can provide language tips for a given destination.",
    system_message="You are a helpful assistant that can review travel plans, providing feedback on important/critical tips about how best to address language or communication challenges for the given destination. If the plan already includes language tips, you can mention that the plan is satisfactory, with rationale.",
)

travel_summary_agent = AssistantAgent(
    "travel_summary_agent",
    model_client=OpenAIChatCompletionClient(model="gpt-4o"),
    description="A helpful assistant that can summarize the travel plan.",
    system_message="You are a helpful assistant that can take in all of the suggestions and advice from the other agents and provide a detailed final travel plan. You must ensure that the final plan is integrated and complete. YOUR FINAL RESPONSE MUST BE THE COMPLETE PLAN. When the plan is complete and all perspectives are integrated, you can respond with TERMINATE.",
)

termination = TextMentionTermination("TERMINATE")
group_chat = RoundRobinGroupChat(
    [planner_agent, local_agent, language_agent, travel_summary_agent], 
# Agent 分工:路线规划设计,地方特色总结,语言沟通说明,整体方案总结
termination_condition=termination
)
await Console(group_chat.run_stream(task="Plan a 3 day trip to Nepal."))

总结:

  • 通过多 Agent 团队协作的思路,规避了可能存在的复杂规则链
  • 事件驱动,异步消息,支持沙盒环境,支持分布式,可调试
  • 依赖环境相对简单,并且具有较好的可拓展性用于灵活开发与定制
  • 在 25 年 1 月刚完成了一次向下不兼容的重构,目前可能还不太稳定

进阶阅读:官方技术报告

OpenManus 通用型 Agent 框架

项目地址 37.4k⭐️

核心特性:

  • 模块化设计,包括 agent、flow、tool、prompt 等核心模块
  • 动态决策,主要依赖动态流程规划和自主反思纠正(ReAct)

官方暂时还没有文档,可以先看一下目录结构(250320)

OpenManus/
├── app/                    # 核心应用目录
│   ├── agent/             # 智能体实现模块
│   │   ├── base.py        # 基础智能体接口定义
│   │   ├── browser.py        # 浏览器操作控制
│   │   ├── manus.py       # 主要智能体实现
│   │   ├── mcp.py         # MCP 协议支持
│   │   ├── planning.py    # 任务规划模块
│   │   ├── react.py       # 反应式决策模块
│   │   ├── swe.py         # 软件工程相关能力
│   │   └── toolcall.py    # 工具调用处理模块
│   ├── flow/              # 流程控制模块
│   │   ├── base.py        # 流程管理基础类
│   │   ├── flow_factory.py # 流程工厂
│   │   └── planning.py     # 任务规划流程
│   ├── mcp/               # MCP 协议支持
│   │   ├── service.py     # 启动满足 MCP 协议的接口服务
│   ├── prompt/            # 系统提示词模块
│   │   ├── manus.py       # Manus智能体提示词
│   │   ├── manus.py       # Manus智能体提示词
│   │   ├── planning.py    # 规划相关提示词
│   │   └── toolcall.py    # 工具调用提示词
│   ├── sandbox/           # 用于代码安全执行的沙盒
│   │   ├── client.py      # 用于连接沙盒的客户端
│   ├── tool/              # 工具集合模块
│   │   ├── base.py        # 工具基础接口
│   │   ├── browser_use_tool.py # 浏览器操作工具
│   │   ├── file_opeartor.py  # 文件操作工具
│   │   ├── file_saver.py  # 文件存储工具
│   │   ├── web_search.py  # 搜索工具
│   │   └── python_execute.py # Python代码执行工具
│   └── config.py          # 配置管理
├── config/                # 配置文件目录
│   ├── config.example.toml # 配置文件示例
│   └── config.toml        # 实际配置文件
├── main.py               # 主程序入口
├── run_flow.py           # 流程运行脚本
├── setup.py              # 项目安装配置
└── requirements.txt      # 项目依赖列表

CrewAI 生产级 AI 智能体框架

项目地址 28.7k⭐️

核心特性:

  • 独立框架,高性能,依赖少,多颗粒度可灵活定制
  • 社区活跃,用例丰富,支持复杂的真实场景

架构设计:

  • Crews 模式:Agent 团队协作完成普通任务,动态任务调度,注重自主性和专业性
  • Flows 模式:基于事件驱动的精准控制和执行,集成 Python 以实现复杂任务的自动化
  • 两种模式的切换,能够灵活的解决不同现实场景下的问题
  • 两种模式的结合,能够构造复杂的自动化任务处理 Pipelines

Crews 模式的核心要素:

  • Crew 管理员:负责 Agent 团队的管理,监督工作流程,确保合作关系,提供最终输出
  • Agent 专家:扮演特定角色(如研究员),可使用指定工具,接受任务委派并进行自主决策
  • Process 工作流:定义协作模式,控制任务分配,管理交互,确保执行效率
  • Tasks 任务:明确工作流的输入,包括目标和可使用的工具,明确管理员的输出

Flows 模式的核心要素:

  • Flow 流程编排:管理执行路径,处理状态转换,控制任务排序,确保执行可靠
  • Events 事件:工作流的触发器,动态响应,支持条件分支,允许实时的调整
  • States 状态:维持执行数据,提供持久化,支持可恢复性,确保执行的完整性
  • Crew Support 管理员支持:补充或增强工作流程,包括埋点,平衡,自适应决策等

企业版:工作追踪和日志,集中式管理平台,无缝集成主流的系统或数据,内置安全与合规性措施,实施分析和性能优化,全天候客服和运维支持,可以本地部署或云部署

总结:

  • 具备更强的管理和分工协作,更贴近现代化的企业形态
  • 两种模式的灵活切换和组合,可适用不同规模的复杂分工

其他框架

  • AnythingLLM 41.4k⭐️ 全栈应用程序(聊天,多用户管理,向量数据库, RAG 功能)
  • DB-GPT 15.7k⭐️AI原生数据应用开发框架(SQL 生成,RAG,多 Agent,BI 可视化)

往年同期文章