一、 框架
1. LangChain Go 或 langChainGo
-
特点:
- 官方 LangChain 的 Go 实现;
- 支持 LLM 调用(OpenAI、Anthropic、Ollama、本地模型等);
- 提供 Chain、Agent、Memory、Tool 等核心抽象;
- 内置向量存储(Chroma、Pinecone、Weaviate)、文档加载器、文本分割器。
-
适用场景:构建 RAG、对话机器人、工具调用型 Agent。
2. GoLLM
- GitHub: https://github.com/alexeykazakov/gollm
- 特点:
- 轻量级 LLM 调用封装;
- 支持 OpenAI、Ollama、LocalAI、Groq 等;
- 提供函数调用(Function Calling)和结构化输出。
- 适合快速集成 LLM 到 Go 服务中。
3. AICore
- 社区驱动的 Go AI 框架,提供 Agent 执行引擎、工具注册、记忆管理。
- 目前生态较小,但设计简洁,适合定制。
4.google/adk-go
https://github.com/google/adk-go
Agent Development Kit (ADK) for Go
5.cloudwego/eino
https://www.cloudwego.io/zh/docs/eino/overview/
6.trpc-agent-go
腾讯开源的 trpc-agent-go,其设计参考了adk,但提供更加强大的agent构建方式以及会话存储,生产可用的级别
二、向量数据库 & Embedding(Go SDK)
| 工具 | Go SDK | 说明 |
|---|---|---|
| Chroma | ✅ 官方支持 | 轻量级嵌入式向量库,适合本地开发 |
| Pinecone | ✅ 官方 SDK | 云原生向量数据库,Go 支持良好 |
| Weaviate | ✅ 官方 Go Client | 支持语义搜索 + 图谱,适合复杂 Agent 记忆 |
| Qdrant | ✅ 社区 SDK(如 qdrant-go) |
高性能,支持过滤和分片 |
| Milvus | ✅ 官方 Go SDK | 企业级,适合大规模部署 |
最佳实践 :用 Go 做 Agent 编排和 API 层,用 Python/C++ 做模型推理(通过 API 解耦)。
从原理到实践:万字长文深入浅出教你优雅开发复杂AI Agent 写的很好
langChain 与 langGraph 的区别
LangChain 和 LangGraph 都是由 LangChain 团队开发的开源框架,用于构建基于大语言模型(LLM)的应用程序,但它们定位不同、解决的问题不同 ,且 LangGraph 是 LangChain 生态中的一个新组件 ,专门用于处理复杂、有状态、多步骤的 LLM 工作流。
| 特性 | LangChain | LangGraph |
|---|---|---|
| 定位 | 通用 LLM 应用开发框架(工具调用、RAG、Agent 等) | 用于构建有状态、循环、多参与者的 LLM 工作流(如 Agent 调度、多智能体协作) |
| 执行模型 | 线性链(Chain)、简单 Agent 循环 | 图(Graph)驱动的状态机,支持任意拓扑结构(包括循环) |
| 状态管理 | 有限(通常通过 memory 组件) | 显式、结构化的全局状态管理 |
| 适用场景 | RAG、简单 Agent、工具调用、问答系统 | 复杂 Agent 系统、多角色协作、带条件跳转/循环的流程(如"反思-修正"循环) |
| 发布时间 | 2022 年(成熟) | 2024 年初(较新) |
| 依赖关系 | 独立框架 | 基于 LangChain 构建,是其扩展 |
如何选择
| 场景 | 推荐 |
|---|---|
| 构建 RAG 应用、简单问答机器人 | ✅ LangChain |
| 调用工具(如搜索、计算器)的单轮 Agent | ✅ LangChain |
| 需要多步骤、带条件分支、循环、多角色协作的复杂系统 | ✅ LangGraph |
| 需要精确控制执行流程(如"先验证输入,再生成,再审核") | ✅ LangGraph |
| 快速原型验证 | ✅ LangChain(更简单) |
🔹 LangChain:通用 LLM 编排框架
-
提供标准组件:
PromptTemplate、LLM、Tools、Memory、Agents、Chains。 -
典型用法:
from langchain.chains import RetrievalQA qa = RetrievalQA.from_chain_type(llm, retriever=...) -
Agent 模式 :虽然支持 ReAct、Plan-and-Execute 等,但控制流是隐式的、由 LLM 决定下一步,难以精确控制循环或分支逻辑。
🔹 LangGraph:用"图"定义 LLM 工作流
- 将整个应用建模为一个有向图(Directed Graph):
- 节点(Node):执行某个操作(如调用 LLM、运行工具、人工审核)。
- 边(Edge):定义状态转移条件(如"如果输出包含错误,则返回修正节点")。
- 显式状态(State):所有节点共享一个可变的全局状态(通常是 Pydantic 模型),便于追踪和调试。
- 支持循环(例如:Agent 生成 → 评审 → 修正 → 再评审...),这是传统 Chain 难以实现的。