分类: AI

  • Agent架构(三):CrewAI

    基于 crewAIInc/crewAI 源码(2025年最新版本),10维度深度剖析

    GitHub: https://github.com/crewAIInc/crewAI | Stars: 58,000+ | License: MIT


    1. 整体架构概览

    CrewAI 是一个角色扮演式多Agent协作框架,核心设计理念是将AI Agent组织成”船员”(Crew)来协作完成复杂任务。架构分为两大范式:

    • Crews(自主协作):基于角色的Agent团队,优化自主性和协作智能
    • Flows(事件驱动控制):事件驱动的工作流,提供精确的流程控制

    源码目录结构(lib/crewai/src/crewai/):

    crewai/
    ├── agent/          # Agent核心实现
    ├── agents/         # Agent构建器、缓存、执行器
    ├── crews/          # Crew输出等辅助类
    ├── flow/           # Flow框架(DSL、运行时、定义)
    ├── tasks/          # Task子类(条件任务等)
    ├── tools/          # 工具系统(BaseTool、AgentTools)
    ├── memory/         # 统一记忆系统
    ├── knowledge/      # 知识源和知识存储
    ├── events/         # 事件总线和监听器
    ├── llms/           # LLM提供者适配层
    ├── mcp/            # MCP协议集成
    ├── a2a/            # A2A协议集成
    ├── security/       # 安全配置和指纹
    ├── state/          # 检查点和运行时状态
    ├── crew.py         # Crew核心类(2490行)
    ├── task.py         # Task核心类(1566行)
    ├── process.py      # 流程枚举
    └── llm.py          # LLM封装

    2. Agent 设计 — 抽象基类与角色系统

    2.1 BaseAgent(抽象基类)

    所有Agent的根基类,使用 Pydantic BaseModel + ABC 多重继承:

    (更多…)

  • Agent架构(二):LangGraph

    项目: langchain-ai/langgraph

    Stars: 41,548 | Forks: 7,018 | License: MIT

    定位: 面向长时间运行、有状态 Agent 的底层编排框架

    灵感来源: Google Pregel、Apache Beam、NetworkX


    一、核心设计哲学:Pregel 计算模型

    LangGraph 的核心是一个 Bulk Synchronous Parallel (BSP) 执行引擎,称为 Pregel。每个执行步骤分为三个阶段:

    1. Plan(规划): 确定本轮需要执行哪些 Actor(节点)
    2. Execute(执行): 并行执行所有选中的 Actor,直到全部完成、失败或超时
    3. Update(更新): 用 Actor 写入的值批量更新 Channel
    # pregel/main.py — Pregel 类的文档字符串(摘录)
    class Pregel(PregelProtocol[StateT, ContextT, InputT, OutputT]):
        """Pregel manages the runtime behavior for LangGraph applications.
    
        Pregel combines **actors** and **channels** into a single application.
        **Actors** read data from channels and write data to channels.
        Pregel organizes the execution of the application into multiple steps,
        following the **Pregel Algorithm**/**Bulk Synchronous Parallel** model.
    
        Each step consists of three phases:
        - **Plan**: Determine which **actors** to execute in this step.
        - **Execution**: Execute all selected **actors** in parallel.
        - **Update**: Update the channels with the values written by the **actors**.
        """

    这种设计意味着:同一轮执行中,节点写入的 Channel 值对其他节点不可见,只有进入下一轮时才生效。这从根本上避免了并发写入的竞争条件,是 LangGraph 保证确定性执行的关键。


    二、Channel 体系:有状态通信原语

    Channel 是 LangGraph 的核心抽象,所有节点间通信都通过 Channel 进行。BaseChannel 定义了统一的接口:

    (更多…)

  • Agent架构(一):LangChain

    基于 langchain-ai/langchain 源码分析,覆盖 langchain-core 与 langchain 两个核心包

    1. 架构哲学:可组合的 Runnable 抽象

    LangChain 的核心设计哲学是 “一切皆 Runnable”。所有组件——LLM、Prompt、OutputParser、Tool、Retriever——都继承自同一个泛型基类 Runnable[Input, Output],从而获得统一的调用接口和组合能力。

    class Runnable(ABC, Generic[Input, Output]):
        """A unit of work that can be invoked, batched, streamed, transformed and composed."""
    
        name: str | None
        """The name of the `Runnable`. Used for debugging and tracing."""
    
        @abstractmethod
        def invoke(self, input: Input, config: RunnableConfig | None = None, **kwargs: Any) -> Output:
            """Transform a single input into an output."""
    
        async def ainvoke(self, input: Input, config: RunnableConfig | None = None, **kwargs: Any) -> Output:
            return await run_in_executor(config, self.invoke, input, config, **kwargs)

    关键设计决策:

    • LCEL(LangChain Expression Language):通过 | 管道运算符实现声明式链式组合,RunnableSequence、RunnableParallel 是核心组合原语
    • 同步/异步双模:每个 Runnable 同时提供 invoke/ainvoke、stream/astream、batch/abatch,异步默认通过线程池桥接同步实现
    • Pydantic 驱动的 Schema:输入/输出类型通过泛型参数自动推导,生成 JSON Schema 用于验证和文档
    def __or__(self, other) -> RunnableSerializable[Input, Any]:
        """Compose this Runnable with another object to create a RunnableSequence."""
        return RunnableSequence(self, coerce_to_runnable(other))
    
    def pipe(self, *others, name=None) -> RunnableSerializable[Input, Other]:
        """Equivalent to RunnableSequence(self, *others) or self | others[0] | ..."""
        return RunnableSequence(self, *others, name=name)

    2. Agent Loop:观察-行动循环

    LangChain 的 Agent 采用经典的 ReAct(Reasoning + Acting) 模式。核心循环定义在 langchain_core/agents.py 中,通过两个关键数据结构驱动:

    (更多…)

  • AI编程(十一):AI帮你选技术栈 — 不再迷茫

    装修材料类比理解技术栈,让AI帮你做选择

    一、什么是”技术栈”?用装修来理解

    前几篇我们学会了变量、函数、文件操作……但你有没有想过一个问题:我学了这些,到底该用什么”工具”来做项目?

    这就像你学会了拧螺丝、刷油漆,但真正要装修房子的时候,面对建材市场里几百种材料,你懵了——地板用瓷砖还是木地板?墙面用乳胶漆还是墙纸?水管用PPR还是PVC?

    编程世界也一样。做网站、做小程序、做数据分析,每一类项目都需要选一套”材料”组合起来用。这套材料组合,就叫技术栈(Tech Stack)。

    (更多…)

  • 从WikiSkill看通用Agent技能体系的演进思路,附下载地址

    引言

    当前大模型智能体(Agent)的技能(Skill)已经成为拓展Agent工具执行能力的主流方案。Agent技能本质是封装好的可复用工作流、工具调用序列与业务操作模板,让智能体无需每次从零推理复杂任务。

    在已有的技能自发现研究中,主流思路是直接从Agent任务执行轨迹提取技能。但这类方案普遍存在一个短板:每一轮迭代只依赖近期的任务样本,历史经验、反复出现的失败模式无法长期保存;经验随迭代周期丢弃,系统难以持续沉淀”机构记忆”,同类错误反复出现。

    Google Research发布的WikiSkill框架(arXiv:2608.27454),并没有提出一套覆盖全部Agent技能领域的通用理论,而是针对技能迭代流程提出了一种全新架构范式:将原始执行轨迹、编译后的结构化知识、可执行技能三层解耦,通过循环流水线实现知识库与技能协同进化。这套方案虽然只是单一框架,但其设计思想,对构建通用型Agent Skill系统具备很强的参考价值。

    (更多…)

  • 谷歌WikiSkill:让AI技能越用越聪明的三层架构,附下载地址

    WikiSkill解决什么问题?

    现有的Agent技能发现方法,都是从一批轨迹中直接生成技能。每一轮生成只看最近的轨迹,之前的洞察被丢弃了。重复的模式、反复出现的失败、领域启发式知识,都没有被跨迭代地累积。

    WikiSkill的核心创新:把技能进化和持久化知识库(wiki)绑定在一起。技能不是凭空生成的,而是从累积的知识中生长出来的。

    WikiSkill的三层架构

    WikiSkill不是通用架构,它是专门为技能进化设计的:

    (更多…)

  • 谷歌WikiSkill:AI技能如何从经验中自我进化?附下载地址

    一个真实的痛点

    你有没有遇到过这种情况:AI Agent犯了一个错误,你告诉它正确的做法,它下一次还是会犯同样的错误?

    原因很简单:Agent的经验散落在对话历史里,没有被系统性地沉淀下来。每一次交互都是一次性的,用完即弃。

    Google Research的最新论文WikiSkill(arXiv:2608.27454)提出了一个优雅的解决方案:让Agent像人类一样,把经验编译成知识,再把知识进化成技能。

    (更多…)

  • 谷歌WikiSkill:AI Agent如何从经验中自我进化?附下载地址

    一个真实的痛点

    你有没有遇到过这种情况:AI Agent犯了一个错误,你告诉它正确的做法,它下一次还是会犯同样的错误?

    原因很简单:Agent的经验散落在对话历史里,没有被系统性地沉淀下来。每一次交互都是一次性的,用完即弃。

    Google Research的最新论文WikiSkill(arXiv:2608.27454)提出了一个优雅的解决方案:让Agent像人类一样,把经验编译成知识,再把知识进化成技能。

    (更多…)