-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtest_sdk_response.py
More file actions
45 lines (36 loc) · 1.31 KB
/
test_sdk_response.py
File metadata and controls
45 lines (36 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
"""测试 Claude Agent SDK 返回的消息结构."""
import asyncio
import os
from claude_agent_sdk import (
query,
ClaudeAgentOptions,
AssistantMessage,
ResultMessage,
TextBlock,
)
async def test_sdk_response():
"""测试 SDK 返回内容."""
options = ClaudeAgentOptions(
cwd='/tmp',
model='haiku',
permission_mode='bypassPermissions',
max_turns=5,
)
print("=" * 60)
print("测试 SDK 返回的消息结构")
print("=" * 60)
async for message in query(prompt="说 Hello World", options=options):
print(f"\n--- Message Type: {type(message).__name__} ---")
if isinstance(message, AssistantMessage):
print(f" model: {message.model}")
print(f" content blocks: {len(message.content)}")
for i, block in enumerate(message.content):
print(f" [{i}] {type(block).__name__}: {repr(block)[:200]}")
elif isinstance(message, ResultMessage):
print(f" session_id: {message.session_id}")
print(f" is_error: {message.is_error}")
print(f" result: {message.result}")
print(f" num_turns: {message.num_turns}")
print(f" total_cost_usd: {message.total_cost_usd}")
if __name__ == '__main__':
asyncio.run(test_sdk_response())