Letta
用持久记忆构建可学习、可持续改进的状态化智能体。
按维度查看评分与理由
证据显示有安全策略(SECURITY.md)和错误处理测试,但未发现权限最小化、用户确认、数据流透明、敏感数据处理、依赖安全、外部影响、回滚或来源归属的明确实现。扣分:这些方面缺乏具体证据。
测试覆盖了错误转换,但依赖众多且未验证可用性。扣分:依赖可用性未证实,失败消息虽在测试中体现但实际运行未验证。
README说明了多种使用场景,但能力边界和触发精度未明确。扣分:能力边界和触发精度缺乏文档。
有README、LICENSE、pyproject.toml,但缺少变更日志和已知限制。扣分:版本变更和已知限制未记录。
输出可用性有示例,边际价值明显,但成本效益未量化。扣分:成本效益缺乏数据。
声明有测试支持,但无法独立验证。扣分:声明可追溯性不足,交叉验证有限。
- 依赖众多且未验证可用性,可能影响可靠性。
- 缺少变更日志和已知限制,用户难以评估风险。
- 权限和数据处理细节未明确,需谨慎使用。
这个 Agent 能做什么,适合哪些场景?
Letta(原 MemGPT)是一个面向具备高级记忆能力的状态化智能体的平台。此仓库包含旧版 Letta Server,即 Letta V1 API 与 SDK 背后的 API 服务;活跃开发已迁移到 Letta Agent 仓库。新项目可使用 TypeScript 的 Letta Agent SDK,将智能体运行在 Letta 的 Constellation 云端、本机,或自托管的 App Server 上。命令行入口 Letta Code 可在终端启动带记忆的本地智能体,也可通过桌面应用或 Slack 等渠道运行。SDK 支持创建智能体、恢复会话、发送消息并流式读取助手回复。
开发者通过 npm 安装 @letta-ai/letta-agent-sdk,并创建 LettaAgentClient。使用 client.createAgent({ model, human, persona }) 会创建一个带模型、用户描述和人格设定的状态化智能体,并返回 agentId;随后 client.resumeSession(agentId) 打开会话,session.send(...) 发送输入,for await (const message of session.stream()) 读取 type 为 assistant 的流式内容。backend: "cloud" 使用 Letta API key 连接云端;backend: "local" 会在本机以子进程方式启动 Letta Code。终端用户则可全局安装 @letta-ai/letta-code 后运行 letta,启动一个在本地计算机上运行、具有记忆的智能体。
- 需要把可持续保存会话状态的智能体嵌入 TypeScript 应用的开发者,可用 LettaAgentClient 创建并恢复指定 agentId。
- 希望在本机终端运行带记忆助手的个人开发者,可安装 Letta Code 后执行 letta。
- 需要将同一智能体部署选择保留在云端、本机或自托管 App Server 的团队,可通过 Agent SDK 选择对应 backend。
- 需要以流式方式把智能体回复呈现在应用界面的开发者,可在 session.stream() 中逐条处理 assistant 消息。
- 仍依赖 Letta V1 API 的维护者,可继续使用 V1 SDK;新功能开发则可采用 Agent SDK。
这个 Agent 有哪些优点和局限?
- SDK 明确提供创建智能体、恢复既有会话和流式读取回复的完整调用路径。
- 同一 Agent SDK 明确支持 Constellation 云端、本机运行和自托管 App Server 三种执行边界。
- 本地 backend 会由 SDK 启动 Letta Code 子进程,减少本地应用自行管理该进程的工作。
- CLI、桌面应用和 Slack 渠道为同一带记忆智能体提供了不同交互入口。
- 此仓库是旧版 Letta Server,README 明确说明活跃开发已迁移到 letta-ai/letta-code,采用该仓库本身存在迁移评估成本。
- CLI 需要 Node.js 22.19+,且本地 SDK 模式依赖 Letta Code 可被启动。
- 云端示例需要 Letta API key;因此该路径涉及凭证和网络连接。
- README 未给出 App Server 的具体自托管安装命令、基础设施要求或运维配置。
如何安装或部署这个 Agent?
需要 Node.js 22.19+。本地 CLI:npm install -g @letta-ai/letta-code。TypeScript SDK:npm install @letta-ai/letta-agent-sdk。使用云端 SDK 时,需要在 Letta 获取 API key,并将其提供为 LETTA_API_KEY。
如何使用这个 Agent?
CLI 的首次调用是:letta。云端 SDK 的最小流程是创建 new LettaAgentClient({ backend: "cloud", apiKey: process.env.LETTA_API_KEY }),调用 await client.createAgent({ model, human, persona }),再通过 await using session = client.resumeSession(agentId)、await session.send("What do you know about me?") 和 session.stream() 接收回复。若要本地运行 SDK 智能体,改为 new LettaAgentClient({ backend: "local" });该模式会启动 Letta Code 子进程。
这个 Agent 与同类方案有什么区别?
对新项目,README 建议使用 Letta Agent SDK;上一代 V1 SDK(TypeScript 的 @letta-ai/letta-client 与 Python 的 letta-client)仍可用于直接对接 Letta API。