限制与错误
让工具调用保持快速、可预期的各项限制,以及调用失败时 AI 客户端会看到什么。
单次调用的限制
| 项目 | 限制 |
|---|---|
命令输出(exec、shell_run) | 32,000 字节;超出部分会被截断 |
| 命令超时 | 默认 60 秒,最长 900 秒;更长的工作请使用 job_start |
每次 exec_many 的机器数 | 8 台,每台的输出上限减半 |
read_file | 每次调用默认 200,000 字节,最多 4,000,000 字节;从 next_offset 继续读取 |
write_file、copy_between_hosts | 4,000,000 字节;更大的文件请使用 transfer_start |
transfer_start | 不限大小;每个连接同时 2 个,每个最多 10,000 个文件 |
后台任务输出(job_output) | 每次读取 64,000 字节 |
| 每次调用的终端输出 | 20,000 个字符;最多等待 600 秒 |
端口转发的 HTTP 正文(tunnel_http) | 32 KB |
打开的会话
| 项目 | 限制 |
|---|---|
| Shell 会话 | 每台机器 4 个;空闲 30 分钟后关闭 |
| 终端 | 每个连接 8 个;空闲 30 分钟后关闭 |
| 隧道 | 1 小时后关闭 |
| 定时任务 | 每个账户 200 个 |
| Web 分享 | 由 AI 创建时默认 24 小时,最长 30 天 |
| 等待中的审批 | 每个连接 20 个 |
耗时超过 10 秒的调用,如果客户端请求了进度通知,会每 10 秒发送一次 MCP 进度通知,这样在命令、传输或审批等待完成时,客户端不会超时。
套餐限制
套餐决定账户可以有多少台机器和多少位成员,以及其策略可以使用哪些功能,例如按文件夹设置的文件规则、命令规则、定时任务、Web 分享和设为密钥的环境变量。详见价格。如果调用需要套餐不包含的功能,会失败并返回说明这一点的消息。
错误
被拒绝或失败的调用会返回一个带有 isError: true 的 MCP 工具结果,以及一条通俗易懂的消息,告诉 AI 发生了什么、下一步该做什么。最常见的消息:
| 消息开头 | 含义 |
|---|---|
token lacks fleet.… | 连接在批准时没有包含这个工具需要的权限范围。请重新连接并批准该权限范围。 |
refused by this connection's command rules | 策略的命令规则拒绝了这个命令。 |
high-risk operation | AI 必须先向你展示完整的命令,然后带上 confirm=true 再次调用。 |
refused by guardrail | LetKite 从不执行的命令,例如清除磁盘。 |
waiting for a person to approve this | 有一个审批正在等待;消息会说明请求发给了谁、有效期到何时。 |
this connection's authorization is no longer valid | 连接已被断开。请重新连接客户端以再次登录。 |
登录错误使用标准的 OAuth 错误码(invalid_grant、invalid_client、access_denied 等)。缺少令牌或令牌过期时,会收到 HTTP 401 和 WWW-Authenticate 头,客户端会自行重新登录或刷新令牌。