<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Anthropic API on 魔都水滴</title>
		<link>https://blog.margrop.net/tag/anthropic-api/</link>
		<description>Recent content in Anthropic API on 魔都水滴</description>
		<generator>Hugo</generator>
		<language>zh-CN</language>
		
		
		
		
			<lastBuildDate>Fri, 29 May 2026 15:30:00 +0800</lastBuildDate>
		
			<atom:link href="https://blog.margrop.net/tag/anthropic-api/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Claude Code 一升级就全模型 400：别急着换 Key，可能是网关没跟上新版协议</title>
				<link>https://blog.margrop.net/post/claude-code-invalid-message-role-system/</link>
				<pubDate>Fri, 29 May 2026 15:30:00 +0800</pubDate>
				<guid>https://blog.margrop.net/post/claude-code-invalid-message-role-system/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;先说结论&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;这次故障的表象非常吓人：Claude Code 更新之后，不管访问哪个模型，都会立刻报 &lt;code&gt;API Error: 400 invalid params, chat content has invalid message role: system (2013)&lt;/code&gt;。如果只看错误，很容易怀疑 API Key 失效、模型下线、余额不足、代理坏了、环境变量乱了，甚至怀疑所有模型同时挂掉。真正的根因不是这些，而是新版 Claude Code 发出的请求结构和某些 Anthropic-compatible 模型网关之间出现了兼容断层：网关把不该出现在 chat content 中的 &lt;code&gt;system&lt;/code&gt; role 当成非法消息拒绝了。&lt;/p&gt;&#xA;&lt;p&gt;最小可用修复也很朴素：先用最小 prompt 复现，再对相邻版本做二分式验证。最终确认 &lt;code&gt;2.1.150&lt;/code&gt; 能正常返回，&lt;code&gt;2.1.154&lt;/code&gt; 和 &lt;code&gt;2.1.156&lt;/code&gt; 会复现 400，于是把全局 Claude Code 固定回 &lt;code&gt;2.1.150&lt;/code&gt;。这不是“玄学回滚”，而是基于证据找到最后一个已知可用版本。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;这篇文章记录一次 Claude Code 本地环境排障。它不是一个复杂到需要改源码的问题，但很有代表性：AI Agent 工具链越来越依赖模型网关、兼容协议、环境变量、版本更新和本地 provider 切换；当其中一层发生协议细节变化时，终端里看到的却往往只是一句抽象的 400。&lt;/p&gt;&#xA;&lt;p&gt;为了避免泄露任何隐私信息，本文不会出现真实内网地址、真实用户名、真实 token、真实私有 provider 名称、真实本机路径或私有服务域名。所有配置片段都使用 &lt;code&gt;&amp;lt;PLACEHOLDER&amp;gt;&lt;/code&gt;、&lt;code&gt;&amp;lt;MODEL_GATEWAY&amp;gt;&lt;/code&gt;、&lt;code&gt;&amp;lt;MODEL_NAME&amp;gt;&lt;/code&gt; 等占位符表示。文章重点是分享排障方法，而不是公开某个具体环境。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
