【免费下载链接】create-context-graph
AI agents with graph based reasoning memory, scaffolded in seconds
create-context-graph 是一个用图推理记忆(graph based reasoning memory)驱动 AI Agent 的脚手架工具。它的记忆层(实体抽取 + 向量嵌入)通过MEMORY_LLM和MEMORY_EMBEDDING两个环境变量接受LiteLLM 风格提供商字符串,无需改一行代码即可接入 100+ 模型提供商;本文还将带你用本地Ollama搭建一套完全离线、零 API Key 的记忆层方案。
先搞清楚:记忆层到底需要什么模型?
记忆层是生成应用中负责"记住知识"的部分,它和Agent 本身的大脑是分开的,由两个独立角色组成:
| 环境变量 | 负责什么 | 默认回退(未设置时) |
|---|---|---|
MEMORY_LLM | 从聊天消息中抽取实体(实体抽取) | 有ANTHROPIC_API_KEY→anthropic/claude-haiku-4-5;有OPENAI_API_KEY→openai/gpt-4o-mini;都没有则关闭抽取并打警告日志 |
MEMORY_EMBEDDING | 为记忆检索生成向量嵌入 | sentence-transformers/all-MiniLM-L6-v2(本地运行,无需 API Key,可离线) |
💡 注意区分:Agent 对话用的大模型由各框架自己的配置(
ANTHROPIC_API_KEY/OPENAI_API_KEY/GOOGLE_API_KEY)控制,MEMORY_*只管记忆层。这正是"提供商注入"设计的精妙之处——两边的模型可以各选各的。
三种记忆类型(短期会话、长期知识图谱、决策推理链)如何协同工作,官方文档有专门讲解,可参考 three-memory-types.md。
LiteLLM 提供商注入:两种解析路径
提供商字符串采用提供商/模型名的格式(如ollama/llama3),解析时遵循"原生适配器优先"策略:
- 原生适配器:Anthropic、OpenAI、Bedrock、Vertex AI、SentenceTransformers 这 5 家直接走官方 SDK,延迟更低,且支持 prompt caching;
- LiteLLM 兜底:其他任何提供商(Ollama、Groq、Together AI、Mistral、OpenRouter、Cohere……)全部自动路由到 LiteLLM 处理,无需你手动装 SDK、写胶水代码。
这套逻辑就写在生成项目的 memory.py.j2 模板里:原生适配器先解析,其余交给 LiteLLM。完整的提供商对照表和认证变量说明见官方文档 configure-memory-providers.md。
一键配置步骤:修改 .env 即可
所有配置都在生成项目的.env文件中完成,模板见 dot_env_example.j2,里面自带了所有提供商示例注释。
场景一:云提供商组合(示例:Bedrock 做抽取 + 本地模型做嵌入)
MEMORY_LLM=bedrock/anthropic.claude-3-haiku-20240307-v1:0 MEMORY_EMBEDDING=sentence-transformers/all-MiniLM-L6-v2 AWS_ACCESS_KEY_ID=... AWS_SECRET_ACCESS_KEY=... AWS_REGION_NAME=us-east-1场景二:OpenAI 高质量嵌入(付费,效果更好)
MEMORY_EMBEDDING=openai/text-embedding-3-small OPENAI_API_KEY=sk-... # MEMORY_LLM 留空 — 自动回退到 AnthropicLiteLLM 会自动从标准环境变量中读取各提供商的凭证(GROQ_API_KEY、GOOGLE_APPLICATION_CREDENTIALS等),Ollama 则完全不需要 Key。
另外,脚手架阶段也能直接注入:CLI 提供--memory-llm和--memory-embedding参数(见 cli.py),生成时就把提供商写进.env。
本地 Ollama 离线方案:零 API Key 的记忆层
如果你有合规要求、在内网开发,或者就是不想按 token 付费,Ollama 可以让记忆层100% 本地运行:
第一步:启动 Ollama 并拉取模型
ollama pull llama3 # 实体抽取用的对话模型 ollama pull nomic-embed-text # 向量嵌入模型第二步:在.env中切换到 Ollama
MEMORY_LLM=ollama/llama3 MEMORY_EMBEDDING=ollama/nomic-embed-text第三步:重启后端,完成 ✅
就这三步。Ollama 假设运行在本机默认端口,不需要任何 API Key。配合自托管 Neo4j(--self-hosted),整条数据链路——图存储、实体抽取、向量检索——全部留在你的机器上。
两个容易忽略的细节:
- NAMS 托管后端下,嵌入由服务端管理,客户端嵌入器会被自动省略(除非你显式设置了
MEMORY_EMBEDDING),见 memory.py.j2 中的_resolve_embedding_model(); - bolt 自托管后端下,默认就选本地
sentence-transformers/all-MiniLM-L6-v2,离线可用,只是首次下载约 80 MB,之后走缓存。
常见问题排查(Troubleshooting)
| 问题现象 | 原因与解法 |
|---|---|
| 首次运行时嵌入下载卡住 | sentence-transformers 首次拉取约 80 MB,属正常现象,后续运行走缓存 |
ProviderNotFoundError报错 | 提供商字符串写错了,对照官方提供商目录检查标识符(如ollama/llama3而非ollama:llama3) |
| 记忆层完全不调用 LLM | 检查对应 API Key 环境变量是否已设置;默认回退仅在ANTHROPIC_API_KEY或OPENAI_API_KEY存在时生效 |
| 切换嵌入模型后检索报错 | 向量维度不匹配——不同维度模型的向量互不兼容,执行make reset后重新导入数据即可 |
| NAMS 后端下配置了本地嵌入 | NAMS 托管后端在云端做嵌入,建议保留默认(留空MEMORY_EMBEDDING),把 Ollama 方案用于 bolt 自托管 |
后端选择的详细说明(NAMS vs 自托管、离线开发场景)可参考 memory-backends.md。
总结
- 记忆层模型配置 = 改两个环境变量:
MEMORY_LLM(实体抽取)+MEMORY_EMBEDDING(向量嵌入),与 Agent 主模型互不干扰; - 原生适配器优先(Anthropic / OpenAI / Bedrock / Vertex / 本地 SentenceTransformers),其余提供商LiteLLM 自动兜底,100+ 提供商开箱即用;
- 全离线方案只需
ollama pull两个模型 + 两行.env配置,零 API Key、零外部依赖; - 切换嵌入模型时留意向量维度,必要时
make reset重建数据。
官方完整配置参考:configure-memory-providers.md
【免费下载链接】create-context-graph
AI agents with graph based reasoning memory, scaffolded in seconds
相关推荐
Hindsight 记忆系统 LiteLLM 集成指南:为 100+ LLM 提供商注入持久记忆
Hindsight 记忆系统 LiteLLM 集成指南:为 100+ LLM 提供商注入持久记忆 本篇技术指南讲解如何在 Hindsight 开源项目中,通过
人工智能AI AgentAgent 记忆大模型MCP 服务后端如何离线使用 OfficeDex:本地模型 Ollama/vLLM 零配置接入完整教程
如何离线使用 OfficeDex:本地模型 Ollama/vLLM 零配置接入完整教程 OfficeDex 是一款 AI 原生的智能文档工作台(VibeOffi
Karakeep 多 AI 提供商接入指南:OpenAI 兼容 API 与 Ollama 本地推理的完整配置实战
Karakeep 多 AI 提供商接入指南:OpenAI 兼容 API 与 Ollama 本地推理的完整配置实战 本指南围绕 Karakeep(原 Hoarde
后端前端移动开发AI 应用MCP 服务CLI
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考