{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "#/components/schemas/ToolReturnCreate", "title": "ToolReturnCreate", "properties": { "type": { "type": "string", "const": "tool_return", "title": "Type", "description": "The message type to be created.", "default": "tool_return" }, "otid": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Otid", "description": "The offline threading id (OTID). Set by the client to deduplicate requests. Used for idempotency in background streaming mode \u2014 each message in a request must have a unique OTID. Retries of the same request should reuse the same OTIDs." }, "group_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Group Id", "description": "The multi-agent group that the message was sent in" }, "tool_returns": { "items": { "$ref": "#/components/schemas/letta__schemas__letta_message__ToolReturn" }, "type": "array", "title": "Tool Returns", "description": "List of tool returns from client-side execution" } }, "type": "object", "required": [ "tool_returns" ], "description": "Submit tool return(s) from client-side tool execution.\n\nThis is the preferred way to send tool results back to the agent after\nclient-side tool execution. It is equivalent to sending an ApprovalCreate\nwith tool return approvals, but provides a cleaner API for the common case." }