Letta Fleet Management logo

Letta Fleet Management

Organization
letta-ai
letta-fleet-management

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.

Overview

Publisherletta-ai
Repositoryskills
Skill nameletta-fleet-management
Stars
144
Forks
25
Bundled files
9
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 9 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by letta-ai on GitHub. Read the source before you install it.

Installation

Install the Letta Fleet Management AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/letta-ai/skills.git /tmp/skills
mkdir -p .claude/skills
cp -r /tmp/skills/letta/fleet-management .claude/skills/letta-fleet-management
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Letta Fleet Management in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Letta Fleet Management on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Letta Fleet Management is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

lettactl

kubectl-style CLI for managing Letta AI agent fleets declaratively.

When to Use

  • Deploying multiple agents with shared configurations
  • Managing agent memory blocks, tools, and folders
  • Applying templates to existing agents
  • Running canary deployments before promoting to production
  • Multi-tenant agent management (B2B / B2B2C)
  • Bulk messaging across agent fleets
  • Importing/exporting agents between environments
  • Analyzing agent memory health (self-diagnosis)
  • Calibrating agents with first-message boot sequences
  • Programmatic fleet management via SDK

Core Workflow

  1. Define agents in fleet.yaml
  2. Apply with lettactl apply -f fleet.yaml
  3. Verify with lettactl get agents and lettactl describe agent <name>

Fleet YAML Structure

yaml
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.

CLI Commands

Apply Configuration

bash
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

Inspect Resources

bash
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

Messaging

bash
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

Import / Export

bash
lettactl export agent <name> -f yaml       # Export single agent
lettactl export agents --all               # Export entire fleet
lettactl import agent-export.yaml          # Import agent

Fleet Reporting

bash
lettactl report memory                     # Memory usage report
lettactl report memory --analyze           # LLM-powered deep analysis

See reference/cli-commands.md for all options.

Canary Deployments

Test changes on isolated copies before promoting to production:

bash
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.

Multi-Tenancy

Tag agents for B2B and B2B2C filtering:

yaml
agents:
  - name: acme-support
    tags:
      - "tenant:acme-corp"
      - "role:support"
      - "env:production"
bash
lettactl get agents --tags "tenant:acme-corp"
lettactl send --tags "tenant:acme-corp,role:support" "Policy update"

See reference/multi-tenancy.md.

Self-Diagnosis

Analyze agent memory health fleet-wide:

bash
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.

Agent Calibration

Prime agents on creation with a boot message:

yaml
agents:
  - name: support-agent
    first_message: "Review your persona and confirm you understand your role."

Recalibrate existing agents after updates:

bash
lettactl apply -f fleet.yaml --recalibrate
lettactl apply -f fleet.yaml --recalibrate --recalibrate-tags "role:support"

See reference/agent-calibration.md.

Template Mode

Apply configuration to existing agents matching a pattern:

bash
lettactl apply -f template.yaml --match "*-draper"

Uses three-way merge: preserves user-added resources while updating managed ones. See reference/template-mode.md.

SDK Usage

typescript
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.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Letta Fleet Management AI skill do?

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.

Why use Letta Fleet Management on TypingMind?

Because you install it once and use it with any model. Letta Fleet Management is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Letta Fleet Management in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/letta-ai/skills/tree/main/letta/fleet-management. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Letta Fleet Management?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Letta Fleet Management?

As many as you like. As long as a model supports skills, you can use Letta Fleet Management with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Letta Fleet Management AI skill free?

Yes. It is published on GitHub by letta-ai under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇