Letta + Ertas

    使用 Letta 建構具持久化記憶體的代理——前身為 MemGPT 的框架,採用可跨會話延續的有狀態記憶體架構,並提供官方 Vercel AI SDK provider 以支援微調模型。

    Overview

    Letta 是 MemGPT 研究框架的正式上線繼任者,專注於建構具持久化、有狀態記憶體並可跨會話延續的代理。多數代理框架將記憶體視為單次執行內的暫態 context,而 Letta 則將記憶體視為一等公民:代理擁有結構化的記憶體階層(工作記憶體、archival 記憶體、recall 記憶體),由代理自身管理並隨時間更新。這使得長時間運行的代理能夠真正記住數週甚至數月前的互動、推理超出任何單一 context window 的資訊,並發展出持久的個性與知識庫。

    此框架建構於 MemGPT 研究所開創的架構之上——以 LLM 作為「CPU」的作業系統式記憶體分頁。代理自主決定要在工作記憶體中保留什麼、要將什麼刷新到 archival 儲存,以及在需要時要檢索什麼。這種模式意味著即使模型只有 32K 的 context window,Letta 代理也能透過將其 context 視為記憶體階層,有效地對任意長度的歷史進行運作。Letta 內附官方 Vercel AI SDK provider,使其能直接搭配 TypeScript 程式碼庫使用。

    How Ertas Integrates

    Ertas 訓練的模型透過標準模型設定介面驅動 Letta 代理。Letta 支援任何 OpenAI 相容端點,因此在 Ertas Studio 微調並部署到 Ollama、vLLM 或 Ertas Cloud 的模型,只需數行設定即可接入 Letta 代理。對於需要讓特定領域知識隨時間累積的使用情境,這種組合特別強大——Letta 的持久化記憶體擷取使用者特定的事實、偏好與歷史,而 Ertas 訓練的模型則在權重層級提供特定領域的推理能力。

    對於需要不斷演進的代理應用,Letta + Ertas 形成持續改進迴圈。Letta 的 archival 記憶體儲存所有過去的互動;你可以定期從 Letta 的記憶體儲存中萃取高品質的對話軌跡,將其作為 Ertas Studio 中的額外訓練資料,進一步精煉模型。微調後的模型在上線環境中最常見的模式上表現更好,而 Letta 的持久化記憶體則繼續處理無法泛化的個別 context。在「烘焙進權重的領域知識」(透過 Ertas)與「每使用者的持久狀態」(透過 Letta 的記憶體)之間做這種拆分,是長時間運行的個人 AI 應用的乾淨架構。

    Getting Started

    1. 1

      於 Ertas Studio 微調你的領域模型

      在你的領域語料上訓練模型。微調後的模型擷取所有 Letta 代理共享的穩定領域知識。

    2. 2

      部署至 OpenAI 相容端點

      匯出為 GGUF 並透過 Ollama、vLLM 或 Ertas Cloud 提供服務。Letta 可呼叫任何標準 chat-completion 端點。

    3. 3

      安裝 Letta 並設定模型

      安裝 letta-client(Python)或 @letta-ai/letta(TypeScript)。設定你的模型 provider 指向 Ertas 推論端點。

    4. 4

      建立具記憶體的有狀態代理

      定義一個具持久化記憶體的 Letta 代理。當對話成長超出 context window 時,Letta 會自動管理記憶體階層。

    5. 5

      營運、演進並精煉模型

      在正式上線環境執行代理。定期從 Letta 的 archival 記憶體萃取高訊號的對話,回饋至 Ertas Studio 持續改進模型。

    python
    from letta_client import Letta, LlmConfig
    
    # Point Letta at your Ertas-trained model served via vLLM
    client = Letta(base_url="http://localhost:8283")
    
    llm_config = LlmConfig(
        model="ertas-personal-assistant-14b",
        model_endpoint_type="openai",
        model_endpoint="http://localhost:8000/v1",
        context_window=32000,
    )
    
    # Create a stateful agent with persistent memory
    agent = client.agents.create(
        name="alex-personal-assistant",
        llm_config=llm_config,
        memory={
            "human": "User is Alex, an enterprise architect at FinTech Corp.",
            "persona": "I'm a personal AI assistant that learns Alex's preferences over time.",
        },
    )
    
    # First conversation
    client.agents.messages.create(
        agent_id=agent.id,
        messages=[{"role": "user", "content": "I prefer concise responses, under 100 words."}],
    )
    
    # Weeks later — agent still remembers
    response = client.agents.messages.create(
        agent_id=agent.id,
        messages=[{"role": "user", "content": "Summarize the AWS Q3 financials."}],
    )
    # Response is concise, matching Alex's stated preference from weeks ago
    建立一個由 Ertas 訓練模型支援的 Letta 代理。代理的持久化記憶體可跨會話、數週與數月延續,且不受 context window 限制。

    Benefits

    • 持久化記憶體可跨會話、數天與數月延續——真正長時間運行的代理
    • 作業系統式的記憶體分頁意味著即使較小的 context window 也能產生長 context 行為
    • 官方 Vercel AI SDK provider 提供一流的 TypeScript 整合
    • MemGPT 的繼任者,擁有成熟的正式上線模式與穩定的 API
    • 將領域知識存於微調權重中、將每使用者狀態存於持久化記憶體中
    • 持續改進迴圈:萃取記憶體軌跡以微調 Ertas 模型

    Related Resources

    Ship AI that runs on your users' devices.

    Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.