adding-models
GitHub指导在Letta Code中添加新LLM模型,涵盖获取有效模型句柄、更新运行目录、测试兼容性及可选的CI矩阵配置。
Trigger Scenarios
Install
npx skills add letta-ai/letta-code --skill adding-models -g -y
SKILL.md
Frontmatter
{
"name": "adding-models",
"description": "Guide for adding new LLM models to Letta Code. Use when the user wants to add support for a new model, needs to know valid model handles, or wants to update model-specific compatibility behavior. Covers runtime catalog sources, CI test matrices, and handle validation."
}
Adding Models
This skill guides you through adding a new LLM model to Letta Code.
Quick Reference
Key files:
src/agent/remote-model-catalog.ts- Runtime catalog loading and projectionsrc/agent/model-catalog.ts- Model lookup and compatibility aliases.github/workflows/ci.yml- CI test matrix (optional)src/tools/manager.ts- Toolset detection logic (rarely needed)
Workflow
Step 1: Find Valid Model Handles
Query the hosted catalog to see preset IDs and handles:
curl -s https://api.letta.com/v1/models/catalog | jq '.models[] | [.id, .handle]'
To inspect the models currently available from an API backend, query its model inventory:
curl -s https://api.letta.com/v1/models/ | jq '.[] | .handle'
Or filter the inventory by provider:
curl -s https://api.letta.com/v1/models/ | jq '.[] | select(.handle | startswith("google_ai/")) | .handle'
Common provider prefixes:
anthropic/- Claude modelsopenai/- GPT modelsgoogle_ai/- Gemini modelsgoogle_vertex/- Vertex AIopenrouter/- Various providers
Step 2: Update the Owning Catalog
Letta Code does not bundle a model catalog:
- API and hosted presets come from the server's
GET /v1/models/catalogresponse. - Local model inventory comes from pi-ai and the active provider runtimes.
Add the model at the source that owns it. A hosted preset belongs in the server catalog. A local provider model belongs in pi-ai or that provider's discovery runtime.
Only change this repository when the model needs Letta Code-specific compatibility behavior, such as preserving an established CLI alias or recognizing a new provider for toolset selection. Keep that logic narrow and derive the handle and metadata from the runtime catalog rather than copying model definitions here.
Step 3: Test the Model
Test with headless mode:
bun run src/index.ts --new --model <model-id> -p "hi, what model are you?"
Example:
bun run src/index.ts --new --model gemini-3-flash -p "hi, what model are you?"
Step 4: Add to CI Test Matrix (Optional)
To include the model in automated testing, add it to .github/workflows/ci.yml:
# Find the headless job matrix around line 122
model: [gpt-5-minimal, gpt-4.1, sonnet-4.5, gemini-pro, your-new-model, glm-4.6, haiku]
Toolset Detection
Models are automatically assigned toolsets based on provider:
openai/*→codextoolsetgoogle_ai/*orgoogle_vertex/*→geminitoolset- Others →
defaulttoolset
This is handled by isGeminiModel() and isOpenAIModel() in src/tools/manager.ts. You typically don't need to modify this unless adding a new provider.
Common Issues
"Handle not found" error: The model handle is incorrect. Run the validation script to see valid handles.
Model works but wrong toolset: Check src/tools/manager.ts to ensure the provider prefix is recognized.
Version History
-
b94afce
Current 2026-08-27 15:20
重构模型管理:从本地JSON定义改为使用运行时拥有的目录源,优化了模型加载和验证逻辑。
- b7b6330 2026-07-05 20:10


