命令行工具
letta-ai/letta-code avatar
letta-ai/letta-code

Letta Code:把记忆和 Git 写进 Agent 的状态机

有状态代理就像人一样,具有记忆、身份以及学习和适应的能力。

3,339 个 Star402 个 ForkTypeScriptApache-2.0

秒懂

它是什么?
Letta Code 是一个 TypeScript 编写的状态化 Agent 框架,强调长期记忆、身份和自主演化。本文基于官方文档和仓库信息,分析其 MemFS、技能系统、多环境路由等机制,并指出其适用边界与替代方案。
适合谁用?
Letta Code 适合需要长期记忆和自主演化的 Agent 场景,尤其是希望把记忆、技能和提示词当作可版本化资产来管理的团队。它不适合只需要简单对话或单轮任务处理的场合,因为其状态管理和自我修改机制会带来额外的复杂度和调试成本。
能商用吗?
可以。Apache-2.0 是宽松许可证:你可以使用、修改并销售基于它的软件,只需保留版权和许可证声明。
还在维护吗?
在维护。仓库最近一次提交在 1 天前。
用什么语言写的?
主要是 TypeScript(依据 GitHub 的语言统计)。

以上回答依据项目的 GitHub 数据(最近同步于 2026年9月14日)和我们的分析,不构成法律意见。

开源项目深度解析

它解决的是 Agent 的「失忆」问题

大多数 LLM Agent 是无状态的,每次对话都从零开始,上下文窗口一满就遗忘。Letta Code 的定位是让 Agent 拥有持久记忆、身份和时间感,它通过程序化重写自己的上下文来实现学习和适应。这听起来像科幻,但机制是具体的:Agent 可以修改自己的 memory blocks、skills、prompts,甚至通过 mods 修改 harness 本身。它面向的是需要长期运行的场景,比如自动化助手、跨时区的定时任务、需要积累领域知识的客服机器人。如果你只需要一次性问答,这个框架是过度的。

MemFS:用 Git 管理 Agent 的整个记忆

Letta Code 最核心的机制是 MemFS,它把所有上下文,包括 memory blocks,都纳入 git 跟踪。这意味着 Agent 的记忆是可版本化的,你可以查看每次记忆修改的 diff,甚至通过设置 /memory-repository 把上下文同步到自定义的 GitHub 仓库。这解决了两个问题:一是记忆的可审计性,二是记忆的备份和恢复。但代价是,每次 Agent 修改记忆都会产生一次 git commit,如果 Agent 频繁自我修改,仓库会迅速膨胀。文档没有说明如何处理 git 历史压缩或分支冲突,这是一个需要你自己验证的盲点。

技能系统:从全局到 Agent 作用域的三层加载

技能(Skills)是 Letta Code 让 Agent 学会新能力的方式。它支持三层加载:全局技能存放在 ~/.letta,项目级技能放在 .agents/skills,Agent 自身的技能则存在 MemFS 里。这意味着技能可以跨项目共享,也可以针对特定 Agent 定制。安装外部技能的命令是 `letta skills install <skill>`,支持从 GitHub 仓库、ClawHub 等来源安装。值得注意的是,技能本身也是可学习的,Agent 可以通过 /skill-creator 创建新技能,这进一步强化了自主演化能力。但这也带来风险:如果 Agent 学会了一个有问题的技能,它可能会在长期运行中反复使用,你需要通过 git 历史来追踪问题。

多环境路由:让 Agent 在不同机器间迁移

远程环境功能允许 Agent 在多个机器上运行,比如你的笔记本、云 VM、Mac Mini 或 GitHub Actions。你可以在任意机器上运行 `letta server --env-name "work-laptop"` 来把它变成一个可用环境,然后通过 `letta environments list --online-only` 查看在线环境,用 `letta -p --agent <agent-id> --environment "work-laptop" "hello"` 把消息路由到指定机器。这个设计让 Agent 可以跟随任务迁移,比如在本地处理敏感数据,在云端处理大规模计算。但注意,远程环境需要登录 Letta Cloud,这意味着你的 Agent 状态会存放在 Letta 的服务器上,对数据隐私敏感的场景需要谨慎。

自配置的诱惑与陷阱

Letta Code 的设计哲学是让 Agent 自我配置,官方文档甚至建议你直接让 Agent 去配置技能、行为、hooks 和权限。这减少了人工干预,但引入了不可预测性。一个 Agent 可能在你不注意的时候修改了自己的系统提示词,或者改变了权限模式。虽然你可以用 /doctor 审计记忆质量,用 /palace 查看记忆,但这些工具是事后诸葛。如果你需要严格的行为控制,这种自配置特性可能成为负担。文档没有提供回滚到特定 git commit 的命令,这让我怀疑在 Agent 自我破坏时,恢复流程是否足够顺畅。

安装与上手:一条命令,但配置在 /connect

安装很简单:`npm install -g @letta-ai/letta-code`,然后在项目目录运行 `letta`。你可以用 `letta --new-agent --personality tutorial` 启动一个教程 Agent。真正的配置在 /connect 命令,它让你设置 LLM API 密钥,支持 OpenAI、Anthropic、Z.ai 等。之后用 /model 切换模型。这意味着你需要一个 LLM API 密钥才能开始,而且不同模型的记忆能力可能影响 Agent 的表现。如果你没有这些 API 的访问权限,这个框架就无法运行。桌面应用支持 macOS、Windows 和 Linux,CLI 和桌面应用创建的 Agent 可以互通。

替代方案:无状态调用与 MemGPT 的取舍

如果你不需要长期记忆,直接调用 LLM API 是最轻量的方案,没有额外依赖,也没有状态管理的开销。如果你需要记忆,但不想让 Agent 自我修改,可以考虑 MemGPT 的原始版本,它提供了记忆管理但不涉及自我改写提示词和技能。Letta Code 的独特之处在于它把记忆和技能当作可编程资产,甚至允许 Agent 修改 harness 本身,这是其他框架没有的。但代价是复杂性和风险。另一个替代是 LangChain 的 Agent 框架,它提供了工具调用和记忆插件,但记忆是外部的,不嵌入 Agent 的上下文重写机制。选择哪个取决于你是否信任 Agent 的自我演化能力。

维护与许可:Apache-2.0 下的升级负担

项目采用 Apache-2.0 许可,允许商用和修改,但需要注意,远程环境功能要求登录 Letta Cloud,这可能涉及额外的服务条款,与开源许可无关。维护方面,仓库最近活跃,v0.31.6 在 2026 年 8 月发布,说明迭代频繁。但频繁的版本更新意味着 API 可能变动,你需要跟进 changelog。文档提到所有上下文通过 git 跟踪,这本身就是一种维护机制,但你需要管理 git 仓库的大小和冲突。如果你不打算使用 Letta Cloud,那么远程环境功能不可用,这限制了多机部署的能力。在采用前,建议阅读 docs.letta.com 上的完整命令列表,因为 README 只展示了部分功能。

编辑结论

Letta Code 适合需要长期记忆和自主演化的 Agent 场景,尤其是希望把记忆、技能和提示词当作可版本化资产来管理的团队。它不适合只需要简单对话或单轮任务处理的场合,因为其状态管理和自我修改机制会带来额外的复杂度和调试成本。在采用前,应验证三件事:一是确认你的 LLM API 支持 /connect 列出的供应商,二是检查 MemFS 的 git 同步是否与你的 CI/CD 流程兼容,三是评估远程环境功能是否需要登录 Letta Cloud,若需要,则要接受其平台绑定。若你只需要一个无状态的任务执行器,直接调用 LLM API 或使用 LangChain 会更轻量;若你需要长期记忆,但不想引入自我修改的复杂度,可以考虑 MemGPT 的非 Code 版本。最终判断:Letta Code 是一个设计激进的状态化 Agent 框架,其价值在于把记忆和技能当作可编程资产,但代价是学习曲线和运维开销,只有愿意接受这些代价的团队才能从中获益。

官方来源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社区笔记

社区笔记