LibreChat 项目介绍
LibreChat 项目介绍
项目定位
LibreChat 是一个开源的多模型 AI 聊天平台,提供类 ChatGPT 的用户体验,同时支持 40+ AI 模型提供商、自定义 Agent、Skills、MCP 集成与 Generative UI。
核心能力
- 多模型支持:OpenAI、Anthropic、Google、AWS Bedrock、Azure、Vertex AI,以及 Ollama、groq、OpenRouter 等 40+ 自定义端点
- Agent 系统:基于
@librechat/agentsSDK 的图驱动 Agent 编排,支持单 Agent 标准图与多 Agent 协作图,含子 Agent(Subagent)委托与自生成(self-spawn) - Skills 系统:SKILL.md 指令包,支持手动调用(
$popover)、模型自动调用、always-apply 三种触发模式,配合 ACL 权限控制与活跃状态管理 - MCP 集成:完整的 Model Context Protocol 客户端,支持多服务器、OAuth 认证、工具发现与执行
- 代码解释器:沙箱化 Python、Node.js、Go、C/C++、Java、Rust 等语言执行,安全文件上传/下载
- Generative UI(Artifacts):在聊天中直接生成和预览 React 组件、HTML 页面与 Mermaid 图表
- Web 搜索:多提供商搜索(Tavily、SearXNG、Firecrawl 等),含 SSRF 防护、内容抓取与重排序
- 记忆系统:独立的 Memory Agent,通过
set_memory/delete_memory工具动态管理用户记忆,含 Token 预算控制 - 上下文管理:消息摘要(Summarization)、上下文裁剪(Context Pruning)、可配置储备比例
- 可恢复流式传输:连接断开自动恢复,支持多标签页/多设备同步,Redis 水平扩展
- 多语言 UI:支持 30+ 种语言的界面本地化
技术栈
| 层次 | 技术 | 说明 |
|---|---|---|
| 后端 | Node.js / Express(JS 遗留层)+ TypeScript(packages/api) | 新代码全部 TS,旧代码最小改动 |
| 前端 | React + TypeScript + Vite + TailwindCSS | SPA 架构,Jotai 状态管理 |
| 数据库 | MongoDB + Mongoose | 主要数据存储 |
| 搜索 | Meilisearch | 对话全文搜索 |
| 缓存 | Redis / Keyv | 会话缓存与流式传输状态 |
| AI SDK | @librechat/agents(LangChain 生态) | Agent 循环、工具执行、图编排 |
| 构建 | Turborepo | Monorepo 并行构建与缓存 |
| 测试 | Jest + Playwright | 后端单元测试 + 前端 E2E 测试 |
架构概览
快速体验
Docker Compose(推荐)
git clone https://github.com/danny-avila/LibreChat.gitcd LibreChatcp .env.example .env# 编辑 .env,填入至少一个 LLM API Keydocker compose up -d访问 http://localhost:3080 即可使用。
本地开发
npm installnpm run buildnpm run backend:dev # 后端开发服务器 (端口 3080)npm run frontend:dev # 前端 HMR 服务器 (端口 3090)教程导读
本教程分为 AI 应用 与 编程核心 两大部分:
AI 应用教程(ai/ 目录)
从 LibreChat 的实际实现出发,学习以下通用知识:
| 章节 | 知识点 | 与 common 的关系 |
|---|---|---|
| 01 | Agent 图驱动循环 | 补充 common/agent-design/03-state-graph-agent-loop.md |
| 02 | 事件驱动工具执行 | 首次覆盖 → common/tool-use/event-driven-tool-execution.md |
| 03 | MCP 多服务器 OAuth | 补充 common/mcp/02-multi-server-mcp.md |
| 04 | Skills 系统三触发模式 | 补充 common/skill-design/01-overview.md |
| 05 | 子 Agent 委托与自生成 | 补充 common/multi-agent/02-sub-agent-delegation.md |
| 06 | 独立 Memory Agent 模式 | 首次覆盖 → common/memory-system/12-memory-agent-pattern.md |
| 07 | 上下文摘要与裁剪 | 补充 common/context-management/02-summarization-strategies.md |
| 08 | Web 搜索多提供商 | 引用 common/web-scraping/01-engine-fallback-strategies.md |
编程核心教程(dev/ 目录)
聚焦 LibreChat 的工程实践:
| 章节 | 主题 |
|---|---|
| 01 | Monorepo 架构与包边界管理 |
| 02 | 多模型提供商路由与工具冲突解决 |
| 03 | 可恢复流式传输架构 |
| 04 | Generative UI(Artifacts)系统 |
| 05 | RBAC 与多租户隔离 |
| 06 | 测试策略:真实逻辑优先 |