-
Notifications
You must be signed in to change notification settings - Fork 613
Closed
Description
Summary
ClaudeCodeModel class does not support resume and continue_conversation options, which are available in ClaudeAgentOptions from the Claude Agent SDK. This prevents users from resuming sessions using session_id.
Current Behavior
ClaudeCodeModelconstructor does not acceptresumeorcontinue_conversationparameters_extract_model_settings()does not extract these settings frommodel_settings_build_agent_options()does not pass these options toClaudeAgentOptions- Each query is treated as a new independent session
Expected Behavior
Users should be able to:
- Pass
resume(session_id) viamodel_settingsto resume a previous session - Set
continue_conversationeither at instance level (constructor) or per-request (model_settings)
Proposed Solution
- Add
continue_conversationparameter toClaudeCodeModel.__init__() - Add
resumeandcontinue_conversationtoClaudeCodeModelSettingsTypedDict - Update
_ExtractedSettingsNamedTuple to include these fields - Update
_extract_model_settings()to extract these settings - Update
_build_agent_options()to pass these options toClaudeAgentOptions - Update
_execute_request()andstream_messages()call sites
Example Usage (after fix)
from claudecode_model import ClaudeCodeModel
from pydantic_ai.messages import ModelRequest, UserPromptPart
model = ClaudeCodeModel()
messages = [ModelRequest(parts=[UserPromptPart(content="Login to service")])]
# First request - get session_id
result = await model.request_with_metadata(messages, None, params)
session_id = result.cli_response.session_id
# Second request - resume session
messages2 = [ModelRequest(parts=[UserPromptPart(content="Get data")])]
result2 = await model.request_with_metadata(
messages2,
{"resume": session_id, "continue_conversation": True},
params
)Related
- Found during investigation of Session ID does not persist authentication for subsequent calls (works in CLI, not in SDK) #76 (which is about
claude_code_sdk, notclaudecode_model)
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels