关于 letta-development-guide
letta-development-guide 是面向 Letta Agent 开发者的设计与构建指南技能,涵盖架构、记忆、模型选择和工具配置,并提供测试与迭代建议。
主要功能
- 01选择 Letta 架构
- 02设计记忆块
- 03模型选择指导
- 04工具配置模式
- 05记忆容量与并发管理
适用场景
- 01规划新的 Letta Agent
- 02选择 Agent 架构
- 03设计共享 Agent 记忆
- 04排查记忆相关问题
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ letta-ai/ skills --skill letta-development-guide安装后在 Claude Code 中输入/letta-development-guide确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEreferences/architectures.mdconcurrency.mddescription-patterns.mdmemory-architecture.mdmemory-patterns.mdmodel-recommendations.mdsize-management.mdtool-patterns.md详细介绍
Letta 开发指南
全面介绍如何通过合适的架构、记忆配置、模型选择和工具设置,设计并构建有效的 Letta Agent。
何时使用此技能
在以下情况下使用此技能:
- 启动新的 Letta Agent 项目
- 在不同 Agent 架构(letta_v1_agent 与 memgpt_v2_agent)之间进行选择
- 设计记忆块结构和架构
- 为用例选择合适的模型
- 规划工具配置
- 优化记忆管理和性能
- 实现 Agent 之间的共享记忆
- 调试记忆相关问题
快速入门指南
最小可运行示例
from letta_client import Letta
client = Letta()
agent = client.agents.create(
name="my-assistant",
model="openai/gpt-4o",
embedding="openai/text-embedding-3-small",
memory_blocks=[
{"label": "persona", "value": "You are a helpful assistant."},
{"label": "human", "value": "The user's name and preferences."},
],
)
# Send a message
response = client.agents.messages.create(
agent_id=agent.id,
messages=[{"role": "user", "content": "Hello!"}],
)
print(response.messages[-1].content)
1. 架构选择
以下情况使用 letta_v1_agent:
- 构建新的 Agent(推荐默认选择)
- 需要兼容推理模型(GPT-4o、Claude Sonnet 4)
- 希望使用更简单的系统提示词和直接消息生成
以下情况使用 memgpt_v2_agent:
- 维护旧版 Agent
- 需要 v1 尚不支持的特定工具模式
详细比较请参阅 references/architectures.md。
2. 记忆架构设计
记忆是有效 Agent 的基础。Letta 提供三种记忆类型:
核心记忆(上下文内):
- 始终可在 Agent 的上下文窗口中访问
- 用途:当前状态、活动上下文、频繁引用的信息
- 限制:核心记忆总量应保持在上下文窗口的 80% 以下
归档记忆(上下文外):
- 在向量数据库中进行语义搜索
- 用途:历史记录、大型知识库、过往交互
- 访问方式:Agent 必须显式调用 archival_memory_search
- 注意:不会根据上下文溢出自动填充
对话历史:
- 当前对话中的过往消息
- 通过 conversation_search 工具检索
- 用途:引用先前讨论、跟踪对话流程
详细指南请参阅 references/memory-architecture.md。
3. 记忆块设计
核心原则: 每个独立功能单元使用一个记忆块。
必备记忆块:
persona:Agent 身份、行为准则、能力human:用户信息、偏好、上下文
根据用例添加特定领域的记忆块:
- 客户支持:
company_policies、product_knowledge、customer - 编码助手:
project_context、coding_standards、current_task - 个人助手:
schedule、preferences、contacts
记忆块指南:
- 保持记忆块聚焦于特定目的
- 使用清晰、具有指导性的描述
- 监控大小限制(通常每个记忆块为 2000–5000 个字符)
- 在 Agent 之间共享记忆时,针对追加操作进行设计
领域示例请参阅 references/memory-patterns.md,撰写有效描述的指南请参阅 references/description-patterns.md。
4. 模型选择
根据 Agent 的需求匹配模型能力:
用于生产环境的 Agent:
- 复杂推理:GPT-4o 或 Claude Sonnet 4
- 高性价比的通用任务:GPT-4o-mini
- 快速、轻量级操作:Claude Haiku 3.5
- 速度与能力均衡:Gemini 2.0 Flash
避免用于生产环境:
- 小型 Ollama 模型(<7B 参数)——工具调用能力较差
- 不支持可靠函数调用的模型
详细指南请参阅 references/model-recommendations.md。
5. 工具配置
从精简配置开始: 仅附加 Agent 会主动使用的工具。
常见的起始配置:
- 记忆工具(memory_insert、memory_replace、memory_rethink):大多数 Agent 的核心工具
- 文件系统工具:连接文件夹后自动附加
- 自定义工具:用于特定领域的操作(数据库、API 等)
工具规则: 在需要时用于强制执行调用顺序(例如,“回答前始终先调用搜索”)
常见配置请参阅 references/tool-patterns.md。
高级主题
内存大小管理
接近字符数限制时:
- 按主题拆分:
customer_profile→customer_business、customer_preferences - 按时间拆分:
interaction_history→recent_interactions,将更早的内容归档到归档内存 - 归档历史数据: 将旧信息移至归档内存
- 使用 memory_rethink 进行整合: 总结并重写区块
请参阅 references/size-management.md,了解相关策略。
并发模式
当多个 Agent 共享内存区块,或一个 Agent 处理并发请求时:
最安全的操作:
memory_insert:仅追加,竞争条件极少- 数据库使用 PostgreSQL 行级锁
竞争条件风险:
memory_replace:写入前目标字符串可能已发生变化memory_rethink:以最后写入者为准,不进行合并
最佳实践:
- 尽可能采用追加操作的设计
- 并发写入时使用 memory_insert
- 将 memory_rethink 留给单个 Agent 独占访问的情况
请参阅 references/concurrency.md,了解详细模式。
验证清单
完成 Agent 设计前:
架构:
- 架构是否与模型的能力相匹配?
- 模型是否适合预期的工作负载和延迟要求?
内存:
- 核心内存总量是否低于上下文窗口的 80%?
- 每个区块是否专注于一个功能领域?
- 描述是否清晰说明何时读取或写入?
- 是否已规划容量增长和溢出处理?
- 如果是多 Agent,是否已考虑并发模式?
工具:
- 工具是否必要且配置正确?
- 内存区块是否足够细化,便于有效更新?
常见反模式
内存区块太少:
# Bad: Everything in one block
agent_memory: "Agent is helpful. User is John..."
请改为拆分成职责明确的区块。
内存区块太多: 创建了 10 个以上的区块,而 3-4 个就足够。先从最少的区块开始,并根据需要扩展。
描述欠佳:
# Bad
data: "Contains data"
请改为提供可执行的指导。请参阅 references/description-patterns.md。
忽视大小限制: 放任区块无限增长,直到达到限制。应主动监控和管理。
实施步骤
1. 设计阶段
- 根据需求选择架构
- 设计内存区块结构
- 选择合适的模型
- 规划工具配置
2. 创建阶段(SDK)
Python:
from letta_client import Letta
client = Letta() # Uses LETTA_API_KEY env var
# Create agent with custom memory blocks
agent = client.agents.create(
name="my-agent",
model="openai/gpt-4o", # or "anthropic/claude-sonnet-4-20250514"
embedding="openai/text-embedding-3-small",
memory_blocks=[
{"label": "persona", "value": "You are a helpful assistant..."},
{"label": "human", "value": "User preferences and context..."},
{"label": "project", "value": "Current project details..."},
],
description="Agent for helping with X",
)
print(f"Created agent: {agent.id}")
TypeScript:
import Letta from "letta-client";
const client = new Letta();
const agent = await client.agents.create({
name: "my-agent",
model: "openai/gpt-4o",
embedding: "openai/text-embedding-3-small",
memoryBlocks: [
{ label: "persona", value: "You are a helpful assistant..." },
{ label: "human", value: "User preferences and context..." },
{ label: "project", value: "Current project details..." },
],
description: "Agent for helping with X",
});
console.log(`Created agent: ${agent.id}`);
注意: Letta Code CLI(letta 命令)可交互式创建 Agent。使用 letta --new-agent 重新开始,然后使用 /rename 和 /description 进行配置。
3. 测试阶段
- 使用有代表性的查询进行测试
- 监控内存工具的使用模式
- 验证工具调用行为
4. 迭代阶段
- 根据实际使用情况完善内存区块结构
- 优化系统指令
- 调整工具配置
参考资料
有关特定主题的详细信息,请参阅以下参考资料:
references/architectures.md- 架构比较与选择references/memory-architecture.md- 内存类型及其适用场景references/memory-patterns.md- 特定领域的内存区块示例references/description-patterns.md- 如何编写有效的区块描述references/size-management.md- 管理内存区块大小限制references/concurrency.md- 多 Agent 内存共享模式references/model-recommendations.md- 模型选择指南references/tool-patterns.md- 常见工具配置