Skip to main content
GitHub 工具包包含使 LLM 代理能够与 GitHub 仓库交互的工具。 该工具是 PyGitHub 库的封装。 有关所有 GithubToolkit 功能和配置的详细文档,请前往 API 参考

设置

总体上,我们将:
  1. 安装 pygithub 库
  2. 创建一个 GitHub 应用
  3. 设置环境变量
  4. 使用 toolkit.get_tools() 将工具传递给你的代理
要启用对单个工具的自动跟踪,请设置你的 LangSmith API 密钥:

安装

1. 安装依赖项

此集成在 langchain-community 中实现。我们还需要 pygithub 依赖项:

2. 创建 GitHub 应用

按照此处的说明 创建并注册一个 GitHub 应用。确保你的应用具有以下 仓库权限:
  • 提交状态(只读)
  • 内容(读写)
  • 问题(读写)
  • 元数据(只读)
  • 拉取请求(读写)
应用注册后,你必须授予你的应用访问你希望它操作的每个仓库的权限。使用 github.com 上的应用设置

3. 设置环境变量

在初始化代理之前,需要设置以下环境变量:
  • GITHUB_APP_ID - GitHub 分配给你的应用的唯一整数标识符,可在应用的常规设置中找到。
  • GITHUB_APP_PRIVATE_KEY - 你的应用私钥 .pem 文件的位置,或该文件的完整文本字符串。
  • GITHUB_REPOSITORY - 你希望机器人操作的 GitHub 仓库名称。必须遵循格式 {username}/{repo-name}。确保应用已首先添加到此仓库!
  • 可选:GITHUB_BRANCH - 机器人将进行提交的分支。默认为 repo.default_branch
  • 可选:GITHUB_BASE_BRANCH - 你的仓库的基础分支,拉取请求将基于此分支。默认为 repo.default_branch

实例化

现在我们可以实例化我们的工具包:

工具

查看可用工具:
这些工具的用途如下: 以下每个步骤都将进行详细解释。
  1. 获取问题 - 从仓库获取问题。
  2. 获取问题详情 - 获取特定问题的详细信息。
  3. 评论问题 - 在特定问题上发布评论。
  4. 创建拉取请求 - 从机器人的工作分支创建一个拉取请求到基础分支。
  5. 创建文件 - 在仓库中创建一个新文件。
  6. 读取文件 - 从仓库读取一个文件。
  7. 更新文件 - 更新仓库中的一个文件。
  8. 删除文件 - 从仓库删除一个文件。

包含发布工具

默认情况下,工具包不包含与发布相关的工具。你可以在初始化工具包时设置 include_release_tools=True 来包含它们:
设置 include_release_tools=True 将包含以下工具:
  • 获取最新发布 - 从仓库获取最新发布。
  • 获取发布列表 - 从仓库获取最近的 5 个发布。
  • 获取发布详情 - 通过标签名称(例如 v1.0.0)从仓库获取特定发布。

在代理中使用

我们需要一个 LLM 或聊天模型:
使用工具子集初始化代理:
并向其发出查询:

API 参考

有关所有 GithubToolkit 功能和配置的详细文档,请前往 API 参考