* feat: allow client-side tools to be specified in request Add `client_tools` field to LettaRequest to allow passing tool schemas at message creation time without requiring server-side registration. When the agent calls a client-side tool, execution pauses with stop_reason=requires_approval for the client to provide tool returns. - Add ClientToolSchema class for request-level tool schemas - Merge client tools with agent tools in _get_valid_tools() - Treat client-side tool calls as requiring approval - Add integration tests for client-side tools flow 🤖 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta <noreply@letta.com> * test: add comprehensive end-to-end test for client-side tools Update integration test to verify the complete flow: - Agent calls client-side tool and pauses - Client provides tool return with secret code - Agent processes and responds - User asks about the code, agent recalls it - Validate full conversation history makes sense 🤖 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta <noreply@letta.com> * update apis * fix: client-side tools schema format and test assertions - Use flat schema format for client tools (matching t.json_schema) - Support both object and dict access for client tools - Fix stop_reason assertions to access .stop_reason attribute 🤖 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta <noreply@letta.com> * refactor: simplify client_tools access pattern ClientToolSchema objects always have .name attribute 🤖 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta <noreply@letta.com> * fix: add client_tools parameter to LettaAgentV2 for API compatibility V2 agent doesn't use client_tools but needs the parameter to match the base class signature. 🤖 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta <noreply@letta.com> * revert: remove client_tools from LettaRequestConfig Client-side tools don't work with background jobs since there's no client present to provide tool returns. 🤖 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta <noreply@letta.com> * fix: add client_tools parameter to SleeptimeMultiAgent classes Add client_tools to step() and stream() methods in: - SleeptimeMultiAgentV3 - SleeptimeMultiAgentV4 🤖 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta <noreply@letta.com> * chore: regenerate API specs for client_tools support 🤖 Generated with [Letta Code](https://letta.com) Co-Authored-By: Letta <noreply@letta.com> --------- Co-authored-by: Letta <noreply@letta.com>
9.4 KiB
9.4 KiB