fix: 升级 claude-agent-sdk 0.3.156 修复 opus-4-8 thinking 400 与子进程丢失 API key#254
Conversation
两个连环问题(均在 opus-4-8 默认模型下暴露):
1. thinking.type.enabled 400 — SDK 0.2.111 内置 CLI 模型表只到 opus-4-7,
不识别 opus-4-8 → 回退发送 legacy thinking 格式被 API 拒收。
升级 @anthropic-ai/claude-agent-sdk 0.2.111 → 0.3.156(内置 CLI 2.1.156,
支持 opus-4-8 的 adaptive thinking)。
2. Not logged in · Please run /login — SDK 0.3.x 的 options.env 从"合并"
改为"完全替换"子进程环境;executor 仅传 { ANTHROPIC_BASE_URL } 导致
ANTHROPIC_API_KEY 丢失。改为展开 { ...process.env, ANTHROPIC_BASE_URL }。
其他:
- 0.3.x 起 @anthropic-ai/sdk、@modelcontextprotocol/sdk 为 peerDependencies,
提为本仓库直接依赖。
- 新增 executor 环境转发的回归测试(配代理时必须携带 ANTHROPIC_API_KEY)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
- Agent SDK Gotchas 增加 options.env 完全替换子进程环境的说明 - Deployment 增加升级/拉取后必须 npm install(CLI 二进制走 optionalDependencies) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Claude finished @lishuceo's task in 1m 15s —— View job Claude Code ReviewVerdict: ✅ Approved — clean, surgical fix for both reported bugs with proper regression test coverage.
What I checked
Both paths produce the same subprocess env modulo the one overridden var — internally consistent. ✓
Considerations (informational, not blockers)1. Spreading 2. The remaining test-plan checkbox — SummaryBoth fixes are root-cause level (not workarounds), tests are tight, and documentation captures the upgrade footguns. No changes requested. |
|
感谢 review。两条 considerations 已确认,均不在本 PR 范围内处理:
本 PR 聚焦两个 root-cause 修复,保持最小改动。 |
变更概述
opus-4-8,回退发送 legacythinking.type.enabled被 API 拒收。升级@anthropic-ai/claude-agent-sdk0.2.111 → 0.3.156(内置 CLI 2.1.156,支持 opus-4-8 adaptive thinking)。options.env从「合并」改为「完全替换」子进程环境,executor仅传{ ANTHROPIC_BASE_URL }导致ANTHROPIC_API_KEY丢失。改为展开{ ...process.env, ANTHROPIC_BASE_URL }。@anthropic-ai/sdk、@modelcontextprotocol/sdk为 peerDependencies,提为直接依赖。测试计划
npm run typecheck通过npx vitest run全量回归(新增 2 个回归用例;唯一失败为无关的 memory 语义召回 flaky 断言)npm install(reviewer 确认 lockfile 已提交,CI 解析确定)🤖 Generated with Claude Code