一、操作场景
·查看当前账号下已有的 Tool 及其状态。
·按状态排查 Tool 创建结果,例如定位 FAILED 原因。
·对比不同类型的 Tool 返回值,例如 Browser Tool、Code Interpreter Tool 或其他已创建类型。
·按标签、名称或 ToolId 缩小查询范围。
·按分页参数分批查看大量 Tool。
二、前提条件
在执行查询前,建议先完成以下自检。
三、检查 1:确认 agr CLI 已安装
agr version -o json
如果返回结果中的 Status 为 succeeded,且 Data.Version、Data.Commit 等字段可见,说明当前终端已经可以调用 agr CLI。
四、检查 2:确认查询凭证和默认地域已就绪
使用以下命令检查当前 shell 的凭证探测结果和默认地域:
agr status -o json
重点关注以下字段:
| 字段 | 说明 |
| Data.Auth.SecretId.Present | 是否检测到 Cloud API 所需的 SecretId。 |
| Data.Auth.SecretKey.Present | 是否检测到 Cloud API 所需的 SecretKey。 |
| Data.Region | 当前 CLI 将使用的地域。 |
| Data.ConfigFound | 是否检测到 CLI 配置文件。 |
| Data.ConfigLoaded | 是否成功加载 CLI 配置文件。 |
当 Data.Auth.SecretId.Present 和 Data.Auth.SecretKey.Present 都为 true 时,当前 shell 已具备查询 Tool 的云端凭证。任一字段为 false 时,请先通过 agr init –secret-id <id> –secret-key <key>,或在当前环境中注入 TENCENTCLOUD_SECRET_ID 和 TENCENTCLOUD_SECRET_KEY,再执行查询命令。
如果 Data.ConfigFound 或 Data.ConfigLoaded 为 false,说明 CLI 当前没有可用的本地配置文件。此时你仍然可以直接使用环境变量完成查询;如果希望把凭证和默认地域写入 CLI 配置,再执行一次 agr init。
注意:说明:
注意:agr version -o json 用于确认本地 CLI 是否可用,agr status -o json 用于确认当前 shell 的认证状态和默认地域。建议按这个顺序完成前提检查。
五、检查 3:确认标签筛选前置条件
如果你计划按标签过滤 Tool,请先确认目标 Tool 已经写入对应标签,或先参考 管理 Sandbox Tool 标签 了解标签模型和维护方式。
六、对系统影响
agr tool list 是只读查询操作。执行该命令不会创建、修改或删除任何 Tool,也不会改变 Sandbox Instance 的运行状态、超时配置或网络设置。你可以在排障、巡检或日常查询时安全执行该命令。
八、步骤 1:查询全部 Tool
执行以下命令查询当前账号下的 Tool 列表:
agr tool list -o json
执行成功后,返回结果中的 Status 为 succeeded,具体 Tool 数据位于 Data.Items。
示例输出如下:
{ "SchemaVersion": "agr.v1", "Command": "tool.list", "Status": "succeeded", "Data": { "Items": [ { "ToolId": "sdt-2q7x8n4m", "ToolName": "demo-browser-tool", "ToolType": "browser", "Status": "ACTIVE", "StatusReason": "", "Persistent": false, "DefaultTimeoutSeconds": 300, "NetworkConfiguration": { "NetworkMode": "PUBLIC" }, "Description": "Browser automation sandbox", "Tags": { "env": "prod", "team": "agent-platform" }, "CreateTime": "2026-05-20T19:54:01+08:00", "UpdateTime": "2026-05-20T19:54:01+08:00", "RoleArn": "", "StorageMounts": null, "CustomConfiguration": null, "LogConfiguration": null } ], "Pagination": { "Offset": 0, "Limit": 20, "Total": 1, "NextCursor": null } }, "Failure": null, "Warnings": [], "Meta": { "Backend": "cloud", "DurationMs": 96 }}
九、步骤 2:分页查询
agr tool list 使用 –offset 和 –limit 控制分页:
| 参数 | 说明 |
| –offset | 从第几条记录开始返回。取值不能小于 0。 |
| –limit | 本次最多返回多少条记录。取值范围为 1 到 100。 |
例如,查询第 2 页且每页返回 20 条记录:
agr tool list –offset 20 –limit 20 -o json
执行成功后,可通过 Data.Pagination.Offset、Data.Pagination.Limit 和 Data.Pagination.Total 判断当前页位置和总记录数。
十、步骤 3:按 ToolId 精确查询
如果你已经知道目标 ToolId,可以使用 –tool-ids 只返回指定 Tool:
agr tool list –tool-ids sdt-2q7x8n4m -o json
也可以重复传入多个 –tool-ids:
agr tool list \\ –tool-ids sdt-2q7x8n4m \\ –tool-ids sdt-8p4n2k6q \\ -o json
按 ToolId 精确查询时,建议只保留 –tool-ids、–offset、–limit 和 –filters 中真正需要的参数,避免把无关筛选条件混入同一条命令。
十一、步骤 4:通过 –filters 传入高级筛选条件
当前版本的 agr tool list 不再提供 –status、–type、–tag、–id 这类独立 flag。需要高级筛选时,请统一通过 –filters 传入 JSON 数组;数组中的每个对象都包含 Name 和 Values 两个字段。
agr tool list –filters '[{"Name":"Tag","Values":["env=prod"]}]' -o json
其中:
| 字段 | 说明 |
| Name | 过滤条件名称。 |
| Values | 过滤值数组。每个过滤条件至少传 1 个值。 |
如果筛选条件较长,建议把 JSON 放到文件中,再通过 –filters @<file> 或 –request @<file> 传入。
十二、步骤 5:按标签或名称缩小范围
–filters 适合承载标签和名称类筛选条件。以下示例展示当前常见写法。
按标签筛选:
agr tool list –filters '[{"Name":"Tag","Values":["env=prod"]}]' -o json
按 Tool 名称精确匹配:
agr tool list –filters '[{"Name":"tool-name","Values":["demo-browser-tool"]}]' -o json
按 Tool 名称关键字匹配:
agr tool list –filters '[{"Name":"tool-name-like","Values":["browser"]}]' -o json
执行成功后,返回结果中的 Tags 会以 JSON 对象形式展示当前 Tool 的标签键值对。如果你还没有统一标签键名或筛选约定,请先参考 管理 Sandbox Tool 标签。
十三、步骤 6:理解 ToolType 和 Status 的命名层级
CLI 输出中的 Data.Items[].ToolType 和 Data.Items[].Status 直接使用短值或简化状态值,例如:
·ToolType:browser、code-interpreter
·Status:CREATING、ACTIVE、DELETING、FAILED
如果你改用 Cloud API DescribeSandboxToolList 或对应 SDK 查询同一批 Tool,同名字段会切换为枚举值:
| 语义 | CLI 输出值 | Cloud API / SDK 返回值 |
| 浏览器型 Tool | browser | SANDBOX_TOOL_TYPE_BROWSER |
| 代码执行型 Tool | code-interpreter | SANDBOX_TOOL_TYPE_CODE_INTERPRETER |
| 可用状态 | ACTIVE | SANDBOX_TOOL_STATUS_ACTIVE |
| 失败状态 | FAILED | SANDBOX_TOOL_STATUS_FAILED |
注意:说明:
注意:agr tool create –tool-type code-interpreter 使用的是 CLI 短值;DescribeSandboxToolList 返回的是 Cloud API / SDK 枚举值。两者指向同一类 Tool,但不要混用。
如需继续了解已公开的 Tool 类型说明,可阅读 Tool 类型。
十四、步骤 7:组合分页与筛选条件
你可以将分页、ToolId 和 Filters 组合使用:
agr tool list \\ –tool-ids sdt-2q7x8n4m \\ –filters '[{"Name":"Tag","Values":["env=prod"]}]' \\ –offset 0 \\ –limit 20 \\ -o json
这种方式适合在结果较多时缩小范围并分批查看。
十五、步骤 8:使用 –request 传完整请求体
当筛选条件较多,或你希望把查询参数保存到脚本与 CI 中时,可以直接传入完整请求体:
{ "ToolIds": [ "sdt-2q7x8n4m" ], "Filters": [ { "Name": "Tag", "Values": [ "env=prod" ] } ], "Offset": 0, "Limit": 20}
将该 JSON 保存为 tool-query.json 后,可执行:
agr tool list –request @tool-query.json -o json
这种方式适合复用固定查询条件,也能减少 shell 转义带来的错误。
十七、CLI 顶层字段
agr tool list -o json 的顶层字段说明如下:
| 字段 | 说明 |
| SchemaVersion | CLI 输出 schema 版本。 |
| Command | 当前执行的命令名。 |
| Status | 命令执行状态。成功时为 succeeded。 |
| Data | 查询结果主体。 |
| Failure | 失败信息。执行成功时为 null。 |
| Warnings | 警告信息列表。 |
| Meta | 运行元信息,例如后端类型和耗时。 |
十八、Data.Pagination 字段
Data.Pagination 用于说明本次返回结果的分页信息:
| 字段 | 说明 |
| Offset | 本次请求使用的偏移量。 |
| Limit | 本次请求使用的分页大小。 |
| Total | 当前过滤条件下的总记录数。 |
| NextCursor | 预留字段,当前返回 null。翻页请继续使用 –offset 和 –limit。 |
十九、Data.Items[] 字段
Data.Items 中每个对象表示一个 Tool,常见字段说明如下:
| 字段 | 说明 |
| ToolId | Tool 唯一标识。 |
| ToolName | Tool 名称。 |
| ToolType | Tool 类型。CLI 返回短值。 |
| Status | 当前状态。 |
| StatusReason | 状态说明或失败原因。FAILED 场景下通常会返回可直接用于排障的错误信息。 |
| Persistent | 是否为持久化 Tool。 |
| DefaultTimeoutSeconds | 默认超时时间,单位为秒。未设置时可能为 null。 |
| NetworkConfiguration.NetworkMode | 网络模式,例如 PUBLIC 或 SANDBOX。以实际返回值为准。 |
| Description | Tool 描述。 |
| Tags | 标签集合。CLI 以 JSON 对象输出。 |
| CreateTime | 创建时间。 |
| UpdateTime | 最近更新时间。 |
| RoleArn | 角色 ARN。未配置时通常为空字符串。 |
| StorageMounts | 存储挂载配置列表。 |
| CustomConfiguration | 自定义配置。仅在对应 Tool 使用该能力时返回。 |
| LogConfiguration | 日志配置。仅在对应 Tool 使用该能力时返回。 |
20、CLI 与 API/SDK 字段对照
CLI 输出字段与 Cloud API / SDK 字段并不完全同名。常用映射如下:
| CLI 字段 | API/SDK 字段 | 差异说明 |
| Data.Items | SandboxToolSet | 语义一致,都是 Tool 列表。 |
| Data.Pagination.Total | TotalCount | CLI 把总数放在分页结构内;API/SDK 单独返回总数。 |
| Data.Items[].ToolType | SandboxToolSet[].ToolType | CLI 使用短值,例如 browser;API/SDK 使用 SANDBOX_TOOL_TYPE_* 枚举。 |
| Data.Items[].Status | SandboxToolSet[].Status | CLI 使用简化状态值,例如 ACTIVE;API/SDK 使用 SANDBOX_TOOL_STATUS_* 枚举。 |
| Data.Items[].Tags | SandboxToolSet[].Tags | CLI 输出为 JSON 对象;API/SDK 输出为 [{"Key":"…","Value":"…"}] 结构。 |
| Data.Items[].StatusReason | 公开 API 文档未单独列为业务返回字段 | CLI 查询结果里可以直接看到失败原因;编写 API/SDK 自动化时不要假设该字段一定存在。 |
21、API/SDK 参考
CLI 已覆盖 Tool 列表查询、分页、按 ToolId 精确查询,以及通过 Filters 传入高级筛选条件等常见场景。只有在你需要把查询逻辑集成到自建控制面、批处理任务或 SDK 程序中时,才需要直接使用 API/SDK。
公开程序化入口建议如下:
| 类型 | 入口 | 说明 |
| Cloud API / 腾讯云 SDK | DescribeSandboxToolList | 用于查询 Tool 列表、分页和 Filters。 |
| E2B SDK / E2B HTTP | /sandboxes 系列接口 | 用于管理沙箱实例,不用于查询 Tool 清单。 |
如果你需要查看 Cloud API / SDK 的请求体、返回字段或 HTTP 形态,请参考 沙箱工具 API。本页聚焦 agr tool list 主路径,不再单列 REST 代理路径,以免将 Tool 查询和 E2B 兼容实例接口混为一谈。
一个最小的 Cloud API 业务请求体示例如下:
{ "OAEnglishId": "alice", "ToolIds": [ "tool-9f3b2a1c" ], "Offset": 0, "Limit": 20}
22、清理
agr tool list 本身不会创建、修改或删除 Tool,因此如果你只执行了本页中的查询命令,无需额外清理。
如果你为了验证筛选条件而临时创建了测试 Tool,建议在确认结果后立即回收。可以按以下顺序执行:
1. 查询并记录需要回收的 ToolId。
agr tool get <tool-id> -o json
2. 删除测试 Tool。
agr tool delete <tool-id> -o json
3. 再次按 ToolId 查询,观察目标 Tool 是否仍可查询到。
agr tool list –tool-ids <tool-id> -o json
你可以结合 更新与删除 中的删除说明,继续关注后续处理状态。请注意,不建议仅凭单次查询结果判断删除已完全完成,建议稍后再次查询确认目标 Tool 已从列表中移除。
如需继续调整或批量回收 Tool,可参考 更新与删除。
23、相关操作
·创建沙箱工具
·管理 Sandbox Tool 标签