mcpField
L
letta-fleet-management

letta-fleet-management

github.com/letta-aiAgent 工作流152169 次安装4 周前更新
代码仓库

关于 letta-fleet-management

lettactl 是以 kubectl 为风格的命令行工具和 SDK,用于声明式管理 Letta AI Agent 集群。它支持通过配置部署、集群级操作、金丝雀晋级和记忆报告。

主要功能

  1. 01从 YAML 应用集群配置
  2. 02检查并筛选 Agent 与资源
  3. 03向单个或成组 Agent 发送消息
  4. 04部署金丝雀副本并晋级变更
  5. 05导入和导出 Agent
  6. 06报告 Agent 记忆健康状况

适用场景

  1. 01部署共享配置的多个 Agent
  2. 02在生产晋级前测试集群变更
  3. 03使用标签管理多租户 Agent
  4. 04查看集群的记忆用量与健康状况

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/letta-ai/skills --skill letta-fleet-management

安装后在 Claude Code 中输入/letta-fleet-management确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE.txt
reference/
agent-calibration.md
canary-deployments.md
cli-commands.md
fleet-config.md
import-export.md
multi-tenancy.md
sdk-usage.md
self-diagnosis.md
template-mode.md

详细介绍

lettactl

用于以声明式方式管理 Letta AI Agent 群组的 kubectl 风格 CLI。

适用场景

  • 使用共享配置部署多个 Agent
  • 管理 Agent 的记忆块、工具和文件夹
  • 将模板应用到现有 Agent
  • 在推广到生产环境前运行金丝雀部署
  • 多租户 Agent 管理(B2B / B2B2C)
  • 在 Agent 群组中批量发送消息
  • 在不同环境之间导入/导出 Agent
  • 分析 Agent 记忆健康状况(自我诊断)
  • 使用首条消息启动序列校准 Agent
  • 通过 SDK 以编程方式管理 Agent 群组

核心工作流

  1. 在 fleet.yaml 中定义 Agent
  2. 使用 lettactl apply -f fleet.yaml 应用配置
  3. 使用 lettactl get agents 和 lettactl describe agent <name> 验证

群组 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"]

完整架构请参阅 reference/fleet-config.md。

CLI 命令

应用配置
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

所有选项请参阅 reference/cli-commands.md。

金丝雀部署

先在隔离副本上测试更改,再推广到生产环境:

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

请参阅 reference/canary-deployments.md。

多租户

为 Agent 添加标签,以便按 B2B 和 B2B2C 筛选:

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"

请参阅 reference/multi-tenancy.md。

自我诊断

分析整个 Agent 群组的记忆健康状况:

lettactl report memory                  # Usage stats for all agents
lettactl report memory --analyze        # LLM-powered analysis per agent

报告会列出填充百分比、过时数据、冗余、缺失知识和拆分建议。请参阅 reference/self-diagnosis.md。

Agent 校准

创建 Agent 时使用启动消息进行预热:

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

更新后重新校准现有 Agent:

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

请参阅 reference/agent-calibration.md。

模板模式

将配置应用于符合某种模式的现有 Agent:

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

采用三方合并:保留用户添加的资源,同时更新受管理的资源。请参阅 reference/template-mode.md。

SDK 用法

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' });

完整 API 请参阅 reference/sdk-usage.md。

评论

支持 Markdown