* feat: add conversation_id parameter to context endpoint [LET-6989] Add optional conversation_id query parameter to retrieve_agent_context_window. When provided, the endpoint uses messages from the specific conversation instead of the agent's default message_ids. 👾 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta <noreply@letta.com> * chore: regenerate SDK after context endpoint update [LET-6989] 👾 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta <noreply@letta.com> * feat: add isolated blocks support for conversations Allows conversations to have their own copies of specific memory blocks (e.g., todo_list) that override agent defaults, enabling conversation-specific state isolation. 👾 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta <noreply@letta.com> * undo * update apis * test * cleanup * fix tests * simplify * move override logic * patch --------- Co-authored-by: Letta <noreply@letta.com>
38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
from typing import List, Optional
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
from letta.schemas.letta_base import OrmMetadataBase
|
|
|
|
|
|
class Conversation(OrmMetadataBase):
|
|
"""Represents a conversation on an agent for concurrent messaging."""
|
|
|
|
__id_prefix__ = "conv"
|
|
|
|
id: str = Field(..., description="The unique identifier of the conversation.")
|
|
agent_id: str = Field(..., description="The ID of the agent this conversation belongs to.")
|
|
summary: Optional[str] = Field(None, description="A summary of the conversation.")
|
|
in_context_message_ids: List[str] = Field(default_factory=list, description="The IDs of in-context messages for the conversation.")
|
|
isolated_block_ids: List[str] = Field(
|
|
default_factory=list,
|
|
description="IDs of blocks that are isolated (specific to this conversation, overriding agent defaults).",
|
|
)
|
|
|
|
|
|
class CreateConversation(BaseModel):
|
|
"""Request model for creating a new conversation."""
|
|
|
|
summary: Optional[str] = Field(None, description="A summary of the conversation.")
|
|
isolated_block_labels: Optional[List[str]] = Field(
|
|
None,
|
|
description="List of block labels that should be isolated (conversation-specific) rather than shared across conversations. "
|
|
"New blocks will be created as copies of the agent's blocks with these labels.",
|
|
)
|
|
|
|
|
|
class UpdateConversation(BaseModel):
|
|
"""Request model for updating a conversation."""
|
|
|
|
summary: Optional[str] = Field(None, description="A summary of the conversation.")
|