Skip to content

Releases: letta-ai/letta

v0.10.0

01 Aug 01:04
419c2e2
Compare
Choose a tag to compare

This release introduces a new LettaPing message type for maintaining long streaming connections, MCP OAuth support, and various bugfixes and performance improvements.

🏓 LettaPing message type for long-running streaming requests

To avoid connection terminations during long running tools, Letta will send a LettaPing message at a specific interval - currently 90 seconds (#3651, #3652, #3647). You will only see the LettaPing message if your tool execution takes longer than the ping interval, and you are using streaming endpoints.

⚠️ Warning: If you have long running tools, you may need to add handling for for this new message type in your applications. In future releases, the ping interval will be reduced to 50 seconds. ⚠️

Moving to memgpt_v2_agent base architecture (#3624)

Default Agent Architecture Change: Letta now defaults to the new memgpt_v2_agent architecture (see documentation). Archival memory tools are also no longer added by default, but can be added explicitly.

🔐 MCP OAuth Support

We now support OAuth MCP providers such as Linear and Github.

🧠 LLM Provider Patches

We've added patches and improved support for LMStudio and Ollama:

  • LMStudio: Added support for Qwen and Llama models with manual token counting for streaming
  • Ollama: integration moved to new agent loop architecture (#3615)

Bug Fixes

  • Fixed null check in voice endpoint (#3690)
  • Fixed builtin web search tests (#3680)
  • Fixed flaky test issues (#3629)

Other Improvements

  • Removed deprecation warnings and excessive logging (#3560)
  • Updated test infrastructure to use Gemini 2.5 (#3548)
  • Set default Letta environment to dev for OSS (#3627)
  • Added modal sandbox functionality with conditional imports (commit, #3668)
  • Added not_indexable property to agents (#3653)
  • Improved name generation (#3592)
  • Default project configuration for agent listings (#3660)
  • Removed OpenTelemetry file exports (#3691)
  • API key validation before using token counter for Anthropic (#3628)
  • Async system prompt compilation for better performance (#3685)
  • Memory blocks viewer for better memory management (#3610)
  • Polished open files tools (#3575)
  • Desktop application improvements (#3537)
  • Web search performance optimizations (#3650, #3649)
  • Enhanced error handling for cancellations (#3641)
  • Enhanced tool generation with better prompting (#3633, #3635)
  • Improved tool renaming based on JSON schema (#3676)
  • Multi-function files support with documentation (#3679)

v0.9.1

27 Jul 06:35
496c2ae
Compare
Choose a tag to compare

What's Changed

  • Various bug fixes for new filesystem feature
  • Asyncify jinja template rendering in core routes
  • Add reverse index for agent tags

Full Changelog: 0.9.0...0.9.1

v0.9.0

24 Jul 08:13
d5e2fe2
Compare
Choose a tag to compare

v0.9.0

Letta Filesystem

We are introducing a big revamp in how Letta handles uploaded documents like PDFs! Letta Filesystem allows you to create folders and files (uploaded documents) that contextualize your agent's responses -- think Claude Projects, but transparent and controllable.

# upload a file into the folder
job = client.folders.files.upload(
    folder_id=folder.id,
    file=open("my_file.txt", "rb")
)

# wait until the job is completed
while True:
    job = client.jobs.retrieve(job.id)
    if job.status == "completed":
        break
    elif job.status == "failed":
        raise ValueError(f"Job failed: {job.metadata}")
    print(f"Job status: {job.status}")
    time.sleep(1)

When documents are uploaded to Letta, they are represented in the context window as files in a folder, and can be "open" (in-context) or "closed" (hidden). The agent manages this automatically will tools, but you can also manually open/close files (add/remove to the context window).

Options for converting documents to markdown

There are two options for parsing files: the default markitdown packages, or Mistral's OCR endpoint. To use Mistral, you must set LETTA_MISTRAL_API_KEY. If you're using Letta Cloud, Mistral OCR will be enabled by default.

Memory blocks vs. filesystem vs. archival memory

Curious on when to use memory blocks vs. filesystem vs. archival memory? See our guidelines on how to manage a context hierarchy.

v0.8.17

21 Jul 22:24
d3829bf
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.8.16...0.8.17

v0.8.16

21 Jul 07:06
7b0c9fa
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.8.15...0.8.16

v0.8.15

15 Jul 08:01
8fe15be
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.8.14...0.8.15

v0.8.14

14 Jul 18:04
a8d0d4b
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.8.13...0.8.14

v0.8.13

10 Jul 23:03
fc18ff5
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.8.12...0.8.13

v0.8.12

09 Jul 03:28
b42a87e
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.8.11...0.8.12

v0.8.11

08 Jul 00:04
9b28d74
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.8.10...0.8.11