pregel 的核心对象
这一节开始我们开始学习 Langgraph 的源码。
1. Pregel
通过 Langgraph API 了解到 Langgraph 的运行时由 Pregel 实现。所以我们直接来看 Pregel 的定义:
注: 我先尝试从 UML 类图挖掘 Langgraph 里的核心对象,但是效果并不明显。
这一节开始我们开始学习 Langgraph 的源码。
通过 Langgraph API 了解到 Langgraph 的运行时由 Pregel 实现。所以我们直接来看 Pregel 的定义:
注: 我先尝试从 UML 类图挖掘 Langgraph 里的核心对象,但是效果并不明显。
目前为止我们学习 langchain-core 中几乎所有的核心对象。现在我们对这些核心对象的抽象层次做一个总结,便于我们理解 Agent 中对象的传递和调用链。查看源代码时可以快速定位到每个组件核心代码的位置。
上一节我们介绍了 langchain agent 的核心抽象,这一节我们来学习 langchain 内置 agent 之一的 chat agent。
下面是一个使用 ChatAgent 的使用示例,国内环境比较难使用 OpenApi 这里使用的阿里通义,需要现申请一个 通义千问的 ApiKey ,并将其添加到 .env 文件中。
有了 langchain-core 基础后,现在可以学习 Agent 的实现了。
Agent 的实现在 langchain.agents 中,UML 类图如下:
UML 类图中,我们能看到很多之前在 langchain-core 学习的类,我们需要重点关注一下对象:
| 概念 | 作用 | 举例 |
|---|---|---|
Cache |
避免重复计算,提升性能 | 用户输入完全相同时,直接返回之前的模型输出 |
Memory |
保留对话上下文,实现多轮对话记忆 | 用户说“他是谁?”时,Memory 提供前面提到的“他”的信息 |
cache 是用于缓存相同输入的 LLM 或 chain 调用结果,避免重复请求、降低成本、提升速度。位于 langchain_core.caches 内。