* no bare raise in anthropic client. Also filter out messages with empty content
* use client logic
* replace empty/whitespace with period
* cursor bugbot
* chore: have letta fire a request after every step
* chore: have letta fire a request after every step
* chore: temporal
* chore: temporal
---------
Co-authored-by: Shubham Naik <shub@memgpt.ai>
DatabaseRegistry.get_async_session_factory() was removed during the sync
DB removal refactor, but scheduler.py still referenced it. This caused
AttributeError failures in all integration and send-message tests.
Fix by importing and using async_session_factory() directly from db module.
* fix: patch hole in the fallback summarizer where we weren't actually truncating
* fix: remove no-op
* chore: comment
* fix: simplify the new fallback
* fix: properly handle images in summarizer payload
* add e2b sandbox template variable to env for now. (may need to pull from secrets to have syncing in future)
* upgrade from info to warning
* apps
* e2b execution time
* Add archival memory import/export utilities
Added two utility scripts for managing agent archival memories:
- export_agent_memories.py: Export all passages from an agent to JSON
- Paginates through all results
- Removes embedding/embedding_config for portability
- Usage: python export_agent_memories.py <agent_id> [--output <file>]
- import_agent_memories.py: Import passages into an agent from JSON
- Batch imports with progress tracking
- Handles optional fields (tags, created_at)
- Includes dry-run mode for preview
- Usage: python import_agent_memories.py <agent_id> <input_file>
Use cases:
- Backup/restore agent memories
- Transfer memories between agents
- Seed new agents with existing knowledge bases
👾 Generated with Letta Code (https://letta.com)
Co-Authored-By: Letta <noreply@letta.com>
* docs: migrate documentation to cloud-first approach
Update all documentation to use Letta Cloud as the default deployment path:
- Remove base_url parameter from cloud examples (uses api.letta.com by default)
- Add token authentication to all SDK examples
- Change localhost URLs to https://api.letta.com in all examples
- Remove embedding parameter from cloud examples (managed automatically)
- Add comprehensive embedding configuration section to self-hosting guide
- Add warnings about required embedding configuration for self-hosted deployments
- Update curl examples to include Authorization headers
- Link to https://app.letta.com/api-keys for token retrieval
Files updated:
- Agent guides (11 files)
- Model configuration pages (5 files)
- Evals documentation (6 files)
- ADE guides (2 files)
- Self-hosting guide
- Voice integration guide
- README
- Quickstart
* docs: fix embedding parameter issues in cloud examples
- Remove leftover embedding parameter from TypeScript example in agents/overview.mdx
- Make self-hosting comment more explicit in README by showing actual embedding parameter syntax
* docs: fix model configuration pages to be self-hosting focused
Model configuration pages (OpenAI, Anthropic, Azure, xAI, Ollama) are about
configuring providers on self-hosted servers, not Letta Cloud. Updated all
SDK examples to:
- Use base_url="http://localhost:8283" instead of cloud token auth
- Include embedding parameter with clear comment
- Use consistent "An embedding model is required for self-hosted" wording
- Add Note directing cloud users to quickstart guide
This clarifies that provider configuration is a self-hosting concern, while
Letta Cloud manages providers automatically.
* fix: remove duplicate Authorization headers in human-in-the-loop docs
* chore: remove utility scripts that shouldn't be in repo
---------
Co-authored-by: Letta <noreply@letta.com>
Added warning message to clarify that BYOK is only available for enterprise customers.
👾 Generated with [Letta Code](https://letta.com)
Co-authored-by: Letta <noreply@letta.com>
Removes all references to pip installation (pip install letta) and the
letta server command from documentation, as Docker is now the only
supported installation method for self-hosting Letta.
Changes:
- Removed pip installation accordion from selfhosting/overview.mdx
- Updated FAQ to indicate Docker is required
- Removed CLI/pip sections from all model provider docs (13 files):
* OpenAI, Anthropic, Groq, Google AI, DeepSeek, xAI, Together.AI
* AWS Bedrock, Azure OpenAI, Google Vertex AI
* Ollama, LM Studio, vLLM, OpenAI Proxy
- Removed "letta server" tabs from agent tool docs (web_search,
fetch_webpage, run_code)
- Updated evals getting-started.mdx to use Docker in error messages
All references now point to Docker installation with links to the
self-hosting guide. SDK installation (pip install letta-client) remains
intact for developers using the Letta API.
Fixes feedback from user report at docs.letta.com/prompts
🐾 Generated with [Letta Code](https://letta.com)
Co-authored-by: Letta <noreply@letta.com>
* fix: patch sse streaming errors
* fix: don't re-raise, but log explicitly with sentry
* chore: cleanup comments
* fix: revert change from #5907, also make sure to write out a [DONE] to close the stream
* Fix agent loop continuing after cancellation in letta_agent_v3
Bug: When a run is cancelled, _check_run_cancellation() sets
self.should_continue=False and returns early from _step(), but the outer
for loop (line 245) continues to the next iteration, executing subsequent
steps even though cancellation was requested.
Symptom: User hits cancel during step 1, backend marks run as cancelled,
but agent continues executing steps 2, 3, etc.
Root cause: After the 'async for chunk in response' loop completes (line 255),
there was no check of self.should_continue before continuing to the next
iteration of the outer step loop.
Fix: Added 'if not self.should_continue: break' check after the inner loop
to exit the outer step loop when cancellation is detected. This makes v3
consistent with v2 which already had this check (line 306-307).
🐾 Generated with [Letta Code](https://letta.com)
Co-authored-by: Letta <noreply@letta.com>
* add integration tests
* passing tests
* fix: minor patches
* undo
---------
Co-authored-by: cpacker <packercharles@gmail.com>
Co-authored-by: Letta <noreply@letta.com>
* Fix agent loop continuing after cancellation in letta_agent_v3
Bug: When a run is cancelled, _check_run_cancellation() sets
self.should_continue=False and returns early from _step(), but the outer
for loop (line 245) continues to the next iteration, executing subsequent
steps even though cancellation was requested.
Symptom: User hits cancel during step 1, backend marks run as cancelled,
but agent continues executing steps 2, 3, etc.
Root cause: After the 'async for chunk in response' loop completes (line 255),
there was no check of self.should_continue before continuing to the next
iteration of the outer step loop.
Fix: Added 'if not self.should_continue: break' check after the inner loop
to exit the outer step loop when cancellation is detected. This makes v3
consistent with v2 which already had this check (line 306-307).
🐾 Generated with [Letta Code](https://letta.com)
Co-authored-by: Letta <noreply@letta.com>
* add integration tests
* fix: misc fixes required to get cancellations to work on letta code localhost
---------
Co-authored-by: Letta <noreply@letta.com>
Co-authored-by: Sarah Wooders <sarahwooders@gmail.com>