FastAPI LangGraph Agent 生产就绪模板

开箱即用的 AI Agent 后端模板,集成了 LangGraph、长期记忆、可观测性与认证。

Star 数
★ 2.7k
最近更新
2 天前
License
MIT
主语言
Python

30 秒速览

运行形态
自托管服务命令行工具开发框架
可在哪里用
兼容但需适配OpenAI API
费用
软件免费,模型调用费用自付
上手难度
中 · 需要几步配置
开始前需要
DockerPostgreSQLpgvectorOpenAI API 密钥Shell / 命令行网络访问本地文件系统
典型场景
AI 工程师希望在几小时内搭建一个生产级 Agent 后端,而不是从零开始集成所有组件
不适合
  • 只想用 Anthropic、Google 等非 OpenAI 提供商的用户
  • 不需要数据库和监控的简单小项目

这个 Agent 能做什么,适合哪些场景?

FastAPI LangGraph Agent 模板是一个生产级后端起点,用于构建 AI Agent 服务。它处理了状态化对话、长期记忆(通过 mem0 和 pgvector)、工具调用、可观测性(Langfuse、Prometheus、Grafana)、速率限制和 JWT 认证,使开发者可以专注于 Agent 逻辑。该模板包含 LLMRegistry 服务,支持循环回退和指数退避重试,并通过 OpenAI 兼容端点(如 Atlas Cloud)工作。项目提供 Alembic 迁移、可选的 Valkey/Redis 缓存层、结构化日志,以及详细的文档(包括架构、配置和评估)。它适用于 Docker Compose 或本地开发,并附带 Makefile 命令。

启动时会初始化 FastAPI 应用,暴露 /docs 端点下的 API 路由,并连接 PostgreSQL 数据库(通过 SQLModel ORM,带 Alembic 迁移)。Agent 图定义在 app/core/langgraph/ 中,支持带 checkpointing 的状态化对话和工具调用;工具可以添加到 app/core/langgraph/tools/。LLM 调用通过 LLMRegistry,使用 langchain_openai.ChatOpenAI,并配置了 DEFAULT_LLM_MODEL、OPENAI_BASE_URL 和 OPENAI_API_KEY 环境变量;服务在发生故障时会在模型间循环回退,并应用总超时预算。长期记忆由进程内 mem0 提供,并持久化到 PostgreSQL,使用 pgvector 进行语义搜索。所有 LLM 调用都会通过 Langfuse 追踪,Prometheus 暴露指标。JWT 认证用于会话管理,slowapi 实现速率限制。还提供评估框架(evals/)。

  1. AI 工程师希望在几小时内搭建一个生产级 Agent 后端,而不是从零开始集成所有组件
  2. 团队需要为多个用户提供具有长期语义记忆的 Agent,而不依赖外部记忆云服务
  3. 希望在 Langfuse、Prometheus 和 Grafana 中追踪完整 LLM 调用链的开发团队
  4. 需要带会话和速率限制的 JWT 认证后端,并快速搭建状态化对话
  5. 希望基于单一 OpenAI 兼容端点(如 Atlas Cloud)尝试不同 LLM 的工程师
  6. 需要一个包含 Docker、数据库迁移和监控栈的完整模板,用于快速项目启动

如何安装或部署这个 Agent?

克隆仓库并进入目录,然后复制 .env.example 为 .env.development 并填入密钥(OPENAI_API_KEY 或 Atlas Cloud 凭证,以及数据库配置)。确保 Docker 已安装,然后运行 make install 和 make docker-up 来启动 API 和 PostgreSQL。对于本地开发,请参阅 docs/getting-started.md。

如何使用这个 Agent?

启动 Docker 后,访问 [http://localhost:8000/docs](http://localhost:8000/docs) 查看交互式 API 文档。应用迁移:make migrate。设置环境变量 DEFAULT_LLM_MODEL 以选择模型。可以通过在 app/core/langgraph/tools/ 中添加 LangChain 装饰的工具,并在该包的 tools 列表中注册,来添加自定义工具,无需修改图。使用 Langfuse 进行追踪,设置 LANGFUSE_TRACING_ENABLED=false 可禁用。有关完整配置,请参阅 docs/configuration.md。

这个 Agent 有哪些优点和局限?

优点
  • 包含全套生产组件:Alembic 迁移、mem0+pgvector 长期记忆、Langfuse 追踪、Prometheus/Grafana 指标、JWT 会话和 slowapi 速率限制,无需额外组装
  • LLM 服务具有指数退避重试和循环回退机制,确保高可用性
  • 通过 Atlas Cloud 支持 59 种以上的 OpenAI 兼容模型,可快速切换模型
  • 提供了从架构、配置到评估的全面文档,降低了上手难度
局限
  • 目前仅原生支持 OpenAI 兼容 API;多提供商支持(如 Anthropic、Google)仍在计划中(issue #51),需要额外适配
  • 长期记忆依赖 PostgreSQL + pgvector,需要数据库管理开销
  • 生产环境需要 JWT、缓存、监控等额外组件,可能超出简单项目的需求
  • 当前主要支持 OpenAI 提供方,若想使用其他提供方(Anthropic、Google)可能需要等待更新或自行修改代码

这个 Agent 与同类方案有什么区别?

与相关度最高的同类 agent 并排比较关键指标。

Agent 源码审查 形态 / 费用 Star 最近更新 主语言 完整支持的平台
FastAPI LangGraph Agent 生产就绪模板 当前 41 · 缺口较多 自托管服务免费 + 模型费 ★ 2.7k 2 天前 Python OpenAI API
从原型到生产的生成式AI代理实战指南 0 · 缺口较多 代码库 / SDK免费 + 模型费 ★ 22k 1 天前 Jupyter Notebook —
LycheeMemory 52 · 缺口较多 命令行工具免费 + 模型费 ★ 1.1k 3 个月前 Python Claude Code · OpenAI API
Memanto 50 · 缺口较多 命令行工具免费版 + 付费版 ★ 2.3k 1 天前 Python Codex · Claude Code

FollowAgents 如何评估这个 Agent?

FollowAgents 源码审查 · FARS-2.1
缺口较多
41/ 100 五分制 2.1 / 5
信任安全 8/29
可靠稳定 6/14
适用触发 9/18
规范维护 8/18
有效结果 7/13
证据核验 3/8
查看各维度的扣分理由
信任安全8 / 29 · 1.4/5

证据显示:README 和 SECURITY.md 提到 JWT 认证、速率限制、CORS 配置、密码 bcrypt 哈希、输入消毒,但未提供具体实现细节。依赖项包括多个包,但未提供漏洞扫描或固定版本(除 langfuse 外)。外部效果:模板会调用外部 LLM API 和 Langfuse 追踪,但未明确说明数据流向。回滚:未提及。来源归属:未验证发布者身份。扣分原因:缺少具体实现证据,依赖安全未充分处理,外部效果和数据流透明度不足。

可靠稳定6 / 14 · 2.1/5

证据显示:README 和 pyproject.toml 中依赖项一致,但未提供测试结果。依赖可用性:依赖项众多,但未提供锁定文件或版本范围。失败消息:文档提到重试和回退,但未提供具体错误消息。扣分原因:缺乏测试证据,依赖可用性未充分保证,失败消息未具体化。

适用触发9 / 18 · 2.5/5

证据显示:README 明确目标受众为 AI 工程师,并列出多种使用场景。能力边界:文档提到支持 OpenAI 和计划中的多提供商,但未明确限制。触发精度:未提供具体触发条件。环境适配:提供 Docker 和本地开发说明,但未提供所有环境的详细配置。扣分原因:能力边界和触发精度不明确。

规范维护8 / 18 · 2.2/5

证据显示:README 提供清晰的项目结构、安装步骤、FAQ 和文档链接。命名稳定性:未提及。已知限制:FAQ 提到仅支持 OpenAI,但未全面列出。许可证:MIT 许可证存在。版本控制:pyproject.toml 有版本号,但无变更日志。维护责任:SECURITY.md 提到维护者,但未明确。扣分原因:缺少变更日志和已知限制不全面。

有效结果7 / 13 · 2.7/5

证据显示:README 描述输出为 API 端点,但未提供具体输出格式。边际价值:模板提供多种生产功能,但未与现有方案对比。成本效益:未提供性能或成本数据。扣分原因:输出可用性未具体化,成本效益缺乏数据。

证据核验3 / 8 · 1.9/5

证据显示:README 中的声明部分有文档支持,但未提供外部验证。交叉来源:未提供。事实与推断分离:文档中区分了事实和计划,但不够清晰。扣分原因:缺乏外部验证和清晰的分离。

风险与缓解建议
  • 源码中未见:执行前用户确认开启或自行加上执行前确认;先在沙箱或测试环境跑通,确认行为后再接入真实数据。
  • 源码中未见:回滚或恢复路径运行前先备份,或在 git 分支、快照上操作,确保改动可以撤销。
  • 发布者身份未验证,需谨慎对待。
  • 依赖项未固定版本,存在供应链风险。
  • 外部 LLM 和 Langfuse 调用可能涉及数据外传,需明确数据流。
  • 未提供测试结果,可靠性存疑。
证据充分度:低 评估于 2026年8月12日 审查版本 36e9c33682a5 评估后仓库已有新提交,评分可能未覆盖最新改动
查看完整评分方法 →

常见问题

此模板是否支持非 OpenAI 模型(如 Anthropic 或 Google)?
当前仅支持 OpenAI 兼容的 API(通过 LLMRegistry 使用 langchain_openai.ChatOpenAI)。多提供方支持计划在 issue #51 中实现。
长期记忆是否需要单独的 mem0 云账户?
不需要。长期记忆是自托管的,mem0 在进程内运行并持久化到现有的 PostgreSQL(通过 pgvector)。只需提供有效的 OPENAI_API_KEY 用于事实提取和嵌入。
是否可以禁用 Langfuse 追踪?
可以,设置 LANGFUSE_TRACING_ENABLED=false 或省略 Langfuse 密钥即可。结构化日志仍会捕获请求/会话/用户上下文。
如果 API 无法启动,可能的原因是什么?
请确保 PostgreSQL 正在运行(make docker-up 会同时启动),.env.development 存在并包含必要密钥,且已运行 make migrate 应用迁移。
如何调整速率限制策略?
速率限制在 app/core/limiter.py(slowapi)中配置。您可以调整路由装饰器或默认速率,相关环境变量在 docs/configuration.md 中有说明。
在 GitHub 查看 ↗ 安装 ↓

对比同类 Agent

用同一套 FARS 评审,横向比较这个 Agent 所属的短名单。

相关 Agents