letta-nightly 0.6.4.dev20241213193437__tar.gz → 0.6.4.dev20241215104129__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.

Files changed (242) hide show
  1. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/PKG-INFO +1 -1
  2. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/__init__.py +1 -1
  3. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/agent.py +54 -45
  4. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/chat_only_agent.py +6 -8
  5. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/cli/cli.py +2 -10
  6. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/client/client.py +121 -138
  7. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/config.py +0 -161
  8. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/main.py +3 -8
  9. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/memory.py +3 -14
  10. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/o1_agent.py +1 -5
  11. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/offline_memory_agent.py +2 -6
  12. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/__init__.py +2 -0
  13. letta_nightly-0.6.4.dev20241215104129/letta/orm/agent.py +109 -0
  14. letta_nightly-0.6.4.dev20241215104129/letta/orm/agents_tags.py +20 -0
  15. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/block.py +29 -4
  16. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/blocks_agents.py +5 -11
  17. letta_nightly-0.6.4.dev20241215104129/letta/orm/custom_columns.py +152 -0
  18. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/message.py +3 -38
  19. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/organization.py +2 -7
  20. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/passage.py +10 -32
  21. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/source.py +5 -25
  22. letta_nightly-0.6.4.dev20241215104129/letta/orm/sources_agents.py +13 -0
  23. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/sqlalchemy_base.py +54 -30
  24. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/tool.py +1 -19
  25. letta_nightly-0.6.4.dev20241215104129/letta/orm/tools_agents.py +15 -0
  26. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/user.py +3 -4
  27. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/agent.py +48 -65
  28. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/memory.py +2 -1
  29. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/sandbox_config.py +12 -1
  30. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/app.py +0 -5
  31. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/openai/chat_completions/chat_completions.py +1 -1
  32. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/v1/agents.py +99 -78
  33. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/v1/blocks.py +22 -25
  34. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/v1/jobs.py +4 -4
  35. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/v1/sandbox_configs.py +10 -10
  36. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/v1/sources.py +12 -12
  37. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/v1/tools.py +35 -15
  38. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/v1/users.py +0 -46
  39. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/server.py +172 -716
  40. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/ws_api/server.py +0 -5
  41. letta_nightly-0.6.4.dev20241215104129/letta/services/agent_manager.py +405 -0
  42. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/block_manager.py +13 -21
  43. letta_nightly-0.6.4.dev20241215104129/letta/services/helpers/agent_manager_helper.py +90 -0
  44. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/organization_manager.py +0 -1
  45. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/passage_manager.py +62 -62
  46. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/sandbox_config_manager.py +3 -3
  47. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/source_manager.py +22 -1
  48. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/user_manager.py +11 -6
  49. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/utils.py +2 -2
  50. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/pyproject.toml +1 -1
  51. letta_nightly-0.6.4.dev20241213193437/letta/metadata.py +0 -407
  52. letta_nightly-0.6.4.dev20241213193437/letta/orm/agents_tags.py +0 -28
  53. letta_nightly-0.6.4.dev20241213193437/letta/orm/tools_agents.py +0 -32
  54. letta_nightly-0.6.4.dev20241213193437/letta/schemas/agents_tags.py +0 -33
  55. letta_nightly-0.6.4.dev20241213193437/letta/schemas/api_key.py +0 -21
  56. letta_nightly-0.6.4.dev20241213193437/letta/schemas/blocks_agents.py +0 -32
  57. letta_nightly-0.6.4.dev20241213193437/letta/schemas/tools_agents.py +0 -32
  58. letta_nightly-0.6.4.dev20241213193437/letta/server/rest_api/routers/openai/assistants/threads.py +0 -338
  59. letta_nightly-0.6.4.dev20241213193437/letta/services/agents_tags_manager.py +0 -64
  60. letta_nightly-0.6.4.dev20241213193437/letta/services/blocks_agents_manager.py +0 -106
  61. letta_nightly-0.6.4.dev20241213193437/letta/services/tools_agents_manager.py +0 -94
  62. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/LICENSE +0 -0
  63. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/README.md +0 -0
  64. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/__main__.py +0 -0
  65. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/benchmark/benchmark.py +0 -0
  66. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/benchmark/constants.py +0 -0
  67. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/cli/cli_config.py +0 -0
  68. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/cli/cli_load.py +0 -0
  69. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/client/__init__.py +0 -0
  70. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/client/streaming.py +0 -0
  71. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/client/utils.py +0 -0
  72. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/constants.py +0 -0
  73. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/credentials.py +0 -0
  74. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/data_sources/connectors.py +0 -0
  75. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/data_sources/connectors_helper.py +0 -0
  76. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/embeddings.py +0 -0
  77. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/errors.py +0 -0
  78. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/functions/__init__.py +0 -0
  79. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/functions/function_sets/base.py +0 -0
  80. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/functions/function_sets/extras.py +0 -0
  81. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/functions/functions.py +0 -0
  82. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/functions/helpers.py +0 -0
  83. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/functions/schema_generator.py +0 -0
  84. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/helpers/__init__.py +0 -0
  85. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/helpers/tool_rule_solver.py +0 -0
  86. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/humans/__init__.py +0 -0
  87. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/humans/examples/basic.txt +0 -0
  88. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/humans/examples/cs_phd.txt +0 -0
  89. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/interface.py +0 -0
  90. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/llm_api/__init__.py +0 -0
  91. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/llm_api/anthropic.py +0 -0
  92. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/llm_api/azure_openai.py +0 -0
  93. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/llm_api/azure_openai_constants.py +0 -0
  94. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/llm_api/cohere.py +0 -0
  95. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/llm_api/google_ai.py +0 -0
  96. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/llm_api/helpers.py +0 -0
  97. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/llm_api/llm_api_tools.py +0 -0
  98. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/llm_api/mistral.py +0 -0
  99. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/llm_api/openai.py +0 -0
  100. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/README.md +0 -0
  101. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/__init__.py +0 -0
  102. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/chat_completion_proxy.py +0 -0
  103. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/constants.py +0 -0
  104. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/function_parser.py +0 -0
  105. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/grammars/__init__.py +0 -0
  106. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/grammars/gbnf_grammar_generator.py +0 -0
  107. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/grammars/json.gbnf +0 -0
  108. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/grammars/json_func_calls_with_inner_thoughts.gbnf +0 -0
  109. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/json_parser.py +0 -0
  110. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/koboldcpp/api.py +0 -0
  111. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/koboldcpp/settings.py +0 -0
  112. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/llamacpp/api.py +0 -0
  113. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/llamacpp/settings.py +0 -0
  114. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/llm_chat_completion_wrappers/__init__.py +0 -0
  115. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/llm_chat_completion_wrappers/airoboros.py +0 -0
  116. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/llm_chat_completion_wrappers/chatml.py +0 -0
  117. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/llm_chat_completion_wrappers/configurable_wrapper.py +0 -0
  118. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/llm_chat_completion_wrappers/dolphin.py +0 -0
  119. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/llm_chat_completion_wrappers/llama3.py +0 -0
  120. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/llm_chat_completion_wrappers/simple_summary_wrapper.py +0 -0
  121. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/llm_chat_completion_wrappers/wrapper_base.py +0 -0
  122. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/llm_chat_completion_wrappers/zephyr.py +0 -0
  123. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/lmstudio/api.py +0 -0
  124. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/lmstudio/settings.py +0 -0
  125. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/ollama/api.py +0 -0
  126. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/ollama/settings.py +0 -0
  127. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/settings/__init__.py +0 -0
  128. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/settings/deterministic_mirostat.py +0 -0
  129. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/settings/settings.py +0 -0
  130. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/settings/simple.py +0 -0
  131. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/utils.py +0 -0
  132. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/vllm/api.py +0 -0
  133. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/webui/api.py +0 -0
  134. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/webui/legacy_api.py +0 -0
  135. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/webui/legacy_settings.py +0 -0
  136. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/local_llm/webui/settings.py +0 -0
  137. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/log.py +0 -0
  138. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/openai_backcompat/__init__.py +0 -0
  139. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/openai_backcompat/openai_object.py +0 -0
  140. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/__all__.py +0 -0
  141. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/base.py +0 -0
  142. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/enums.py +0 -0
  143. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/errors.py +0 -0
  144. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/file.py +0 -0
  145. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/job.py +0 -0
  146. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/mixins.py +0 -0
  147. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/sandbox_config.py +0 -0
  148. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/orm/sqlite_functions.py +0 -0
  149. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/personas/__init__.py +0 -0
  150. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/personas/examples/anna_pa.txt +0 -0
  151. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/personas/examples/google_search_persona.txt +0 -0
  152. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/personas/examples/memgpt_doc.txt +0 -0
  153. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/personas/examples/memgpt_starter.txt +0 -0
  154. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/personas/examples/o1_persona.txt +0 -0
  155. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/personas/examples/offline_memory_persona.txt +0 -0
  156. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/personas/examples/sam.txt +0 -0
  157. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/personas/examples/sam_pov.txt +0 -0
  158. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/personas/examples/sam_simple_pov_gpt35.txt +0 -0
  159. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/personas/examples/sqldb/test.db +0 -0
  160. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/__init__.py +0 -0
  161. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/gpt_summarize.py +0 -0
  162. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/gpt_system.py +0 -0
  163. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/system/memgpt_base.txt +0 -0
  164. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/system/memgpt_chat.txt +0 -0
  165. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/system/memgpt_chat_compressed.txt +0 -0
  166. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/system/memgpt_chat_fstring.txt +0 -0
  167. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/system/memgpt_convo_only.txt +0 -0
  168. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/system/memgpt_doc.txt +0 -0
  169. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/system/memgpt_gpt35_extralong.txt +0 -0
  170. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/system/memgpt_intuitive_knowledge.txt +0 -0
  171. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/system/memgpt_modified_chat.txt +0 -0
  172. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/system/memgpt_modified_o1.txt +0 -0
  173. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/system/memgpt_offline_memory.txt +0 -0
  174. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/prompts/system/memgpt_offline_memory_chat.txt +0 -0
  175. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/providers.py +0 -0
  176. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/pytest.ini +0 -0
  177. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/block.py +0 -0
  178. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/embedding_config.py +0 -0
  179. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/enums.py +0 -0
  180. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/file.py +0 -0
  181. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/health.py +0 -0
  182. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/job.py +0 -0
  183. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/letta_base.py +0 -0
  184. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/letta_message.py +0 -0
  185. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/letta_request.py +0 -0
  186. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/letta_response.py +0 -0
  187. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/llm_config.py +0 -0
  188. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/message.py +0 -0
  189. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/openai/chat_completion_request.py +0 -0
  190. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/openai/chat_completion_response.py +0 -0
  191. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/openai/chat_completions.py +0 -0
  192. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/openai/embedding_response.py +0 -0
  193. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/openai/openai.py +0 -0
  194. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/organization.py +0 -0
  195. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/passage.py +0 -0
  196. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/source.py +0 -0
  197. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/tool.py +0 -0
  198. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/tool_rule.py +0 -0
  199. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/usage.py +0 -0
  200. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/schemas/user.py +0 -0
  201. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/__init__.py +0 -0
  202. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/constants.py +0 -0
  203. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/generate_openapi_schema.sh +0 -0
  204. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/__init__.py +0 -0
  205. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/auth/__init__.py +0 -0
  206. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/auth/index.py +0 -0
  207. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/auth_token.py +0 -0
  208. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/interface.py +0 -0
  209. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/__init__.py +0 -0
  210. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/openai/__init__.py +0 -0
  211. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/openai/assistants/__init__.py +0 -0
  212. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/openai/assistants/assistants.py +0 -0
  213. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/openai/assistants/schemas.py +0 -0
  214. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/openai/chat_completions/__init__.py +0 -0
  215. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/v1/__init__.py +0 -0
  216. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/v1/health.py +0 -0
  217. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/v1/llms.py +0 -0
  218. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/routers/v1/organizations.py +0 -0
  219. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/static_files.py +0 -0
  220. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/rest_api/utils.py +0 -0
  221. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/startup.sh +0 -0
  222. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/static_files/assets/index-048c9598.js +0 -0
  223. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/static_files/assets/index-0e31b727.css +0 -0
  224. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/static_files/favicon.ico +0 -0
  225. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/static_files/index.html +0 -0
  226. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/static_files/memgpt_logo_transparent.png +0 -0
  227. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/utils.py +0 -0
  228. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/ws_api/__init__.py +0 -0
  229. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/ws_api/example_client.py +0 -0
  230. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/ws_api/interface.py +0 -0
  231. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/server/ws_api/protocol.py +0 -0
  232. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/__init__.py +0 -0
  233. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/job_manager.py +0 -0
  234. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/message_manager.py +0 -0
  235. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/per_agent_lock_manager.py +0 -0
  236. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/tool_execution_sandbox.py +0 -0
  237. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/tool_manager.py +0 -0
  238. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/services/tool_sandbox_env/.gitkeep +0 -0
  239. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/settings.py +0 -0
  240. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/streaming_interface.py +0 -0
  241. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/streaming_utils.py +0 -0
  242. {letta_nightly-0.6.4.dev20241213193437 → letta_nightly-0.6.4.dev20241215104129}/letta/system.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: letta-nightly
3
- Version: 0.6.4.dev20241213193437
3
+ Version: 0.6.4.dev20241215104129
4
4
  Summary: Create LLM agents with long-term memory and custom tools
5
5
  License: Apache License
6
6
  Author: Letta Team
@@ -4,7 +4,7 @@ __version__ = "0.6.4"
4
4
  from letta.client.client import LocalClient, RESTClient, create_client
5
5
 
6
6
  # imports for easier access
7
- from letta.schemas.agent import AgentState, PersistedAgentState
7
+ from letta.schemas.agent import AgentState
8
8
  from letta.schemas.block import Block
9
9
  from letta.schemas.embedding_config import EmbeddingConfig
10
10
  from letta.schemas.enums import JobStatus
@@ -6,8 +6,6 @@ import warnings
6
6
  from abc import ABC, abstractmethod
7
7
  from typing import List, Literal, Optional, Tuple, Union
8
8
 
9
- from tqdm import tqdm
10
-
11
9
  from letta.constants import (
12
10
  BASE_TOOLS,
13
11
  CLI_WARNING_PREFIX,
@@ -28,9 +26,8 @@ from letta.llm_api.helpers import is_context_overflow_error
28
26
  from letta.llm_api.llm_api_tools import create
29
27
  from letta.local_llm.utils import num_tokens_from_functions, num_tokens_from_messages
30
28
  from letta.memory import summarize_messages
31
- from letta.metadata import MetadataStore
32
29
  from letta.orm import User
33
- from letta.schemas.agent import AgentState, AgentStepResponse
30
+ from letta.schemas.agent import AgentState, AgentStepResponse, UpdateAgent
34
31
  from letta.schemas.block import BlockUpdate
35
32
  from letta.schemas.embedding_config import EmbeddingConfig
36
33
  from letta.schemas.enums import MessageRole
@@ -49,12 +46,12 @@ from letta.schemas.tool import Tool
49
46
  from letta.schemas.tool_rule import TerminalToolRule
50
47
  from letta.schemas.usage import LettaUsageStatistics
51
48
  from letta.schemas.user import User as PydanticUser
49
+ from letta.services.agent_manager import AgentManager
52
50
  from letta.services.block_manager import BlockManager
53
51
  from letta.services.message_manager import MessageManager
54
52
  from letta.services.passage_manager import PassageManager
55
53
  from letta.services.source_manager import SourceManager
56
54
  from letta.services.tool_execution_sandbox import ToolExecutionSandbox
57
- from letta.services.user_manager import UserManager
58
55
  from letta.streaming_interface import StreamingRefreshCLIInterface
59
56
  from letta.system import (
60
57
  get_heartbeat,
@@ -316,7 +313,7 @@ class Agent(BaseAgent):
316
313
 
317
314
  else:
318
315
  printd(f"Agent.__init__ :: creating, state={agent_state.message_ids}")
319
- assert self.agent_state.id is not None and self.agent_state.user_id is not None
316
+ assert self.agent_state.id is not None and self.agent_state.created_by_id is not None
320
317
 
321
318
  # Generate a sequence of initial messages to put in the buffer
322
319
  init_messages = initialize_message_sequence(
@@ -335,7 +332,7 @@ class Agent(BaseAgent):
335
332
  # We always need the system prompt up front
336
333
  system_message_obj = Message.dict_to_message(
337
334
  agent_id=self.agent_state.id,
338
- user_id=self.agent_state.user_id,
335
+ user_id=self.agent_state.created_by_id,
339
336
  model=self.model,
340
337
  openai_message_dict=init_messages[0],
341
338
  )
@@ -358,7 +355,7 @@ class Agent(BaseAgent):
358
355
  # Cast to Message objects
359
356
  init_messages = [
360
357
  Message.dict_to_message(
361
- agent_id=self.agent_state.id, user_id=self.agent_state.user_id, model=self.model, openai_message_dict=msg
358
+ agent_id=self.agent_state.id, user_id=self.agent_state.created_by_id, model=self.model, openai_message_dict=msg
362
359
  )
363
360
  for msg in init_messages
364
361
  ]
@@ -439,11 +436,12 @@ class Agent(BaseAgent):
439
436
  else:
440
437
  # execute tool in a sandbox
441
438
  # TODO: allow agent_state to specify which sandbox to execute tools in
442
- sandbox_run_result = ToolExecutionSandbox(function_name, function_args, self.agent_state.user_id).run(
439
+ sandbox_run_result = ToolExecutionSandbox(function_name, function_args, self.agent_state.created_by_id).run(
443
440
  agent_state=self.agent_state.__deepcopy__()
444
441
  )
445
442
  function_response, updated_agent_state = sandbox_run_result.func_return, sandbox_run_result.agent_state
446
443
  assert orig_memory_str == self.agent_state.memory.compile(), "Memory should not be modified in a sandbox tool"
444
+
447
445
  self.update_memory_if_change(updated_agent_state.memory)
448
446
  except Exception as e:
449
447
  # Need to catch error here, or else trunction wont happen
@@ -573,7 +571,7 @@ class Agent(BaseAgent):
573
571
  added_messages_objs = [
574
572
  Message.dict_to_message(
575
573
  agent_id=self.agent_state.id,
576
- user_id=self.agent_state.user_id,
574
+ user_id=self.agent_state.created_by_id,
577
575
  model=self.model,
578
576
  openai_message_dict=msg,
579
577
  )
@@ -603,7 +601,7 @@ class Agent(BaseAgent):
603
601
  response = create(
604
602
  llm_config=self.agent_state.llm_config,
605
603
  messages=message_sequence,
606
- user_id=self.agent_state.user_id,
604
+ user_id=self.agent_state.created_by_id,
607
605
  functions=allowed_functions,
608
606
  functions_python=self.functions_python,
609
607
  function_call=function_call,
@@ -689,7 +687,7 @@ class Agent(BaseAgent):
689
687
  Message.dict_to_message(
690
688
  id=response_message_id,
691
689
  agent_id=self.agent_state.id,
692
- user_id=self.agent_state.user_id,
690
+ user_id=self.agent_state.created_by_id,
693
691
  model=self.model,
694
692
  openai_message_dict=response_message.model_dump(),
695
693
  )
@@ -722,7 +720,7 @@ class Agent(BaseAgent):
722
720
  messages.append(
723
721
  Message.dict_to_message(
724
722
  agent_id=self.agent_state.id,
725
- user_id=self.agent_state.user_id,
723
+ user_id=self.agent_state.created_by_id,
726
724
  model=self.model,
727
725
  openai_message_dict={
728
726
  "role": "tool",
@@ -745,7 +743,7 @@ class Agent(BaseAgent):
745
743
  messages.append(
746
744
  Message.dict_to_message(
747
745
  agent_id=self.agent_state.id,
748
- user_id=self.agent_state.user_id,
746
+ user_id=self.agent_state.created_by_id,
749
747
  model=self.model,
750
748
  openai_message_dict={
751
749
  "role": "tool",
@@ -823,7 +821,7 @@ class Agent(BaseAgent):
823
821
  messages.append(
824
822
  Message.dict_to_message(
825
823
  agent_id=self.agent_state.id,
826
- user_id=self.agent_state.user_id,
824
+ user_id=self.agent_state.created_by_id,
827
825
  model=self.model,
828
826
  openai_message_dict={
829
827
  "role": "tool",
@@ -842,7 +840,7 @@ class Agent(BaseAgent):
842
840
  messages.append(
843
841
  Message.dict_to_message(
844
842
  agent_id=self.agent_state.id,
845
- user_id=self.agent_state.user_id,
843
+ user_id=self.agent_state.created_by_id,
846
844
  model=self.model,
847
845
  openai_message_dict={
848
846
  "role": "tool",
@@ -861,7 +859,7 @@ class Agent(BaseAgent):
861
859
  Message.dict_to_message(
862
860
  id=response_message_id,
863
861
  agent_id=self.agent_state.id,
864
- user_id=self.agent_state.user_id,
862
+ user_id=self.agent_state.created_by_id,
865
863
  model=self.model,
866
864
  openai_message_dict=response_message.model_dump(),
867
865
  )
@@ -890,18 +888,14 @@ class Agent(BaseAgent):
890
888
  # additional args
891
889
  chaining: bool = True,
892
890
  max_chaining_steps: Optional[int] = None,
893
- ms: Optional[MetadataStore] = None,
894
891
  **kwargs,
895
892
  ) -> LettaUsageStatistics:
896
893
  """Run Agent.step in a loop, handling chaining via heartbeat requests and function failures"""
897
- # assert ms is not None, "MetadataStore is required"
898
-
899
894
  next_input_message = messages if isinstance(messages, list) else [messages]
900
895
  counter = 0
901
896
  total_usage = UsageStatistics()
902
897
  step_count = 0
903
898
  while True:
904
- kwargs["ms"] = ms
905
899
  kwargs["first_message"] = False
906
900
  step_response = self.inner_step(
907
901
  messages=next_input_message,
@@ -919,8 +913,7 @@ class Agent(BaseAgent):
919
913
 
920
914
  # logger.debug("Saving agent state")
921
915
  # save updated state
922
- if ms:
923
- save_agent(self, ms)
916
+ save_agent(self)
924
917
 
925
918
  # Chain stops
926
919
  if not chaining:
@@ -931,10 +924,10 @@ class Agent(BaseAgent):
931
924
  break
932
925
  # Chain handlers
933
926
  elif token_warning:
934
- assert self.agent_state.user_id is not None
927
+ assert self.agent_state.created_by_id is not None
935
928
  next_input_message = Message.dict_to_message(
936
929
  agent_id=self.agent_state.id,
937
- user_id=self.agent_state.user_id,
930
+ user_id=self.agent_state.created_by_id,
938
931
  model=self.model,
939
932
  openai_message_dict={
940
933
  "role": "user", # TODO: change to system?
@@ -943,10 +936,10 @@ class Agent(BaseAgent):
943
936
  )
944
937
  continue # always chain
945
938
  elif function_failed:
946
- assert self.agent_state.user_id is not None
939
+ assert self.agent_state.created_by_id is not None
947
940
  next_input_message = Message.dict_to_message(
948
941
  agent_id=self.agent_state.id,
949
- user_id=self.agent_state.user_id,
942
+ user_id=self.agent_state.created_by_id,
950
943
  model=self.model,
951
944
  openai_message_dict={
952
945
  "role": "user", # TODO: change to system?
@@ -955,10 +948,10 @@ class Agent(BaseAgent):
955
948
  )
956
949
  continue # always chain
957
950
  elif heartbeat_request:
958
- assert self.agent_state.user_id is not None
951
+ assert self.agent_state.created_by_id is not None
959
952
  next_input_message = Message.dict_to_message(
960
953
  agent_id=self.agent_state.id,
961
- user_id=self.agent_state.user_id,
954
+ user_id=self.agent_state.created_by_id,
962
955
  model=self.model,
963
956
  openai_message_dict={
964
957
  "role": "user", # TODO: change to system?
@@ -979,7 +972,6 @@ class Agent(BaseAgent):
979
972
  first_message_retry_limit: int = FIRST_MESSAGE_ATTEMPTS,
980
973
  skip_verify: bool = False,
981
974
  stream: bool = False, # TODO move to config?
982
- ms: Optional[MetadataStore] = None,
983
975
  ) -> AgentStepResponse:
984
976
  """Runs a single step in the agent loop (generates at most one LLM call)"""
985
977
 
@@ -1099,7 +1091,6 @@ class Agent(BaseAgent):
1099
1091
  first_message_retry_limit=first_message_retry_limit,
1100
1092
  skip_verify=skip_verify,
1101
1093
  stream=stream,
1102
- ms=ms,
1103
1094
  )
1104
1095
 
1105
1096
  else:
@@ -1129,10 +1120,10 @@ class Agent(BaseAgent):
1129
1120
  openai_message_dict = {"role": "user", "content": cleaned_user_message_text, "name": name}
1130
1121
 
1131
1122
  # Create the associated Message object (in the database)
1132
- assert self.agent_state.user_id is not None, "User ID is not set"
1123
+ assert self.agent_state.created_by_id is not None, "User ID is not set"
1133
1124
  user_message = Message.dict_to_message(
1134
1125
  agent_id=self.agent_state.id,
1135
- user_id=self.agent_state.user_id,
1126
+ user_id=self.agent_state.created_by_id,
1136
1127
  model=self.model,
1137
1128
  openai_message_dict=openai_message_dict,
1138
1129
  # created_at=timestamp,
@@ -1232,7 +1223,7 @@ class Agent(BaseAgent):
1232
1223
  [
1233
1224
  Message.dict_to_message(
1234
1225
  agent_id=self.agent_state.id,
1235
- user_id=self.agent_state.user_id,
1226
+ user_id=self.agent_state.created_by_id,
1236
1227
  model=self.model,
1237
1228
  openai_message_dict=packed_summary_message,
1238
1229
  )
@@ -1260,7 +1251,7 @@ class Agent(BaseAgent):
1260
1251
  assert isinstance(new_system_message, str)
1261
1252
  new_system_message_obj = Message.dict_to_message(
1262
1253
  agent_id=self.agent_state.id,
1263
- user_id=self.agent_state.user_id,
1254
+ user_id=self.agent_state.created_by_id,
1264
1255
  model=self.model,
1265
1256
  openai_message_dict={"role": "system", "content": new_system_message},
1266
1257
  )
@@ -1371,7 +1362,14 @@ class Agent(BaseAgent):
1371
1362
  # TODO: recall memory
1372
1363
  raise NotImplementedError()
1373
1364
 
1374
- def attach_source(self, user: PydanticUser, source_id: str, source_manager: SourceManager, ms: MetadataStore, page_size: Optional[int] = None):
1365
+ def attach_source(
1366
+ self,
1367
+ user: PydanticUser,
1368
+ source_id: str,
1369
+ source_manager: SourceManager,
1370
+ agent_manager: AgentManager,
1371
+ page_size: Optional[int] = None,
1372
+ ):
1375
1373
  """Attach data with name `source_name` to the agent from source_connector."""
1376
1374
  # TODO: eventually, adding a data source should just give access to the retriever the source table, rather than modifying archival memory
1377
1375
  passages = self.passage_manager.list_passages(actor=user, source_id=source_id, limit=page_size)
@@ -1384,7 +1382,7 @@ class Agent(BaseAgent):
1384
1382
  agents_passages = self.passage_manager.list_passages(actor=user, agent_id=self.agent_state.id, source_id=source_id, limit=page_size)
1385
1383
  passage_size = self.passage_manager.size(actor=user, agent_id=self.agent_state.id, source_id=source_id)
1386
1384
  assert all([p.agent_id == self.agent_state.id for p in agents_passages])
1387
- assert len(agents_passages) == passage_size # sanity check
1385
+ assert len(agents_passages) == passage_size # sanity check
1388
1386
  assert passage_size == len(passages), f"Expected {len(passages)} passages, got {passage_size}"
1389
1387
 
1390
1388
  # attach to agent
@@ -1393,7 +1391,7 @@ class Agent(BaseAgent):
1393
1391
 
1394
1392
  # NOTE: need this redundant line here because we haven't migrated agent to ORM yet
1395
1393
  # TODO: delete @matt and remove
1396
- ms.attach_source(agent_id=self.agent_state.id, source_id=source_id, user_id=self.agent_state.user_id)
1394
+ agent_manager.attach_source(agent_id=self.agent_state.id, source_id=source_id, actor=user)
1397
1395
 
1398
1396
  printd(
1399
1397
  f"Attached data source {source.name} to agent {self.agent_state.name}, consisting of {len(passages)}. Agent now has {passage_size} embeddings in archival memory.",
@@ -1610,20 +1608,31 @@ class Agent(BaseAgent):
1610
1608
  return context_window_breakdown.context_window_size_current
1611
1609
 
1612
1610
 
1613
- def save_agent(agent: Agent, ms: MetadataStore):
1611
+ def save_agent(agent: Agent):
1614
1612
  """Save agent to metadata store"""
1615
-
1616
1613
  agent.update_state()
1617
1614
  agent_state = agent.agent_state
1618
1615
  assert isinstance(agent_state.memory, Memory), f"Memory is not a Memory object: {type(agent_state.memory)}"
1619
1616
 
1620
1617
  # TODO: move this to agent manager
1618
+ # TODO: Completely strip out metadata
1621
1619
  # convert to persisted model
1622
- persisted_agent_state = agent.agent_state.to_persisted_agent_state()
1623
- if ms.get_agent(agent_id=persisted_agent_state.id):
1624
- ms.update_agent(persisted_agent_state)
1625
- else:
1626
- ms.create_agent(persisted_agent_state)
1620
+ agent_manager = AgentManager()
1621
+ update_agent = UpdateAgent(
1622
+ name=agent_state.name,
1623
+ tool_ids=[t.id for t in agent_state.tools],
1624
+ source_ids=[s.id for s in agent_state.sources],
1625
+ block_ids=[b.id for b in agent_state.memory.blocks],
1626
+ tags=agent_state.tags,
1627
+ system=agent_state.system,
1628
+ tool_rules=agent_state.tool_rules,
1629
+ llm_config=agent_state.llm_config,
1630
+ embedding_config=agent_state.embedding_config,
1631
+ message_ids=agent_state.message_ids,
1632
+ description=agent_state.description,
1633
+ metadata_=agent_state.metadata_,
1634
+ )
1635
+ agent_manager.update_agent(agent_id=agent_state.id, agent_update=update_agent, actor=agent.user)
1627
1636
 
1628
1637
 
1629
1638
  def strip_name_field_from_user_message(user_message_text: str) -> Tuple[str, Optional[str]]:
@@ -2,9 +2,7 @@ from concurrent.futures import ThreadPoolExecutor
2
2
  from typing import List, Optional, Union
3
3
 
4
4
  from letta.agent import Agent
5
-
6
5
  from letta.interface import AgentInterface
7
- from letta.metadata import MetadataStore
8
6
  from letta.prompts import gpt_system
9
7
  from letta.schemas.agent import AgentState, AgentType
10
8
  from letta.schemas.embedding_config import EmbeddingConfig
@@ -37,11 +35,9 @@ class ChatOnlyAgent(Agent):
37
35
  messages: Union[Message, List[Message]],
38
36
  chaining: bool = True,
39
37
  max_chaining_steps: Optional[int] = None,
40
- ms: Optional[MetadataStore] = None,
41
38
  **kwargs,
42
39
  ) -> LettaUsageStatistics:
43
- # assert ms is not None, "MetadataStore is required"
44
- letta_statistics = super().step(messages=messages, chaining=chaining, max_chaining_steps=max_chaining_steps, ms=ms, **kwargs)
40
+ letta_statistics = super().step(messages=messages, chaining=chaining, max_chaining_steps=max_chaining_steps, **kwargs)
45
41
 
46
42
  if self.always_rethink_memory:
47
43
 
@@ -68,8 +64,10 @@ class ChatOnlyAgent(Agent):
68
64
  name="chat_agent_persona_new", label="chat_agent_persona_new", value=conversation_persona_block.value, limit=2000
69
65
  )
70
66
 
71
- recent_convo = "".join([str(message) for message in self.messages[3:]])[-self.recent_convo_limit:]
72
- conversation_messages_block = Block(name="conversation_block", label="conversation_block", value=recent_convo, limit=self.recent_convo_limit)
67
+ recent_convo = "".join([str(message) for message in self.messages[3:]])[-self.recent_convo_limit :]
68
+ conversation_messages_block = Block(
69
+ name="conversation_block", label="conversation_block", value=recent_convo, limit=self.recent_convo_limit
70
+ )
73
71
 
74
72
  offline_memory = BasicBlockMemory(
75
73
  blocks=[
@@ -89,7 +87,7 @@ class ChatOnlyAgent(Agent):
89
87
  memory=offline_memory,
90
88
  llm_config=LLMConfig.default_config("gpt-4"),
91
89
  embedding_config=EmbeddingConfig.default_config("text-embedding-ada-002"),
92
- tools=self.agent_state.metadata_.get("offline_memory_tools", []),
90
+ tool_ids=self.agent_state.metadata_.get("offline_memory_tools", []),
93
91
  include_base_tools=False,
94
92
  )
95
93
  self.offline_memory_agent.memory.update_block_value(label="conversation_block", value=recent_convo)
@@ -18,7 +18,6 @@ from letta.constants import (
18
18
  )
19
19
  from letta.local_llm.constants import ASSISTANT_MESSAGE_CLI_SYMBOL
20
20
  from letta.log import get_logger
21
- from letta.metadata import MetadataStore
22
21
  from letta.schemas.enums import OptionState
23
22
  from letta.schemas.memory import ChatMemory, Memory
24
23
  from letta.server.server import logger as server_logger
@@ -138,9 +137,7 @@ def run(
138
137
  config = LettaConfig.load()
139
138
 
140
139
  # read user id from config
141
- ms = MetadataStore(config)
142
140
  client = create_client()
143
- server = client.server
144
141
 
145
142
  # determine agent to use, if not provided
146
143
  if not yes and not agent:
@@ -165,8 +162,6 @@ def run(
165
162
  persona = persona if persona else config.persona
166
163
  if agent and agent_state: # use existing agent
167
164
  typer.secho(f"\n🔁 Using existing agent {agent}", fg=typer.colors.GREEN)
168
- # agent_config = AgentConfig.load(agent)
169
- # agent_state = ms.get_agent(agent_name=agent, user_id=user_id)
170
165
  printd("Loading agent state:", agent_state.id)
171
166
  printd("Agent state:", agent_state.name)
172
167
  # printd("State path:", agent_config.save_state_dir())
@@ -224,8 +219,6 @@ def run(
224
219
  )
225
220
 
226
221
  # create agent
227
- tools = [server.tool_manager.get_tool_by_name(tool_name=tool_name, actor=client.user) for tool_name in agent_state.tool_names]
228
- agent_state.tools = tools
229
222
  letta_agent = Agent(agent_state=agent_state, interface=interface(), user=client.user)
230
223
 
231
224
  else: # create new agent
@@ -317,7 +310,7 @@ def run(
317
310
  metadata=metadata,
318
311
  )
319
312
  assert isinstance(agent_state.memory, Memory), f"Expected Memory, got {type(agent_state.memory)}"
320
- typer.secho(f"-> 🛠️ {len(agent_state.tools)} tools: {', '.join([t for t in agent_state.tool_names])}", fg=typer.colors.WHITE)
313
+ typer.secho(f"-> 🛠️ {len(agent_state.tools)} tools: {', '.join([t.name for t in agent_state.tools])}", fg=typer.colors.WHITE)
321
314
 
322
315
  letta_agent = Agent(
323
316
  interface=interface(),
@@ -326,7 +319,7 @@ def run(
326
319
  first_message_verify_mono=True if (model is not None and "gpt-4" in model) else False,
327
320
  user=client.user,
328
321
  )
329
- save_agent(agent=letta_agent, ms=ms)
322
+ save_agent(agent=letta_agent)
330
323
  typer.secho(f"🎉 Created new agent '{letta_agent.agent_state.name}' (id={letta_agent.agent_state.id})", fg=typer.colors.GREEN)
331
324
 
332
325
  # start event loop
@@ -337,7 +330,6 @@ def run(
337
330
  letta_agent=letta_agent,
338
331
  config=config,
339
332
  first=first,
340
- ms=ms,
341
333
  no_verify=no_verify,
342
334
  stream=stream,
343
335
  ) # TODO: add back no_verify