feat: add ld flag for temporal v1 agent (#6251)

* base

* generate

* remove

---------

Co-authored-by: Letta Bot <noreply@letta.com>
This commit is contained in:
jnjpng
2025-11-18 16:54:25 -08:00
committed by Caren Thomas
parent 14843b2600
commit 0459088ff3
2 changed files with 9 additions and 1 deletions

View File

@@ -12,6 +12,7 @@ class ExperimentalParams(BaseModel):
message_async: Optional[bool] = None
letta_v1_agent: Optional[bool] = None
letta_v1_agent_message_async: Optional[bool] = None
class HeaderParams(BaseModel):
@@ -31,6 +32,7 @@ def get_headers(
sdk_version: Optional[str] = Header(None, alias="X-Stainless-Package-Version"),
message_async: Optional[str] = Header(None, alias="X-Experimental-Message-Async"),
letta_v1_agent: Optional[str] = Header(None, alias="X-Experimental-Letta-V1-Agent"),
letta_v1_agent_message_async: Optional[str] = Header(None, alias="X-Experimental-Letta-V1-Agent-Message-Async"),
) -> HeaderParams:
"""Dependency injection function to extract common headers from requests."""
return HeaderParams(
@@ -41,6 +43,7 @@ def get_headers(
experimental_params=ExperimentalParams(
message_async=(message_async == "true") if message_async else None,
letta_v1_agent=(letta_v1_agent == "true") if letta_v1_agent else None,
letta_v1_agent_message_async=(letta_v1_agent_message_async == "true") if letta_v1_agent_message_async else None,
),
)

View File

@@ -1825,11 +1825,16 @@ async def send_message_async(
pydantic_run=run,
actor=actor,
)
if use_lettuce:
agent_state = await server.agent_manager.get_agent_by_id_async(
agent_id, actor, include_relationships=["memory", "multi_agent_group", "sources", "tool_exec_environment_variables", "tools"]
)
if agent_state.multi_agent_group is None and agent_state.agent_type != AgentType.letta_v1_agent:
# Allow V1 agents only if the message async flag is enabled
is_v1_message_async_enabled = (
agent_state.agent_type == AgentType.letta_v1_agent and headers.experimental_params.letta_v1_agent_message_async
)
if agent_state.multi_agent_group is None and (agent_state.agent_type != AgentType.letta_v1_agent or is_v1_message_async_enabled):
lettuce_client = await LettuceClient.create()
run_id_from_lettuce = await lettuce_client.step(
agent_state=agent_state,