惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Schneier on Security
The Register - Security
The Register - Security
月光博客
月光博客
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
博客园 - 司徒正美
罗磊的独立博客
U
Unit 42
S
SegmentFault 最新的问题
Y
Y Combinator Blog
博客园_首页
Hugging Face - Blog
Hugging Face - Blog
J
Java Code Geeks
Schneier on Security
Schneier on Security
Know Your Adversary
Know Your Adversary
C
Check Point Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Simon Willison's Weblog
Simon Willison's Weblog
V
Vulnerabilities – Threatpost
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
阮一峰的网络日志
阮一峰的网络日志
The Hacker News
The Hacker News
博客园 - 叶小钗
C
Cybersecurity and Infrastructure Security Agency CISA
Spread Privacy
Spread Privacy
L
LINUX DO - 热门话题
T
The Exploit Database - CXSecurity.com
P
Palo Alto Networks Blog
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Latest news
Latest news
L
Lohrmann on Cybersecurity
A
About on SuperTechFans
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
S
Securelist
A
Arctic Wolf
D
Darknet – Hacking Tools, Hacker News & Cyber Security
T
Threatpost
Scott Helme
Scott Helme
博客园 - 聂微东
博客园 - 【当耐特】
T
Tenable Blog
I
Intezer
D
DataBreaches.Net
B
Blog RSS Feed
Security Latest
Security Latest
C
Cisco Blogs
T
Tor Project blog
N
Netflix TechBlog - Medium

博客园 - 沐子馨

Agent Loop:从对话式 AI 到自主智能体的范式跃迁 解锁图数据建模的奥秘 基于 Neo4j 与 Milvus 的图RAG系统搭建指南 解决复杂推理难题:KG-RAG 在大模型中的应用 RAG 评估常用工具简介 RAG系统效果不好?一文看懂如何进行系统评估 写出让 AI “秒懂”的技能Skill 深入理解 RAG 中的格式化生成与函数调用 解锁 RAG 系统中的高级检索与重排序策略 掌握查询重构与智能路由的艺术 告别黑盒:手把手实现一个可解释、可调试的 Text2SQL 代理系统 告别简单向量搜索:RAG 中的高级查询构建与优化策略 深入理解 RAG 中的混合搜索策略 告别基础检索:掌握 RAG 中的句子窗口与递归路由策略 构建多模态检索系统:Milvus 部署、Schema 设计与混合检索实践 向量数据库原理与实战:从核心机制到 FAISS 应用 多模态向量嵌入:从文本到图像的语义统一与 RAG 应用 构建高效 RAG 的基石:深度解析 Embedding 模型原理与优化 All-in-RAG:解锁大模型“开卷考试”的终极能力 AI Agent 是如何思考的?一文读懂推理与决策引擎 终端革命:AI Agent 正在重新定义命令行 给企业装上“AI 大脑”:AgentSpace 如何从“手动检索”跨越到“智能决策”? AI 智能体交互如何带领它走出对话框,从屏幕像素迈向真实物理世界 高级提示词技巧如何带领大模型走出“一本正经胡说八道”的误区? 当 AI 学会“开疆拓土”:探索与发现模式如何从源头打破静态知识的桎梏,在陌生领域催生新洞见? 拒绝 AI “手忙脚乱”:优先级模式如何为智能体打造毫秒级的“任务调度官”? 构建生产级可信 Agent:评估与监控中的自动化审计与闭环优化机制 当 AI 学会“三思后言”:安全护栏如何从源头掐灭偏见、幻觉与恶意攻击? 拒绝“张口就来”:推理技术如何让 AI 像人类一样拆解复杂难题? 当家方知柴米贵:资源感知优化如何让 AI 智能体告别“算力浪费”? 开启多智能体互联时代:A2A 协议与 AI 协作网络的底层逻辑 为智能体装上“实时百科全书”:RAG 如何打破 AI 的知识边界? 构建负责任的AI:人类监督、干预与反馈闭环机制 当工具失效、网络中断:AI智能体的应急与自修复指南 赋予AI“北极星”:如何让智能体自主设定并追踪目标 打破“M×N”集成魔咒:MCP如何重塑AI应用架构 赋予模型“生命力”:大语言模型如何通过学习实现持续适应 赋予模型“长期记忆”:大语言模型的记忆管理机制 AI的“社会性”:深入理解多智能体协作机制 理解AI智能体的规划机制 理解大模型的工具使用 智能体的元认知:反思模式与自我优化机制 智能体并行化模式:提升复杂工作流性能的关键技术 超越线性执行:使用LLM实现智能体路由模式 解构复杂任务:深入理解提示词链(Prompt Chaining) 别再被 AI 术语唬住了!一文理清你需要了解的所有概念 不止是多写几句:谷歌如何用69页白皮书重塑提示工程 [转]长PDF文档的总结与评估策略 Context 工程:如何把正确的上下文喂给 AI 前端如何写出优秀的 AI Agent Skills mac安装python后command not found: pip keep-alive 原理剖析 如何优雅地在 React 中使用TypeScript,看这一篇就够了! react useContext React Context 详细介绍(状态共享、数据传递) 以用户为中心的性能指标【译】 element下拉框远程搜索debounce防抖控制 vue-router打开新窗口 propmise: allSettled()与all()的区别 使用 new Date() 在chrome、安卓和 IOS 中表现不同
Agentic 框架快速概览
沐子馨 · 2026-05-10 · via 博客园 - 沐子馨

LangChain

LangChain 是一个用于开发由大语言模型(LLM)驱动的应用程序的框架。其核心优势在于 LangChain 表达式语言(LCEL),它允许您使用管道操作符将组件连接成链。这种设计形成了清晰的线性序列,每一步的输出自动成为下一步的输入。该框架专为有向无环图(DAG)工作流构建,意味着处理流程单向流动且无循环。

适用场景:

  • 简单 RAG:检索文档,构建提示,从 LLM 获取答案。
  • 文本摘要:接收用户文本,输入至摘要提示,返回摘要结果。
  • 数据提取:从文本块中提取结构化数据(如 JSON 格式)。
# A simple LCEL chain conceptually
# (This is not runnable code, just illustrates the flow)
chain = prompt | model | output_parser

LangGraph

LangGraph 是构建于 LangChain 之上的库,专为处理更高级的 Agentic 系统设计。它允许您将工作流定义为包含节点(函数或 LCEL 链)和边(条件逻辑)的图结构。其主要优势在于支持循环创建,使应用程序能够循环执行、重试操作或以灵活顺序调用工具,直至任务完成。该库显式管理应用程序状态,状态在节点间传递并在整个流程中持续更新。

适用场景:

  • 多智能体系统:监督智能体将任务路由给专业化工作智能体,可能循环执行直至目标达成。
  • 规划与执行智能体:智能体制定计划,执行步骤,随后基于结果循环反馈以更新计划。
  • 人机协同:图结构可等待人工输入,再决定后续执行节点。
特性LangChainLangGraph
核心抽象 链(使用 LCEL) 节点图
工作流类型 线性(有向无环图) 循环(支持循环的图)
状态管理 通常单次运行无状态 显式且持久的状态对象
主要用途 简单、可预测的序列 复杂、动态、有状态的智能体

如何选择?

  • 当应用程序具备清晰、可预测的线性步骤流程时,选择 LangChain。若您能定义从 A 到 B 再到 C 的直连过程而无需回环,则采用 LCEL 的 LangChain 是理想工具。
  • 当应用程序需进行推理、规划或循环操作时,选择 LangGraph。若您的智能体使用工具、反思结果并可能尝试不同策略,则需借助 LangGraph 的循环和有状态特性。
# Graph state
class State(TypedDict):
    topic: str
    joke: str
    story: str
    poem: str
    combined_output: str

# Nodes
def call_llm_1(state: State):
    """First LLM call to generate initial joke"""
    msg = llm.invoke(f"Write a joke about {state['topic']}")
    return {"joke": msg.content}

def call_llm_2(state: State):
    """Second LLM call to generate story"""
    msg = llm.invoke(f"Write a story about {state['topic']}")
    return {"story": msg.content}

def call_llm_3(state: State):
    """Third LLM call to generate poem"""
    msg = llm.invoke(f"Write a poem about {state['topic']}")
    return {"poem": msg.content}

def aggregator(state: State):
    """Combine the joke and story into a single output"""
    combined = f"Here's a story, joke, and poem about {state['topic']}!\n\n"
    combined += f"STORY:\n{state['story']}\n\n"
    combined += f"JOKE:\n{state['joke']}\n\n"
    combined += f"POEM:\n{state['poem']}"
    return {"combined_output": combined}

# Build workflow
parallel_builder = StateGraph(State)

# Add nodes
parallel_builder.add_node("call_llm_1", call_llm_1)
parallel_builder.add_node("call_llm_2", call_llm_2)
parallel_builder.add_node("call_llm_3", call_llm_3)
parallel_builder.add_node("aggregator", aggregator)

# Add edges to connect nodes
parallel_builder.add_edge(START, "call_llm_1")
parallel_builder.add_edge(START, "call_llm_2")
parallel_builder.add_edge(START, "call_llm_3")
parallel_builder.add_edge("call_llm_1", "aggregator")
parallel_builder.add_edge("call_llm_2", "aggregator")
parallel_builder.add_edge("call_llm_3", "aggregator")
parallel_builder.add_edge("aggregator", END)

parallel_workflow = parallel_builder.compile()

# Show workflow
display(Image(parallel_workflow.get_graph().draw_mermaid_png()))

# Invoke
state = parallel_workflow.invoke({"topic": "cats"})
print(state["combined_output"])

这段代码定义并运行了一个并行操作的 LangGraph 工作流。其主要目的是同时生成关于给定主题的笑话、故事和诗歌,然后将它们组合成单个格式化的文本输出。

Google’s ADK

Google 的智能体开发工具包(ADK)提供了一个高级、结构化的框架,用于构建和部署由多个交互性 AI 智能体组成的应用程序。与 LangChain 和 LangGraph 相比,它提供了一个更具指导性和生产就绪的系统,用于编排智能体协作,而非提供智能体内部逻辑的基础构建块。

LangChain 在最基础层面运作,提供组件和标准化接口以创建操作序列,例如调用模型并解析其输出。LangGraph 通过引入更灵活强大的控制流对此进行扩展;它将智能体工作流视为有状态图。使用 LangGraph,开发者显式定义节点(函数或工具)和边(决定执行路径)。这种图结构支持复杂循环推理,系统可循环执行、重试任务,并基于节点间传递的显式管理状态对象做出决策。它为开发者提供了对单个智能体行为的细粒度控制,或从第一性原理构建多智能体系统。

Google 的 ADK 抽象了大部分此类低级图构建工作。ADK 不要求开发者定义每个节点和边,而是为多智能体交互提供预构建的架构模式。例如,ADK 包含 SequentialAgent 或 ParallelAgent 等内置智能体类型,它们自动管理不同智能体间的控制流。其架构围绕智能体”团队”概念设计,通常由主智能体将任务委派给专业化子智能体。状态和会话管理由框架更隐式地处理,提供了比 LangGraph 显式状态传递更连贯但精细度稍低的方法。因此,若将 LangGraph 比作提供详细工具以设计单个机器人或团队复杂接线的工具箱,Google 的 ADK 则如同一个工厂装配线,旨在构建和管理一支已具备协同工作能力的机器人舰队。

from google.adk.agents import LlmAgent
from google.adk.tools import google_search

dice_agent = LlmAgent(
    model="gemini-2.0-flash-exp",
    name="question_answer_agent",
    description="A helpful assistant agent that can answer questions.",
    instruction="""Respond to the query using google search""",
    tools=[google_search],
)

此代码创建了一个搜索增强型智能体。当该智能体接收问题时,不会仅依赖其既有知识。相反,遵循其指令,它将使用 Google 搜索工具从网络查找相关实时信息,并据此构建答案。

Crew.AI

CrewAI 提供了一个编排框架,通过聚焦协作角色与结构化流程来构建多智能体系统。它在比基础工具包更高的抽象层级运作,提供模拟人类团队的概念模型。开发者无需将逻辑细粒度流程定义为图,而是定义参与者及其任务分配,由 CrewAI 管理其交互。

该框架核心组件包括智能体、任务和团队。智能体不仅由功能定义,还通过角色、目标和背景故事等角色特征来定义,这些特征指导其行为与沟通风格。任务是具备明确描述和预期输出的离散工作单元,分配给特定智能体。团队是包含智能体和任务列表的协调单元,执行预定义的流程。此流程决定工作流模式,通常为顺序型(一个任务的输出成为下一任务的输入)或层级型(经理型智能体分配任务并协调其他智能体间的交互)。

与其他框架相比,CrewAI 定位独特。它脱离了 LangGraph 的低层级、显式状态管理与控制流(后者要求开发者连接每个节点与条件边)。开发者不是构建状态机,而是设计团队章程。尽管 Google 的 ADK 为整个智能体生命周期提供了全面、生产就绪的平台,CrewAI 则专注于智能体协作与专家团队模拟。

@crew
def crew(self) -> Crew:
    """Creates the research crew"""
    return Crew(
      agents=self.agents,
      tasks=self.tasks,
      process=Process.sequential,
      verbose=True,
    )

此代码为 AI 智能体团队配置了顺序工作流,智能体按特定顺序处理任务列表,并启用详细日志以监控进度。

其他智能体框架

Microsoft AutoGen:AutoGen 是一个以对话方式编排多智能体任务为核心的框架。其架构使具备不同能力的智能体能够协作,支持复杂问题分解与协作解决。AutoGen 主要优势在于其灵活的对话驱动方法,可应对动态复杂的多智能体交互场景。这种对话范式可能导致执行路径预测性降低,且需复杂提示工程以确保任务高效收敛。

LlamaIndex:LlamaIndex 本质上是数据框架,旨在连接大语言模型与外部及私有数据源。它擅长构建复杂的数据摄取与检索管道,这对创建能执行 RAG 的知识型智能体至关重要。尽管其数据索引与查询能力对构建情境感知智能体非常关键,但与智能体优先的框架相比,其在复杂智能体控制流和多智能体编排方面提供的工具较少。当核心技术挑战为数据检索与综合时,LlamaIndex 是最佳选择。

Haystack:Haystack 是专为构建语言模型驱动的可扩展、生产就绪搜索系统而设计的开源框架。其架构由模块化、可互操作的节点组成,这些节点构成文档检索、问答和摘要的管道。Haystack 主要优势在于其对大规模信息检索任务性能与可扩展性的专注,使其适用于企业级应用。潜在权衡在于,其针对搜索管道优化的设计在实现高度动态和创造性智能体行为时可能较为僵化。

MetaGPT:MetaGPT 通过基于预定义标准操作程序(SOP)分配角色和任务来实现多智能体协作。该框架将智能体组织化以模拟软件开发公司,智能体承担产品经理或工程师等角色完成复杂任务。这种 SOP 驱动方法产生高度结构化且连贯的输出,对代码生成等专业领域是显著优势。该框架主要局限在于其高度专业化,使其在核心设计范畴外的通用智能体任务适应性较弱。

SuperAGI:SuperAGI 是旨在为自主智能体提供完整生命周期管理系统的开源框架。它包括智能体监控和图形界面等功能,旨在提升智能体执行体验。其关键优势在于其对生产就绪性的关注,具备处理循环等常见故障模式的内置机制,并提供智能体性能可视化。其潜在缺点在于,与更轻量级库框架相比,其全面平台方法可能引入更多复杂性与开销。

Semantic Kernel:由 Microsoft 开发,Semantic Kernel 是通过”插件”和”规划器”系统将大语言模型与传统编程代码集成的 SDK。它允许 LLM 调用原生函数并编排工作流,有效将模型视为大型软件应用中的推理引擎。其主要优势是与现有企业代码库(尤其在 .NET 和 Python 环境)的无缝集成。其插件与规划器架构的概念开销可能带来比更直接的智能体框架更陡峭的学习曲线。

Strands Agents:AWS 的轻量级灵活 SDK,采用模型驱动方法构建和运行 AI 智能体。其设计简洁且可扩展,支持从基础对话助手到复杂多智能体系统的各类场景。该框架与模型无关,广泛支持多种 LLM 提供商,并包含与 MCP 的原生集成以便轻松访问外部工具。其核心优势是简洁性与灵活性,提供易于上手的可定制智能体构建模块。其权衡在于,其轻量级设计意味着开发者可能需要构建更多周边运营基础设施(如高级监控或生命周期管理系统),而更全面框架可能提供开箱即用功能。

结论

智能体框架生态提供了多样化工具,涵盖从定义智能体的低级库到编排多智能体协作的高级平台。在基础层,LangChain 支持简单线性工作流,而 LangGraph 引入有状态循环图以实现更复杂推理。如 CrewAI 和 Google ADK 等高级框架将重心转向编排具预定义角色的智能体团队,而 LlamaIndex 等其他框架则专注数据密集型应用。这种多样性为开发者带来了基于图系统的细粒度控制与更具指导性平台的简化开发之间的核心权衡。因此,框架选择取决于应用需求:简单序列、动态推理循环还是受管专家团队。最终,这一不断演进的技术生态系统使开发者能通过选择项目所需的精确抽象级别,构建日益复杂的 AI 系统。

参考文献

  1. LangChain, https://www.langchain.com/
  2. LangGraph, https://www.langchain.com/langgraph
  3. Google’s ADK, https://google.github.io/adk-docs/
  4. Crew.AI, https://docs.crewai.com/en/introduction