letta-nightly 0.8.9.dev20250706104157__tar.gz → 0.8.10.dev20250707035305__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of letta-nightly might be problematic. Click here for more details.
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/PKG-INFO +2 -1
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/__init__.py +1 -1
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/agents/letta_agent.py +24 -7
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/agents/voice_agent.py +1 -1
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/agents/voice_sleeptime_agent.py +1 -1
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/constants.py +7 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/function_sets/files.py +2 -1
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/functions.py +0 -1
- letta_nightly-0.8.10.dev20250707035305/letta/helpers/pinecone_utils.py +143 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/openai_client.py +4 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/file.py +4 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/gpt_summarize.py +4 -6
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/file.py +6 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/letta_base.py +4 -4
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/letta_message.py +15 -7
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/letta_message_content.py +15 -15
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/llm_config.py +4 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/message.py +35 -31
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/providers.py +17 -10
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/app.py +11 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/agents.py +19 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/sources.py +36 -7
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_manager.py +8 -2
- letta_nightly-0.8.10.dev20250707035305/letta/services/file_processor/embedder/base_embedder.py +16 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_processor/embedder/openai_embedder.py +3 -2
- letta_nightly-0.8.10.dev20250707035305/letta/services/file_processor/embedder/pinecone_embedder.py +74 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_processor/file_processor.py +22 -22
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/job_manager.py +0 -4
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/source_manager.py +0 -1
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/summarizer/enums.py +1 -0
- letta_nightly-0.8.10.dev20250707035305/letta/services/summarizer/summarizer.py +425 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_executor/files_tool_executor.py +109 -3
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/user_manager.py +0 -1
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/settings.py +13 -1
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/system.py +16 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/pyproject.toml +3 -1
- letta_nightly-0.8.9.dev20250706104157/letta/services/summarizer/summarizer.py +0 -194
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/LICENSE +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/README.md +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/agent.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/agents/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/agents/base_agent.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/agents/ephemeral_agent.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/agents/ephemeral_summary_agent.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/agents/exceptions.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/agents/helpers.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/agents/letta_agent_batch.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/cli/cli.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/cli/cli_load.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/client/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/client/client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/client/streaming.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/client/utils.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/config.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/data_sources/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/data_sources/connectors.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/data_sources/connectors_helper.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/data_sources/redis_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/embeddings.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/errors.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/ast_parsers.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/async_composio_toolset.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/composio_helpers.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/function_sets/base.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/function_sets/builtin.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/function_sets/extras.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/function_sets/multi_agent.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/function_sets/voice.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/helpers.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/interface.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/mcp_client/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/mcp_client/base_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/mcp_client/exceptions.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/mcp_client/sse_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/mcp_client/stdio_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/mcp_client/types.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/prompts.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/schema_generator.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/functions/types.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/groups/dynamic_multi_agent.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/groups/helpers.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/groups/round_robin_multi_agent.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/groups/sleeptime_multi_agent.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/groups/sleeptime_multi_agent_v2.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/groups/supervisor_multi_agent.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/helpers/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/helpers/composio_helpers.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/helpers/converters.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/helpers/datetime_helpers.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/helpers/decorators.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/helpers/json_helpers.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/helpers/message_helper.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/helpers/singleton.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/helpers/tool_execution_helper.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/helpers/tool_rule_solver.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/humans/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/humans/examples/basic.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/humans/examples/cs_phd.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/interface.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/interfaces/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/interfaces/anthropic_streaming_interface.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/interfaces/openai_chat_completions_streaming_interface.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/interfaces/openai_streaming_interface.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/interfaces/utils.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/jobs/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/jobs/helpers.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/jobs/llm_batch_job_polling.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/jobs/scheduler.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/jobs/types.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/anthropic.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/anthropic_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/aws_bedrock.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/azure_openai.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/azure_openai_constants.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/bedrock_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/cohere.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/deepseek.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/google_ai_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/google_constants.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/google_vertex_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/helpers.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/llm_api_tools.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/llm_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/llm_client_base.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/mistral.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/llm_api/openai.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/README.md +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/chat_completion_proxy.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/constants.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/function_parser.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/grammars/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/grammars/gbnf_grammar_generator.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/grammars/json.gbnf +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/grammars/json_func_calls_with_inner_thoughts.gbnf +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/json_parser.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/koboldcpp/api.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/koboldcpp/settings.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/llamacpp/api.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/llamacpp/settings.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/llm_chat_completion_wrappers/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/llm_chat_completion_wrappers/airoboros.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/llm_chat_completion_wrappers/chatml.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/llm_chat_completion_wrappers/configurable_wrapper.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/llm_chat_completion_wrappers/dolphin.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/llm_chat_completion_wrappers/llama3.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/llm_chat_completion_wrappers/simple_summary_wrapper.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/llm_chat_completion_wrappers/wrapper_base.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/llm_chat_completion_wrappers/zephyr.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/lmstudio/api.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/lmstudio/settings.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/ollama/api.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/ollama/settings.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/settings/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/settings/deterministic_mirostat.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/settings/settings.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/settings/simple.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/utils.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/vllm/api.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/webui/api.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/webui/legacy_api.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/webui/legacy_settings.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/local_llm/webui/settings.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/log.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/main.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/memory.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/openai_backcompat/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/openai_backcompat/openai_object.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/__all__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/agent.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/agents_tags.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/base.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/block.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/block_history.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/blocks_agents.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/custom_columns.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/enums.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/errors.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/files_agents.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/group.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/groups_agents.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/groups_blocks.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/identities_agents.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/identities_blocks.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/identity.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/job.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/job_messages.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/llm_batch_items.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/llm_batch_job.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/mcp_server.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/message.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/mixins.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/organization.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/passage.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/provider.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/provider_trace.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/sandbox_config.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/source.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/sources_agents.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/sqlalchemy_base.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/sqlite_functions.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/step.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/tool.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/tools_agents.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/user.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/otel/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/otel/context.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/otel/events.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/otel/metric_registry.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/otel/metrics.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/otel/resource.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/otel/tracing.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/examples/anna_pa.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/examples/google_search_persona.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/examples/memgpt_doc.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/examples/memgpt_starter.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/examples/o1_persona.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/examples/sam.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/examples/sam_pov.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/examples/sam_simple_pov_gpt35.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/examples/sleeptime_doc_persona.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/examples/sleeptime_memory_persona.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/examples/sqldb/test.db +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/personas/examples/voice_memory_persona.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/plugins/README.md +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/plugins/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/plugins/defaults.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/plugins/plugins.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/gpt_system.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_base.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_chat.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_chat_compressed.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_chat_fstring.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_convo_only.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_doc.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_gpt35_extralong.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_intuitive_knowledge.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_memory_only.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_modified_chat.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_modified_o1.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_offline_memory.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_offline_memory_chat.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_sleeptime_chat.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/memgpt_v2_chat.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/react.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/sleeptime.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/sleeptime_doc_ingest.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/sleeptime_v2.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/summary_system_prompt.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/voice_chat.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/voice_sleeptime.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/prompts/system/workflow.txt +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/pytest.ini +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/agent.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/block.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/embedding_config.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/embedding_config_overrides.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/enums.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/environment_variables.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/group.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/health.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/identity.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/job.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/letta_request.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/letta_response.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/letta_stop_reason.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/llm_batch_job.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/llm_config_overrides.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/mcp.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/memory.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/openai/chat_completion_request.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/openai/chat_completion_response.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/openai/chat_completions.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/openai/embedding_response.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/openai/openai.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/organization.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/passage.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/pip_requirement.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/provider_trace.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/response_format.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/run.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/sandbox_config.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/source.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/step.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/tool.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/tool_execution_result.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/tool_rule.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/usage.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/schemas/user.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/serialize_schemas/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/serialize_schemas/marshmallow_agent.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/serialize_schemas/marshmallow_agent_environment_variable.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/serialize_schemas/marshmallow_base.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/serialize_schemas/marshmallow_block.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/serialize_schemas/marshmallow_custom_fields.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/serialize_schemas/marshmallow_message.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/serialize_schemas/marshmallow_tag.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/serialize_schemas/marshmallow_tool.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/serialize_schemas/pydantic_agent_schema.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/constants.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/db.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/generate_openapi_schema.sh +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/auth/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/auth/index.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/auth_token.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/chat_completions_interface.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/interface.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/json_parser.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/openai/chat_completions/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/blocks.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/embeddings.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/groups.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/health.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/identities.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/jobs.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/llms.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/messages.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/organizations.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/providers.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/runs.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/sandbox_configs.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/steps.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/tags.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/telemetry.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/tools.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/users.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/routers/v1/voice.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/static_files.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/streaming_response.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/rest_api/utils.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/server.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/startup.sh +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/static_files/assets/index-048c9598.js +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/static_files/assets/index-0e31b727.css +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/static_files/favicon.ico +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/static_files/index.html +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/static_files/memgpt_logo_transparent.png +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/utils.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/ws_api/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/ws_api/example_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/ws_api/interface.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/ws_api/protocol.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/server/ws_api/server.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/agent_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/block_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/context_window_calculator/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/context_window_calculator/context_window_calculator.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/context_window_calculator/token_counter.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_processor/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_processor/chunker/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_processor/chunker/line_chunker.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_processor/chunker/llama_index_chunker.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_processor/embedder/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_processor/file_types.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_processor/parser/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_processor/parser/base_parser.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_processor/parser/mistral_parser.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/file_processor/types.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/files_agents_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/group_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/helpers/agent_manager_helper.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/helpers/tool_execution_helper.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/helpers/tool_parser_helper.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/identity_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/llm_batch_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/mcp/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/mcp/base_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/mcp/sse_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/mcp/stdio_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/mcp/streamable_http_client.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/mcp/types.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/mcp_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/message_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/organization_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/passage_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/per_agent_lock_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/provider_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/sandbox_config_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/step_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/summarizer/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/telemetry_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_executor/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_executor/builtin_tool_executor.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_executor/composio_tool_executor.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_executor/core_tool_executor.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_executor/mcp_tool_executor.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_executor/multi_agent_tool_executor.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_executor/tool_execution_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_executor/tool_execution_sandbox.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_executor/tool_executor.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_executor/tool_executor_base.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_manager.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_sandbox/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_sandbox/base.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_sandbox/e2b_sandbox.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/services/tool_sandbox/local_sandbox.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/streaming_interface.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/streaming_utils.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/templates/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/templates/sandbox_code_file.py.j2 +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/templates/sandbox_code_file_async.py.j2 +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/templates/summary_request_text.j2 +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/templates/template_helper.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/types/__init__.py +0 -0
- {letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: letta-nightly
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.10.dev20250707035305
|
|
4
4
|
Summary: Create LLM agents with long-term memory and custom tools
|
|
5
5
|
License: Apache License
|
|
6
6
|
Author: Letta Team
|
|
@@ -75,6 +75,7 @@ Requires-Dist: pathvalidate (>=3.2.1,<4.0.0)
|
|
|
75
75
|
Requires-Dist: pexpect (>=4.9.0,<5.0.0) ; extra == "dev" or extra == "all"
|
|
76
76
|
Requires-Dist: pg8000 (>=1.30.3,<2.0.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
77
77
|
Requires-Dist: pgvector (>=0.2.3,<0.3.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
78
|
+
Requires-Dist: pinecone[asyncio] (>=7.3.0,<8.0.0)
|
|
78
79
|
Requires-Dist: pre-commit (>=3.5.0,<4.0.0) ; extra == "dev" or extra == "all"
|
|
79
80
|
Requires-Dist: prettytable (>=3.9.0,<4.0.0)
|
|
80
81
|
Requires-Dist: psycopg2 (>=2.9.10,<3.0.0) ; extra == "postgres" or extra == "desktop" or extra == "all"
|
|
@@ -82,11 +82,16 @@ class LettaAgent(BaseAgent):
|
|
|
82
82
|
step_manager: StepManager = NoopStepManager(),
|
|
83
83
|
telemetry_manager: TelemetryManager = NoopTelemetryManager(),
|
|
84
84
|
current_run_id: str | None = None,
|
|
85
|
+
## summarizer settings
|
|
86
|
+
summarizer_mode: SummarizationMode = summarizer_settings.mode,
|
|
87
|
+
# for static_buffer mode
|
|
85
88
|
summary_block_label: str = DEFAULT_SUMMARY_BLOCK_LABEL,
|
|
86
89
|
message_buffer_limit: int = summarizer_settings.message_buffer_limit,
|
|
87
90
|
message_buffer_min: int = summarizer_settings.message_buffer_min,
|
|
88
91
|
enable_summarization: bool = summarizer_settings.enable_summarization,
|
|
89
92
|
max_summarization_retries: int = summarizer_settings.max_summarization_retries,
|
|
93
|
+
# for partial_evict mode
|
|
94
|
+
partial_evict_summarizer_percentage: float = summarizer_settings.partial_evict_summarizer_percentage,
|
|
90
95
|
):
|
|
91
96
|
super().__init__(agent_id=agent_id, openai_client=None, message_manager=message_manager, agent_manager=agent_manager, actor=actor)
|
|
92
97
|
|
|
@@ -124,11 +129,13 @@ class LettaAgent(BaseAgent):
|
|
|
124
129
|
)
|
|
125
130
|
|
|
126
131
|
self.summarizer = Summarizer(
|
|
127
|
-
mode=
|
|
132
|
+
mode=summarizer_mode,
|
|
133
|
+
# TODO consolidate to not use this, or push it into the Summarizer() class
|
|
128
134
|
summarizer_agent=self.summarization_agent,
|
|
129
135
|
# TODO: Make this configurable
|
|
130
136
|
message_buffer_limit=message_buffer_limit,
|
|
131
137
|
message_buffer_min=message_buffer_min,
|
|
138
|
+
partial_evict_summarizer_percentage=partial_evict_summarizer_percentage,
|
|
132
139
|
)
|
|
133
140
|
|
|
134
141
|
async def _check_run_cancellation(self) -> bool:
|
|
@@ -872,25 +879,35 @@ class LettaAgent(BaseAgent):
|
|
|
872
879
|
self.logger.warning(
|
|
873
880
|
f"Total tokens {total_tokens} exceeds configured max tokens {llm_config.context_window}, forcefully clearing message history."
|
|
874
881
|
)
|
|
875
|
-
new_in_context_messages, updated = self.summarizer.summarize(
|
|
876
|
-
in_context_messages=in_context_messages,
|
|
882
|
+
new_in_context_messages, updated = await self.summarizer.summarize(
|
|
883
|
+
in_context_messages=in_context_messages,
|
|
884
|
+
new_letta_messages=new_letta_messages,
|
|
885
|
+
force=True,
|
|
886
|
+
clear=True,
|
|
877
887
|
)
|
|
878
888
|
else:
|
|
879
|
-
|
|
880
|
-
|
|
889
|
+
self.logger.info(
|
|
890
|
+
f"Total tokens {total_tokens} does not exceed configured max tokens {llm_config.context_window}, passing summarizing w/o force."
|
|
891
|
+
)
|
|
892
|
+
new_in_context_messages, updated = await self.summarizer.summarize(
|
|
893
|
+
in_context_messages=in_context_messages,
|
|
894
|
+
new_letta_messages=new_letta_messages,
|
|
881
895
|
)
|
|
882
896
|
await self.agent_manager.set_in_context_messages_async(
|
|
883
|
-
agent_id=self.agent_id,
|
|
897
|
+
agent_id=self.agent_id,
|
|
898
|
+
message_ids=[m.id for m in new_in_context_messages],
|
|
899
|
+
actor=self.actor,
|
|
884
900
|
)
|
|
885
901
|
|
|
886
902
|
return new_in_context_messages
|
|
887
903
|
|
|
888
904
|
@trace_method
|
|
889
905
|
async def summarize_conversation_history(self) -> AgentState:
|
|
906
|
+
"""Called when the developer explicitly triggers compaction via the API"""
|
|
890
907
|
agent_state = await self.agent_manager.get_agent_by_id_async(agent_id=self.agent_id, actor=self.actor)
|
|
891
908
|
message_ids = agent_state.message_ids
|
|
892
909
|
in_context_messages = await self.message_manager.get_messages_by_ids_async(message_ids=message_ids, actor=self.actor)
|
|
893
|
-
new_in_context_messages, updated = self.summarizer.summarize(
|
|
910
|
+
new_in_context_messages, updated = await self.summarizer.summarize(
|
|
894
911
|
in_context_messages=in_context_messages, new_letta_messages=[], force=True
|
|
895
912
|
)
|
|
896
913
|
return await self.agent_manager.set_in_context_messages_async(
|
|
@@ -295,7 +295,7 @@ class VoiceAgent(BaseAgent):
|
|
|
295
295
|
new_letta_messages = await self.message_manager.create_many_messages_async(letta_message_db_queue, actor=self.actor)
|
|
296
296
|
|
|
297
297
|
# TODO: Make this more general and configurable, less brittle
|
|
298
|
-
new_in_context_messages, updated = summarizer.summarize(
|
|
298
|
+
new_in_context_messages, updated = await summarizer.summarize(
|
|
299
299
|
in_context_messages=in_context_messages, new_letta_messages=new_letta_messages
|
|
300
300
|
)
|
|
301
301
|
|
|
@@ -90,7 +90,7 @@ class VoiceSleeptimeAgent(LettaAgent):
|
|
|
90
90
|
current_in_context_messages, new_in_context_messages, stop_reason, usage = await super()._step(
|
|
91
91
|
agent_state=agent_state, input_messages=input_messages, max_steps=max_steps
|
|
92
92
|
)
|
|
93
|
-
new_in_context_messages, updated = self.summarizer.summarize(
|
|
93
|
+
new_in_context_messages, updated = await self.summarizer.summarize(
|
|
94
94
|
in_context_messages=current_in_context_messages, new_letta_messages=new_in_context_messages
|
|
95
95
|
)
|
|
96
96
|
self.agent_manager.set_in_context_messages(
|
{letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/constants.py
RENAMED
|
@@ -364,3 +364,10 @@ REDIS_RUN_ID_PREFIX = "agent:send_message:run_id"
|
|
|
364
364
|
MAX_FILES_OPEN = 5
|
|
365
365
|
|
|
366
366
|
GET_PROVIDERS_TIMEOUT_SECONDS = 10
|
|
367
|
+
|
|
368
|
+
# Pinecone related fields
|
|
369
|
+
PINECONE_EMBEDDING_MODEL: str = "llama-text-embed-v2"
|
|
370
|
+
PINECONE_TEXT_FIELD_NAME = "chunk_text"
|
|
371
|
+
PINECONE_METRIC = "cosine"
|
|
372
|
+
PINECONE_CLOUD = "aws"
|
|
373
|
+
PINECONE_REGION = "us-east-1"
|
|
@@ -65,7 +65,7 @@ async def grep_files(
|
|
|
65
65
|
raise NotImplementedError("Tool not implemented. Please contact the Letta team.")
|
|
66
66
|
|
|
67
67
|
|
|
68
|
-
async def semantic_search_files(agent_state: "AgentState", query: str) -> List["FileMetadata"]:
|
|
68
|
+
async def semantic_search_files(agent_state: "AgentState", query: str, limit: int = 5) -> List["FileMetadata"]:
|
|
69
69
|
"""
|
|
70
70
|
Get list of most relevant chunks from any file using vector/embedding search.
|
|
71
71
|
|
|
@@ -76,6 +76,7 @@ async def semantic_search_files(agent_state: "AgentState", query: str) -> List["
|
|
|
76
76
|
|
|
77
77
|
Args:
|
|
78
78
|
query (str): The search query.
|
|
79
|
+
limit: Maximum number of results to return (default: 5)
|
|
79
80
|
|
|
80
81
|
Returns:
|
|
81
82
|
List[FileMetadata]: List of matching files.
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
from typing import Any, Dict, List
|
|
2
|
+
|
|
3
|
+
from pinecone import PineconeAsyncio
|
|
4
|
+
|
|
5
|
+
from letta.constants import PINECONE_CLOUD, PINECONE_EMBEDDING_MODEL, PINECONE_METRIC, PINECONE_REGION, PINECONE_TEXT_FIELD_NAME
|
|
6
|
+
from letta.log import get_logger
|
|
7
|
+
from letta.schemas.user import User
|
|
8
|
+
from letta.settings import settings
|
|
9
|
+
|
|
10
|
+
logger = get_logger(__name__)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def should_use_pinecone(verbose: bool = False):
|
|
14
|
+
if verbose:
|
|
15
|
+
logger.info(
|
|
16
|
+
"Pinecone check: enable_pinecone=%s, api_key=%s, agent_index=%s, source_index=%s",
|
|
17
|
+
settings.enable_pinecone,
|
|
18
|
+
bool(settings.pinecone_api_key),
|
|
19
|
+
bool(settings.pinecone_agent_index),
|
|
20
|
+
bool(settings.pinecone_source_index),
|
|
21
|
+
)
|
|
22
|
+
|
|
23
|
+
return settings.enable_pinecone and settings.pinecone_api_key and settings.pinecone_agent_index and settings.pinecone_source_index
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
async def upsert_pinecone_indices():
|
|
27
|
+
from pinecone import IndexEmbed, PineconeAsyncio
|
|
28
|
+
|
|
29
|
+
for index_name in get_pinecone_indices():
|
|
30
|
+
async with PineconeAsyncio(api_key=settings.pinecone_api_key) as pc:
|
|
31
|
+
if not await pc.has_index(index_name):
|
|
32
|
+
await pc.create_index_for_model(
|
|
33
|
+
name=index_name,
|
|
34
|
+
cloud=PINECONE_CLOUD,
|
|
35
|
+
region=PINECONE_REGION,
|
|
36
|
+
embed=IndexEmbed(model=PINECONE_EMBEDDING_MODEL, field_map={"text": PINECONE_TEXT_FIELD_NAME}, metric=PINECONE_METRIC),
|
|
37
|
+
)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def get_pinecone_indices() -> List[str]:
|
|
41
|
+
return [settings.pinecone_agent_index, settings.pinecone_source_index]
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
async def upsert_file_records_to_pinecone_index(file_id: str, source_id: str, chunks: List[str], actor: User):
|
|
45
|
+
records = []
|
|
46
|
+
for i, chunk in enumerate(chunks):
|
|
47
|
+
record = {
|
|
48
|
+
"_id": f"{file_id}_{i}",
|
|
49
|
+
PINECONE_TEXT_FIELD_NAME: chunk,
|
|
50
|
+
"file_id": file_id,
|
|
51
|
+
"source_id": source_id,
|
|
52
|
+
}
|
|
53
|
+
records.append(record)
|
|
54
|
+
|
|
55
|
+
return await upsert_records_to_pinecone_index(records, actor)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
async def delete_file_records_from_pinecone_index(file_id: str, actor: User):
|
|
59
|
+
from pinecone.exceptions.exceptions import NotFoundException
|
|
60
|
+
|
|
61
|
+
namespace = actor.organization_id
|
|
62
|
+
try:
|
|
63
|
+
async with PineconeAsyncio(api_key=settings.pinecone_api_key) as pc:
|
|
64
|
+
description = await pc.describe_index(name=settings.pinecone_source_index)
|
|
65
|
+
async with pc.IndexAsyncio(host=description.index.host) as dense_index:
|
|
66
|
+
await dense_index.delete(
|
|
67
|
+
filter={
|
|
68
|
+
"file_id": {"$eq": file_id},
|
|
69
|
+
},
|
|
70
|
+
namespace=namespace,
|
|
71
|
+
)
|
|
72
|
+
except NotFoundException:
|
|
73
|
+
logger.warning(f"Pinecone namespace {namespace} not found for {file_id} and {actor.organization_id}")
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
async def delete_source_records_from_pinecone_index(source_id: str, actor: User):
|
|
77
|
+
from pinecone.exceptions.exceptions import NotFoundException
|
|
78
|
+
|
|
79
|
+
namespace = actor.organization_id
|
|
80
|
+
try:
|
|
81
|
+
async with PineconeAsyncio(api_key=settings.pinecone_api_key) as pc:
|
|
82
|
+
description = await pc.describe_index(name=settings.pinecone_source_index)
|
|
83
|
+
async with pc.IndexAsyncio(host=description.index.host) as dense_index:
|
|
84
|
+
await dense_index.delete(filter={"source_id": {"$eq": source_id}}, namespace=namespace)
|
|
85
|
+
except NotFoundException:
|
|
86
|
+
logger.warning(f"Pinecone namespace {namespace} not found for {source_id} and {actor.organization_id}")
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
async def upsert_records_to_pinecone_index(records: List[dict], actor: User):
|
|
90
|
+
async with PineconeAsyncio(api_key=settings.pinecone_api_key) as pc:
|
|
91
|
+
description = await pc.describe_index(name=settings.pinecone_source_index)
|
|
92
|
+
async with pc.IndexAsyncio(host=description.index.host) as dense_index:
|
|
93
|
+
await dense_index.upsert_records(actor.organization_id, records)
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
async def search_pinecone_index(query: str, limit: int, filter: Dict[str, Any], actor: User) -> Dict[str, Any]:
|
|
97
|
+
async with PineconeAsyncio(api_key=settings.pinecone_api_key) as pc:
|
|
98
|
+
description = await pc.describe_index(name=settings.pinecone_source_index)
|
|
99
|
+
async with pc.IndexAsyncio(host=description.index.host) as dense_index:
|
|
100
|
+
namespace = actor.organization_id
|
|
101
|
+
|
|
102
|
+
try:
|
|
103
|
+
# Search the dense index with reranking
|
|
104
|
+
search_results = await dense_index.search(
|
|
105
|
+
namespace=namespace,
|
|
106
|
+
query={
|
|
107
|
+
"top_k": limit,
|
|
108
|
+
"inputs": {"text": query},
|
|
109
|
+
"filter": filter,
|
|
110
|
+
},
|
|
111
|
+
rerank={"model": "bge-reranker-v2-m3", "top_n": limit, "rank_fields": [PINECONE_TEXT_FIELD_NAME]},
|
|
112
|
+
)
|
|
113
|
+
return search_results
|
|
114
|
+
except Exception as e:
|
|
115
|
+
logger.warning(f"Failed to search Pinecone namespace {actor.organization_id}: {str(e)}")
|
|
116
|
+
raise e
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
async def list_pinecone_index_for_files(file_id: str, actor: User, limit: int = None, pagination_token: str = None) -> List[str]:
|
|
120
|
+
from pinecone.exceptions.exceptions import NotFoundException
|
|
121
|
+
|
|
122
|
+
namespace = actor.organization_id
|
|
123
|
+
try:
|
|
124
|
+
async with PineconeAsyncio(api_key=settings.pinecone_api_key) as pc:
|
|
125
|
+
description = await pc.describe_index(name=settings.pinecone_source_index)
|
|
126
|
+
async with pc.IndexAsyncio(host=description.index.host) as dense_index:
|
|
127
|
+
|
|
128
|
+
kwargs = {"namespace": namespace, "prefix": file_id}
|
|
129
|
+
if limit is not None:
|
|
130
|
+
kwargs["limit"] = limit
|
|
131
|
+
if pagination_token is not None:
|
|
132
|
+
kwargs["pagination_token"] = pagination_token
|
|
133
|
+
|
|
134
|
+
try:
|
|
135
|
+
result = []
|
|
136
|
+
async for ids in dense_index.list(**kwargs):
|
|
137
|
+
result.extend(ids)
|
|
138
|
+
return result
|
|
139
|
+
except Exception as e:
|
|
140
|
+
logger.warning(f"Failed to list Pinecone namespace {actor.organization_id}: {str(e)}")
|
|
141
|
+
raise e
|
|
142
|
+
except NotFoundException:
|
|
143
|
+
logger.warning(f"Pinecone namespace {namespace} not found for {file_id} and {actor.organization_id}")
|
|
@@ -216,6 +216,10 @@ class OpenAIClient(LLMClientBase):
|
|
|
216
216
|
# NOTE: the reasoners that don't support temperature require 1.0, not None
|
|
217
217
|
temperature=llm_config.temperature if supports_temperature_param(model) else 1.0,
|
|
218
218
|
)
|
|
219
|
+
|
|
220
|
+
if llm_config.frequency_penalty is not None:
|
|
221
|
+
data.frequency_penalty = llm_config.frequency_penalty
|
|
222
|
+
|
|
219
223
|
if tools and supports_parallel_tool_calling(model):
|
|
220
224
|
data.parallel_tool_calls = False
|
|
221
225
|
|
{letta_nightly-0.8.9.dev20250706104157 → letta_nightly-0.8.10.dev20250707035305}/letta/orm/file.py
RENAMED
|
@@ -60,6 +60,8 @@ class FileMetadata(SqlalchemyBase, OrganizationMixin, SourceMixin, AsyncAttrs):
|
|
|
60
60
|
)
|
|
61
61
|
|
|
62
62
|
error_message: Mapped[Optional[str]] = mapped_column(Text, nullable=True, doc="Any error message encountered during processing.")
|
|
63
|
+
total_chunks: Mapped[Optional[int]] = mapped_column(Integer, nullable=True, doc="Total number of chunks for the file.")
|
|
64
|
+
chunks_embedded: Mapped[Optional[int]] = mapped_column(Integer, nullable=True, doc="Number of chunks that have been embedded.")
|
|
63
65
|
|
|
64
66
|
# relationships
|
|
65
67
|
organization: Mapped["Organization"] = relationship("Organization", back_populates="files", lazy="selectin")
|
|
@@ -112,6 +114,8 @@ class FileMetadata(SqlalchemyBase, OrganizationMixin, SourceMixin, AsyncAttrs):
|
|
|
112
114
|
file_last_modified_date=self.file_last_modified_date,
|
|
113
115
|
processing_status=self.processing_status,
|
|
114
116
|
error_message=self.error_message,
|
|
117
|
+
total_chunks=self.total_chunks,
|
|
118
|
+
chunks_embedded=self.chunks_embedded,
|
|
115
119
|
created_at=self.created_at,
|
|
116
120
|
updated_at=self.updated_at,
|
|
117
121
|
is_deleted=self.is_deleted,
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
WORD_LIMIT = 100
|
|
2
|
-
SYSTEM = f"""
|
|
3
|
-
Your job is to summarize a history of previous messages in a conversation between an AI persona and a human.
|
|
2
|
+
SYSTEM = f"""Your job is to summarize a history of previous messages in a conversation between an AI persona and a human.
|
|
4
3
|
The conversation you are given is a from a fixed context window and may not be complete.
|
|
5
4
|
Messages sent by the AI are marked with the 'assistant' role.
|
|
6
|
-
The AI 'assistant' can also make calls to
|
|
5
|
+
The AI 'assistant' can also make calls to tools, whose outputs can be seen in messages with the 'tool' role.
|
|
7
6
|
Things the AI says in the message content are considered inner monologue and are not seen by the user.
|
|
8
7
|
The only AI messages seen by the user are from when the AI uses 'send_message'.
|
|
9
8
|
Messages the user sends are in the 'user' role.
|
|
10
9
|
The 'user' role is also used for important system events, such as login events and heartbeat events (heartbeats run the AI's program without user action, allowing the AI to act without prompting from the user sending them a message).
|
|
11
|
-
Summarize what happened in the conversation from the perspective of the AI (use the first person).
|
|
10
|
+
Summarize what happened in the conversation from the perspective of the AI (use the first person from the perspective of the AI).
|
|
12
11
|
Keep your summary less than {WORD_LIMIT} words, do NOT exceed this word limit.
|
|
13
|
-
Only output the summary, do NOT include anything else in your output.
|
|
14
|
-
"""
|
|
12
|
+
Only output the summary, do NOT include anything else in your output."""
|
|
@@ -41,6 +41,8 @@ class FileMetadata(FileMetadataBase):
|
|
|
41
41
|
description="The current processing status of the file (e.g. pending, parsing, embedding, completed, error).",
|
|
42
42
|
)
|
|
43
43
|
error_message: Optional[str] = Field(default=None, description="Optional error message if the file failed processing.")
|
|
44
|
+
total_chunks: Optional[int] = Field(default=None, description="Total number of chunks for the file.")
|
|
45
|
+
chunks_embedded: Optional[int] = Field(default=None, description="Number of chunks that have been embedded.")
|
|
44
46
|
|
|
45
47
|
# orm metadata, optional fields
|
|
46
48
|
created_at: Optional[datetime] = Field(default_factory=datetime.utcnow, description="The creation date of the file.")
|
|
@@ -52,6 +54,10 @@ class FileMetadata(FileMetadataBase):
|
|
|
52
54
|
default=None, description="Optional full-text content of the file; only populated on demand due to its size."
|
|
53
55
|
)
|
|
54
56
|
|
|
57
|
+
def is_processing_terminal(self) -> bool:
|
|
58
|
+
"""Check if the file processing status is in a terminal state (completed or error)."""
|
|
59
|
+
return self.processing_status in (FileProcessingStatus.COMPLETED, FileProcessingStatus.ERROR)
|
|
60
|
+
|
|
55
61
|
|
|
56
62
|
class FileAgentBase(LettaBase):
|
|
57
63
|
"""Base class for the FileMetadata-⇄-Agent association schemas"""
|
|
@@ -97,7 +97,7 @@ class LettaBase(BaseModel):
|
|
|
97
97
|
|
|
98
98
|
class OrmMetadataBase(LettaBase):
|
|
99
99
|
# metadata fields
|
|
100
|
-
created_by_id: Optional[str] = Field(None, description="The id of the user that made this object.")
|
|
101
|
-
last_updated_by_id: Optional[str] = Field(None, description="The id of the user that made this object.")
|
|
102
|
-
created_at: Optional[datetime] = Field(None, description="The timestamp when the object was created.")
|
|
103
|
-
updated_at: Optional[datetime] = Field(None, description="The timestamp when the object was last updated.")
|
|
100
|
+
created_by_id: Optional[str] = Field(default=None, description="The id of the user that made this object.")
|
|
101
|
+
last_updated_by_id: Optional[str] = Field(default=None, description="The id of the user that made this object.")
|
|
102
|
+
created_at: Optional[datetime] = Field(default=None, description="The timestamp when the object was created.")
|
|
103
|
+
updated_at: Optional[datetime] = Field(default=None, description="The timestamp when the object was last updated.")
|
|
@@ -72,7 +72,7 @@ class SystemMessage(LettaMessage):
|
|
|
72
72
|
content (str): The message content sent by the system
|
|
73
73
|
"""
|
|
74
74
|
|
|
75
|
-
message_type: Literal[MessageType.system_message] = Field(MessageType.system_message, description="The type of the message.")
|
|
75
|
+
message_type: Literal[MessageType.system_message] = Field(default=MessageType.system_message, description="The type of the message.")
|
|
76
76
|
content: str = Field(..., description="The message content sent by the system")
|
|
77
77
|
|
|
78
78
|
|
|
@@ -87,7 +87,7 @@ class UserMessage(LettaMessage):
|
|
|
87
87
|
content (Union[str, List[LettaUserMessageContentUnion]]): The message content sent by the user (can be a string or an array of multi-modal content parts)
|
|
88
88
|
"""
|
|
89
89
|
|
|
90
|
-
message_type: Literal[MessageType.user_message] = Field(MessageType.user_message, description="The type of the message.")
|
|
90
|
+
message_type: Literal[MessageType.user_message] = Field(default=MessageType.user_message, description="The type of the message.")
|
|
91
91
|
content: Union[str, List[LettaUserMessageContentUnion]] = Field(
|
|
92
92
|
...,
|
|
93
93
|
description="The message content sent by the user (can be a string or an array of multi-modal content parts)",
|
|
@@ -109,7 +109,9 @@ class ReasoningMessage(LettaMessage):
|
|
|
109
109
|
signature (Optional[str]): The model-generated signature of the reasoning step
|
|
110
110
|
"""
|
|
111
111
|
|
|
112
|
-
message_type: Literal[MessageType.reasoning_message] = Field(
|
|
112
|
+
message_type: Literal[MessageType.reasoning_message] = Field(
|
|
113
|
+
default=MessageType.reasoning_message, description="The type of the message."
|
|
114
|
+
)
|
|
113
115
|
source: Literal["reasoner_model", "non_reasoner_model"] = "non_reasoner_model"
|
|
114
116
|
reasoning: str
|
|
115
117
|
signature: Optional[str] = None
|
|
@@ -130,7 +132,7 @@ class HiddenReasoningMessage(LettaMessage):
|
|
|
130
132
|
"""
|
|
131
133
|
|
|
132
134
|
message_type: Literal[MessageType.hidden_reasoning_message] = Field(
|
|
133
|
-
MessageType.hidden_reasoning_message, description="The type of the message."
|
|
135
|
+
default=MessageType.hidden_reasoning_message, description="The type of the message."
|
|
134
136
|
)
|
|
135
137
|
state: Literal["redacted", "omitted"]
|
|
136
138
|
hidden_reasoning: Optional[str] = None
|
|
@@ -170,7 +172,9 @@ class ToolCallMessage(LettaMessage):
|
|
|
170
172
|
tool_call (Union[ToolCall, ToolCallDelta]): The tool call
|
|
171
173
|
"""
|
|
172
174
|
|
|
173
|
-
message_type: Literal[MessageType.tool_call_message] = Field(
|
|
175
|
+
message_type: Literal[MessageType.tool_call_message] = Field(
|
|
176
|
+
default=MessageType.tool_call_message, description="The type of the message."
|
|
177
|
+
)
|
|
174
178
|
tool_call: Union[ToolCall, ToolCallDelta]
|
|
175
179
|
|
|
176
180
|
def model_dump(self, *args, **kwargs):
|
|
@@ -222,7 +226,9 @@ class ToolReturnMessage(LettaMessage):
|
|
|
222
226
|
stderr (Optional[List(str)]): Captured stderr from the tool invocation
|
|
223
227
|
"""
|
|
224
228
|
|
|
225
|
-
message_type: Literal[MessageType.tool_return_message] = Field(
|
|
229
|
+
message_type: Literal[MessageType.tool_return_message] = Field(
|
|
230
|
+
default=MessageType.tool_return_message, description="The type of the message."
|
|
231
|
+
)
|
|
226
232
|
tool_return: str
|
|
227
233
|
status: Literal["success", "error"]
|
|
228
234
|
tool_call_id: str
|
|
@@ -241,7 +247,9 @@ class AssistantMessage(LettaMessage):
|
|
|
241
247
|
content (Union[str, List[LettaAssistantMessageContentUnion]]): The message content sent by the agent (can be a string or an array of content parts)
|
|
242
248
|
"""
|
|
243
249
|
|
|
244
|
-
message_type: Literal[MessageType.assistant_message] = Field(
|
|
250
|
+
message_type: Literal[MessageType.assistant_message] = Field(
|
|
251
|
+
default=MessageType.assistant_message, description="The type of the message."
|
|
252
|
+
)
|
|
245
253
|
content: Union[str, List[LettaAssistantMessageContentUnion]] = Field(
|
|
246
254
|
...,
|
|
247
255
|
description="The message content sent by the agent (can be a string or an array of content parts)",
|
|
@@ -24,7 +24,7 @@ class MessageContent(BaseModel):
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
class TextContent(MessageContent):
|
|
27
|
-
type: Literal[MessageContentType.text] = Field(MessageContentType.text, description="The type of the message.")
|
|
27
|
+
type: Literal[MessageContentType.text] = Field(default=MessageContentType.text, description="The type of the message.")
|
|
28
28
|
text: str = Field(..., description="The text content of the message.")
|
|
29
29
|
|
|
30
30
|
|
|
@@ -44,27 +44,27 @@ class ImageSource(BaseModel):
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
class UrlImage(ImageSource):
|
|
47
|
-
type: Literal[ImageSourceType.url] = Field(ImageSourceType.url, description="The source type for the image.")
|
|
47
|
+
type: Literal[ImageSourceType.url] = Field(default=ImageSourceType.url, description="The source type for the image.")
|
|
48
48
|
url: str = Field(..., description="The URL of the image.")
|
|
49
49
|
|
|
50
50
|
|
|
51
51
|
class Base64Image(ImageSource):
|
|
52
|
-
type: Literal[ImageSourceType.base64] = Field(ImageSourceType.base64, description="The source type for the image.")
|
|
52
|
+
type: Literal[ImageSourceType.base64] = Field(default=ImageSourceType.base64, description="The source type for the image.")
|
|
53
53
|
media_type: str = Field(..., description="The media type for the image.")
|
|
54
54
|
data: str = Field(..., description="The base64 encoded image data.")
|
|
55
55
|
detail: Optional[str] = Field(
|
|
56
|
-
None,
|
|
56
|
+
default=None,
|
|
57
57
|
description="What level of detail to use when processing and understanding the image (low, high, or auto to let the model decide)",
|
|
58
58
|
)
|
|
59
59
|
|
|
60
60
|
|
|
61
61
|
class LettaImage(ImageSource):
|
|
62
|
-
type: Literal[ImageSourceType.letta] = Field(ImageSourceType.letta, description="The source type for the image.")
|
|
62
|
+
type: Literal[ImageSourceType.letta] = Field(default=ImageSourceType.letta, description="The source type for the image.")
|
|
63
63
|
file_id: str = Field(..., description="The unique identifier of the image file persisted in storage.")
|
|
64
|
-
media_type: Optional[str] = Field(None, description="The media type for the image.")
|
|
65
|
-
data: Optional[str] = Field(None, description="The base64 encoded image data.")
|
|
64
|
+
media_type: Optional[str] = Field(default=None, description="The media type for the image.")
|
|
65
|
+
data: Optional[str] = Field(default=None, description="The base64 encoded image data.")
|
|
66
66
|
detail: Optional[str] = Field(
|
|
67
|
-
None,
|
|
67
|
+
default=None,
|
|
68
68
|
description="What level of detail to use when processing and understanding the image (low, high, or auto to let the model decide)",
|
|
69
69
|
)
|
|
70
70
|
|
|
@@ -73,7 +73,7 @@ ImageSourceUnion = Annotated[Union[UrlImage, Base64Image, LettaImage], Field(dis
|
|
|
73
73
|
|
|
74
74
|
|
|
75
75
|
class ImageContent(MessageContent):
|
|
76
|
-
type: Literal[MessageContentType.image] = Field(MessageContentType.image, description="The type of the message.")
|
|
76
|
+
type: Literal[MessageContentType.image] = Field(default=MessageContentType.image, description="The type of the message.")
|
|
77
77
|
source: ImageSourceUnion = Field(..., description="The source of the image.")
|
|
78
78
|
|
|
79
79
|
|
|
@@ -164,7 +164,7 @@ def get_letta_assistant_message_content_union_str_json_schema():
|
|
|
164
164
|
|
|
165
165
|
class ToolCallContent(MessageContent):
|
|
166
166
|
type: Literal[MessageContentType.tool_call] = Field(
|
|
167
|
-
MessageContentType.tool_call, description="Indicates this content represents a tool call event."
|
|
167
|
+
default=MessageContentType.tool_call, description="Indicates this content represents a tool call event."
|
|
168
168
|
)
|
|
169
169
|
id: str = Field(..., description="A unique identifier for this specific tool call instance.")
|
|
170
170
|
name: str = Field(..., description="The name of the tool being called.")
|
|
@@ -175,7 +175,7 @@ class ToolCallContent(MessageContent):
|
|
|
175
175
|
|
|
176
176
|
class ToolReturnContent(MessageContent):
|
|
177
177
|
type: Literal[MessageContentType.tool_return] = Field(
|
|
178
|
-
MessageContentType.tool_return, description="Indicates this content represents a tool return event."
|
|
178
|
+
default=MessageContentType.tool_return, description="Indicates this content represents a tool return event."
|
|
179
179
|
)
|
|
180
180
|
tool_call_id: str = Field(..., description="References the ID of the ToolCallContent that initiated this tool call.")
|
|
181
181
|
content: str = Field(..., description="The content returned by the tool execution.")
|
|
@@ -184,23 +184,23 @@ class ToolReturnContent(MessageContent):
|
|
|
184
184
|
|
|
185
185
|
class ReasoningContent(MessageContent):
|
|
186
186
|
type: Literal[MessageContentType.reasoning] = Field(
|
|
187
|
-
MessageContentType.reasoning, description="Indicates this is a reasoning/intermediate step."
|
|
187
|
+
default=MessageContentType.reasoning, description="Indicates this is a reasoning/intermediate step."
|
|
188
188
|
)
|
|
189
189
|
is_native: bool = Field(..., description="Whether the reasoning content was generated by a reasoner model that processed this step.")
|
|
190
190
|
reasoning: str = Field(..., description="The intermediate reasoning or thought process content.")
|
|
191
|
-
signature: Optional[str] = Field(None, description="A unique identifier for this reasoning step.")
|
|
191
|
+
signature: Optional[str] = Field(default=None, description="A unique identifier for this reasoning step.")
|
|
192
192
|
|
|
193
193
|
|
|
194
194
|
class RedactedReasoningContent(MessageContent):
|
|
195
195
|
type: Literal[MessageContentType.redacted_reasoning] = Field(
|
|
196
|
-
MessageContentType.redacted_reasoning, description="Indicates this is a redacted thinking step."
|
|
196
|
+
default=MessageContentType.redacted_reasoning, description="Indicates this is a redacted thinking step."
|
|
197
197
|
)
|
|
198
198
|
data: str = Field(..., description="The redacted or filtered intermediate reasoning content.")
|
|
199
199
|
|
|
200
200
|
|
|
201
201
|
class OmittedReasoningContent(MessageContent):
|
|
202
202
|
type: Literal[MessageContentType.omitted_reasoning] = Field(
|
|
203
|
-
MessageContentType.omitted_reasoning, description="Indicates this is an omitted reasoning step."
|
|
203
|
+
default=MessageContentType.omitted_reasoning, description="Indicates this is an omitted reasoning step."
|
|
204
204
|
)
|
|
205
205
|
# NOTE: dropping because we don't track this kind of information for the other reasoning types
|
|
206
206
|
# tokens: int = Field(..., description="The reasoning token count for intermediate reasoning content.")
|
|
@@ -78,6 +78,10 @@ class LLMConfig(BaseModel):
|
|
|
78
78
|
0,
|
|
79
79
|
description="Configurable thinking budget for extended thinking. Used for enable_reasoner and also for Google Vertex models like Gemini 2.5 Flash. Minimum value is 1024 when used with enable_reasoner.",
|
|
80
80
|
)
|
|
81
|
+
frequency_penalty: Optional[float] = Field(
|
|
82
|
+
None, # Can also deafult to 0.0?
|
|
83
|
+
description="Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model's likelihood to repeat the same line verbatim. From OpenAI: Number between -2.0 and 2.0.",
|
|
84
|
+
)
|
|
81
85
|
|
|
82
86
|
# FIXME hack to silence pydantic protected namespace warning
|
|
83
87
|
model_config = ConfigDict(protected_namespaces=())
|