Skip to content

ClaudeCodeModel does not support resume and continue_conversation options #514

@drillan

Description

@drillan

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

  • ClaudeCodeModel constructor does not accept resume or continue_conversation parameters
  • _extract_model_settings() does not extract these settings from model_settings
  • _build_agent_options() does not pass these options to ClaudeAgentOptions
  • Each query is treated as a new independent session

Expected Behavior

Users should be able to:

  1. Pass resume (session_id) via model_settings to resume a previous session
  2. Set continue_conversation either at instance level (constructor) or per-request (model_settings)

Proposed Solution

  1. Add continue_conversation parameter to ClaudeCodeModel.__init__()
  2. Add resume and continue_conversation to ClaudeCodeModelSettings TypedDict
  3. Update _ExtractedSettings NamedTuple to include these fields
  4. Update _extract_model_settings() to extract these settings
  5. Update _build_agent_options() to pass these options to ClaudeAgentOptions
  6. Update _execute_request() and stream_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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions