主题
贡献
欢迎!感谢你对贡献的兴趣。
LangChain 帮助形成了生成式 AI 领域最大的开发者社区,我们始终欢迎新的贡献者。无论你是修复 bug、添加功能、改进文档,还是分享反馈,你的参与都能帮助 LangChain 和 LangGraph 变得对每个人都更好 🦜❤️
参与贡献的方式
报告 bug
发现了 bug?请按照以下步骤帮助我们修复它:
搜索
检查相应仓库的 GitHub Issues 中是否已存在该问题:
创建 issue
如果不存在相关 issue,请创建一个新的。撰写时,请务必遵循所提供的模板,并包含一个最小可复现示例。创建完成后,为最终的 issue 附上任何相关的标签。如果项目维护者无法复现该问题,它不太可能得到及时处理。
等待
项目维护者会对该 issue 进行分诊,并可能要求提供额外信息。由于我们处理大量 issue,请保持耐心。除非你有新信息要提供,否则不要催促该 issue。
如果你要添加 issue,请尽量让它聚焦于单一主题。如果两个 issue 相关或相互阻塞,请将它们关联,而不是将它们合并。例如:
text
This issue is blocked by #123 and related to #456.建议功能
有关于新功能或改进的想法?
搜索
在相应仓库的 issues 中搜索现有的功能请求:
讨论
如果不存在相关请求,请在相应类别下发起新的讨论,以便项目维护者和社区提供反馈。
描述
请务必描述用例以及它对他人为何有价值。如果可能,请酌情提供示例或草图。列出应当通过的测试用例。
贡献代码
由于用户基数庞大,我们这个小团队很难跟上所有的功能请求和 bug 修复。如果你有技能和时间,我们非常需要你的帮助!
如何提交你的第一个 Pull Request
指南
如果你开始处理某个 issue,请将其分配给自己,或请维护者分配。这有助于避免重复工作。
如果你在寻找可以着手的任务,请查看我们仓库中标记为 "help wanted" 的 issue:
构建新的集成
任何人都可以构建并发布自己的 LangChain 集成包。新的集成不以 PR 形式接受到 langchain-ai 仓库——它们必须独立发布到 PyPI 或 npm。
LangChain
构建 LangChain 集成的指南
Deep Agents 沙箱
构建沙箱集成的指南
Issue 和拉取请求要求
对于拼写错误和小修复,你可以直接提交拉取请求,无需先创建 issue、获得维护者事先批准或分配。
WARNING
较大的变更(例如新教程、指南或概念页面)在打开拉取请求之前需要关联的 issue 和维护者的批准。 请等待维护者批准你的方案并将该 issue 分配给你。在批准和分配之前打开的较大 PR 可能会被自动关闭,并且在分配之前不会被审查。
所有拉取请求都应体现出有意义的投入和对上下文的理解。如果创建一个拉取请求所需的投入小于维护者审查它所需的投入,那么该贡献就不应提交。 低投入的顺带贡献——无论它们是如何产生的——往往在上下文相关性、准确性和质量方面达不到要求。大批量的自动化贡献是对我们人力的一种拒绝服务攻击。
WARNING
我们优先处理由实际使用驱动的问题。 Issue 看板是一种分配维护者注意力的机制。它们并不是每个可静态发现的缺陷的完整目录。请避免提交由(AI)代码扫描发现的问题,除非你先亲自验证它们,并将其建立在 LangChain 公共 API 的真实使用基础上。如果维护者怀疑某个问题未经验证,它可能会在未经审查的情况下被关闭,且提交账户可能会被封禁。
所有外部拉取请求都必须满足以下要求:
- 对于较大的变更,请链接到一个 issue,在该 issue 中维护者已批准你的方案并在打开 PR 之前将其分配给你。拼写错误和小修复不受此要求限制。
- 拉取请求必须填写仓库的拉取请求模板。
- 对于全新功能或改变行为的 bug 修复的拉取请求,应包含一个
## Release note章节,用可直接用作发布说明的语言说明用户可见的变更。
如果这些要求未得到满足,维护者保留在不作评论的情况下关闭 PR 的权利。我们将关闭看起来是低投入垃圾内容的拉取请求和 issue。
语言政策
所有贡献——issue、拉取请求、代码审查和讨论——都必须使用英语。这使沟通在我们的全球贡献者群体中保持可访问和可搜索。
如果英语不是你的母语,不用担心。我们更看重清晰的沟通,而非完美的语法,也欢迎使用翻译工具。
LLM 的可接受用途
当你验证每一处变更时,可以使用 AI 助手来帮助起草或修订贡献:运行并测试代码,对照代码库和官方服务商文档核实事实,并确保结果符合仓库风格。不要提交大批量、未经审查的生成内容。对于读起来像低投入或垃圾内容的拉取请求,无论它们是如何产生的,我们都会关闭。