[tool.poetry] name = "letta" version = "0.7.30" packages = [ {include = "letta"}, ] description = "Create LLM agents with long-term memory and custom tools" authors = [ "Letta Team ", ] license = "Apache License" readme = "README.md" [tool.poetry.scripts] letta = "letta.main:app" [tool.poetry.dependencies] python = "<3.14,>=3.10" typer = {extras = ["all"], version = "^0.9.0"} questionary = "^2.0.1" pytz = "^2023.3.post1" tqdm = "^4.66.1" black = {extras = ["jupyter"], version = "^24.2.0"} setuptools = "^70" prettytable = "^3.9.0" pgvector = { version = "^0.2.3", optional = true } pre-commit = {version = "^3.5.0", optional = true } pg8000 = {version = "^1.30.3", optional = true} docstring-parser = ">=0.16,<0.17" httpx = "^0.28.0" numpy = "^1.26.2" demjson3 = "^3.0.6" pyyaml = "^6.0.1" sqlalchemy-json = "^0.7.0" fastapi = { version = "^0.115.6", optional = true} uvicorn = {version = "^0.24.0.post1", optional = true} pydantic = "^2.10.6" html2text = "^2020.1.16" sqlalchemy = {extras = ["asyncio"], version = "^2.0.41"} pexpect = {version = "^4.9.0", optional = true} pyright = {version = "^1.1.347", optional = true} qdrant-client = {version="^1.9.1", optional = true} #pymilvus = {version ="^2.4.3", optional = true} python-box = "^7.1.1" sqlmodel = "^0.0.16" autoflake = {version = "^2.3.0", optional = true} python-multipart = "^0.0.19" sqlalchemy-utils = "^0.41.2" pytest-order = {version = "^1.2.0", optional = true} pytest-asyncio = {version = "^0.24.0", optional = true} pydantic-settings = "^2.2.1" httpx-sse = "^0.4.0" isort = { version = "^5.13.2", optional = true } docker = {version = "^7.1.0", optional = true} nltk = "^3.8.1" jinja2 = "^3.1.5" locust = {version = "^2.31.5", optional = true} wikipedia = {version = "^1.4.0", optional = true} composio-core = "^0.7.7" alembic = "^1.13.3" pyhumps = "^3.8.0" psycopg2 = {version = "^2.9.10", optional = true} psycopg2-binary = {version = "^2.9.10", optional = true} pathvalidate = "^3.2.1" langchain-community = {version = "^0.3.7", optional = true} langchain = {version = "^0.3.7", optional = true} sentry-sdk = {extras = ["fastapi"], version = "2.19.1"} rich = "^13.9.4" brotli = "^1.1.0" grpcio = "^1.68.1" grpcio-tools = "^1.68.1" llama-index = "^0.12.2" llama-index-embeddings-openai = "^0.3.1" e2b-code-interpreter = {version = "^1.0.3", optional = true} anthropic = "^0.49.0" letta_client = "^0.1.143" openai = "^1.60.0" opentelemetry-api = "1.30.0" opentelemetry-sdk = "1.30.0" opentelemetry-instrumentation-requests = "0.51b0" opentelemetry-exporter-otlp = "1.30.0" google-genai = {version = "^1.15.0", optional = true} faker = "^36.1.0" colorama = "^0.4.6" marshmallow-sqlalchemy = "^1.4.1" boto3 = {version = "^1.36.24", optional = true} datamodel-code-generator = {extras = ["http"], version = "^0.25.0"} mcp = "^1.3.0" firecrawl-py = "^1.15.0" apscheduler = "^3.11.0" aiomultiprocess = "^0.9.1" matplotlib = "^3.10.1" asyncpg = "^0.30.0" tavily-python = "^0.7.2" aiosqlite = "^0.21.0" [tool.poetry.extras] postgres = ["pgvector", "pg8000", "psycopg2-binary", "psycopg2"] dev = ["pytest", "pytest-asyncio", "pexpect", "black", "pre-commit", "pyright", "pytest-order", "autoflake", "isort", "locust"] server = ["websockets", "fastapi", "uvicorn"] qdrant = ["qdrant-client"] cloud-tool-sandbox = ["e2b-code-interpreter"] external-tools = ["docker", "langchain", "wikipedia", "langchain-community"] tests = ["wikipedia"] bedrock = ["boto3"] google = ["google-genai"] desktop = ["pgvector", "pg8000", "psycopg2-binary", "psycopg2", "pyright", "websockets", "fastapi", "uvicorn", "docker", "langchain", "wikipedia", "langchain-community", "locust"] all = ["pgvector", "pg8000", "psycopg2-binary", "psycopg2", "pytest", "pytest-asyncio", "pexpect", "black", "pre-commit", "pyright", "pytest-order", "autoflake", "isort", "websockets", "fastapi", "uvicorn", "docker", "langchain", "wikipedia", "langchain-community", "locust"] [tool.poetry.group.dev.dependencies] black = "^24.4.2" ipykernel = "^6.29.5" ipdb = "^0.13.13" pytest-mock = "^3.14.0" [tool.black] line-length = 140 target-version = ['py310', 'py311', 'py312', 'py313'] extend-exclude = "examples/*" [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api" [tool.isort] profile = "black" line_length = 140 multi_line_output = 3 include_trailing_comma = true force_grid_wrap = 0 use_parentheses = true