Commit Graph

307 Commits

Author SHA1 Message Date
Kian Jones
fbd89c9360 fix: replace all 'PRODUCTION' references with 'prod' for consistency (#6627)
* fix: replace all 'PRODUCTION' references with 'prod' for consistency

Problem: Codebase had 11 references to 'PRODUCTION' (uppercase) that should
use 'prod' (lowercase) for consistency with the deployment workflows and
environment normalization.

Changes across 8 files:

1. Source files (using settings.environment):
   - letta/functions/function_sets/multi_agent.py
   - letta/services/tool_manager.py
   - letta/services/tool_executor/multi_agent_tool_executor.py
   - letta/services/helpers/agent_manager_helper.py
   All checks changed from: settings.environment == "PRODUCTION"
   To: settings.environment == "prod"

2. OTEL resource configuration:
   - letta/otel/resource.py
     - Updated _normalize_environment_tag() to handle 'prod' directly
     - Removed 'PRODUCTION' -> 'prod' mapping (no longer needed)
     - Updated device.id check from _env != "PRODUCTION" to _env != "prod"

3. Test files:
   - tests/managers/conftest.py
     - Fixture parameter changed from "PRODUCTION" to "prod"
   - tests/managers/test_agent_manager.py (3 occurrences)
   - tests/managers/test_tool_manager.py (2 occurrences)
   All test checks changed to use "prod"

Result: Complete consistency across the codebase:
- All environment checks use "prod" instead of "PRODUCTION"
- Normalization function simplified (no special case for PRODUCTION)
- Tests use correct "prod" value
- Matches deployment workflow configuration from PR #6626

This completes the environment naming standardization effort.

* fix: update settings.py environment description to use 'prod' instead of 'PRODUCTION'

The field description still referenced PRODUCTION as an example value.
Updated to use lowercase 'prod' for consistency with actual usage.

Before: "Application environment (PRODUCTION, DEV, CANARY, etc. - normalized to lowercase for OTEL tags)"
After: "Application environment (prod, dev, canary, etc. - lowercase values used for OTEL tags)"
2025-12-15 12:02:34 -08:00
Cameron
a56c6571d2 fix: update fetch_webpage docstring to reflect actual implementation (#6503)
The docstring incorrectly stated that fetch_webpage uses Jina AI reader.
Updated to accurately describe the actual implementation which uses:
1. Exa API (if EXA_API_KEY is available)
2. Trafilatura (fallback)
3. Readability + html2text (final fallback)

🐾 Generated with [Letta Code](https://letta.com)

Co-authored-by: Letta <noreply@letta.com>
2025-12-15 12:02:34 -08:00
Sarah Wooders
ceadacd30e feat: support programmatic tool execution (cloud only) (#6441) 2025-12-15 12:02:19 -08:00
Sarah Wooders
0a0cf391fc fix: fix client injection code (#6421) 2025-12-15 12:02:18 -08:00
Cameron
bd5f684346 Update archival memory docstrings for clarity (#6098)
* Update archival memory docstrings for clarity

Improved docstrings for archival_memory_insert and archival_memory_search to:
- Better explain when and how to use these tools
- Provide clearer best practices
- Include more realistic examples (meeting notes, project updates)
- Emphasize semantic search vs keyword matching
- Clarify tag filtering behavior

👾 Generated with [Letta Code](https://letta.com)

Co-Authored-By: Letta <noreply@letta.com>

* examples

---------

Co-authored-by: Letta <noreply@letta.com>
Co-authored-by: Kevin Lin <kl2806@columbia.edu>
2025-11-13 15:36:56 -08:00
Kevin Lin
f65eaa10c1 feat: Remove view from anthropic tool (#5832)
remove view from anthropic tool
2025-11-13 15:36:14 -08:00
Kian Jones
704d3b2d79 chore: refactor not to use warnings.warn (#5730)
* refactor not to use warnings.warn

* temp circular import fix maybe unecessary/bnad

* fix Deprecation warning

* fix deprecation warning and mcp thing?

* revert changes to mcp server test

* fix deprecation warning
2025-10-24 15:14:31 -07:00
Kevin Lin
4bb54f471c feat: memory apply patch [LET-5548] (#5475) 2025-10-24 15:13:15 -07:00
Kevin Lin
35b5383724 feat: match line number rendering to Anthropic / OAI defaults (#5492) 2025-10-24 15:13:15 -07:00
jnjpng
39a23e5960 fix: mcp schema generation test (#5608)
* base

* base

---------

Co-authored-by: Letta Bot <noreply@letta.com>
2025-10-24 15:13:15 -07:00
jnjpng
b0c0c8752b feat: support anyOf for structured output tools [LET-5615] (#5556)
* base

* works?

* update tests

---------

Co-authored-by: Letta Bot <noreply@letta.com>
2025-10-24 15:13:15 -07:00
Sarah Wooders
08be90f5e9 feat: revise mcp tool routes (#5195)
* refactored version of MCP routs

* feat: revise MCP routes

* working through new routes spec

* refining

* add necessary patch for config

* mcp servers progress

* small fixes

* updates

* finished

* just stage and publish api

* make update static

---------

Co-authored-by: Ari Webb <ari@letta.com>
Co-authored-by: Ari Webb <arijwebb@gmail.com>
2025-10-24 15:13:15 -07:00
Caren Thomas
a5354d7534 chore: bump version 0.11.8 2025-10-07 18:31:26 -07:00
Sarah Wooders
e07a589796 chore: rm composio (#5151) 2025-10-07 17:50:49 -07:00
Sarah Wooders
6016ac0f33 chore: undo fetch_webpage rename (#5132) 2025-10-07 17:50:49 -07:00
Charles Packer
09b173668a feat(core): rename fetch_webpage to web_fetch (#5110) 2025-10-07 17:50:48 -07:00
Sarah Wooders
7b73b25a95 fix: fix mcp for complex schemas and add tests (#5063) 2025-10-07 17:50:48 -07:00
Kevin Lin
09d9c3ffd4 feat: anthropic tools for claude sonnet 4.5 (#4988)
* add anthropic memory tools

* memory view working

* update memory examples

* tools

* feat: some changes (#5003)

* feat: added the ability to modify and add descriptions on creation

* fix: kill dead code & write into core_tool_executor instead

* fix: use block_manager not agent_manager where possible, also turn the return string errors into raising exceptions

* fix: cleanup, get rid of more return string errors replaced with valueerror, also drop deadcode

---------

Co-authored-by: Charles Packer <packercharles@gmail.com>
2025-10-07 17:50:47 -07:00
Sarah Wooders
4df0a27eb0 chore: remove sync db (#4873) 2025-10-07 17:50:45 -07:00
Kian Jones
b8e9a80d93 merge this (#4759)
* wait I forgot to comit locally

* cp the entire core directory and then rm the .git subdir
2025-09-17 15:47:40 -07:00
cthomas
0776a236c8 feat: add new header dependency in all routes (#2905) 2025-09-15 14:33:08 -07:00
cthomas
2d971cdcf0 feat: hold reference to asyncio tasks in memory (#2823) 2025-09-10 17:08:07 -07:00
jnjpng
2aae4bf0db feat: add resync tool endpoint (#2812)
Co-authored-by: Jin Peng <jinjpeng@Jins-MacBook-Pro.local>
2025-09-09 18:11:02 -07:00
Kian Jones
22f70ca07c chore: officially migrate to submodule (#4502)
* remove apps/core and apps/fern

* fix precommit

* add submodule updates in workflows

* submodule

* remove core tests

* update core revision

* Add submodules: true to all GitHub workflows

- Ensure all workflows can access git submodules
- Add submodules support to deployment, test, and CI workflows
- Fix YAML syntax issues in workflow files

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* remove core-lint

* upgrade core with latest main of oss

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-09-09 12:45:53 -07:00
Charles Packer
388dd46ffc feat: various performance patches for gpt-5 [LET-4157] (#4381)
* feat: increase the verbosity of the heartbeat kwarg

* chore: strip docstrings out from the file in which they are not parsed (duplicates inside base.py

* feat: add examples to the docstrings for memory_replace and memory_insert

* feat: add more examples
2025-09-06 11:23:13 -07:00
Charles Packer
9bbe7ecb3e feat: various performance patches for gpt-5 [LET-4157] (#4381)
* feat: increase the verbosity of the heartbeat kwarg

* chore: strip docstrings out from the file in which they are not parsed (duplicates inside base.py

* feat: add examples to the docstrings for memory_replace and memory_insert

* feat: add more examples
2025-09-06 11:23:13 -07:00
Matthew Zhou
415ae5a928 chore: Add more prompting around archival datetime (#4432)
Add more prompting around archival datetime
2025-09-04 15:31:49 -07:00
Matthew Zhou
56bd02d778 chore: Add more prompting around archival datetime (#4432)
Add more prompting around archival datetime
2025-09-04 15:31:49 -07:00
Matthew Zhou
dda4459245 feat: Make end date inclusive on conversation search (#4431)
Make end date inclusive
2025-09-04 15:26:49 -07:00
Matthew Zhou
ba3843031e feat: Make end date inclusive on conversation search (#4431)
Make end date inclusive
2025-09-04 15:26:49 -07:00
Matthew Zhou
d924cc005b fix: change to pure rank-based RRF for relevance ordering (#4411)
* Fix RRF

* Fix turbopuffer tests
2025-09-03 17:33:19 -07:00
Matthew Zhou
25d37e2ac9 fix: change to pure rank-based RRF for relevance ordering (#4411)
* Fix RRF

* Fix turbopuffer tests
2025-09-03 17:33:19 -07:00
Matthew Zhou
2af6049d6f feat: Change web search to exa [LET-4190] (#4401)
* Change web search to exa

* Fix tf/justfile

* add exa api key for integration test

* Mock exa

---------

Co-authored-by: Kian Jones <kian@letta.com>
2025-09-03 15:52:10 -07:00
Matthew Zhou
3126598720 feat: Change web search to exa [LET-4190] (#4401)
* Change web search to exa

* Fix tf/justfile

* add exa api key for integration test

* Mock exa

---------

Co-authored-by: Kian Jones <kian@letta.com>
2025-09-03 15:52:10 -07:00
Matthew Zhou
129dd97902 feat: Add fetch webpage tool [LET-4188] (#4395)
* Add fetch webpage tool

* Use trafilatura for web extraction
2025-09-03 13:34:35 -07:00
Matthew Zhou
e6c9b4d708 feat: Add fetch webpage tool [LET-4188] (#4395)
* Add fetch webpage tool

* Use trafilatura for web extraction
2025-09-03 13:34:35 -07:00
Matthew Zhou
8f425aa024 feat: Modify conversation search tool to be hybrid (#4362)
* Modify conversation search functionality

* Gate the roles
2025-09-02 13:45:53 -07:00
Matthew Zhou
8e2a53b956 feat: Modify conversation search tool to be hybrid (#4362)
* Modify conversation search functionality

* Gate the roles
2025-09-02 13:45:53 -07:00
Matthew Zhou
0854ba0d01 feat: Support timestamp filtering for archival memories [LET-3469] (#4330)
Finish temporal filtering
2025-08-30 19:31:07 -07:00
Matthew Zhou
335e0c2be1 feat: Support timestamp filtering for archival memories [LET-3469] (#4330)
Finish temporal filtering
2025-08-30 19:31:07 -07:00
Matthew Zhou
b1f2e8b2bc feat: Allow agent archival tools to insert/search with tags [LET-4072] (#4300)
* Finish modifying archival memory tools

* Add tags

* Add disabled test
2025-08-29 11:55:06 -07:00
Matthew Zhou
23b2769dc4 feat: Allow agent archival tools to insert/search with tags [LET-4072] (#4300)
* Finish modifying archival memory tools

* Add tags

* Add disabled test
2025-08-29 11:55:06 -07:00
Kian Jones
fecf6decfb chore: migrate to ruff (#4305)
* base requirements

* autofix

* Configure ruff for Python linting and formatting

- Set up minimal ruff configuration with basic checks (E, W, F, I)
- Add temporary ignores for common issues during migration
- Configure pre-commit hooks to use ruff with pass_filenames
- This enables gradual migration from black to ruff

* Delete sdj

* autofixed only

* migrate lint action

* more autofixed

* more fixes

* change precommit

* try changing the hook

* try this stuff
2025-08-29 11:11:19 -07:00
Kian Jones
ca6cfa5914 chore: migrate to ruff (#4305)
* base requirements

* autofix

* Configure ruff for Python linting and formatting

- Set up minimal ruff configuration with basic checks (E, W, F, I)
- Add temporary ignores for common issues during migration
- Configure pre-commit hooks to use ruff with pass_filenames
- This enables gradual migration from black to ruff

* Delete sdj

* autofixed only

* migrate lint action

* more autofixed

* more fixes

* change precommit

* try changing the hook

* try this stuff
2025-08-29 11:11:19 -07:00
Matthew Zhou
d797296032 feat: Support basic upload/querying on tpuf [LET-3465] (#4255)
* wip implementing turbopuffer

* Move imports up

* Add type of archive

* Integrate turbopuffer functionality

* Debug turbopuffer tests failing

* Fix turbopuffer

* Run fern

* Fix multiple heads
2025-08-28 10:39:16 -07:00
Matthew Zhou
651671cb83 feat: Support basic upload/querying on tpuf [LET-3465] (#4255)
* wip implementing turbopuffer

* Move imports up

* Add type of archive

* Integrate turbopuffer functionality

* Debug turbopuffer tests failing

* Fix turbopuffer

* Run fern

* Fix multiple heads
2025-08-28 10:39:16 -07:00
Matthew Zhou
13d8eae9ef chore: Move environment to settings [LET-4080] (#4265)
Move environment to settings
2025-08-27 14:52:35 -07:00
Matthew Zhou
2fa546e15d chore: Move environment to settings [LET-4080] (#4265)
Move environment to settings
2025-08-27 14:52:35 -07:00
jnjpng
5cf80df22c LET-4053: chore: clean up old mcp client code
fix(LET-4053): clean up old mcp client code

Remove commented-out and unused files in functions/mcp_client:
- Deleted base_client.py (fully commented out)
- Deleted sse_client.py (fully commented out)
- Deleted stdio_client.py (fully commented out)
- Deleted empty __init__.py

Kept types.py and exceptions.py as they contain active code still being used.
2025-08-26 14:14:09 -07:00
jnjpng
fb6ecfc575 LET-4053: chore: clean up old mcp client code
fix(LET-4053): clean up old mcp client code

Remove commented-out and unused files in functions/mcp_client:
- Deleted base_client.py (fully commented out)
- Deleted sse_client.py (fully commented out)
- Deleted stdio_client.py (fully commented out)
- Deleted empty __init__.py

Kept types.py and exceptions.py as they contain active code still being used.
2025-08-26 14:14:09 -07:00