letta/fleet-management/SKILL.md
Manage Letta AI agent fleets declaratively with kubectl-style CLI. Use when creating, updating, or managing multiple Letta agents with shared configurations, memory blocks, tools, folders, canary deployments, multi-tenancy, and bulk operations.
npx skillsauth add letta-ai/skills letta-fleet-managementInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
kubectl-style CLI for managing Letta AI agent fleets declaratively.
fleet.yamllettactl apply -f fleet.yamllettactl get agents and lettactl describe agent <name>shared_blocks:
- name: company-context
description: Shared company knowledge
limit: 5000
from_file: ./context/company.md
shared_folders:
- name: brand_docs
files:
- "docs/*.md"
mcp_servers:
- name: firecrawl
type: sse
server_url: "https://sse.firecrawl.dev"
auth_header: "Authorization"
auth_token: "Bearer ${FIRECRAWL_API_KEY}"
agents:
- name: support-agent
description: Customer support assistant
tags:
- "tenant:acme-corp"
- "role:support"
system_prompt:
from_file: ./prompts/support.md
llm_config:
model: google_ai/gemini-2.5-pro
context_window: 128000
reasoning: true
first_message: "Initialize and confirm readiness."
memory_blocks:
- name: persona
description: Agent personality
limit: 2000
value: "You are a helpful support agent."
agent_owned: true
archives:
- name: knowledge_base
description: Long-term knowledge storage
shared_blocks:
- company-context
shared_folders:
- brand_docs
tools:
- send_email
- search_docs
- "tools/*"
mcp_tools:
- server: firecrawl
tools: ["scrape", "crawl"]
See reference/fleet-config.md for full schema.
lettactl apply -f fleet.yaml # Create/update agents
lettactl apply -f fleet.yaml --dry-run # Preview changes
lettactl apply -f fleet.yaml --match "*-prod" # Template mode
lettactl apply -f fleet.yaml --canary # Deploy canary copies
lettactl apply -f fleet.yaml --promote # Promote canary to production
lettactl apply -f fleet.yaml --recalibrate # Re-send calibration messages
lettactl get agents # List all agents
lettactl get agents -o wide # With details
lettactl get agents --tags "tenant:acme" # Filter by tags
lettactl get blocks --shared # Shared blocks only
lettactl get tools --orphaned # Unused tools
lettactl describe agent <name> # Full agent details
lettactl send <agent> "Hello" # Send message
lettactl send <agent> "Hi" --stream # Stream response
lettactl send --all "support-*" "Update" # Bulk send by pattern
lettactl send --tags "role:support" "Hi" # Bulk send by tags
lettactl messages list <agent> # View history
lettactl messages reset <agent> # Clear history
lettactl messages compact <agent> # Summarize history
lettactl export agent <name> -f yaml # Export single agent
lettactl export agents --all # Export entire fleet
lettactl import agent-export.yaml # Import agent
lettactl report memory # Memory usage report
lettactl report memory --analyze # LLM-powered deep analysis
See reference/cli-commands.md for all options.
Test changes on isolated copies before promoting to production:
lettactl apply -f fleet.yaml --canary # Create CANARY-* copies
lettactl send CANARY-support-agent "test msg" # Test the canary
lettactl apply -f fleet.yaml --promote # Promote to production
lettactl apply -f fleet.yaml --cleanup # Remove canary agents
See reference/canary-deployments.md.
Tag agents for B2B and B2B2C filtering:
agents:
- name: acme-support
tags:
- "tenant:acme-corp"
- "role:support"
- "env:production"
lettactl get agents --tags "tenant:acme-corp"
lettactl send --tags "tenant:acme-corp,role:support" "Policy update"
See reference/multi-tenancy.md.
Analyze agent memory health fleet-wide:
lettactl report memory # Usage stats for all agents
lettactl report memory --analyze # LLM-powered analysis per agent
Reports fill percentages, stale data, redundancy, missing knowledge, and split recommendations. See reference/self-diagnosis.md.
Prime agents on creation with a boot message:
agents:
- name: support-agent
first_message: "Review your persona and confirm you understand your role."
Recalibrate existing agents after updates:
lettactl apply -f fleet.yaml --recalibrate
lettactl apply -f fleet.yaml --recalibrate --recalibrate-tags "role:support"
See reference/agent-calibration.md.
Apply configuration to existing agents matching a pattern:
lettactl apply -f template.yaml --match "*-draper"
Uses three-way merge: preserves user-added resources while updating managed ones. See reference/template-mode.md.
import { LettaCtl } from 'lettactl';
const ctl = new LettaCtl({ lettaBaseUrl: 'http://localhost:8283' });
// Deploy from YAML
await ctl.deployFromYaml('./fleet.yaml');
// Programmatic fleet config
const config = ctl.createFleetConfig()
.addSharedBlock({ name: 'kb', description: 'Knowledge', limit: 5000, from_file: 'kb.md' })
.addAgent({
name: 'support-agent',
description: 'Support AI',
system_prompt: { from_file: 'prompts/support.md' },
llm_config: { model: 'google_ai/gemini-2.5-pro', context_window: 32000 },
shared_blocks: ['kb'],
tags: ['team:support'],
})
.build();
await ctl.deployFleet(config);
// Send message with callbacks
await ctl.sendMessage('agent-id', 'Hello', {
onComplete: (run) => console.log('Done:', run.id),
});
// Template mode
await ctl.deployFromYaml('./template.yaml', { match: '*-prod' });
See reference/sdk-usage.md for full API.
tools
Test any GUI app or change on a Daytona Windows remote desktop sandbox. Use to launch a GUI program, sync a local project, take a screenshot, record a video, or share a clickable live-desktop link with a teammate. Generic — the only dependency is Daytona. For Linux, use remote-desktop-testing-linux.
tools
Test any GUI app or change on a Daytona Linux (Ubuntu xfce4 + noVNC) remote desktop sandbox. Use to launch a GUI program, sync a local project, take a screenshot, record a video, or share a clickable live-desktop link with a teammate. Generic — the only dependency is Daytona. For Windows, use remote-desktop-testing-windows.
testing
Configures Letta agents' own runtime behavior, including model, context window, system prompt, reasoning, conversation overrides, compaction settings, and compaction prompts. Use when an agent or user asks to self-modify, tune summarization/compaction, change identity/system instructions, adjust model settings, or test conversation-scoped overrides.
development
Sets Letta Desktop and Letta Code agent profile images by writing profile.png into an agent MemFS repository. Use when the user asks to add, change, generate, or fix an agent avatar, profile picture, profile image, or Desktop agent photo.