Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
您可以将 GitHub 代码仓库挂载到会话沙箱中,并连接到 GitHub MCP 以创建拉取请求。
GitHub 代码仓库会被缓存,因此使用相同代码仓库的后续会话启动速度会更快。
所有 Managed Agents API 请求都需要 managed-agents-2026-04-01 beta 标头。SDK 会自动设置该 beta 标头。
首先,创建一个声明 GitHub MCP 服务器的智能体。智能体定义中包含服务器 URL,但不包含身份验证令牌:
AGENT_ID=$(ant beta:agents create \
--name "Code Reviewer" \
--model '{id: claude-opus-4-8}' \
--system "You are a code review assistant with access to GitHub." \
--mcp-server '{type: url, name: github, url: https://api.githubcopilot.com/mcp/}' \
--tool '{type: agent_toolset_20260401}' \
--tool '{type: mcp_toolset, mcp_server_name: github}' \
--transform id --raw-output)然后创建一个挂载 GitHub 代码仓库的会话:
session = client.beta.sessions.create(
agent=agent.id,
environment_id=environment.id,
resources=[
{
"type": "github_repository",
"url": "https://github.com/org/repo",
"mount_path": "/workspace/repo",
"authorization_token": "ghp_your_github_token",
},
],
)resources[].authorization_token 用于对代码仓库克隆操作进行身份验证,不会在 API 响应中回显。
提供 GitHub 令牌时,请使用所需的最小权限:
| 操作 | 所需权限范围 |
|---|---|
| 克隆私有代码仓库 | repo |
| 创建 PR | repo |
| 读取 issue | repo(私有)或 public_repo |
| 创建 issue | repo(私有)或 public_repo |
请使用具有最小所需权限的细粒度个人访问令牌。避免使用对您的 GitHub 账户具有广泛访问权限的令牌。
通过向 resources 数组添加条目来挂载多个代码仓库:
resources = [
{
"type": "github_repository",
"url": "https://github.com/org/frontend",
"mount_path": "/workspace/frontend",
"authorization_token": "ghp_your_github_token",
},
{
"type": "github_repository",
"url": "https://github.com/org/backend",
"mount_path": "/workspace/backend",
"authorization_token": "ghp_your_github_token",
},
]会话创建后,您可以列出其代码仓库资源并轮换其授权令牌。每个资源都有一个在会话创建时(或通过 resources.list)返回的 id,您可以使用它进行更新。代码仓库在会话的整个生命周期内保持挂载状态;如需更改挂载的代码仓库,请创建新会话。
# 列出会话上的资源
listed = client.beta.sessions.resources.list(session.id)
repo_resource_id = listed.data[0].id
print(repo_resource_id) # "sesrsc_01ABC..."
# 轮换授权令牌
client.beta.sessions.resources.update(
repo_resource_id,
session_id=session.id,
authorization_token="ghp_your_new_github_token",
)借助 GitHub MCP 服务器,智能体可以创建分支、提交更改并推送它们:
client.beta.sessions.events.send(
session.id,
events=[
{
"type": "user.message",
"content": [
{
"type": "text",
"text": "Fix the type error in src/utils.ts, commit it to a new branch, and push it.",
},
],
},
],
)Was this page helpful?