欢迎为 LangChain 文档贡献内容,包括新功能、集成,以及对现有文档的改进。

快速开始:本地开发

要运行文档的本地预览:
git clone https://github.com/langchain-ai/docs.git
cd docs
make install
make dev
这会在 http://localhost:3000 启动一个带 hot reload 的开发服务器。编辑 src/ 中的文件即可立即看到变更。
正在使用 AI coding agent? 安装 LangChain Skills,以提升 agent 在 LangChain 生态任务上的表现。然后点击本页右上角的 “Copy page” 按钮,并将原始内容粘贴给你的 agent,让它自动设置环境。
如果本地预览出现问题,请尝试运行 mint update,确保使用的是最新 Mintlify 版本。
必需:可选:

编辑文档

对于拼写错误或小改动,可以直接在 GitHub 上编辑,无需本地设置:
  1. 点击任意页面底部的 Edit this page on GitHub
  2. Fork 到你的个人账号。
  3. 在 GitHub 的 web editor 中修改。
  4. 创建 pull request。
只编辑 src/ 中的文件build/ 目录会自动生成。
  1. 按照写作标准编辑 src/ 中的文件。
  2. 提交前运行质量检查
  3. 创建 pull request 供审查。
所有 pull request 都必须链接到已由维护者批准解决方案的 issue 或 discussion。请参阅 pull request 要求
创建或更新 PR 时,会自动生成一个 preview branch/ID。PR 上会留下包含 ID 的评论。
  1. 从评论中复制 preview branch 的 ID
  2. Mintlify dashboard 中点击 Create preview deployment
  3. 输入 preview branch 的 ID 并点击 Create deployment
  4. 选择 preview 并点击 Visit 查看
要用最新变更重新部署,请在 dashboard 上点击 Redeploy

运行质量检查

提交变更前,请确保代码通过格式化和 linting 检查:
# Check broken links
make broken-links

# Format code automatically
make format

# Check for linting issues
make lint

# Fix markdown issues
make lint_md_fix

# Run tests to ensure your changes don't break existing functionality
make test
更多详情请参阅 README 中的可用命令部分。

文档类型

所有文档都属于以下四类之一:

How-to guides

面向已经知道想完成什么任务的用户,提供任务导向的说明。

Conceptual guides

提供更深入理解和洞察的解释。

Reference

API 和实现细节的技术说明。

Tutorials

引导用户通过实践活动建立理解的课程。
适用时,所有文档都必须同时包含 Python 和 JavaScript/TypeScript 内容。更多详情请参阅并置 Python 和 JavaScript/TypeScript 内容部分。

How-to guides

How-to guides 是任务导向说明,面向已经知道想完成什么任务的用户。How-to guide 示例位于 LangChainLangGraph 标签页。
  • 任务聚焦:专注于特定任务或问题
  • 分步说明:将任务拆分成更小步骤
  • 动手实践:提供具体示例和代码片段
  • 聚焦于如何做,而不是为什么
  • 使用具体示例和代码片段
  • 将任务拆分成更小步骤
  • 链接到相关概念指南和参考

Conceptual guides

Conceptual guide 以抽象方式覆盖核心概念,提供深入理解。
  • 理解聚焦:解释事物为何如此工作
  • 广阔视角:比其他类型提供更高、更宽的视角
  • 设计导向:解释决策和权衡
  • 上下文丰富:使用类比和比较
  • 聚焦于**“为什么”**,而不是“如何做”
  • 提供功能使用并不一定必需的补充信息
  • 可以使用类比并引用替代方案
  • 避免混入过多参考内容
  • 链接到相关教程和 how-to guides

Reference

Reference 文档包含详细、低层的信息,精确描述存在哪些功能以及如何使用它们。

Python reference

JavaScript/TypeScript reference

好的 reference 应当:
  • 描述存在什么内容,包括所有参数、选项和返回值
  • 全面且结构清晰,便于查找
  • 作为技术细节的权威来源
reference.langchain.com 上生成的 API reference 在本仓库之外构建和部署。要报告那里的 bug、缺失包或损坏页面,请打开 reference documentation issue
  • 保持一致,遵循提供商特定文档的现有模式
  • 同时包含基本用法(代码片段)和常见边缘情况/失败模式
  • 标明功能何时需要特定版本
  • 新集成或提供商需要专用 reference 页面
  • 复杂配置选项需要详细说明
  • API 变更引入新参数或行为
  • 社区频繁询问特定功能

Tutorials

Tutorials 是较长的分步指南,会逐步推进并带用户完成特定实践活动以建立理解。Tutorials 通常位于 Learn 标签页。
通常,如果没有迫切需求,LangChain 不会合并外部贡献者提交的新 tutorials。如果你认为文档缺少某个主题或覆盖不足,请打开新 issue
  • 实践性:专注于通过实践活动建立理解。
  • 分步说明:将活动拆分成更小步骤。
  • 动手实践:提供顺序化、可运行的代码片段。
  • 补充性:提供功能使用并不一定必需的额外上下文和信息。
  • 如果用户按顺序执行步骤,代码片段应是顺序化且可运行的。
  • 为活动提供一些上下文,但将更详细的信息链接到相关概念指南和 reference。

写作标准

reference.langchain.com 页面标准位于该站点的构建流水线中,不在本仓库内。有关生成 API reference 内容的问题或修复,请使用 reference documentation issue template

Mintlify components

使用 Mintlify components 提升可读性:
  • <Note> 用于有帮助的补充信息
  • <Warning> 用于重要警告和 breaking changes
  • <Tip> 用于最佳实践和建议
  • <Info> 用于中性上下文信息
  • <Check> 用于成功确认

Mermaid diagrams

添加 mermaid diagram 时,请使用 LangChain 品牌调色板设置节点样式。可以从任何现有 diagram 中复制 classDef 行,或使用 CLAUDE.md 中的参考表。
角色填充描边文本
process#E5F4FF#006DDD#030710
trigger#F6FFDB#6E8900#2E3900
decision#FDF3FF#7E65AE#504B5F
output#EBD0F0#885270#441E33
alert#F8E8E6#B27D75#634643
neutral#F2FAFF#40668D#2F4B68
不要使用 Tailwind 默认颜色、Material Design 颜色或其他不符合品牌的调色板。

页面结构

每个文档页面都必须以 YAML frontmatter 开始:
---
title: "Clear, specific title"
sidebarTitle: "Short title for the sidebar (optional)"
---

并置 Python 和 JavaScript/TypeScript 内容

尽可能同时为 Python 和 JavaScript/TypeScript 编写所有文档。为此,文档使用自定义行内语法区分哪些部分应出现在一种或两种语言中:
:::python
Python-specific content. In real docs, the preceding backslash (before `python`) is omitted.
:::

:::js
JavaScript/TypeScript-specific content. In real docs, the preceding backslash (before `js`) is omitted.
:::

Content for both languages (not wrapped)
这会在 /oss/python/concepts/foo.mdx/oss/javascript/concepts/foo.mdx 生成两个输出(每种语言一个)。每个输出页面都需要添加到 /src/docs.json 文件中,才能包含在导航中。
LangChain 不希望缺少 parity 阻塞贡献。如果某个功能只在一种语言中可用,在另一种语言跟上之前,可以只为该语言编写文档。在这种情况下,请添加 note,说明该功能尚未在另一种语言中可用。如果你需要帮助在 Python 和 JavaScript/TypeScript 之间翻译内容,请在 community slack 提问,或在 PR 中 tag 维护者。

质量标准

通用指南

多个页面覆盖相同材料会难以维护并造成混淆。每个概念或功能应该只有一个 canonical page。链接到其他指南,而不是重新解释。
文档章节不是孤立存在的。经常链接到其他章节,让用户可以了解不熟悉的主题。这包括链接到 API references 和概念章节。
采用少即是多的方法。如果另一个章节已经有好的解释,请链接过去,而不是重新解释,除非你的内容提供了新的视角。

可访问性要求

确保文档对所有用户都可访问:
  • 使用标题和列表组织内容,便于扫描
  • 使用具体、可操作的链接文本,而不是 “click here”
  • 为所有图片和 diagram 添加描述性 alt text

交叉引用

使用一致的交叉引用,将文档与 API reference 文档连接起来。 从 docs 到 API reference: 使用 @[] 语法链接到 API reference 页面:
See @[`ChatAnthropic`] for all configuration options.

The @[`bind_tools`][ChatAnthropic.bind_tools] method accepts...
构建流水线会根据当前语言 scope 将这些转换成正确的 markdown 链接。例如,@[ChatAnthropic] 会根据正在构建的文档版本变成 Python 或 JS API reference 页面的链接,但前提是 link_map.py 文件中存在对应条目! 详情见下文。
从 API reference stub 到 OSS docs: 已发布 Python API reference 中的 cross-links 和 deep anchors 在本仓库之外生成。如果从 reference.langchain.com 到 docs.langchain.com 的链接错误或过时,请打开 issue,并提供来源和目标 URL。

本地化

如果某个功能同时存在于两个 SDK 中,请一起为 Python 和 JavaScript/TypeScript 编写文档。如果目前只支持一种语言,请确保该功能和对它的引用只对该语言可见。

代码内文档

示例必须正确,尽可能可复制粘贴,并在打开 pull request 前经过测试。请清晰标记不可运行片段,例如 pseudocode 或 illustrative fragments。

获取帮助

目标是让开发者设置尽可能简单。如果在设置过程中遇到任何困难,请在 community slack 提问,或打开论坛帖子。内部团队成员可以在 #documentation Slack channel 中联系。