サンプルが動かず、微修正したら動作したのでご報告します。
(以下のレポートはClaudeが書きましたが私が目を通しています)
概要
example_apps/claude_agent_sdk のサンプルを起動してロボットに話しかけると、AI の応答テキスト自体は生成されるものの、発話されずに talk_session がクラッシュします。
再現手順
uv run uvicorn example_apps.claude_agent_sdk.app:app.fastapi --host 0.0.0.0 --port 8000
起動後、ロボットに話しかける。
エラーログ
claude_agent_sdk._errors.MessageParseError: Unknown message type: rate_limit_event
File ".../example_apps/claude_agent_sdk/app.py", line 85, in talk_session
async for message in client.receive_response():
File ".../claude_agent_sdk/_internal/message_parser.py", line 180, in parse_message
raise MessageParseError(f"Unknown message type: {message_type}", data)
AssistantMessage の応答は受信できていますが、その後ストリームに含まれる rate_limit_event を SDK がパースできず、ResultMessage に到達する前に例外となり speak() が呼ばれません。
原因
claude-agent-sdk のバージョン依存です。
0.1.39:rate_limit_event 未対応で MessageParseError を送出
0.1.40:未知メッセージを無視(クラッシュ回避)
0.1.49:RateLimitEvent として正式対応
リポジトリ内で下限指定が分かれており、
example_apps/claude_agent_sdk/pyproject.toml … claude-agent-sdk>=0.1.56
- ルート
pyproject.toml の example-claude-agent-sdk グループ … claude-agent-sdk>=0.1.39
リポジトリ直下から uv run するとルート側が使われ、uv.lock も 0.1.39 に固定されているため、ちょうど未対応の版が入ります。
提案する修正
ルート pyproject.toml の下限をサンプル側と揃え、lock を更新する。
example-claude-agent-sdk = [
- "claude-agent-sdk>=0.1.39",
+ "claude-agent-sdk>=0.1.56",
]
uv lock --upgrade-package claude-agent-sdk
手元では 0.2.87 に更新し、rate_limit_event が RateLimitEvent としてパースされることを確認済みです。app.py 側の変更は不要でした。
環境
- claude-agent-sdk: 0.1.39(不具合)→ 0.2.87(修正確認)
- Claude Code CLI: 2.1.49
- Python: 3.14
サンプルが動かず、微修正したら動作したのでご報告します。
(以下のレポートはClaudeが書きましたが私が目を通しています)
概要
example_apps/claude_agent_sdkのサンプルを起動してロボットに話しかけると、AI の応答テキスト自体は生成されるものの、発話されずにtalk_sessionがクラッシュします。再現手順
起動後、ロボットに話しかける。
エラーログ
AssistantMessageの応答は受信できていますが、その後ストリームに含まれるrate_limit_eventを SDK がパースできず、ResultMessageに到達する前に例外となりspeak()が呼ばれません。原因
claude-agent-sdkのバージョン依存です。0.1.39:rate_limit_event未対応でMessageParseErrorを送出0.1.40:未知メッセージを無視(クラッシュ回避)0.1.49:RateLimitEventとして正式対応リポジトリ内で下限指定が分かれており、
example_apps/claude_agent_sdk/pyproject.toml…claude-agent-sdk>=0.1.56pyproject.tomlのexample-claude-agent-sdkグループ …claude-agent-sdk>=0.1.39リポジトリ直下から
uv runするとルート側が使われ、uv.lockも0.1.39に固定されているため、ちょうど未対応の版が入ります。提案する修正
ルート
pyproject.tomlの下限をサンプル側と揃え、lock を更新する。手元では
0.2.87に更新し、rate_limit_eventがRateLimitEventとしてパースされることを確認済みです。app.py側の変更は不要でした。環境