-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Open
Description
Description
The ClaudeAgentOptions in agent_framework_claude is missing several options that the upstream Claude Agent SDK (claude-agent-sdk) already supports. These are clean passthrough options that don't conflict with any Agent Framework abstractions — they simply aren't exposed yet.
Missing options that make sense to add
| Option | Purpose |
|---|---|
plugins |
Load Claude Code plugins programmatically via SdkPluginConfig. Lets users extend Claude with custom commands and capabilities. |
setting_sources |
Control which .claude settings files are loaded ("user", "project", "local"). Important for controlling Claude behavior across environments. |
thinking |
Modern extended thinking configuration (ThinkingConfigAdaptive, ThinkingConfigEnabled, ThinkingConfigDisabled). Supersedes the already-exposed max_thinking_tokens. |
effort |
Control thinking depth ("low", "medium", "high", "max"). Simple config for cost/quality tradeoffs. |
Why these and not others?
The SDK has additional options (continue_conversation, resume, fork_session, include_partial_messages) that were intentionally not included because:
- Session management (
continue_conversation,resume,fork_session) is handled by the Agent Framework'sAgentSessionabstraction — exposing SDK-level session controls would bypass and conflict with it. include_partial_messagesis already hardcoded toTrueinternally for streaming support.
How it works
All four options are clean passthroughs. The existing _prepare_client_options method already forwards all default_options keys to the SDK's ClaudeAgentOptions dataclass via a generic loop, so no additional wiring is needed — just declaring the fields in the Agent Framework's ClaudeAgentOptions TypedDict is sufficient.
Code Sample
from agent_framework_claude import ClaudeAgent
async with ClaudeAgent(
instructions="You are a helpful assistant.",
default_options={
"plugins": [{"type": "local", "path": "/path/to/my-plugin"}],
"setting_sources": ["project"],
"thinking": {"type": "adaptive"},
"effort": "high",
},
) as agent:
response = await agent.run("Hello!")Language/SDK
Python
Reactions are currently unavailable