/images/hugo/avatar.png

pregel 的核心对象

这一节开始我们开始学习 Langgraph 的源码。

1. Pregel

通过 Langgraph API 了解到 Langgraph 的运行时由 Pregel 实现。所以我们直接来看 Pregel 的定义:

注: 我先尝试从 UML 类图挖掘 Langgraph 里的核心对象,但是效果并不明显。

LangChain-Core 的抽象

目前为止我们学习 langchain-core 中几乎所有的核心对象。现在我们对这些核心对象的抽象层次做一个总结,便于我们理解 Agent 中对象的传递和调用链。查看源代码时可以快速定位到每个组件核心代码的位置。

LangChain Chat Agent

上一节我们介绍了 langchain agent 的核心抽象,这一节我们来学习 langchain 内置 agent 之一的 chat agent。

1. chat agent 使用示例

下面是一个使用 ChatAgent 的使用示例,国内环境比较难使用 OpenApi 这里使用的阿里通义,需要现申请一个 通义千问的 ApiKey ,并将其添加到 .env 文件中。

LangChain Agent

有了 langchain-core 基础后,现在可以学习 Agent 的实现了。

1. Agent UML 类图

Agent 的实现在 langchain.agents 中,UML 类图如下:

/images/langchain/agent.svg

UML 类图中,我们能看到很多之前在 langchain-core 学习的类,我们需要重点关注一下对象:

LangChain Cache And Memory

1. Cache 和 Memory

概念 作用 举例
Cache 避免重复计算,提升性能 用户输入完全相同时,直接返回之前的模型输出
Memory 保留对话上下文,实现多轮对话记忆 用户说“他是谁?”时,Memory 提供前面提到的“他”的信息

2. Cache

cache 是用于缓存相同输入的 LLM 或 chain 调用结果,避免重复请求、降低成本、提升速度。位于 langchain_core.caches 内。