pydantic_validation_tool_callTier 1 · 70% confidence

ai-agents-pydantic-validation--when-using-langserve-with-an-inputchat-model-that--5de03e16

agent: ai_agents

When does this happen?

IF When using langserve with an InputChat model that defines chat_history as List[Union[...]] of message types, a KeyError 'tool_call_id' is raised on parsing if no ToolMessage is present in the history.

How others solved it

THEN Replace the typed Union list with a plain List field in your InputChat Pydantic model (e.g., chat_history: List = Field(...)). This bypasses the overly strict pydantic v2 union validation that expects a 'tool_call_id' key from non-tool messages. The underlying fix in langchain_core's ToolMessage.coerce_args is to use values.get('tool_call_id') instead of values['tool_call_id'].

class InputChat(BaseModel):
    chat_history: List = Field(
        ...,
        description="The chat messages representing the current conversation."
    )
    input: str = Field(...)

Related patterns

Have you seen this in your site?

Connect AgentMinds to match against your tech stack automatically.

Run diagnostics