Releases: letta-ai/letta
v0.6.6
🐜 Bugfix release (fix issue with disappearing messages in ADE)
What's Changed
- chore: bump composio packages by @mattzh72 in #2278
- fix: Add index to messages table by @mattzh72 in #2280
- chore: Clean up upserting base tools by @mattzh72 in #2274
- feat: add new RateLimitExceededError by @carenthomas in #2277
- chore: Add temporary telemetry logs by @mattzh72 in #2284
- fix: Remove load agent in recall cursor by @mattzh72 in #2286
- chore: Remove debugging logs by @mattzh72 in #2287
- feat: rename function to tool in sdk by @carenthomas in #2288
- Add support for non pro models by @SwastikGorai in #2285
- feat: Add ConditionalToolRules by @mlong93 in #2279
- feat: rename internal monologue by @carenthomas in #2289
- feat: add new ContextWindowExceededError by @carenthomas in #2272
- Fix bug: add required argument
actor
(load_file_to_source
). by @dboyliao in #2292 - chore: bump version to 0.6.6 by @sarahwooders in #2293
New Contributors
- @SwastikGorai made their first contribution in #2285
- @dboyliao made their first contribution in #2292
Full Changelog: 0.6.5...0.6.6
v0.6.5
This release includes bug fixes for Ollama embeddings, improved error handling for streaming, improvements in debugging tool callings and agent creation.
⚙️ Providing tool call logs (stdout
and stderr
)
We now pass back the logs from tool execution in the FunctionResponse
object. You can view these logs in the ADE in addition to the tool response:
👾 Simplification of agent creation API
We now allow for simply specifying the LLM and embedding configuration of an agent by specifying the model in the format <provider>/<model>
:
curl --request POST \
--url http://localhost:8283/v1/agents/ \
--header 'Content-Type: application/json' \
--data '{
"memory_blocks": [
{
"value": "Name: Sarah",
"label": "human"
},
{
"value": "I am a helpful assistant",
"label": "persona"
}
],
"llm": "anthropic/claude-3-5-sonnet-20241022",
"embedding": "openai/text-embedding-ada-002"
}'
You can also provide the context window, and specify the character limit of memory blocks (e.g. human/persona):
curl --request POST \
--url http://localhost:8283/v1/agents/ \
--header 'Content-Type: application/json' \
--data '{
"memory_blocks": [
{
"value": "Name: Sarah",
"limit": 5000,
"label": "human"
},
{
"value": "I am a helpful assistant",
"label": "persona"
}
],
"llm": "anthropic/claude-3-5-sonnet-20241022",
"embedding": "openai/text-embedding-ada-002",
"context_window_limit": 15000
}'
What's Changed
- feat: Catch composio errors and return informative errors in the endpoint by @mattzh72 in #2247
- feat: Rewrite agents by @mattzh72 in #2232
- Fix: Move orm metadata out of write-only Agent pydantic objects by @mattzh72 in #2249
- fix: Changing e2b template id as an env var reflects immediately by @mattzh72 in #2250
- fix: Remove
created_by_id
check by @mattzh72 in #2252 - chore: Delete metadata.py by @mattzh72 in #2253
- docs: fix typo in prompt by @keenranger in #2256
- chore: Catch orm specific issues in agents v1 routes and simplify tool add/remove from agent by @mattzh72 in #2259
- feat: separate Passages tables by @mlong93 in #2245
- fix: add error logging on stream fails by @cpacker in #2261
- docs: Feature/update docs by @keithf123r in #2257
- fix: Make
embedding_endpoint_type
an enum by @mattzh72 in #2251 - fix: Fix update agent by @mattzh72 in #2265
- chore: Add comprehensive unit test for adding/removing tools via update agent by @mattzh72 in #2267
- fix: Scale up database by @mattzh72 in #2263
- feat: Adding init tool rule for Anthropic endpoint by @mlong93 in #2262
- fix: fix ollama embeddings by @sarahwooders in #2264
- Create multiplatform docker images by @AliSayyah in #2254
- feat: Add optional llm and embedding handle args to CreateAgent request by @carenthomas in #2260
- fix: refactor sandbox run logic to add status field by @carenthomas in #2248
- chore: Add testing around base tools by @mattzh72 in #2268
- fix: Deprecate in memory function stores in agent.py by @mattzh72 in #2271
- fix: Allow
ChildToolRule
to work without support for structured outputs by @mlong93 in #2270 - chore: bump version to 0.6.5 by @sarahwooders in #2275
New Contributors
- @keenranger made their first contribution in #2256
- @keithf123r made their first contribution in #2257
Full Changelog: 0.6.4...0.6.5
v0.6.4
🐛 Bugfix release - This release fixes the issue in the ADE that cause uploaded files to not be properly inserted in agents' archival memory
What's Changed
- feat: fix message create/update schemas to simply schema by @sarahwooders in #2223
- fix: Update README.md asset URLs to be absolute by @cpacker in #2227
- chore: removed agent_store, storage connectors by @mlong93 in #2229
- ignore extra variables in env files by @AliSayyah in #2226
- feat: catch error with providers in model listing by @sarahwooders in #2231
- feat: archival memory file upload by @mlong93 in #2228
- chore: raising errors for passages, adding new passage test by @mlong93 in #2234
- feat: route all sandbox errors to stderr by @carenthomas in #2222
- fix: make sandboxrunresult rv not optional by @carenthomas in #2244
- chore: bump version 0.6.4 by @sarahwooders in #2246
New Contributors
- @AliSayyah made their first contribution in #2226
Full Changelog: 0.6.3...0.6.4
v0.6.3
🐍 Support for Python 3.13
We now support the latest version of Python, and have also upgraded various dependencies to ensure they all also support Python 3.13.
✅ Simplification of REST API schemas
We simplified the REST API for agent creation to pass in defaults for tools and agent type. Below is an example of agent creation via the REST API (documentation):
curl --request POST \
--url http://localhost:8283/v1/agents/ \
--header 'Content-Type: application/json' \
--data '{
"memory_blocks": [
{
"value": "The human'\''s name is Bob the Builder",
"label": "human"
},
{
"label": "persona",
"value": "My name is Sam, the all-knowing sentient AI."
}
],
"llm_config": {
"model": "gpt-4o-mini",
"model_endpoint_type": "openai",
"model_endpoint": "https://api.openai.com/v1",
"context_window": 16000
},
"embedding_config": {
"embedding_endpoint_type": "openai",
"embedding_endpoint": "https://api.openai.com/v1",
"embedding_model": "text-embedding-3-small",
"embedding_dim": 8191
}
}'
What's Changed
- fix: Modify the
list
ORM function by @mattzh72 in #2208 - fix: pattern match new prints correctly by @carenthomas in #2213
- fix: allow empty initial message sequence by @kl2806 in #2214
- fix: re-enable streaming tokens by @cpacker in #2193
- feat: add logs to response for tool run by @carenthomas in #2205
- feat: support local https mode by @4shub in #2217
- feat: add files by @4shub in #2210
- fix: fix o1 duplicate messages by @kl2806 in #2216
- fix: cleanup error trace for no llm/embedding_config on POST by @cpacker in #2218
- fix: make healthcheck public by @cpacker in #2209
- feat: modify REST API schemas by @sarahwooders in #2121
- fix: create new request model that drops user_id by @cpacker in #2220
- feat: orm passage migration by @mlong93 in #2180
- fix: cleanup dependencies by @sarahwooders in #2224
- feat: support python 3.13 by @sarahwooders in #2176
- chore: Update README.md by @cpacker in #2215
- feat: add print for sqlite error by @sarahwooders in #2221
- chore: bump version to 0.6.3 by @sarahwooders in #2225
Full Changelog: 0.6.2...0.6.3
v0.6.2
- Fix to data sources, e.g.
letta load ...
and/attach
command in the CLI (#2184) - Support for an async messages route to allow for long running agent execution (#2206)
- Support for
system
messages for OSS models and Anthropic - Updated
Dockerfile
to allow for the Letta service to be run with a single command (#2177):
# replace `~/.letta/.persist/pgdata` with wherever you want to store your data
docker run \
-v ~/.letta/.persist/pgdata:/var/lib/postgresql/data \
-p 8283:8283 \
-e OPENAI_API_KEY="your_api_key" \
letta/letta
# using a .env file instead of passing environment variables
docker run \
-v ~/.letta/.persist/pgdata:/var/lib/postgresql/data \
-p 8283:8283 \
--env-file .env \
letta/letta
What's Changed
- feat: offline memory agent by @kl2806 in #2036
- chore: add deprecation notice to dev portal by @4shub in #2171
- feat: orm ToolsAgents migration by @mlong93 in #2173
- chore: add workflow files for closing stale issues by @cpacker in #2174
- chore: update workflow by @cpacker in #2175
- feat: message orm migration by @mlong93 in #2144
- feat: added new workflow to warn about poetry diffs by @cpacker in #2179
- fix: fix runtime warnings with the server by @cpacker in #2178
- chore: add new ui by @4shub in #2182
- chore: drop ade flag by @4shub in #2185
- feat: support system message for chatml wrapper by @sarahwooders in #2187
- fix: Fix composio tool add by @mattzh72 in #2188
- fix: temp disable stream tokens by @cpacker in #2189
- fix: Patch dummy message and fix test by @mattzh72 in #2192
- fix: Updating messages by @mattzh72 in #2186
- fix: Revert changes to alembic script and tweak created_at field on messages by @mattzh72 in #2194
- feat: remove loading from module by @sarahwooders in #2196
- fix: disable printing version in health check, causes spam by @cpacker in #2195
- chore: Bump composio-core requirements to latest by @mattzh72 in #2197
- fix: add a special error type for configuration errors by @cpacker in #2198
- fix: patch anthropic system message in send_message route by @cpacker in #2199
- fix: bad print in common cli by @cpacker in #2200
- fix: bug in get_tool_id by @cpacker in #2201
- feat: error stack trace capture by @sarahwooders in #2203
- fix: patch
Dockerfile
for purpose ofdocker run
by @cpacker in #2177 - fix: ask for embedding config for
letta load directory ...
by @sarahwooders in #2184 - chore: bump version 0.6.2 + and make postgres dependencies optional by @sarahwooders in #2183
- fix: remove dedup messages by @kl2806 in #2204
- feat: add an async messages route (
/agent/{agent_id}/messages/async
) by @cpacker in #2206
Full Changelog: 0.6.1...0.6.2
v0.6.1
🐛 Bugfix release
What's Changed
- feat: Support external codebases as a tool execution sandbox by @mattzh72 in #2159
- fix: support initializing with custom message sequences by @sarahwooders in #2154
- chore: Skip foreign key/constraint tests if using SQLite by @mattzh72 in #2160
- fix: Suppress warnings during local sandbox tool execution w/ venv by @mattzh72 in #2164
- chore: update
poetry.lock
to fix docker build issue by @sarahwooders in #2163 - feat: Parse out errors from venv local sandbox by @mattzh72 in #2166
- chore: Migrate jobs to the orm by @mattzh72 in #2165
- feat: return 404 if source not exists by @sarahwooders in #2136
- fix: patch system message creation spam by @cpacker in #2169
- chore: bump version 0.6.1 by @sarahwooders in #2170
Full Changelog: 0.6.0...0.6.1
v0.6.0
This is a major release adding support for tool sandboxing and refactoring of agent state management to be more reliably synced to the database.
🛠️ Tool Sandboxing
You can use E2B for tool sandboxing by setting the following environment variables:
export E2B_API_KEY=...
export E2B_SANDBOX_TEMPLATE_ID=...
Note that if you are using an E2B sandbox, it will need to have the latest version of letta installed. We will be adding additional support for setting environment and installing additional dependencies in tool sandboxes.
🔐 Set ADE server password
If you are using the ADE, you can now password project your local server and still connect the ADE:
export LETTA_SERVER_PASSWORD=password
letta server --ade --secure --port=8283
What's Changed
- fix: Add save agents by @mattzh72 in #2080
- fix: shared memory without requiring send message by @kl2806 in #2068
- fix: fix bug where updates sets block limit to default value by @kl2806 in #2074
- test: add test for pip install on python 3.10, 3.11, and 3.12 and remove crewAI tools by @sarahwooders in #2082
- feat: add route for editing a memory blocks limit (via
Memory
, instead of viaBlocks
) by @cpacker in #2084 - Revert "feat: add route for editing a memory blocks limit (via
Memory
, instead of viaBlocks
)" by @cpacker in #2085 - feat: routes for adding/linking new memory blocks to agents + unlinking blocks from agents by @cpacker in #2083
- fix: redo #2085 by @cpacker in #2087
- fix: make runtime error warnings.warn instead by @cpacker in #2088
- fix: silence bad print by @cpacker in #2093
- feat: Sandboxing for tool execution by @mattzh72 in #2040
- fix: remove stray input by @cpacker in #2096
- fix: boost default char limit to 5k for core memory blocks by @cpacker in #2089
- feat: Add composio tools compatibility to sandboxes by @mattzh72 in #2097
- fix: add more types to the type_map from python -> json schema by @cpacker in #2095
- fix: extra safety checks in the token counter for functions by @cpacker in #2061
- fix: Fix block model dump by @mattzh72 in #2100
- chore: Add more log statements to base orm by @mattzh72 in #2101
- feat: Make blocks agents mapping table by @mattzh72 in #2103
- fix: do a pre-validation validation on the inputs assigned to
agent_state.message_ids
by @cpacker in #2098 - chore: Change create_tool endpoint on v1 routes to error instead of upsert by @mattzh72 in #2102
- fix: Update block label also updates the BlocksAgents table by @mattzh72 in #2106
- feat: Add per-agent locking to send message by @mattzh72 in #2109
- fix: pass tool errors through the HTTP POST
/tools
requests with detailed error messages by @cpacker in #2110 - feat: Separate out streaming route by @mattzh72 in #2111
- fix: example issue by @4shub in #2114
- fix: Remove hard failure on bad
stream_tokens
input by @mattzh72 in #2115 - feat: refactor agent memory representation and modify routes for editing blocks by @sarahwooders in #2094
- fix: update url by @cpacker in #2124
- feat: Improve retry mechanism for
_get_ai_reply
and refactor method by @mattzh72 in #2113 - feat: support pydantic models in tool uploads + patch dict/list types by @cpacker in #2112
- chore: add record key by @4shub in #2126
- fix: Fixed Issue #2127 by @bluestarforever in #2129
- fix: cleanup CLI tool prints by @cpacker in #2130
- chore: Add tool execution sandbox test for core memory tool by @mattzh72 in #2131
- fix: allow setting pass for server
--secure
by @cpacker in #2132 - feat: Improve error messages from tool sandbox by @mattzh72 in #2135
- feat: Add endpoints to add default e2b/local sandbox configs by @mattzh72 in #2138
- docs: remove dollar prefix, make it convenient to copy by @ssteo in #2128
- feat: Add endpoints to list Composio apps and actions by @mattzh72 in #2140
- feat: Add lock around loading agent by @mattzh72 in #2141
- feat: add POST route for testing tool execution via
tool_id
by @cpacker in #2139 - feat: pass custom headers to
RESTClient
by @sarahwooders in #2151 - fix: patch bug in pydantic request model for
/v1/tools/run
by @cpacker in #2152 - chore: added new test to flag stray prints in new PRs by @cpacker in #2155
- fix: escape strings in sandbox by @kl2806 in #2156
- chore: bump version to 0.6.0 by @sarahwooders in #2153
- fix: fix core memory limits hardcoded (draw from constant instead) by @cpacker in #2157
New Contributors
- @bluestarforever made their first contribution in #2129
- @ssteo made their first contribution in #2128
Full Changelog: 0.5.4...0.6.0
v0.5.5
🐛 Bugfix release to fix issues with the pip install letta[external-tools]
option which was failing due to conflicting dependencies.
What's Changed
- chore: bump version to 0.5.4 by @sarahwooders in #2078
- fix: Add save agents by @mattzh72 in #2080
- fix: shared memory without requiring send message by @kl2806 in #2068
- fix: fix bug where updates sets block limit to default value by @kl2806 in #2074
- test: add test for pip install on python 3.10, 3.11, and 3.12 and remove crewAI tools by @sarahwooders in #2082
Full Changelog: 0.5.4...0.5.5
v0.5.4
🦟 Bugfix release
What's Changed
- feat: allow passing in tags to
client.create_agent(tags=[..])
by @sarahwooders in #2073 - fix: Lazy load
llamaindex
imports that are causing issues by @mattzh72 in #2075 - fix: fix
poetry.lock
to pin pydantic version by @sarahwooders in #2076
Full Changelog: 0.5.3...0.5.4
v0.5.3
🐛 This release includes many bugfixes, and also migrates the Letta docker image to the letta/letta
Dockerhub repository.
🔥 New features 🔥
📊 Add token counter to CLI /tokens
#2047
🤲 Support for Together AI endpoints #2045 (documentation)
🔐 Password-protect letta server endpoints with the letta server --secure
flag #2030
What's Changed
- fix: patch workflows by @cpacker in #2011
- feat: rename docker to
letta/letta
by @sarahwooders in #2010 - feat: add bash script to allow people to generate openapi schema with… by @4shub in #2015
- feat: modify
startup.sh
to work for sqlite by @sarahwooders in #2012 - feat: add openapi compatibility checker by @4shub in #2016
- fix: fix
Unsupport authentication type
error for Ollama by @sarahwooders in #2018 - feat: add latest anthropic models by @sarahwooders in #2022
- feat: Move Source to ORM model by @mattzh72 in #1979
- fix: Fix memory summarization by @mattzh72 in #2029
- feat: support a new secure flag by @4shub in #2030
- chore: Migrate FileMetadata to ORM by @mattzh72 in #2028
- fix: Fix bug for deleting agents belonging to the user org by @mattzh72 in #2033
- fix: Fix tool deletion bug by @mattzh72 in #2034
- fix: Fix summarizer for Anthropic and add integration tests by @mattzh72 in #2046
- feat: added token counter command to CLI by @cpacker in #2047
- fix: Fix Docker compose startup issues (#2056) by @sethanderson1 in #2057
- Add missing import in functions.py by @andrewrfitz in #2060
- feat: support togetherAI via
/completions
by @cpacker in #2045 - fix: context window overflow patch by @cpacker in #2053
- fix: Fix ollama CI test by @mattzh72 in #2062
- feat: Move blocks to ORM model by @mattzh72 in #1980
- feat: bump version 0.5.3 by @sarahwooders in #2066
- fix(compose.yaml): letta_server hostname mismatch by @ahmedrowaihi in #2065
- core: update notebooks to 0.5.2 and add agent cleanup (error on duplicate names) by @sarahwooders in #2038
- fix: Fix security vuln with file upload by @mattzh72 in #2067
New Contributors
- @sethanderson1 made their first contribution in #2057
- @andrewrfitz made their first contribution in #2060
- @ahmedrowaihi made their first contribution in #2065
Full Changelog: 0.5.2...0.5.3