犀牛鸟 2026 研究笔记 estelledc.github.io

Agent 框架赛道 — 深度对比研究

调研时间:2026-06-22 基于 trpc-agent-go / trpc-agent-python / LangChain / LangGraph / CrewAI / Agno 源码阅读


总览:六大框架核心画像

# 项目 Stars 语言 核心哲学 一句话总结
1 LangChain ~138K Python Everything is a Runnable LLM 应用的”瑞士军刀”,通过 LCEL 管道语法把 LLM 调用、工具、检索编排为链
2 LangGraph ~35K Python Graph is Program 把 Agent 逻辑建模为有向图,Channel 传递状态,Pregel 引擎执行
3 CrewAI ~51K Python Role Play is All You Need 用角色扮演的直觉降低多 Agent 编程门槛
4 Agno ~39K Python Minimal Abstraction, Max Power 1741 行核心类干完一切,极简但不简陋
5 tRPC-Agent-Go <1K Go Agent = Microservice 4 个接口方法定义 Agent,微服务治理能力天然继承
6 tRPC-Agent-Python <1K Python LangGraph Wrapper + tRPC Ecosystem 用 Pydantic 包装 LangGraph StateGraph,融入 tRPC 生态

1. LangChain — “Everything is a Runnable”

架构概览

LangChain 的核心抽象是 Runnable:任何可以接收输入、产出输出的组件(LLM、Tool、Retriever、Parser)都实现 Runnable 接口。通过 LCEL(LangChain Expression Language)的管道语法 | 把它们组合起来。

# LCEL 管道语法——一切皆 Runnable
chain = prompt | llm | output_parser
result = chain.invoke({"question": "什么是 Agent?"})

日常类比:Unix 命令的管道 cat file | grep error | wc -l。每个命令只做一件事,用 | 串起来完成复杂任务。LangChain 的 LCEL 就是 LLM 世界的管道。

仓库结构(Monorepo)

langchain/
├── libs/
│   ├── core/           # Runnable/LCEL/BaseMessage 等基础抽象
│   ├── langchain/      # 高层 Agent/Chain 实现
│   ├── community/      # 社区贡献的集成
│   └── partners/       # 官方 partner 包(openai/anthropic/google 等)
├── templates/          # 可复用的应用模板
└── docs/               # 文档站源码

关键数据:100+ partner 集成包,覆盖几乎所有主流 LLM/向量库/工具。

Runnable 协议深度解析

Runnable 是 LangChain 最核心的抽象,定义了 5 个标准方法:

class Runnable(Generic[Input, Output], ABC):
    def invoke(self, input: Input, config: RunnableConfig) -> Output: ...
    async def ainvoke(self, input: Input, config: RunnableConfig) -> Output: ...
    def batch(self, inputs: List[Input], ...) -> List[Output]: ...
    def stream(self, input: Input, ...) -> Iterator[Output]: ...
    async def astream(self, input: Input, ...) -> AsyncIterator[Output]: ...

每个 Runnable 都自动拥有:同步/异步/批量/流式 四种调用模式。这意味着你写一个组件,免费获得四种执行策略。

LCEL 组合子

组合子 语法 语义
RunnableSequence a | b | c 顺序执行,上一步输出是下一步输入
RunnableParallel {"x": a, "y": b} 并行执行,结果合并为字典
RunnableBranch branch(condition, ...) 条件分支
RunnablePassthrough passthrough() 透传输入
RunnableLambda lambda x: ... 自定义转换

可观测性:LangSmith

LangSmith 是 LangChain 的商业可观测性平台,提供:全链路 trace 可视化、每步 token 用量统计、Prompt 版本管理、回归测试集。核心价值是把”链”的执行过程变成可审计的时间线。

设计取舍分析

优势

代价


2. LangGraph — “Graph is Program”

设计哲学

LangGraph 的核心信念:复杂 Agent 的决策流程本质上是一个有向图。节点(Node)是计算步骤,边(Edge)是条件跳转,状态(State)在节点间通过 Channel 传递。

日常类比:地铁线路图。你从起点出发,遇到换乘站(条件边)按规则选方向,可以做环线(循环图),可以在某站等人(human-in-the-loop),还能在任意站存档(checkpoint)。

Channel 系统——状态管理的核心

LangGraph 定义了两种基本 Channel:

# LastValue Channel:只保留最后一次写入的值
class LastValue(Channel[Value]):
    """覆盖式更新——新值覆盖旧值"""
    value: Value

# BinaryOperatorAggregate Channel:用 reducer 函数聚合所有写入
class BinaryOperatorAggregate(Channel[Value]):
    """累积式更新——用 operator 合并新旧值"""
    value: Value
    operator: Callable[[Value, Value], Value]  # 如 operator.add

为什么这个设计很精彩?

想象多个并行节点同时向同一个 state key 写入结果。LastValue 只保留最后一个(适合”覆盖型”状态如 current_answer),BinaryOperatorAggregate 可以用 operator.add 把所有写入合并(适合”累积型”状态如 messages)。

class AgentState(TypedDict):
    messages: Annotated[list, operator.add]  # 累积消息列表
    current_plan: str                         # 覆盖式更新
    tool_results: Annotated[list, operator.add]  # 累积工具结果

Pregel 执行引擎

LangGraph 的执行引擎叫 Pregel(致敬 Google 的图计算框架)。核心文件 pregel/__init__.py 长达 4380 行,是整个项目最复杂的部分。

执行流程:

1. 初始化 State → 写入所有 Channel
2. 确定可执行节点(入度为 0 或条件满足)
3. 并行执行节点 → 每个节点读取 Channel、计算、写入新值
4. Channel 更新 → 触发 reducer
5. 评估边条件 → 确定下一批可执行节点
6. 循环 2-5 直到:终止节点 / GraphInterrupt / 无可执行节点

关键设计决策:Pregel 是同步超步(superstep)模型——同一超步内的节点并行执行,超步之间严格有序。这保证了状态一致性,代价是不能跨超步流水线化。

Checkpoint 持久化

LangGraph 的 Checkpoint 机制让有向图的执行可以:中断后恢复、回滚到历史状态、fork 分支探索。

# Checkpoint 存储接口
class BaseCheckpointSaver(ABC):
    def put(self, config, checkpoint, metadata): ...
    def get(self, config): ...
    def list(self, config, filter): ...

内置支持:SQLite、PostgreSQL、Redis。Checkpoint 保存的是完整 Channel 快照——不是增量 diff,所以恢复是 O(1) 的。

GraphInterrupt——Human-in-the-Loop 的精髓

# 在审批节点中触发中断
def approval_node(state):
    if state["needs_human_review"]:
        raise GraphInterrupt(
            value={"question": "确认执行此操作?", "context": state["plan"]}
        )
    return state

# 人类审批后恢复
graph.invoke(Command(resume={"approved": True}), config=thread_config)

GraphInterrupt 不是简单的暂停——它把当前状态完整存入 Checkpoint,人类可以在任意时间后恢复,甚至可以修改 state 再恢复。这比传统的回调/webhook 模式强大得多。

设计取舍分析

优势

代价


3. CrewAI — “Role Play is All You Need”

设计哲学

CrewAI 的核心洞察:人类协作的最成功模式就是角色分工。与其让开发者思考”图节点”“状态通道”这些抽象概念,不如让他们想”我需要一个研究员、一个写手、一个审核员”。

日常类比:剧组拍电影。导演(Process)安排工作顺序,演员(Agent)各有角色定位,每个演员按剧本(Task)表演。不需要理解”有向图”,只需要知道”谁做什么”。

Agent 定义:Role + Goal + Backstory

researcher = Agent(
    role="高级研究分析师",
    goal="发现 AI Agent 领域的最新技术趋势",
    backstory="""你是一位拥有 10 年经验的技术研究员,
    擅长从海量信息中提炼关键洞察。你特别关注
    技术的实际落地价值而非纯概念创新。""",
    tools=[search_tool, arxiv_tool],
    llm=ChatOpenAI(model="gpt-4"),
    verbose=True,
    allow_delegation=True
)

为什么 Backstory 很重要? 它不是装饰——它给 LLM 提供了决策的”性格基准”。同一个 Goal,不同 Backstory 的 Agent 会采取完全不同的策略。这是 CrewAI 对 prompt engineering 的结构化封装。

Crew 编排

crew = Crew(
    agents=[researcher, writer, reviewer],
    tasks=[research_task, writing_task, review_task],
    process=Process.sequential,  # 顺序执行
    # process=Process.hierarchical,  # 层级:manager 分配任务
    verbose=True
)
result = crew.kickoff()

两种 Process 模式

模式 执行方式 适用场景
Sequential 任务按顺序执行,上一个输出是下一个输入 线性流水线(研究→写作→审核)
Hierarchical 自动创建 Manager Agent 分配任务 复杂项目,需要动态调度

Flows v2——超越单次 Crew 的编排

CrewAI 2025 年引入了 Flows:在多个 Crew 之间建立编排逻辑。

class ContentPipeline(Flow):
    @start()
    def research_phase(self):
        return research_crew.kickoff()

    @listen(research_phase)
    def writing_phase(self, research_output):
        return writing_crew.kickoff(inputs={"research": research_output})

    @router(writing_phase)
    def quality_gate(self, draft):
        if draft.quality_score > 0.8:
            return "publish"
        return "revise"

Flows 弥补了早期 CrewAI 只能做单次线性执行的局限——现在可以做条件路由、循环重试、并行分支。

设计取舍分析

优势

代价


4. Agno — “Minimal Abstraction, Max Power”

设计哲学

Agno(前身 PhiData)的核心信条:Agent 框架不应该比你自己写的代码更复杂。整个 Agent 定义就是一个 Python dataclass,不需要学习任何新的 DSL 或编排概念。

日常类比:Python 脚本。能跑就行,需要什么 import 什么。不搞 Spring Boot 那种 20 个配置文件才能跑一个 Hello World 的事。

1741 行 Agent Dataclass

Agno 的 Agent 类是一个巨大的 dataclass(1741 行),把所有 Agent 能力平铺为字段:

@dataclass
class Agent:
    # 身份
    name: str = "Agent"
    role: Optional[str] = None
    description: Optional[str] = None

    # 模型
    model: Optional[Model] = None
    
    # 工具(190+ 内建)
    tools: Optional[List[Union[Tool, Toolkit, Callable]]] = None
    
    # 记忆
    memory: Optional[AgentMemory] = None
    add_history_to_messages: bool = False
    num_history_responses: int = 3
    
    # 知识库
    knowledge: Optional[AgentKnowledge] = None
    
    # 推理
    reasoning: bool = False
    reasoning_model: Optional[Model] = None
    
    # 结构化输出
    response_model: Optional[Type[BaseModel]] = None
    structured_outputs: bool = False
    
    # ... 更多字段

设计哲学的体现:不用继承、不用装饰器模式、不用 Builder 模式。所有配置都是构造函数参数。你看到 Agent() 的签名就知道它能做什么。

Team 协作:4 种模式

team = Team(
    agents=[researcher, writer, reviewer],
    mode="coordinate",  # 4 种模式之一
)
模式 语义 适用场景
coordinate Leader Agent 协调分配 复杂任务需要动态调度
route 根据输入路由到最合适的 Agent 分类/分流场景
broadcast 所有 Agent 并行处理同一输入 多视角分析/投票
tasks 按预定义任务列表顺序执行 固定流水线

AgentOS 运行时

Agno 2025 年推出了 AgentOS:一个统一的 Agent 部署运行时,功能包括:

from agno.playground import Playground

app = Playground(agents=[researcher, writer]).get_app()
# 一行代码部署 Agent 为 Web 服务

190+ 内建工具

Agno 的工具覆盖极广:

搜索类:DuckDuckGo / Google / Bing / Arxiv / Wikipedia
代码类:Python / Shell / Docker
数据类:SQL / CSV / JSON / Pandas
多媒体:Image / Audio / Video / PDF
网络类:HTTP / WebSocket / Email
文件类:File / S3 / GCS

对比:LangChain 的工具通过 partner 包分散分布,Agno 全部内建——不需要额外安装。

LearningMachine

Agno 独有的”自我学习”机制:Agent 在执行过程中可以把成功策略存入长期记忆,下次遇到类似任务直接复用。

agent = Agent(
    learning=True,  # 开启自动学习
    learning_db=PgVector(table="agent_learnings"),
)

设计取舍分析

优势

代价


5. tRPC-Agent-Go — “Agent = Microservice”

设计哲学

tRPC-Agent-Go 的核心信念:Agent 本质上就是一个微服务。既然如此,为什么不直接用微服务框架来构建 Agent?所有微服务治理能力(服务注册发现、负载均衡、熔断限流、链路追踪)Agent 天然就需要。

日常类比:公司组织架构。每个部门(Agent)是独立运作的团队,通过公司 OA 系统(tRPC 框架)互相发工单协作。不需要额外造一套”Agent 通信协议”——企业已有的组织管理方式就够用了。

4-Method Agent Interface

整个 Agent 定义只需要实现 4 个方法:

type Agent interface {
    // Run:Agent 的核心执行逻辑
    Run(ctx context.Context, input *Input) (*Output, error)
    
    // Tools:Agent 可以使用的工具列表
    Tools() []Tool
    
    // Info:Agent 的元信息(名称、描述、能力)
    Info() *AgentInfo
    
    // SubAgents:Agent 可以调度的子 Agent 列表
    SubAgents() []Agent
}

极简但完备:4 个方法覆盖了 Agent 的全部能力——执行(Run)、工具使用(Tools)、自我描述(Info)、层级协作(SubAgents)。对比 LangChain 的 Runnable 需要 5 个方法 + 一堆 Mixin,tRPC-Agent 的接口更干净。

2339 行 Invocation Context

Invocation 是 Agent 执行时的上下文对象,包含:

type Invocation struct {
    // 身份
    Agent      Agent
    AgentInfo  *AgentInfo
    
    // 状态
    State      *State
    Memory     *Memory
    
    // 工具
    Tools      []Tool
    ToolResults map[string]*ToolResult
    
    // 通信
    Messages   []*Message
    Events     chan *Event
    
    // 控制
    Plan       *Plan
    MaxSteps   int
    CurrentStep int
    
    // 链路
    TraceID    string
    SpanID     string
    ParentSpanID string
}

Invocation 是 tRPC-Agent 最重的对象(2339 行),集中了执行期间的所有上下文。设计取舍:集中式 context 方便访问但耦合度高。

3971 行 Runner

Runner 是 Agent 的执行引擎:

type Runner struct {
    agent       Agent
    model       Model
    memory      Memory
    tools       []Tool
    subAgents   []Agent
    planner     Planner
    maxSteps    int
    // ...
}

func (r *Runner) Run(ctx context.Context, input string) (*Output, error) {
    // 1. 初始化 Invocation
    // 2. 加载 Memory
    // 3. 执行 Planning(如果有 Planner)
    // 4. ReAct 循环:Think → Act → Observe
    // 5. 保存 Memory
    // 6. 返回结果
}

Runner 的 ReAct 循环是核心执行模式:Agent 思考(Think)要做什么 → 调用工具(Act)→ 观察结果(Observe)→ 决定是否继续。这和 LangChain 的 AgentExecutor 类似,但 Runner 额外管理了 Memory 和 Planning。

Team 双模式:Coordinator + Swarm

// Coordinator 模式:有中心调度者
team := NewTeam(
    WithMode(ModeCoordinator),
    WithAgents(researcher, writer, reviewer),
    WithCoordinatorAgent(manager),  // 显式指定协调者
)

// Swarm 模式:去中心化,Agent 间直接握手转交
team := NewTeam(
    WithMode(ModeSwarm),
    WithAgents(researcher, writer, reviewer),
    // 无协调者——Agent 根据 HandoffConfig 自行决定转交给谁
)
模式 控制方式 适用场景
Coordinator 中心 Agent 分析任务 → 分配给合适的 Agent 任务分配需要全局视野
Swarm 当前 Agent 完成后自行决定转交目标 灵活、低延迟、去中心化

StateGraph——LangGraph 的 Go 等价物

tRPC-Agent-Go 内建了一个 6192 行 的 StateGraph 实现,功能等价于 LangGraph:

graph := NewStateGraph(AgentState{})

graph.AddNode("research", researchNode)
graph.AddNode("write", writeNode)
graph.AddNode("review", reviewNode)

graph.AddEdge("research", "write")
graph.AddConditionalEdge("write", routeByQuality, map[string]string{
    "pass": "end",
    "fail": "review",
})
graph.AddEdge("review", "write")  // 循环边

graph.SetEntryPoint("research")
app := graph.Compile()

双引擎架构:开发者可以选择 Team(高层协作抽象)或 StateGraph(底层图控制),甚至可以把 Team 作为 StateGraph 的一个节点嵌入。

Memory 双类型:Fact + Episode

type Memory interface {
    // Fact Memory:提炼后的知识(如"用户偏好中文回复")
    StoreFact(ctx context.Context, fact *Fact) error
    QueryFacts(ctx context.Context, query string) ([]*Fact, error)
    
    // Episode Memory:原始对话历史
    StoreEpisode(ctx context.Context, episode *Episode) error
    QueryEpisodes(ctx context.Context, query string) ([]*Episode, error)
}

9 种 Session 后端:Redis / PostgreSQL / MySQL / MongoDB / SQLite / DynamoDB / Firestore / Memory / Custom。生产环境的选择极其灵活。

ReAct Planner

type Planner interface {
    Plan(ctx context.Context, inv *Invocation) (*Plan, error)
    Replan(ctx context.Context, inv *Invocation, feedback string) (*Plan, error)
}

Planner 在 Runner 循环开始前生成执行计划,执行过程中可以根据反馈 Replan。这给了 Agent 一个”先想后做”的能力——不是每一步都问 LLM”接下来干嘛”,而是先规划全局再逐步执行。

协议生态:A2A + AG-UI + MCP + OpenAI

协议 用途 tRPC-Agent 支持度
A2A (Agent-to-Agent) Agent 间标准通信 完整实现
AG-UI Agent 与前端 UI 的标准协议 完整实现
MCP (Model Context Protocol) 工具/资源标准接入 完整实现
OpenAI API 兼容 OpenAI 格式的调用 完整实现

四协议全覆盖意味着 tRPC-Agent 构建的 Agent 可以:被其他 Agent 调用(A2A)、接入任意前端(AG-UI)、使用任意工具(MCP)、兼容 OpenAI 生态(OpenAI API)。

可观测性:OpenTelemetry + Langfuse

// 自动注入 trace 到每次 LLM 调用和工具调用
runner := NewRunner(
    WithAgent(myAgent),
    WithTracing(OpenTelemetryTracer{}),  // OTel 标准
    WithLangfuse(langfuseConfig),         // Langfuse 可视化
)

继承 tRPC 框架的全链路追踪能力,同时适配 AI 专用的 Langfuse 平台。Agent 的每一步(LLM 调用、工具执行、Agent 间通信)都自动产生 span。

设计取舍分析

优势

代价


6. tRPC-Agent-Python — “LangGraph Wrapper + tRPC Ecosystem”

设计定位

tRPC-Agent-Python 不是 Go 版的 Python 翻译——它是用 Python 生态(Pydantic + LangGraph)封装一层,接入 tRPC 后端服务治理。

核心架构

from pydantic import BaseModel
from langgraph.graph import StateGraph

class MyAgentState(BaseModel):
    messages: list = []
    tool_results: list = []
    current_step: str = "init"

class MyAgent(BaseAgent):
    state_schema = MyAgentState
    
    def build_graph(self) -> StateGraph:
        graph = StateGraph(self.state_schema)
        graph.add_node("think", self.think)
        graph.add_node("act", self.act)
        graph.add_conditional_edges("think", self.should_act)
        return graph

Filter Pipeline

tRPC-Agent-Python 独有的 Filter 机制:在 Agent 执行前后插入处理逻辑。

class LoggingFilter(Filter):
    def before(self, ctx, input):
        logger.info(f"Agent {ctx.agent_name} 开始执行")
        return input
    
    def after(self, ctx, output):
        logger.info(f"Agent {ctx.agent_name} 完成,耗时 {ctx.elapsed}ms")
        return output

agent = MyAgent(filters=[LoggingFilter(), AuthFilter(), RateLimitFilter()])

Filter 链的设计类似 Java 的 Servlet Filter 或 Go 的 Middleware——在不修改 Agent 逻辑的前提下注入横切关注点(日志、鉴权、限流)。

Parent/Sub Agent 树

class OrchestratorAgent(BaseAgent):
    sub_agents = [ResearchAgent(), WritingAgent(), ReviewAgent()]
    
    def route(self, state):
        # 根据状态决定交给哪个子 Agent
        if state.needs_research:
            return "research"
        elif state.needs_writing:
            return "writing"
        return "review"

设计取舍分析

优势

代价


横向对比:6 大维度

维度 1:Agent 定义方式

框架 定义方式 代码量 灵活度
LangChain Runnable + Tool 绑定 中等 极高(组合子丰富)
LangGraph Node 函数 + State TypedDict 较多 极高(图表达力)
CrewAI Role + Goal + Backstory 极少 中等(角色框架固定)
Agno Dataclass 字段 高(字段覆盖广)
tRPC-Agent-Go 4-Method Interface 高(接口简洁灵活)
tRPC-Agent-Python Pydantic BaseModel 中等(受 LangGraph 约束)

维度 2:状态管理

框架 状态机制 持久化 一致性保证
LangChain 无内建(推给 LangGraph)
LangGraph Channel + Checkpoint 多后端 超步同步
CrewAI Task 输出传递
Agno Agent dataclass 字段 Memory/DB
tRPC-Agent-Go Invocation State + Memory 9 种后端 中(单 Runner 内强一致)
tRPC-Agent-Python LangGraph State 继承 LangGraph 继承 LangGraph

维度 3:多 Agent 协作

框架 协作模式 通信方式 动态组 Agent
LangChain 基础(需 LangGraph) 函数调用
LangGraph 子图嵌套 State 传递
CrewAI Sequential/Hierarchical + Flows 任务输出
Agno 4 种 Team 模式 函数调用
tRPC-Agent-Go Coordinator/Swarm + StateGraph RPC + 服务发现
tRPC-Agent-Python Parent/Sub Tree LangGraph State

维度 4:生产就绪度

框架 可观测性 水平扩展 容错 生产案例
LangChain LangSmith(商业) 应用层自理 无内建 广泛
LangGraph LangSmith + Checkpoint LangGraph Cloud Checkpoint 恢复 中等
CrewAI CrewAI+(商业) 应用层自理 重试 中等
Agno 内建 + AgentOS AgentOS 基础 较少
tRPC-Agent-Go OTel + Langfuse(全链路) tRPC 负载均衡 熔断限流 腾讯大规模
tRPC-Agent-Python 继承 tRPC 继承 tRPC 继承 tRPC 腾讯内部

维度 5:框架代码规模

LangChain:          ~15,000+ files  — 生态庞大,通读不现实
CrewAI:              ~800 files     — 中等规模
Agno:                ~600 files     — 精简
LangGraph:           ~400 files     — 核心精简
tRPC-Agent-Go:       ~100 files     — 最精简(Go 版核心)
tRPC-Agent-Python:   ~100 files     — 最精简

维度 6:协议支持

框架 MCP A2A AG-UI OpenAI API
LangChain ✓(通过集成) 部分
LangGraph ✓(通过 LangChain) 部分
CrewAI ✓(工具层)
Agno ✓(内建)
tRPC-Agent-Go ✓(完整) ✓(完整) ✓(完整) ✓(完整)
tRPC-Agent-Python 部分

框架演进趋势

趋势 1:从链到图到微服务

2022: LangChain — 链式调用(线性)
2023: LangGraph — 有向图(非线性 + 状态)
2024: tRPC-Agent — 微服务原生(分布式 + 治理)

每一代解决上一代的核心痛点:链无法表达循环→图解决;图无法分布式扩展→微服务解决。

趋势 2:从重抽象到极简

LangChain 全家桶 → CrewAI 角色简化 → Agno 极简 dataclass

市场在”功能完备”和”使用简单”之间反复摇摆。当一个框架变得太复杂,就会有新框架以”更简单”切入。

趋势 3:协议标准化

2025-2026 年涌现的四大协议(MCP/A2A/AG-UI/OpenAI API)正在定义 Agent 世界的”互操作性标准”。未来框架的竞争力不只看功能——还看”能不能和别人对话”。

趋势 4:从 Python 独占到多语言

LangChain/LangGraph 已有 JS/TS 版本,tRPC-Agent 以 Go 为主。未来 Agent 框架必然多语言化——因为生产环境不可能只有 Python。

趋势 5:可观测性从附加项变为核心

早期框架把可观测性当商业增值(LangSmith),新一代框架(tRPC-Agent/Agno)把它当内建能力。在 Agent 行为不可预测的背景下,”看不到就管不了”。


贡献机会分析

高价值贡献方向(按 ROI 排序)

# 方向 目标框架 理由
1 StateGraph 补全 tRPC-Agent-Go 6192 行核心,但缺少 Checkpoint 持久化的多后端支持
2 Memory 扩展 tRPC-Agent-Go 当前 Fact/Episode 双类型可以增加 Summary/Reflection
3 AG-UI 协议实现 tRPC-Agent-Python Python 版 AG-UI 支持不完整
4 Filter 标准化 tRPC-Agent-Python Filter 机制很好但缺少社区标准 Filter 集合
5 文档完善 tRPC-Agent-Go/Python 当前文档远不及 LangChain,是最容易切入的贡献
6 Benchmark Suite tRPC-Agent-Go 对比框架缺乏统一基准测试

犀牛鸟参与者的建议路径

  1. 第 1-2 周:通读 tRPC-Agent-Go 核心代码(~100 文件),理解 4-Method Interface + Runner + Team + StateGraph
  2. 第 3 周:对比 LangGraph 的 Channel/Pregel 设计,理解两种状态管理哲学的差异
  3. 第 4 周:选择一个贡献方向,提交第一个 PR
  4. 后续:根据 Mentor 反馈迭代,逐步深入 StateGraph 或 Memory 子系统

总结

六大框架代表了 Agent 框架设计的四个流派:

  1. 管道流派(LangChain):万物皆 Runnable,组合子拼接
  2. 图流派(LangGraph):程序即有向图,Channel 传状态
  3. 角色流派(CrewAI/Agno):Agent 就是人,协作就是分工
  4. 微服务流派(tRPC-Agent):Agent 就是服务,RPC 就是协作

没有”最好”的框架——只有最适合场景的设计。但从”学习 Agent 框架设计”的角度,tRPC-Agent-Go 的代码精简度 + 微服务原生设计 + 四协议覆盖使其成为最高效的学习标的。