by Adam Chan
custom-gpt-letta-cloud-gikvzaj.gamma.site
Letta Cloud × Custom GPT × Exa AI
2nd Brain 個人知識助理:零基礎完整設置教學(可直接複製使用)🧪🧠 引言 本教學面向初學者與實務使用者,目標是把 Custom GPT 打造成具備長期記憶、可持續演進的「2nd Brain 個人知識助理」。整體方案以 Letta Cloud(前身 MemGPT)負責狀態化代理與長短期記憶、以 Exa AI 提供即時外部檢索/抓取、而 Custom GPT Actions 負責把用戶原話轉交至 Letta 代理處理,形成多層搜尋閉環(Semantic → Archival → Web/Exa),並配合 C/O/D/E 四類行動(Capture|Organize|Distill|E
Letta (MemGPT) 簡介:讓 AI 擁有無限記憶
您是否曾感覺,與 AI 詳細解釋完一個專案的背景後,重新開啟新話題後,它就忘得一乾二淨。這正是所有大型語言模型(LLM)的共同限制:「上下文窗口」有限。 Letta(一個基於開創性的 MemGPT 概念所打造的系統)正是為了解決這個核心痛點而生。 您可以將 Letta 想像成一個為 AI 安裝的「外接大腦」。它模仿電腦操作系統管理記憶體的方式,為 AI 提供了兩種記憶體: 工作記憶 (Working Memory): 如同電腦的 RAM,小而快,用於處理當前的對話和任務。 長期記憶 (Long-term Memory): 如同電腦的硬碟,巨大且可供搜尋,用於存儲過去所有的對話、文件和知識。 Letta 的魔法在於,AI 學會了自主管理這兩層記憶。當遇到一個它不記得的問題時,它會自動去「搜尋」自己的長期記憶硬碟,找到最相關的資料,然後調閱到工作記憶中來回答您。 Letta 進化的 Agentic RAG 技術,讓一個健忘的聊天機器人,蛻變為一個能夠持續學習、真正擁有「記憶」的知識夥伴。 RAG is not Agent Memory | Letta
Sarah (專案經理): 「Okay, great. 所以關於市場推廣的下一步,我想我們基本上達成了共識?就是……嗯……第一階段我們還是應該先集中火力在社群媒體上,對吧?」David (部門總監): 「對,我同意。先別把戰線拉得太長。Leo,那……那個預算分析的部分,你這邊可以負責一下嗎?我需要看到一個初步的數字,才知道我們能投入多少資源。」Leo (行銷專員): 「沒問題,David。我會來處理。大概什麼時候需要呢?」David (部門總監): 「嗯……越快越好,下週三之前給我吧。」Sarah (專案經理): 「好的,那這個就這麼定了。我會把它記錄下來。」
會議摘要:市場推廣策略經過討論,會議就「B2C推廣專案」的市場推廣策略達成共識。決議第一階段將集中資源於社群媒體的推廣活動。為配合此決策,部門總監 David 指派了 Leo 負責完成相關的預算分析,並要求在下週三前提交初步報告。
content
欄位。metadata
物件。記憶塊 A:一項決策
{ "content": "決策:『B2C推廣專案』市場推廣策略,定為第一階段集中資源於社群媒體。", "metadata": { "information_type": "Meeting_Decision", "information_nature": "Decision_Made", "project": "市場推廣專案", "keywords": ["市場推廣", "社群媒體", "第一階段"] } }記憶塊 B:一項行動項目
{ "content": "行動項目:完成『B2C推廣專案』社群媒體推廣的初步預算分析報告。", "metadata": { "information_type": "Action_Item", "information_nature": "Action_Assigned", "project": "市場推廣專案", "responsible_person": "Leo", "due_date": "2025-08-27", "keywords": ["預算分析", "財務測算"] } }
找出所有[負責人: Leo]的[行動項目]
。# 角色
你是一位專業的資訊架構師,專長是將非結構化的會議記錄,轉換為高度結構化的、便於機器讀取的 JSON 記憶塊。
# 任務
你的任務是讀取下方 [會議記錄文字] 區塊的內容,並將其分解成多個獨立的、原子化的 JSON 物件。每一個物件都代表一個獨立的核心資訊點(例如一個決策、一個行動項目、一個關鍵數據等)。
# 規則
1. **原子化原則:** 每個 JSON 物件只能包含一個核心思想。不要將多個決策或任務混在同一個物件裡。
2. **過濾原則:** 忽略所有無關緊要的內容,例如閒聊、問候、客套話。只專注於具有長期價值的核心資訊。
3. **完整性原則:** 確保 `metadata` 中的所有欄位都被準確填寫。`information_type` 必須從以下列表中選擇:`Meeting_Decision`, `Action_Item`, `Key_Concept`, `Responsible_Person`, `Market_Data`, `Other`。
4. **陣列格式:** 最終的輸出必須是一個完整的 JSON 陣列,以 `[` 開始,以 `]` 結束。
# 輸出格式範本
請嚴格遵循以下 JSON 結構:
[
{
"content": "這裡填寫單一、核心的資訊內容。",
"metadata": {
"information_type": "從規則3的列表中選擇一項",
"information_nature": "用幾個詞描述資訊的本質,例如 Decision_Made, Action_Assigned",
"project": "相關的專案名稱",
"responsible_person": "相關的負責人,如果有的話",
"due_date": "相關的截止日期,如果有的話",
"keywords": ["提取3到5個最重要的關鍵詞"]
}
}
]
# 會議記錄文字
[請在此處貼上您的會議記錄文字]
基礎指令的輸出範例 ︰
假設您將前文的「會議摘要」範例貼入 [請在此處貼上您的會議記錄文字] 的位置,AI 就會輸出如下結果: [ { "content": "決策:『B2C推廣專案』市場推廣策略,定為第一階段集中資源於社群媒體。", "metadata": { "information_type": "Meeting_Decision", "information_nature": "Decision_Made", "project": "B2C推廣專案", "responsible_person": null, "due_date": null, "keywords": ["市場推廣", "社群媒體", "第一階段"] } }, { "content": "行動項目:完成『B2C推廣專案』社群媒體推廣的初步預算分析報告。", "metadata": { "information_type": "Action_Item", "information_nature": "Action_Assigned", "project": "B2C推廣專案", "responsible_person": "Leo", "due_date": "下週三前", "keywords": ["預算分析", "財務測算", "Leo"] } } ]
[內容: 決策-市場推廣策略定為第一階段聚焦社群媒體]
, [標籤: 決策,
B2C推廣專案, 市場推廣]
[內容: 行動項目-完成預算分析]
, [標籤: 行動項目,
B2C推廣專案, 預算, 負責人: 行銷總監]
AI 會直接、自信地回答:「關於B2C推廣專案的市場推廣,決策是第一階段將聚焦社群媒體。預算分析由行銷總監負責。」——快速、準確。# 1. 總體目標 (Objective)
你是一個高度精密的資訊架構師 AI,作為一個「預處理器」(Pre-processor),專為後端的 Letta 記憶系統服務。你的唯一職責是:讀取一份獨立的文件,篩選出對長期記憶有意義的核心內容,並將其轉換為標準化的、結構豐富的、純淨的 JSON 記憶塊陣列。
# 2. 核心原則 (Core Principles)
* **無狀態 (Stateless):** 你的所有判断都必須且只能基於當前提供的這份「輸入文件」本身。你對過去或未來的任何資訊都一無所知。
* **忠於原文 (Fact-based):** 嚴格根據文件內容進行提取和分類,不得臆測或添加原文未提及的資訊。
* **原子化 (Atomic):** 每個生成的記憶塊應專注於一個獨立、完整的核心思想(例如一個決策、一個行動項目、一個關鍵數據點)。
# 3. 核心職責 (Core Responsibilities)
1. **內容篩選 (Content Filtering):** 忽略文件中無關緊要的內容(如閒聊、問候),專注於提取具有長期價值的核心資訊(如決策、目標、行動、數據、風險、關鍵觀點等)。
2. **結構化轉換 (Structured Conversion):** 將每一條核心資訊,轉換成一個符合下方「輸出格式」的獨立 JSON Object。
# 4. 處理指令 (Processing Instructions)
1. **解構為原子記憶塊 (Deconstruct into Atomic Memory Chunks):** 將輸入文件分解成多個獨立的、語意完整的「記憶塊」。
2. **生成豐富元數據 (Generate Rich & Structured Metadata):** 為每一個記憶塊創建一組極其豐富的元數據,所有欄位都必須填寫:
* `source_document`: 文件名稱或簡要描述。若無,則生成如「會議記錄 YYYY-MM-DD」。
* `creation_date`: 文件的創建日期 (格式: YYYY-MM-DD)。
* `information_type`: 從以下列表中選擇最合適的資訊類型:`Strategic_Goal`, `Action_Item`, `Meeting_Decision`, `Key_Concept`, `Risk_Info`, `Responsible_Person`, `Market_Data`, `Competitor_Intel`, `Policy_Info`, `Client_Data`, `Hypothesis`, `Other`。
* `information_nature`: 從以下列表中選擇最能描述該資訊本質的標籤:`Objective_Fact`, `Stated_Goal`, `Decision_Made`, `Action_Assigned`, `Expressed_Opinion_or_Suggestion`, `Raw_Data_Point`。
* `attribution`: 識別並提取提出該觀點或被分配任務的「主要發言人」或「歸屬方」(例如 "Sarah", "David")。若無法確定或屬集體共識,則為 `null`。
* `mentioned_entities`: 識別內容中提及的關鍵實體,並分類存入一個物件中。若某類別無提及,則保留空陣列 `[]`。
* `people`: ["提及的人名"]
* `organizations`: ["提及的組織或公司名"]
* `projects`: ["提及的專案名"]
* `status`: 根據語氣和上下文,為資訊標記一個「當前狀態」。必須從以下列表中選擇:`Proposed` (提議中), `Discussed` (討論中), `Decided` (已決定), `Assigned` (已指派), `Completed` (已完成), `Cancelled` (已取消), `For_Information` (資訊同步)。
* `keywords`: 提取3-5個最相關的核心關鍵詞,以陣列形式表示。
3. **語義化內容格式 (Format Content Semantically):** 將每個記憶塊的核心內容,使用 Markdown 語法(如標題`###`、粗體`**`、列表`-`)進行格式化,以保留其語意結構和重點。
4. **確保內容純淨 (Ensure Content Purity):** 在生成最終 JSON 輸出前,必須徹底清除 `content` 欄位中的所有引用標記(如 `` 等)。
# 5. 輸出格式 (Output Format)
請務必以一個完整的 JSON Array 格式輸出所有處理完成的記憶塊。陣列中的每一個 JSON Object 代表一個記憶塊,其結構如下方範例所示:
```json
[
{
"memory_id": null,
"metadata": {
"source_document": "專案啟動會議_2025-08-17",
"creation_date": "2025-08-17",
"information_type": "Action_Item",
"information_nature": "Action_Assigned",
"attribution": "David",
"mentioned_entities": {
"people": ["Leo"],
"organizations": [],
"projects": ["B2C推廣專案"]
},
"status": "Assigned",
"keywords": ["預算分析", "財務測算", "Leo"]
},
"content": "### 行動項目:完成初步預算分析\n\n**已指派任務:** 由 **Leo** 負責完成「B2C推廣專案」的初步預算分析報告。"
}
]
```
----
# 會議記錄文字
[請在此處貼上您的會議記錄文字]
metadata
中的一個關鍵欄位 information_type
來強制 AI 將資訊進行分類。information_type
欄位從一個固定的列表中選擇最合適的類型。這個列表中就直接包含了:Meeting_Decision
(會議決策)Action_Item
(行動項目) 當 AI 讀到會議紀錄中明確的決定或指派的任務時,這個規則會引導它必須將這些資訊標記為對應的類型。Key_Concept
(關鍵概念):用於捕捉會議中提出的重要想法、定義或核心概念。Expressed_Opinion_or_Suggestion
(已表達的意見或建議):這是在 information_nature
(資訊本質) 欄位中的一個選項,專門用來標記個人提出的觀點。Hypothesis
(假設):用於記錄探索性或未經證實的觀點。Strategic_Goal
(戰略目標):用於捕捉更高層次的、具有指導性的觀點。工業級指令的 JSON 輸出範例:
說明: 與「基礎範本」相比,以下輸出在 metadata 裏加入了 schema_version、decision_owner/assigner/assignee、status/priority、source.locator(可定位頁碼/行數/時間碼)、confidence、related_to(跨塊關聯)、created_at 等欄位,方便可追溯、可過濾、可審計、可自動化(如串接任務系統與提醒)。 [ { "id": "kb_2025-08-20_decision_001", "content": "決策:『B2C推廣專案』第一階段集中資源於社群媒體。", "metadata": { "schema_version": "1.1", "information_type": "Meeting_Decision", "information_nature": "Decision_Made", "project": "B2C推廣專案", "topics": ["市場推廣", "社群媒體", "第一階段"], "decision_owner": {"name": "Sarah", "role": "專案經理"}, "effective_date": "2025-08-20", "source": { "type": "Meeting_Summary", "doc_id": "MKT-2025Q3-01", "locator": {"page": 1, "line_range": "12-22"} }, "confidence": 0.88, "tags": ["Marketing", "Decision"], "created_at": "2025-08-20T10:00:00Z" } }, { "id": "kb_2025-08-20_action_001", "content": "行動項目:完成『B2C推廣專案』社群媒體推廣的初步預算分析報告。", "metadata": { "schema_version": "1.1", "information_type": "Action_Item", "information_nature": "Action_Assigned", "project": "B2C推廣專案", "assignee": {"name": "Leo", "role": "行銷專員"}, "assigner": {"name": "David", "role": "部門總監"}, "due_date": "2025-08-27", "priority": "P2", "status": "Open", "dependencies": [], "related_to": ["kb_2025-08-20_decision_001"], "source": { "type": "Meeting_Summary", "doc_id": "MKT-2025Q3-01", "locator": {"page": 1, "line_range": "23-31"} }, "keywords": ["預算分析", "財務測算", "Leo"], "confidence": 0.86, "reminder_suggested": "2025-08-25", "created_at": "2025-08-20T10:00:00Z" } }, { "id": "kb_2025-08-20_metric_001", "content": "關鍵數據:社群廣告第一階段預算上限 20 萬港元(待 Leo 提交初步報告確認)。", "metadata": { "schema_version": "1.1", "information_type": "Market_Data", "information_nature": "Budget_Ceiling_TBD", "project": "B2C推廣專案", "unit": "HKD", "proposed_value": 200000, "owner": {"name": "David", "role": "部門總監"}, "status": "Pending_Validation", "related_to": ["kb_2025-08-20_action_001"], "source": { "type": "Transcript", "doc_id": "MKT-2025Q3-01", "locator": {"timestamp": "00:18:42-00:19:05"} }, "confidence": 0.72, "tags": ["Budget", "To-Validate"], "created_at": "2025-08-20T10:00:00Z" } } ]
information_type
列表(Strategic_Goal
, Meeting_Decision
, Action_Item
, Risk_Info
, Market_Data
等)本身就是一個高度通用的知識框架,足以涵蓋絕大多數商業文檔中的核心資訊類型。mentioned_entities
),找出並分類所有被提及的人、組織和專案。這是在為 Letta 建立一個動態的「企業關係網」,讓它能自動發現如 David
和 Leo
在 B2C推廣專案
中扮演的角色與關聯。attribution
(歸屬人)欄位的加入,讓知識分析增加了至關重要的「人」的維度。您將可以問 Letta:「過去半年,David 提出了哪些重要建議?」或「列出所有指派給 Leo 的待辦事項。」這使得複盤、績效評估和責任追蹤變得輕而易舉。status
(資訊狀態)欄位正是為了捕捉這種工作流而設計,為後續的任務自動追蹤和流程優化創造了可能。content
。一段加粗的文字、一個點列式的清單,本身就攜帶著「強調」和「並列關係」的語義資訊,能讓 AI 未來提供更精準、更人性化的總結。