展开本页目录
开始前准备什么
- 独立虚拟环境,安装 claude-agent-sdk==0.2.164;本次 Python 3.14.3。
- 确认 SDK bundled Claude Code 运行时可执行;不要依赖另一个终端的 CLI 状态。
- 目标 Claude ID 与 Key 具备原生 Messages 权限,逐项确认流式和 SDK 参数。
- 隔离示例目录
- 确认认证来源
- 构造最小 options
- 验 text-only query
- 再验工具与会话
2026-10-23 核验材料;实际执行范围、结果与限制见下方记录。
补充:原有练习资料与下载
工具关闭、临时目录、默认预览;离线仅检查 options。
为 Claude Agent 建立独立虚拟环境。
Agent SDK:真实query调用与超时边界
真正SDK发起尝试但没有有效result;保留失败并说明事件落盘方式。
· 真实Agent SDK0.3.309 query→原生CLI2.1.177;本地第一方登录小请求90秒无result,网关单次小请求exit1,Node源码式错误输出被截断,未恢复有效SDK result或底层HTTP状态。不能认定模型成功、HTTP429或零费用;同批独立CLI确有当前网关分组429,但不能替代本次SDK状态。
本次未完成目标执行,下面保留实际阻点和恢复方法。
- 运行环境
- @anthropic-ai/claude-agent-sdk 0.3.309 / native CLI2.1.177;独立练习目录;原创虚构输入;网关凭据仅置私密环境,未发布Key
1. 安装真正Agent SDK
创建独立目录,npm install @anthropic-ai/claude-agent-sdk,并保留package-lock。
2. 限制输入和工具权限
读取SDK query官方接口;本题只提交原创17+25计数输入,tools:[],不授予文件或终端工具。
3. 调用query并保存事件
执行 node run.mjs;保存assistant/result事件与进程退出码。
4. 区分个人实验与产品认证
将本地个人第一方登录实验与提供给第三方用户的产品认证分开;产品需按官方允许方式用独立API凭据。
5. 如实标记生成未通过
本次SDK超时,没有有效result,不能展示42作为模型产物。
6. 保存本次原始结果
若SDK异步迭代抛错,先把已收到的assistant/result逐项落盘,再保存短error.message;不要仅在迭代完成后统一打印,避免异常时丢失已收到的事件。本次没有恢复有效result,保留为未通过,不补造答案。
这次实际得到什么
- 真实SDK0.3.309→原生CLI2.1.177,未用自制检查器替代。
- 最初小输入90秒超时;网关单次尝试exit1,未恢复有效result或HTTP状态。
- SDK异常时统一末尾打印会丢事件;本次已保留原始截断stderr和明确失败。
使用这份结果时注意
- 不能把同批另一CLI的429当成本次SDK已确认状态。
- 模型结果和用量未知,没有补造42,没有按超时推断零费用。
根地址与认证放进 SDK options
Base URL 为根地址,不填 /v1/messages 或 OpenAI 的 /v1。env 合并到 SDK 子进程环境,本例清空另一个认证 token,避免误用先前会话来源。API Key 来源仍需在你的部署确认;这不是复用 claude.ai 订阅登录或额度的方法。
tools=[]、空 setting_sources 与临时 cwd 用来限制首个任务范围。它们是最小示例配置,不是整个操作系统的安全沙箱。
ClaudeAgentOptions 核心配置
options = ClaudeAgentOptions(
model=os.environ["tokenba_MODEL"],
tools=[], allowed_tools=[], setting_sources=[],
cwd=temporary_directory, max_turns=1,
env={
"ANTHROPIC_BASE_URL": "https://api.apizt.com",
"ANTHROPIC_API_KEY": os.environ["tokenba_API_KEY"],
"ANTHROPIC_AUTH_TOKEN": "",
"API_TIMEOUT_MS": "45000",
"CLAUDE_CODE_MAX_RETRIES": "0",
"CLAUDE_CODE_RETRY_WATCHDOG": "0",
"DISABLE_TELEMETRY": "1",
},
)三个入口,三种证据
先确认当前 SDK 包与 bundled CLI 版本,再在应用中执行 query()。不是把之前 claude -p 的终端输出改名成 SDK 实测。未收到 ResultMessage 时应保留未知状态,不自行填入成功。
| 入口 | 实际执行者 | 能证明什么 |
|---|---|---|
| Anthropic Python SDK | HTTP 客户端 / Messages | 一次原生 Messages 调用 |
| Claude Code CLI | 独立终端进程 | 那个 CLI 会话的结果与配置 |
| Claude Agent SDK query() | SDK 管理的 Claude Code 运行时 | SDK 选项、事件和结果;需要独立验证 |
- 入口
- Anthropic Python SDK
- 实际执行者
- HTTP 客户端 / Messages
- 能证明什么
- 一次原生 Messages 调用
- 入口
- Claude Code CLI
- 实际执行者
- 独立终端进程
- 能证明什么
- 那个 CLI 会话的结果与配置
- 入口
- Claude Agent SDK query()
- 实际执行者
- SDK 管理的 Claude Code 运行时
- 能证明什么
- SDK 选项、事件和结果;需要独立验证
默认预览,离线只构造选项
--offline 只构造真实 SDK 选项并记录设置,不调用 query(),也不证明网关接入成功。--run 使用 SDK query 做一次 text-only 任务,读取 ResultMessage,工具关闭。下载脚本默认预览,已存在记录拒绝再运行。
在下载目录运行
python3 -m venv .venv-claude-agent
.venv-claude-agent/bin/python -m pip install -r claude-agent-requirements.txt
.venv-claude-agent/bin/python claude-agent-minimal.py
.venv-claude-agent/bin/python claude-agent-minimal.py --offline --output options-record.json
# 私密提供自己的 Key 和准确 Claude ID 后
.venv-claude-agent/bin/python claude-agent-minimal.py --run --output query-record-001.json按 SDK 本次事件验收
本页不声称已完成 apizt 上完整 Claude Agent 端到端验证。某个通道支持普通 Messages,不代表 SDK beta、额外请求、所有工具和会话特性都可用。按真实事件确认后再扩展。
| 检查 | 通过条件 | 证据边界 |
|---|---|---|
| 安装与 options | 版本正确,字段可构造 | 已验证的离线范围 |
| 真实 query | 原生 Messages / SSE 正常,ResultMessage 无错误 | 需实际 SDK 请求记录 |
| 模型与认证 | 实际型号和账号来源准确 | 不能只看环境变量文字 |
| 工具与会话 | 调用、权限、执行、回传、resume 独立通过 | text-only 未覆盖 |
| 费用 | usage 与账号实际扣费分开 | sdkReportedCostUsd 不是 apizt 实扣 |
- 检查
- 安装与 options
- 通过条件
- 版本正确,字段可构造
- 证据边界
- 已验证的离线范围
- 检查
- 真实 query
- 通过条件
- 原生 Messages / SSE 正常,ResultMessage 无错误
- 证据边界
- 需实际 SDK 请求记录
- 检查
- 模型与认证
- 通过条件
- 实际型号和账号来源准确
- 证据边界
- 不能只看环境变量文字
- 检查
- 工具与会话
- 通过条件
- 调用、权限、执行、回传、resume 独立通过
- 证据边界
- text-only 未覆盖
- 检查
- 费用
- 通过条件
- usage 与账号实际扣费分开
- 证据边界
- sdkReportedCostUsd 不是 apizt 实扣
按启动、认证与流式阶段排错
| 阶段 | 现象 | 先检查 |
|---|---|---|
| 本地启动 | CLI not found / process exited | SDK bundled runtime、系统架构、执行权限 |
| 认证 | 401 / 未预期的登录来源 | Options.env、Key 权限、残留 token 和进程环境 |
| 协议 | 404 / schema 错误 | 根 Base URL、Messages 路径、SDK 参数 |
| 流式 | 没有 ResultMessage / 超时 | 真实 SSE、结束事件、上游日志;不自动重发 |
- 阶段
- 本地启动
- 现象
- CLI not found / process exited
- 先检查
- SDK bundled runtime、系统架构、执行权限
- 阶段
- 认证
- 现象
- 401 / 未预期的登录来源
- 先检查
- Options.env、Key 权限、残留 token 和进程环境
- 阶段
- 协议
- 现象
- 404 / schema 错误
- 先检查
- 根 Base URL、Messages 路径、SDK 参数
- 阶段
- 流式
- 现象
- 没有 ResultMessage / 超时
- 先检查
- 真实 SSE、结束事件、上游日志;不自动重发
文字通过后,再引入受限工具
- 先用本地只读固定资料验工具链路,保留工具名称、参数、权限决定和结果事件。
- 按应用场景配置允许工具,不把 bypassPermissions 当成接入修复。
- 需要写文件、运行命令或联网时,使用独立任务目录与受控执行环境。
- 明确会话数据保存位置与访问权限;SDK 依赖自己的运行时、认证与商业使用条件,正式部署前核对官方说明。
本次补测:先完成搜索要解决的问题,再进入下一步
低价 Chat 模型成功不能替代原生 Messages/Agent SDK 的参数与工具验证。
补测只证明当前小样 JSON 字段通过;Claude Agent SDK 原生结论仍以旧文对应记录为准。
- 保留原 SDK 固定版本、事件回执和 SDK options;记录 bundled runtime。
- 在能力表中把 Chat JSON、Messages、工具与视觉逐格记录,未测标 unknown。
- 基础请求成功后才按 SDK 本身的协议试任务,不能把 gpt-4.1-mini Chat 样例当作 Claude SDK 的兼容证明。
新增补测结果;与原有原生工具记录分别保存
{
"model": "gpt-4.1-mini",
"json_object": "passed in this sample",
"tool_calls": "unknown",
"vision": "unknown",
"video": "not executed",
"output": {
"ok": true
}
}怎样确认已经完成
- 安装版本和实际运行时版本可回查。
- 文本 query 结果来自 SDK 的本次 ResultMessage。
- 原生协议、认证与流式已在目标通道核验。
- 工具、权限、会话与实扣不由一次文字结果替代。
常见问题
Claude Code 能用,SDK 一定能用吗?
不能据此判定。SDK 管理的运行时、选项、认证来源、事件与额外参数必须独立测试。
--offline 输出成功代表网关可用了?
只代表真实 SDK options 可以构造。它没有执行 query 或访问 apizt。
SDK 的 total_cost_usd 是控制台实际扣费吗?
它是 SDK 报告的费用信息。apizt 的实际扣费应按账号、时间、型号和任务记录核对。

