diff --git a/data/note-index.json b/data/note-index.json index 5ac9f9f44..0fea36bb8 100644 --- a/data/note-index.json +++ b/data/note-index.json @@ -3,16 +3,16 @@ "taxonomy_version": "taxonomy-v1", "stats": { "summary": { - "total": 2040, - "classified": 1993, + "total": 2044, + "classified": 1997, "unclassified": 47, "unknown_difficulty": 1975, "empty_description": 1970 }, "by_area": { "papers": { - "total": 1079, - "classified": 1060, + "total": 1083, + "classified": 1064, "unclassified": 19, "unknown_difficulty": 1014, "empty_description": 1013 @@ -12630,6 +12630,38 @@ "chunk_route": "/study/atlas/papers/topic-papers-garbage-collection-and-memory-management-01/" } }, + { + "id": "papers::generative-agents", + "area": "papers", + "slug": "generative-agents", + "title": "Generative Agents — 用记忆、反思和计划模拟可信的人类行为", + "description": "用 Generative Agents 理解 LLM agent 为什么需要 memory stream、reflection 和 planning,而不只是单轮 prompt。", + "difficulty": "intermediate", + "canonical_topics": [ + "papers-agents-and-llm-systems" + ], + "classification": { + "state": "classified", + "source": "frontmatter-category", + "topic_id": "papers-agents-and-llm-systems", + "matched_category": "agent", + "raw_category": "AI Agent / Memory" + }, + "trust": { + "contract_state": "v2", + "verification_status": "UNVERIFIED" + }, + "freshness": { + "state": "NOT_EVALUATED", + "reviewed_at": "2026-07-15", + "review_after": null + }, + "route": "/study/papers/generative-agents/", + "atlas": { + "chunk_id": "topic-papers-agents-and-llm-systems-01", + "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-01/" + } + }, { "id": "papers::gentry-fhe-2009", "area": "papers", @@ -17329,6 +17361,38 @@ "chunk_route": "/study/atlas/papers/topic-papers-compilers-and-programming-language-theory-01/" } }, + { + "id": "papers::lats", + "area": "papers", + "slug": "lats", + "title": "LATS — 把推理、行动和规划统一进语言 Agent 树搜索", + "description": "用 LATS 理解为什么 agent 不一定要线性执行 ReAct 轨迹,也可以在环境反馈下做搜索、反思和回溯。", + "difficulty": "intermediate", + "canonical_topics": [ + "papers-agents-and-llm-systems" + ], + "classification": { + "state": "classified", + "source": "frontmatter-category", + "topic_id": "papers-agents-and-llm-systems", + "matched_category": "agent", + "raw_category": "AI Agent / Planning" + }, + "trust": { + "contract_state": "v2", + "verification_status": "UNVERIFIED" + }, + "freshness": { + "state": "NOT_EVALUATED", + "reviewed_at": "2026-07-15", + "review_after": null + }, + "route": "/study/papers/lats/", + "atlas": { + "chunk_id": "topic-papers-agents-and-llm-systems-01", + "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-01/" + } + }, { "id": "papers::layernorm-2016", "area": "papers", @@ -19973,6 +20037,38 @@ "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-01/" } }, + { + "id": "papers::memgpt", + "area": "papers", + "slug": "memgpt", + "title": "MemGPT — 把 LLM 记忆管理做成一套虚拟上下文操作系统", + "description": "用 MemGPT 理解为什么长程 agent 不能只靠扩大 context window,而要显式管理快速记忆、长期记忆和控制流。", + "difficulty": "intermediate", + "canonical_topics": [ + "papers-agents-and-llm-systems" + ], + "classification": { + "state": "classified", + "source": "frontmatter-category", + "topic_id": "papers-agents-and-llm-systems", + "matched_category": "agent", + "raw_category": "AI Agent / Memory System" + }, + "trust": { + "contract_state": "v2", + "verification_status": "UNVERIFIED" + }, + "freshness": { + "state": "NOT_EVALUATED", + "reviewed_at": "2026-07-15", + "review_after": null + }, + "route": "/study/papers/memgpt/", + "atlas": { + "chunk_id": "topic-papers-agents-and-llm-systems-01", + "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-01/" + } + }, { "id": "papers::memgym", "area": "papers", @@ -20005,6 +20101,38 @@ "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-01/" } }, + { + "id": "papers::memorybank", + "area": "papers", + "slug": "memorybank", + "title": "MemoryBank — 给 LLM 长期陪伴场景加用户记忆", + "description": "用 MemoryBank 理解长期记忆为什么不只是检索历史对话,还要更新用户画像、选择性遗忘和强化重要记忆。", + "difficulty": "intermediate", + "canonical_topics": [ + "papers-agents-and-llm-systems" + ], + "classification": { + "state": "classified", + "source": "frontmatter-category", + "topic_id": "papers-agents-and-llm-systems", + "matched_category": "agent", + "raw_category": "AI Agent / Long-Term Memory" + }, + "trust": { + "contract_state": "v2", + "verification_status": "UNVERIFIED" + }, + "freshness": { + "state": "NOT_EVALUATED", + "reviewed_at": "2026-07-15", + "review_after": null + }, + "route": "/study/papers/memorybank/", + "atlas": { + "chunk_id": "topic-papers-agents-and-llm-systems-01", + "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-01/" + } + }, { "id": "papers::mencius-2008", "area": "papers", @@ -30216,8 +30344,8 @@ }, "route": "/study/papers/swe-agent/", "atlas": { - "chunk_id": "topic-papers-agents-and-llm-systems-01", - "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-01/" + "chunk_id": "topic-papers-agents-and-llm-systems-02", + "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-02/" } }, { @@ -30247,8 +30375,8 @@ }, "route": "/study/papers/swe-bench/", "atlas": { - "chunk_id": "topic-papers-agents-and-llm-systems-01", - "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-01/" + "chunk_id": "topic-papers-agents-and-llm-systems-02", + "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-02/" } }, { @@ -30279,8 +30407,8 @@ }, "route": "/study/papers/swe-bench-cl/", "atlas": { - "chunk_id": "topic-papers-agents-and-llm-systems-01", - "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-01/" + "chunk_id": "topic-papers-agents-and-llm-systems-02", + "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-02/" } }, { @@ -30311,8 +30439,8 @@ }, "route": "/study/papers/swe-skills-bench-2026/", "atlas": { - "chunk_id": "topic-papers-agents-and-llm-systems-01", - "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-01/" + "chunk_id": "topic-papers-agents-and-llm-systems-02", + "chunk_route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-02/" } }, { @@ -64843,7 +64971,7 @@ "page": 2, "pages": 2, "route": "/study/atlas/papers/topic-papers-agents-and-llm-systems-02/", - "entries": 17 + "entries": 21 }, { "id": "topic-papers-ai-safety-and-interpretability-01", diff --git a/data/review-receipts/papers/generative-agents.json b/data/review-receipts/papers/generative-agents.json new file mode 100644 index 000000000..70d57e18a --- /dev/null +++ b/data/review-receipts/papers/generative-agents.json @@ -0,0 +1,55 @@ +{ + "schema_version": "study-review-receipt-v1", + "generation": 1, + "predecessor_digest_sha256": null, + "note": { + "area": "papers", + "slug": "generative-agents", + "digest_sha256": "b6540e1d2ac1b1f41842d224e57cf101eb08f0e6ca3495a9534894008b571456" + }, + "source_revision": "arXiv:2304.03442v2", + "research_input_sha256": "f4281716b9354c09879302742fc1ac9e0fdf0688153eb15b7287637a4fab2b19", + "reviewers": [ + { + "role": "ZERO_BASE", + "reviewer_version": "study-static-review-20260715-agent-memory-round", + "decision": "PASS_WITH_NOTES", + "score": 87, + "warnings": [ + "Explains memory stream, reflection, and planning with a toy intern-agent scenario; the small-town simulation was not reproduced." + ], + "execution": { + "review_mode": "STATIC_REVIEW", + "code_mode": "MANUAL_SIMULATION" + } + }, + { + "role": "ENGINEER", + "reviewer_version": "study-static-review-20260715-agent-memory-round", + "decision": "PASS_WITH_NOTES", + "score": 85, + "warnings": [ + "Architecture interpretation is static; no sandbox, agent runtime, or human-evaluation replication was run." + ], + "execution": { + "review_mode": "STATIC_REVIEW", + "code_mode": "NOT_APPLICABLE" + } + }, + { + "role": "ACADEMIC", + "reviewer_version": "study-static-review-20260715-agent-memory-round", + "decision": "PASS_WITH_NOTES", + "score": 84, + "warnings": [ + "Citation identity was checked through arXiv API metadata; reported believability findings are not independently reproduced." + ], + "execution": { + "review_mode": "STATIC_REVIEW", + "code_mode": "NOT_APPLICABLE" + } + } + ], + "waivers": [], + "created_at": "2026-07-15T03:24:00.000Z" +} diff --git a/data/review-receipts/papers/lats.json b/data/review-receipts/papers/lats.json new file mode 100644 index 000000000..5d9b46ee3 --- /dev/null +++ b/data/review-receipts/papers/lats.json @@ -0,0 +1,55 @@ +{ + "schema_version": "study-review-receipt-v1", + "generation": 1, + "predecessor_digest_sha256": null, + "note": { + "area": "papers", + "slug": "lats", + "digest_sha256": "1c5a78fabce79e977f8b3c90edddde5c7ac08d3afbfeae001f0665f6e8d56f7b" + }, + "source_revision": "arXiv:2310.04406v3", + "research_input_sha256": "5b7745998858f86ece42f1d50d3013e422c4f0bbe37a63b6d9e4329a3ed2e4f6", + "reviewers": [ + { + "role": "ZERO_BASE", + "reviewer_version": "study-static-review-20260715-agent-memory-round", + "decision": "PASS_WITH_NOTES", + "score": 87, + "warnings": [ + "Explains tree-search control flow with a toy WebShop-style scenario; LATS code and benchmark tasks were not run." + ], + "execution": { + "review_mode": "STATIC_REVIEW", + "code_mode": "MANUAL_SIMULATION" + } + }, + { + "role": "ENGINEER", + "reviewer_version": "study-static-review-20260715-agent-memory-round", + "decision": "PASS_WITH_NOTES", + "score": 85, + "warnings": [ + "Planning and search implications are static; no MCTS rollout, environment replay, or token-cost benchmark was reproduced." + ], + "execution": { + "review_mode": "STATIC_REVIEW", + "code_mode": "NOT_APPLICABLE" + } + }, + { + "role": "ACADEMIC", + "reviewer_version": "study-static-review-20260715-agent-memory-round", + "decision": "PASS_WITH_NOTES", + "score": 84, + "warnings": [ + "Citation identity was checked through arXiv API metadata; reported HumanEval, WebShop, QA, and math results are not independently reproduced." + ], + "execution": { + "review_mode": "STATIC_REVIEW", + "code_mode": "NOT_APPLICABLE" + } + } + ], + "waivers": [], + "created_at": "2026-07-15T03:27:00.000Z" +} diff --git a/data/review-receipts/papers/memgpt.json b/data/review-receipts/papers/memgpt.json new file mode 100644 index 000000000..831c804f1 --- /dev/null +++ b/data/review-receipts/papers/memgpt.json @@ -0,0 +1,55 @@ +{ + "schema_version": "study-review-receipt-v1", + "generation": 1, + "predecessor_digest_sha256": null, + "note": { + "area": "papers", + "slug": "memgpt", + "digest_sha256": "355e750f79c9cb11b4439a1846f9f97c607f8d69a7080f49ad05f4d0a2b743a1" + }, + "source_revision": "arXiv:2310.08560v2", + "research_input_sha256": "0b9e79c1cf74fbcc12a7d919e0a013131568df7711bf185b2de7d207a307b234", + "reviewers": [ + { + "role": "ZERO_BASE", + "reviewer_version": "study-static-review-20260715-agent-memory-round", + "decision": "PASS_WITH_NOTES", + "score": 87, + "warnings": [ + "Explains virtual context management with a toy coding-agent memory layout; MemGPT code and experiments were not run." + ], + "execution": { + "review_mode": "STATIC_REVIEW", + "code_mode": "MANUAL_SIMULATION" + } + }, + { + "role": "ENGINEER", + "reviewer_version": "study-static-review-20260715-agent-memory-round", + "decision": "PASS_WITH_NOTES", + "score": 85, + "warnings": [ + "OS-style memory-management implications are static; no document-analysis or multi-session chat benchmark was reproduced." + ], + "execution": { + "review_mode": "STATIC_REVIEW", + "code_mode": "NOT_APPLICABLE" + } + }, + { + "role": "ACADEMIC", + "reviewer_version": "study-static-review-20260715-agent-memory-round", + "decision": "PASS_WITH_NOTES", + "score": 84, + "warnings": [ + "Citation identity was checked through arXiv API metadata; reported task improvements are not independently reproduced." + ], + "execution": { + "review_mode": "STATIC_REVIEW", + "code_mode": "NOT_APPLICABLE" + } + } + ], + "waivers": [], + "created_at": "2026-07-15T03:25:00.000Z" +} diff --git a/data/review-receipts/papers/memorybank.json b/data/review-receipts/papers/memorybank.json new file mode 100644 index 000000000..9a39d2f62 --- /dev/null +++ b/data/review-receipts/papers/memorybank.json @@ -0,0 +1,55 @@ +{ + "schema_version": "study-review-receipt-v1", + "generation": 1, + "predecessor_digest_sha256": null, + "note": { + "area": "papers", + "slug": "memorybank", + "digest_sha256": "66f5d3d26370b7ee1e228a37e8b50b064370a7f59595b6cd05c645cad5019dae" + }, + "source_revision": "arXiv:2305.10250v3", + "research_input_sha256": "1b70ae5cd38bf3c86b457115624e42dd2ebf2949f35508ea58a24418017a0d29", + "reviewers": [ + { + "role": "ZERO_BASE", + "reviewer_version": "study-static-review-20260715-agent-memory-round", + "decision": "PASS_WITH_NOTES", + "score": 86, + "warnings": [ + "Explains long-term user memory with a toy companion scenario; SiliconFriend and dialog experiments were not reproduced." + ], + "execution": { + "review_mode": "STATIC_REVIEW", + "code_mode": "MANUAL_SIMULATION" + } + }, + { + "role": "ENGINEER", + "reviewer_version": "study-static-review-20260715-agent-memory-round", + "decision": "PASS_WITH_NOTES", + "score": 84, + "warnings": [ + "Engineering privacy and memory-governance implications are static; no live user-memory system was audited." + ], + "execution": { + "review_mode": "STATIC_REVIEW", + "code_mode": "NOT_APPLICABLE" + } + }, + { + "role": "ACADEMIC", + "reviewer_version": "study-static-review-20260715-agent-memory-round", + "decision": "PASS_WITH_NOTES", + "score": 83, + "warnings": [ + "Citation identity was checked through arXiv API metadata; qualitative and simulated-dialog results are not independently reproduced." + ], + "execution": { + "review_mode": "STATIC_REVIEW", + "code_mode": "NOT_APPLICABLE" + } + } + ], + "waivers": [], + "created_at": "2026-07-15T03:26:00.000Z" +} diff --git a/src/content/docs/about.md b/src/content/docs/about.md index 82ac6bc3c..4cf3ce1d0 100644 --- a/src/content/docs/about.md +++ b/src/content/docs/about.md @@ -14,7 +14,7 @@ sidebar: 写到今天的硬数字: -- **1079 篇论文笔记** + **961 篇项目笔记**,合计 **2000+ 篇** +- **1083 篇论文笔记** + **961 篇项目笔记**,合计 **2000+ 篇** - 横跨 19 个主题:分布式系统 76 / 编程语言 76 / 数据库 47 / 操作系统 46 / 机器学习 44 / 区块链 44 / 后端 API 40 / 基础设施 38 / 网络协议 37 / 图形学 36 / 形式化方法 27 / 通信 27 / 信息检索 25 / Agent 24 / CLI 23 / NLP 11 / 编译器 11 / 等 - 近 30 天集中产出:基础设施(444 commits)、编译器与 PL(72)、自演化 Agent(10+ 新建)、分布式(47)、区块链(44) diff --git a/src/content/docs/atlas/papers/topic-papers-agents-and-llm-systems-01.md b/src/content/docs/atlas/papers/topic-papers-agents-and-llm-systems-01.md index ac445564f..a7dd478e1 100644 --- a/src/content/docs/atlas/papers/topic-papers-agents-and-llm-systems-01.md +++ b/src/content/docs/atlas/papers/topic-papers-agents-and-llm-systems-01.md @@ -41,6 +41,7 @@ sidebar: | [Evo-Memory — 给"会自己长记性"的 agent 出一份统一考卷](/study/papers/evo-memory-2511/) | `evo-memory-2511` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | | [EXG 经验图 — 把 agent 的成败拼成一张可复用的关系图](/study/papers/exg-experience-graphs/) | `exg-experience-graphs` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | | [GAIA — 通用 AI 助手的现实任务基准](/study/papers/gaia/) | `gaia` | intermediate | UNVERIFIED | 用 GAIA 理解为什么真正的助手能力不等于专业考试高分,而是能组合推理、多模态、浏览和工具 | +| [Generative Agents — 用记忆、反思和计划模拟可信的人类行为](/study/papers/generative-agents/) | `generative-agents` | intermediate | UNVERIFIED | 用 Generative Agents 理解 LLM agent 为什么需要 memory stream、reflection 和 planning,而不只是单轮 prompt | | [Gorilla — 让 LLM 学会查 API 文档再调用](/study/papers/gorilla-2023/) | `gorilla-2023` | intermediate | UNVERIFIED | 用 Gorilla 理解 API grounding 如何降低工具调用幻觉 | | [GPTQ — 把 175B 大模型压成 4-bit 还几乎不掉点](/study/papers/gptq-2023/) | `gptq-2023` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | | [GraphRAG — 微软的知识图谱 + RAG](/study/papers/graphrag/) | `graphrag` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | @@ -52,6 +53,7 @@ sidebar: | [Scaling Laws — 大模型训练不是玄学,是幂律预算题](/study/papers/kaplan-scaling-laws-2020/) | `kaplan-scaling-laws-2020` | advanced | UNVERIFIED | 用 Kaplan scaling laws 理解参数、数据和计算量怎样一起决定语言模型损失 | | [KV-Fold — 把 KV cache 当成 fold 的累加器,一段一段读长文](/study/papers/kv-fold/) | `kv-fold` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | | [LaMDA — 聊天模型先学会有用、具体和不乱说](/study/papers/lamda-2022/) | `lamda-2022` | intermediate | UNVERIFIED | 用 LaMDA 理解开放域对话模型为什么需要质量、安全和 groundedness 三条线 | +| [LATS — 把推理、行动和规划统一进语言 Agent 树搜索](/study/papers/lats/) | `lats` | intermediate | UNVERIFIED | 用 LATS 理解为什么 agent 不一定要线性执行 ReAct 轨迹,也可以在环境反馈下做搜索、反思和回溯 | | [Least-to-Most — 先拆小题,再解大题](/study/papers/least-to-most-prompting-2022/) | `least-to-most-prompting-2022` | intermediate | UNVERIFIED | 用 Least-to-Most Prompting 理解复杂推理为什么要先分解再逐步求解 | | [LLM.int8() — 大模型激活值里藏着几个超大异常通道](/study/papers/llm-int8-2022/) | `llm-int8-2022` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | | [LLM-Wiki — 把外部知识编译成 agent 自己的"维基"](/study/papers/llm-wiki-retrieval-reasoning/) | `llm-wiki-retrieval-reasoning` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | @@ -59,7 +61,9 @@ sidebar: | [MCP — 让一个 LLM 客户端能插任何外部能力的 USB 协议](/study/papers/mcp-spec/) | `mcp-spec` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | | [MCPWorld — API、GUI、混合 Computer Use 的统一测试床](/study/papers/mcpworld-2025/) | `mcpworld-2025` | intermediate | UNVERIFIED | MCPWorld 用 white-box apps 统一评估 API、GUI 和混合 computer-use agents | | [MemCoder — code agent 跟着你 git commit 一起成长](/study/papers/memcoder-co-evolution/) | `memcoder-co-evolution` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | +| [MemGPT — 把 LLM 记忆管理做成一套虚拟上下文操作系统](/study/papers/memgpt/) | `memgpt` | intermediate | UNVERIFIED | 用 MemGPT 理解为什么长程 agent 不能只靠扩大 context window,而要显式管理快速记忆、长期记忆和控制流 | | [MemGym — 给长程 agent memory 做一间健身房](/study/papers/memgym/) | `memgym` | intermediate | UNVERIFIED | 用 MemGym 区分聊天记忆、执行记忆和可迁移的 agent 经验 | +| [MemoryBank — 给 LLM 长期陪伴场景加用户记忆](/study/papers/memorybank/) | `memorybank` | intermediate | UNVERIFIED | 用 MemoryBank 理解长期记忆为什么不只是检索历史对话,还要更新用户画像、选择性遗忘和强化重要记忆 | | [MetaGPT — 多智能体软件公司](/study/papers/metagpt/) | `metagpt` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | | [MIND-Skill — 用归纳和演绎双 agent 抽 skill 并保证质量](/study/papers/mind-skill/) | `mind-skill` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | | [Mind2Web — 面向任意网站的泛化 web agent 数据集](/study/papers/mind2web/) | `mind2web` | intermediate | UNVERIFIED | 用 Mind2Web 理解 web agent 为什么要跨网站、跨领域、跨交互模式评估,而不是只在固定模拟站点里刷分 | @@ -109,9 +113,5 @@ sidebar: | [SpecInfer — 让大模型一次"猜一棵树"再并行验证](/study/papers/specinfer-2023/) | `specinfer-2023` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | | [Speculative Decoding — 小模型先猜,大模型只验收](/study/papers/speculative-decoding-2022/) | `speculative-decoding-2022` | advanced | UNVERIFIED | 用 Speculative Decoding 理解如何不改变分布地加速自回归生成 | | [STaR — 模型先试着讲理由,再用对的理由训练自己](/study/papers/star-self-taught-reasoner-2022/) | `star-self-taught-reasoner-2022` | intermediate | UNVERIFIED | 用 STaR 理解 rationale bootstrapping 怎样减少人工推理标注 | -| [SWE-Agent — Princeton SWE-bench 解法](/study/papers/swe-agent/) | `swe-agent` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | -| [SWE-bench — 真实 GitHub Issue 评测](/study/papers/swe-bench/) | `swe-bench` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | -| [SWE-Bench-CL — coding agent 不能只刷静态题](/study/papers/swe-bench-cl/) | `swe-bench-cl` | intermediate | UNVERIFIED | 用 SWE-Bench-CL 理解软件工程 agent 的持续学习、迁移和灾难性遗忘 | -| [SWE-Skills-Bench — Agent 技能真的帮得上软件工程吗](/study/papers/swe-skills-bench-2026/) | `swe-skills-bench-2026` | intermediate | UNVERIFIED | 用 paired evaluation 衡量 SWE skills 对真实软件工程 agent 的边际收益和 token 成本 | [下一组](/study/atlas/papers/topic-papers-agents-and-llm-systems-02/) diff --git a/src/content/docs/atlas/papers/topic-papers-agents-and-llm-systems-02.md b/src/content/docs/atlas/papers/topic-papers-agents-and-llm-systems-02.md index 307161c1a..2181d70ed 100644 --- a/src/content/docs/atlas/papers/topic-papers-agents-and-llm-systems-02.md +++ b/src/content/docs/atlas/papers/topic-papers-agents-and-llm-systems-02.md @@ -1,6 +1,6 @@ --- title: "智能体与 LLM 系统 · 论文 · 第 2 组" -description: "17 条 智能体与 LLM 系统 Atlas 分块" +description: "21 条 智能体与 LLM 系统 Atlas 分块" sidebar: hidden: true --- @@ -9,10 +9,14 @@ sidebar: [返回论文全景索引](/study/papers-atlas/) -本分块共 17 条,稳定上限为 100 条。 +本分块共 21 条,稳定上限为 100 条。 | 论文 | Slug | 难度 | 可信状态 | 简介 | |---|---|---|---|---| +| [SWE-Agent — Princeton SWE-bench 解法](/study/papers/swe-agent/) | `swe-agent` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | +| [SWE-bench — 真实 GitHub Issue 评测](/study/papers/swe-bench/) | `swe-bench` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | +| [SWE-Bench-CL — coding agent 不能只刷静态题](/study/papers/swe-bench-cl/) | `swe-bench-cl` | intermediate | UNVERIFIED | 用 SWE-Bench-CL 理解软件工程 agent 的持续学习、迁移和灾难性遗忘 | +| [SWE-Skills-Bench — Agent 技能真的帮得上软件工程吗](/study/papers/swe-skills-bench-2026/) | `swe-skills-bench-2026` | intermediate | UNVERIFIED | 用 paired evaluation 衡量 SWE skills 对真实软件工程 agent 的边际收益和 token 成本 | | [Terminal-Bench — 在真实命令行任务里测试 agent](/study/papers/terminal-bench/) | `terminal-bench` | intermediate | UNVERIFIED | 用 Terminal-Bench 理解终端环境为什么能暴露 agent 的长程执行、环境理解和验证能力 | | [ToolBench-X — 工具会坏时,agent 还能不能把事做完](/study/papers/toolbench-x/) | `toolbench-x` | intermediate | UNVERIFIED | 用 ToolBench-X 理解 tool-use benchmark 为什么要模拟规格漂移、调用错误、执行失败和结果冲突 | | [Toolformer — 教 LLM 自主调用 API](/study/papers/toolformer/) | `toolformer` | unknown | UNVERIFIED | 暂无独立描述;可先从标题与正文定位开始。 | diff --git a/src/content/docs/career-plan.md b/src/content/docs/career-plan.md index 75ea7d92e..54239e465 100644 --- a/src/content/docs/career-plan.md +++ b/src/content/docs/career-plan.md @@ -5,7 +5,7 @@ sidebar: order: 1 --- -> 本页是路径说明。具体笔记见左侧分组;当前规模 2000+ 篇(论文 1079 + 项目 961)。 +> 本页是路径说明。具体笔记见左侧分组;当前规模 2000+ 篇(论文 1083 + 项目 961)。 ## 1. 路径模型的演化 diff --git a/src/content/docs/index.md b/src/content/docs/index.md index 1bc865ad0..9bde185cb 100644 --- a/src/content/docs/index.md +++ b/src/content/docs/index.md @@ -144,7 +144,7 @@ head: -

当前规模:1079 篇论文 + 961 个项目 = 2040 篇笔记,按 19 个主题组织。数量已移出首屏,只作为覆盖面证据。

+

当前规模:1083 篇论文 + 961 个项目 = 2044 篇笔记,按 19 个主题组织。数量已移出首屏,只作为覆盖面证据。

diff --git a/src/content/docs/method.md b/src/content/docs/method.md index 45012290d..3a75342a2 100644 --- a/src/content/docs/method.md +++ b/src/content/docs/method.md @@ -11,7 +11,7 @@ sidebar: ## 顶层结论(先看) -- 这套方法跑过 **961 篇项目 + 1079 篇论文 = 2040 篇**笔记,跨 19 个一级主题、约 2040 行写作密度 +- 这套方法跑过 **961 篇项目 + 1083 篇论文 = 2044 篇**笔记,跨 19 个一级主题、约 2044 行写作密度 - 最常被跳过的层是 **Layer 4 改一处**——但每次跳过都让整篇笔记从"机制"退回"翻译" - 真正变成"门面级"反向引用枢纽的笔记([React](/study/projects/react/) 68 / [[pytorch]] 67 / [[kubernetes]] 66 / [[postgresql]] 66),无一例外都做过 L3+L4 双层 - L0 / L1 / L2 / L7 即使做得平庸也不致命;L3+L4 任一项缺失 = 整篇笔记掉档 diff --git a/src/content/docs/papers-atlas.md b/src/content/docs/papers-atlas.md index b0a68b2cd..d181cc275 100644 --- a/src/content/docs/papers-atlas.md +++ b/src/content/docs/papers-atlas.md @@ -1,6 +1,6 @@ --- title: 论文全景索引 -description: 1079 篇论文的分块地图 · 稳定 taxonomy · 自动生成 +description: 1083 篇论文的分块地图 · 稳定 taxonomy · 自动生成 sidebar: order: 5 label: 论文全景索引 @@ -12,10 +12,10 @@ sidebar: ## 总览
-
1079论文总数
-
1060已有规范主题
+
1083论文总数
+
1064已有规范主题
19暂未收纳进主题路线
-
98.2%分类覆盖率(1060 / 1079,已分类 / 总数)
+
98.2%分类覆盖率(1064 / 1083,已分类 / 总数)
## 先选一条学习路径 @@ -41,7 +41,7 @@ Atlas 不替代精选路线。零基础读者先从下面六条路径选一条 | 主题 | English | 数量 | 分块 | |---|---|---:|---| -| 智能体与 LLM 系统 | Agents and LLM Systems | 117 | [第 1/2 组](/study/atlas/papers/topic-papers-agents-and-llm-systems-01/) · [第 2/2 组](/study/atlas/papers/topic-papers-agents-and-llm-systems-02/) | +| 智能体与 LLM 系统 | Agents and LLM Systems | 121 | [第 1/2 组](/study/atlas/papers/topic-papers-agents-and-llm-systems-01/) · [第 2/2 组](/study/atlas/papers/topic-papers-agents-and-llm-systems-02/) | | NLP 基础与 Scaling | NLP Foundations and Scaling | 114 | [第 1/2 组](/study/atlas/papers/topic-papers-nlp-foundations-and-scaling-01/) · [第 2/2 组](/study/atlas/papers/topic-papers-nlp-foundations-and-scaling-02/) | | 计算机视觉 | Computer Vision | 11 | [第 1/1 组](/study/atlas/papers/topic-papers-computer-vision-01/) | | 生成模型 / 扩散 | Generative Models and Diffusion | 14 | [第 1/1 组](/study/atlas/papers/topic-papers-generative-models-and-diffusion-01/) | @@ -79,4 +79,4 @@ Atlas 不替代精选路线。零基础读者先从下面六条路径选一条 - difficulty 未知:1014 - description 为空:1013 -- sidecar 主键:1079 个唯一 `area::slug` +- sidecar 主键:1083 个唯一 `area::slug` diff --git a/src/content/docs/papers-method.md b/src/content/docs/papers-method.md index f786e48ff..8cb477392 100644 --- a/src/content/docs/papers-method.md +++ b/src/content/docs/papers-method.md @@ -11,7 +11,7 @@ sidebar: ## 站点的论文体量 -截至 2026-07,论文目录共 1079 篇笔记,覆盖: +截至 2026-07,论文目录共 1083 篇笔记,覆盖: - 分布式系统 76 篇([[paxos-1998]] / [[raft]] / [[lamport-1978]] / [[spanner-2012]]) - 编程语言 + 类型论 76 篇([[hindley-milner]] / [[lambda-calculus]] / [[hoare-logic]]) diff --git a/src/content/docs/papers-queue.md b/src/content/docs/papers-queue.md index 072b05e09..2c6a686f0 100644 --- a/src/content/docs/papers-queue.md +++ b/src/content/docs/papers-queue.md @@ -1,11 +1,11 @@ --- title: 论文队列 -description: 按 topic 分组的 pillar 推荐 —— 站内 1079 篇论文笔记里,每条主线挑 3-5 篇代表作做切入点 +description: 按 topic 分组的 pillar 推荐 —— 站内 1083 篇论文笔记里,每条主线挑 3-5 篇代表作做切入点 sidebar: order: 4 --- -> 站内累计 1079 篇论文笔记,跨 14 个主题。这页不是"待读清单",是 +> 站内累计 1083 篇论文笔记,跨 14 个主题。这页不是"待读清单",是 > **入门指引** —— 每个 topic 给 3-5 篇 pillar 论文 + 一行说明它 > 为什么是该 topic 的支点。看完一条主线的 pillar,你就拿到了 > 该 topic 整张反向链接图的入口。 @@ -13,7 +13,7 @@ sidebar: ## 怎么用这页 - 不知道某个 topic 从哪读 → 来这里挑该主题 3-5 篇 pillar -- 想看完整 1079 篇分布与主题地图 → [papers-atlas](/study/papers-atlas/) +- 想看完整 1083 篇分布与主题地图 → [papers-atlas](/study/papers-atlas/) - 想要"如何精读一篇论文"的方法 → [papers-method](/study/papers-method/) - 想看跨论文 + 项目的混合阅读节奏 → [queue](/study/queue/) diff --git a/src/content/docs/papers/generative-agents.md b/src/content/docs/papers/generative-agents.md new file mode 100644 index 000000000..c7df3dc46 --- /dev/null +++ b/src/content/docs/papers/generative-agents.md @@ -0,0 +1,145 @@ +--- +title: 'Generative Agents — 用记忆、反思和计划模拟可信的人类行为' +description: '用 Generative Agents 理解 LLM agent 为什么需要 memory stream、reflection 和 planning,而不只是单轮 prompt。' +来源: 'arXiv:2304.03442' +日期: 2026-07-15 +分类: AI Agent / Memory +难度: 中级 +difficulty: intermediate +trust: + version: study-v2 + source_kind: paper + note_type: paper + canonical_source: https://arxiv.org/abs/2304.03442v2 + source_authority: AUTHOR_PRIMARY + accessed_at: '2026-07-15' + publication_id: arXiv:2304.03442 + source_version: arXiv:2304.03442v2 + evidence_type: STATIC_ANALYSIS + verification_status: UNVERIFIED + reviewed_at: '2026-07-15' + review_after: null + applicable_version: arXiv v2 +--- + +## 是什么 + +Generative Agents: Interactive Simulacra of Human Behavior 是一篇把 LLM 放进小镇沙盒、模拟 25 个可信人类行为代理的论文。 + +类比:普通聊天机器人像一个随叫随到的客服;Generative Agents 更像一群有日程、有记忆、有社交关系的角色。它们不只是回答问题,还会记住昨天发生了什么,反思最近的经历,并计划明天要做什么。 + +本卡只基于 arXiv v2 和论文静态阅读整理,没有复现小镇仿真环境,也没有重新做人类评估。所有结果保持 `UNVERIFIED`。 + +## 问题是什么 + +早期 LLM agent 很容易变成“当场表演”:给它当前 prompt,它生成下一句话或下一步行动;prompt 一变,角色像失忆一样重置。 + +如果要模拟可信行为,就需要三个能力: + +1. 记住长期经历; +2. 从经历里抽象出更高层反思; +3. 根据记忆和反思安排未来行动。 + +Generative Agents 的问题是:怎样把这些能力组织成一个可运行架构,让多个 agent 在同一个交互世界里产生个体行为和群体涌现行为? + +## 为什么重要 + +- 它把“agent memory”从单条用户偏好推进到完整经历流。 +- 它明确区分 observation、reflection、planning 三个模块。 +- 它展示了 LLM agent 可以在社会模拟里产生涌现事件。 +- 它是后续 [[memorybank]]、[[memgpt]]、[[memgym]] 等 memory 系统的重要前史。 +- 它提醒我们:可信行为不等于单次回答像人,而是跨时间保持一致。 + +## 核心方法 + +论文提出的 agent 架构可以拆成三层: + +| 模块 | 作用 | 工程直觉 | +|---|---|---| +| memory stream | 存储 agent 的全部自然语言经历 | 原始日志 | +| reflection | 把低层经历压缩成高层结论 | 复盘笔记 | +| planning | 基于当前状态和记忆生成日程 | 下一步执行计划 | + +每条 memory 会带 recency、importance、relevance 等信号。检索时,agent 不只是找最近的记录,也会找和当前情境最相关、最重要的经历。 + +最有代表性的案例是情人节派对:用户只给一个 agent 植入“想办派对”的意图,之后邀请、传播、约会和赴约等行为在多 agent 互动中逐步出现。 + +## 论文地形 + +1. 引言说明可信人类行为模拟的应用场景。 +2. 架构部分定义 memory stream、reflection、planning。 +3. 沙盒环境把 25 个 agent 放进小镇。 +4. 评估比较完整架构与去掉 reflection / planning 的 ablation。 +5. 讨论分析社会行为涌现和局限。 + +读这篇时不要只看“小镇很有趣”。真正值得学习的是它如何把 raw event、summary、plan 分层,让 agent 行为跨时间可解释。 + +## 手工 toy 复现 + +假设我们要模拟一个实习生 agent: + +| 时间 | 原始记忆 | 反思后结论 | 下一步计划 | +|---|---|---|---| +| 周一 | mentor 说 PR 描述太散 | mentor 重视证据化表达 | 下次 PR 先列验证命令 | +| 周二 | CI 因 lint 失败 | 提交前要跑最小门禁 | 写完先跑 lint | +| 周三 | 同事问为什么改架构 | 需要提前写 trade-off | 在设计文档加取舍 | + +如果只保留原始日志,agent 下次可能检索不到重点;如果只有反思没有原始证据,又容易变成空洞口号。Generative Agents 的价值就在于把两者连起来。 + +这个 toy 不能替代论文实验,只说明 memory stream → reflection → planning 的控制流。 + +## 评测读法 + +论文评估的重点不是“LLM 是否真的有人格”,而是行为是否更可信、更一致、更能产生合理社会互动。 + +读结果时要分三层: + +1. **个体一致性**:agent 是否记得自己的经历和目标; +2. **计划合理性**:日程是否和记忆、当前环境对得上; +3. **群体涌现**:多个 agent 的局部互动是否能形成全局事件。 + +这些指标都比普通 benchmark 更主观,因此本卡不把论文结论当作已复现实证,只把它作为架构设计证据。 + +## 踩过的坑 + +1. **不要把 memory 当无限上下文**:memory stream 需要检索和排序,否则只是更大的噪声池。 +2. **reflection 可能编造规律**:从少量经历抽象高层结论时,LLM 容易过度概括。 +3. **社会模拟不等于真实社会科学**:小镇行为可信,不代表能预测真实人群。 +4. **计划要能被环境打断**:真实 agent 不能只按日程表执行,还要响应新观察。 +5. **人类评估成本高**:可信度判断有主观性,复现难度比分类准确率高。 + +## 与当前工作的连接 + +`study` 的长期运行也有类似结构:daily / handoff 是 memory stream,retrospective 是 reflection,下一轮 bounded epoch 是 planning。 + +这篇给我们的启发是:不能只把所有对话堆进 memory;要把“发生了什么”“抽象出什么经验”“下一步怎么改变行为”分层保存。 + +它也解释了为什么上一轮 agent 安全之后,下一轮要补 memory 和 self-improvement:安全约束解决“不做坏事”,记忆与反思解决“长期做得更好”。 + +## 学到什么 + +Generative Agents 的核心贡献不是“让 25 个角色聊天”,而是给 LLM agent 提供了一个可复用的长期行为架构:观察写入、重要性评分、反思抽象、计划执行。 + +对工程 agent 来说,这套结构可以转译成:日志不是记忆,复盘不是装饰,计划不是 todo。只有三者连起来,agent 才能跨任务积累经验。 + +## 延伸阅读 + +- arXiv: [Generative Agents: Interactive Simulacra of Human Behavior](https://arxiv.org/abs/2304.03442) +- [[memorybank]] —— 单用户长期陪伴记忆 +- [[memgpt]] —— 分层 memory / virtual context 管理 +- [[memgym]] —— agent memory benchmark + +## 关联 + +- [[reflexion]] —— 把失败经验写成语言记忆 +- [[self-refine-2023]] —— 单次输出的自反馈改写 +- [[voyager]] —— 通过 skill library 长期探索 +- [[memorybank]] —— 用户画像和遗忘曲线记忆 +- [[memgpt]] —— OS 隐喻下的分层记忆管理 +- [[self-evolving-agents-survey]] —— 自进化 agent 综述视角 +- [[memgym]] —— 长程 memory 的评测口径 + +## 反向链接 + + + diff --git a/src/content/docs/papers/lats.md b/src/content/docs/papers/lats.md new file mode 100644 index 000000000..00f914ebd --- /dev/null +++ b/src/content/docs/papers/lats.md @@ -0,0 +1,143 @@ +--- +title: 'LATS — 把推理、行动和规划统一进语言 Agent 树搜索' +description: '用 LATS 理解为什么 agent 不一定要线性执行 ReAct 轨迹,也可以在环境反馈下做搜索、反思和回溯。' +来源: 'arXiv:2310.04406' +日期: 2026-07-15 +分类: AI Agent / Planning +难度: 中级 +difficulty: intermediate +trust: + version: study-v2 + source_kind: paper + note_type: paper + canonical_source: https://arxiv.org/abs/2310.04406v3 + source_authority: AUTHOR_PRIMARY + accessed_at: '2026-07-15' + publication_id: arXiv:2310.04406 + source_version: arXiv:2310.04406v3 + evidence_type: STATIC_ANALYSIS + verification_status: UNVERIFIED + reviewed_at: '2026-07-15' + review_after: null + applicable_version: arXiv v3 +--- + +## 是什么 + +Language Agent Tree Search Unifies Reasoning Acting and Planning in Language Models,简称 LATS,是一篇把 Monte Carlo Tree Search 引入语言 agent 决策过程的论文。 + +类比:普通 [[react]] agent 像一边走一边想,走错了也常常只能硬着头皮继续;LATS 像下棋时先展开几条候选路线,评估哪条更有希望,再选择行动。 + +本卡只基于 arXiv v3 和论文静态阅读整理,没有运行 LATS 代码,也没有复现 HumanEval、WebShop、HotPotQA 或 Game of 24 等实验。所有结果保持 `UNVERIFIED`。 + +## 问题是什么 + +ReAct 把 reasoning 和 acting 串在一起,但它通常是一条线性轨迹:想一步、做一步、看反馈,再继续。 + +线性轨迹的问题是: + +- 早期错误会污染后续上下文; +- agent 很难系统比较多条候选行动; +- 环境反馈没有被充分用于搜索; +- 失败后的反思常常只在下一次 trial 生效。 + +LATS 的问题是:能否把语言模型的推理、行动、环境反馈和自我反思放进一个树搜索框架,让 agent 在推理时就能探索和回溯? + +## 为什么重要 + +- 它把 [[tree-of-thoughts-2023]] 的搜索思想推进到可行动的 agent。 +- 它把 [[react]] 的环境交互和 MCTS 的 planning 合在一起。 +- 它让 self-reflection 不只是失败后总结,而是搜索节点的一部分。 +- 它覆盖编程、交互 QA、网页导航和数学等多场景。 +- 它说明 agent control flow 不只有 memory,也有 search。 + +## 核心方法 + +LATS 把 agent 过程组织成树: + +| 步骤 | 作用 | 直觉 | +|---|---|---| +| selection | 选择最值得扩展的节点 | 哪条路看起来最有前途 | +| expansion | 生成候选行动 / 思考 | 多想几种走法 | +| evaluation | 用 value function 评分 | 判断局面好坏 | +| simulation / acting | 与环境交互拿反馈 | 实际试探 | +| reflection | 对失败路径写反思 | 把局部经验回填 | + +论文强调 LATS 不是单纯 Tree-of-Thoughts,也不是单纯 ReAct。它把 reasoning、acting、planning 三件事放在同一棵搜索树里。 + +## 论文地形 + +1. 引言指出简单 acting process 限制 autonomous agent。 +2. 方法部分把 MCTS 和 LM-powered value / reflection 结合。 +3. 实验覆盖 programming、interactive QA、web navigation、math。 +4. 结果展示 LATS 在多任务上相对 baseline 的提升。 +5. 讨论部分分析计算成本、泛化和搜索质量。 + +读这篇时重点不是背 MCTS 公式,而是理解“agent 为什么需要可回溯控制流”。这和长期记忆是互补关系:memory 解决跨任务经验,search 解决当前任务多路径决策。 + +## 手工 toy 复现 + +假设 agent 在 WebShop 里买一个“便宜但评价高的蓝牙耳机”: + +| 线性 ReAct | LATS | +|---|---| +| 搜索耳机 → 点第一个结果 → 发现太贵 → 继续乱试 | 搜索耳机后展开多个候选:按价格、评分、品牌筛选 | +| 早期点错页面后上下文变乱 | 错路径可以降权或回溯 | +| 反馈只影响下一步 | 反馈可以更新整棵树的 value | +| 失败后才反思 | 节点内就能记录局部反思 | + +这个 toy 不能替代 LATS 实验,只说明 tree search 如何缓解单线行动的早期错误。 + +## 评测读法 + +LATS 结果要同时看三类指标: + +1. **任务分数**:HumanEval pass@1、WebShop score 等; +2. **搜索成本**:多分支会增加 token 和环境交互; +3. **泛化范围**:编程、网页导航、数学的控制流并不完全相同。 + +如果只看分数,很容易忽略 LATS 的代价。搜索越充分,越可能更准,但也越贵、越慢。 + +## 踩过的坑 + +1. **树搜索不保证正确**:value function 如果错,搜索会系统性偏向坏路径。 +2. **环境交互可能昂贵**:真实网页或工具调用不是免费 rollout。 +3. **反思可能污染节点**:错误归因会让后续分支被错误引导。 +4. **搜索宽度要控预算**:无限展开会把 agent 变成 token 消耗机器。 +5. **任务状态要可复制**:如果环境不可回滚,树搜索就很难安全试错。 + +## 与当前工作的连接 + +前几轮我们补了 [[webarena]]、[[browsergym]]、[[androidworld]]、[[agentdojo]] 等环境和安全 benchmark。LATS 回到 agent 内部:面对同一个环境,agent 应该如何规划、搜索和回溯。 + +这对工程 harness 也很有启发。bugfix 流程不是永远单线推进;当 locator、tech-design、verify 失败时,本质上也需要保留分支假设、回填反馈、选择下一条更可能成功的路径。 + +与 [[memgpt]] / [[memorybank]] 相比,LATS 不是长期记忆方案,而是当前任务内的控制流方案。 + +## 学到什么 + +LATS 的核心贡献是把语言 agent 从“线性执行器”推向“搜索式决策器”。它告诉我们:agent 的智能不只在模型里,也在控制流里。 + +对实际系统来说,LATS 最值得借鉴的不是照搬 MCTS,而是把候选行动、环境反馈、评分和反思显式化。这样失败路径才有机会被比较、降权和复用。 + +## 延伸阅读 + +- arXiv: [Language Agent Tree Search Unifies Reasoning Acting and Planning in Language Models](https://arxiv.org/abs/2310.04406) +- code: [LanguageAgentTreeSearch](https://github.com/lapisrocks/LanguageAgentTreeSearch) +- [[tree-of-thoughts-2023]] —— 搜索式推理前置概念 +- [[react]] —— LATS 要扩展的线性 acting baseline + +## 关联 + +- [[react]] —— reasoning + acting 的线性控制流 +- [[tree-of-thoughts-2023]] —— tree search 的纯推理版本 +- [[reflexion]] —— 失败后的语言反思 +- [[self-refine-2023]] —— 单输出自反馈迭代 +- [[webarena]] —— web navigation 任务环境 +- [[memgpt]] —— 另一类 agent 内循环:记忆管理 +- [[generative-agents]] —— memory / reflection / planning 的社会模拟版 + +## 反向链接 + + + diff --git a/src/content/docs/papers/memgpt.md b/src/content/docs/papers/memgpt.md new file mode 100644 index 000000000..36620876f --- /dev/null +++ b/src/content/docs/papers/memgpt.md @@ -0,0 +1,149 @@ +--- +title: 'MemGPT — 把 LLM 记忆管理做成一套虚拟上下文操作系统' +description: '用 MemGPT 理解为什么长程 agent 不能只靠扩大 context window,而要显式管理快速记忆、长期记忆和控制流。' +来源: 'arXiv:2310.08560' +日期: 2026-07-15 +分类: AI Agent / Memory System +难度: 中级 +difficulty: intermediate +trust: + version: study-v2 + source_kind: paper + note_type: paper + canonical_source: https://arxiv.org/abs/2310.08560v2 + source_authority: AUTHOR_PRIMARY + accessed_at: '2026-07-15' + publication_id: arXiv:2310.08560 + source_version: arXiv:2310.08560v2 + evidence_type: STATIC_ANALYSIS + verification_status: UNVERIFIED + reviewed_at: '2026-07-15' + review_after: null + applicable_version: arXiv v2 +--- + +## 是什么 + +MemGPT: Towards LLMs as Operating Systems 是一篇把 LLM 长程记忆问题类比成操作系统内存管理问题的论文。 + +类比:普通 LLM context window 像桌面上的一小块工作区;MemGPT 像操作系统,负责把当前最重要的材料放在桌面上,把暂时不用但未来可能用到的材料放进长期存储,并在需要时搬回来。 + +本卡只基于 arXiv v2 和论文静态阅读整理,没有运行 MemGPT 代码,也没有复现 document analysis 或 multi-session chat 实验。所有结果保持 `UNVERIFIED`。 + +## 问题是什么 + +扩大 context window 可以缓解长文本问题,但不能彻底解决 agent memory: + +- window 再大也有限; +- 所有历史都塞进去会增加成本和噪声; +- 旧信息需要更新、删除、压缩和检索; +- agent 还需要知道什么时候主动整理记忆。 + +MemGPT 的问题是:能否像操作系统管理虚拟内存一样,让 LLM 在有限上下文里获得“看起来更大的记忆空间”? + +## 为什么重要 + +- 它把 memory 从“外挂向量库”提升成 agent 控制流的一部分。 +- 它强调 context management,而不只是 retrieval。 +- 它区分快速上下文和长期存储,接近工程产品里的 memory 分层。 +- 它把 interrupt / function call 用作记忆读写控制机制。 +- 它解释了为什么 [[generative-agents]] 之后需要更系统的 memory runtime。 + +## 核心方法 + +MemGPT 的核心叫 virtual context management。它借鉴 OS 的 virtual memory:程序以为自己有很大的内存,实际由系统在 fast memory 和 slow memory 之间搬运页面。 + +在 LLM agent 里,这对应: + +| OS 概念 | MemGPT 对应物 | 作用 | +|---|---|---| +| main memory | 当前 context | 直接参与生成 | +| disk / swap | archival memory | 长期保存 | +| page movement | memory read / write | 把信息移入或移出上下文 | +| interrupt | 系统消息 / 函数调用 | 触发记忆管理动作 | + +论文展示了两个场景:长文档分析和多会话聊天。前者测能不能处理超过上下文窗口的大文档,后者测 agent 是否能在长期交互中记住用户和历史。 + +## 论文地形 + +1. 引言说明有限上下文窗口对长程任务的限制。 +2. 方法部分提出 virtual context management。 +3. 系统部分定义 memory tiers 和 control flow。 +4. 实验部分覆盖 document analysis 和 multi-session chat。 +5. 讨论部分说明 OS 隐喻的边界和后续方向。 + +读这篇时最重要的是看“谁决定记什么”。MemGPT 不是简单检索历史,而是让 agent 参与管理自己的上下文。 + +## 手工 toy 复现 + +假设一个 coding agent 连续处理同一仓库三天: + +```text +fast context: +- 当前 bug 描述 +- 最近失败日志 +- 当前相关文件 + +archival memory: +- 上周修过的认证模块路径 +- 项目测试命令 +- mentor 对 PR 风格的要求 +``` + +当 agent 发现当前 bug 又涉及认证,它需要从 archival memory 取回“认证模块路径”;当它总结出新的测试命令,也要写入 archival memory。 + +如果没有 MemGPT 式管理,agent 要么忘记旧经验,要么把全部历史塞进 prompt,最终又贵又乱。 + +## 评测读法 + +MemGPT 结果要看三类问题: + +1. **任务是否成功**:长文档问答、多会话聊天是否更准; +2. **记忆是否有用**:提升来自 memory management,而不是模型本身更强; +3. **管理成本是否可接受**:读写记忆会增加调用和复杂度。 + +本卡没有运行 MemGPT,因此不验证论文数值,只保留其系统设计和实验结论作为静态证据。 + +## 踩过的坑 + +1. **OS 隐喻不是等价实现**:LLM 没有确定性 page table,记忆读写仍然靠生成式决策。 +2. **错误记忆会长期污染**:一旦写入错事实,后续检索会放大错误。 +3. **长期记忆需要治理**:需要过期、合并、冲突解决和来源追踪。 +4. **函数调用不是银弹**:工具接口能约束格式,但不能保证 agent 决策正确。 +5. **多会话聊天不等于工作流记忆**:用户画像和代码排查经验的结构不同。 + +## 与当前工作的连接 + +`study` 的 handoff 和 memory 体系也在处理类似问题:哪些内容留在当前上下文,哪些进入长期文件,哪些只作为历史归档。 + +MemGPT 给我们的提醒是:memory 不是“越多越好”,而是要有读写协议。没有协议的 memory 会变成污染源;有协议的 memory 才能成为 agent runtime 的基础设施。 + +这也和 AI Harness 的 route 思路相通:缺事实走 `ask_user`,工具失败走 `retry`,验证失败走 `fail`。记忆系统也需要明确“可写入、需确认、需过期、不可采信”的状态。 + +## 学到什么 + +MemGPT 的价值在于把上下文窗口看成稀缺资源,而不是无限容器。agent 真正需要的是 memory policy:什么时候读、写什么、怎么压缩、如何确认来源。 + +如果 [[generative-agents]] 证明了 memory / reflection / planning 能产生可信行为,MemGPT 则说明这些模块需要一个运行时来管理资源和控制流。 + +## 延伸阅读 + +- arXiv: [MemGPT: Towards LLMs as Operating Systems](https://arxiv.org/abs/2310.08560) +- project: [MemGPT / Letta](https://memgpt.ai) +- [[generative-agents]] —— memory stream 和 reflection 的社会模拟架构 +- [[memorybank]] —— 长期用户记忆和遗忘曲线 + +## 关联 + +- [[generative-agents]] —— 记忆、反思、计划的前置架构 +- [[memorybank]] —— 面向陪伴场景的长期记忆 +- [[memgym]] —— 长程 agent memory 的评测 +- [[reflexion]] —— 失败经验写回 prompt memory +- [[self-evolving-agents-survey]] —— 自进化 agent 的 memory 维度 +- [[evo-memory-2511]] —— 后续 long-term memory 方向 +- [[lats]] —— 另一种 agent 控制流:搜索而非记忆管理 + +## 反向链接 + + + diff --git a/src/content/docs/papers/memorybank.md b/src/content/docs/papers/memorybank.md new file mode 100644 index 000000000..2c5befbf1 --- /dev/null +++ b/src/content/docs/papers/memorybank.md @@ -0,0 +1,145 @@ +--- +title: 'MemoryBank — 给 LLM 长期陪伴场景加用户记忆' +description: '用 MemoryBank 理解长期记忆为什么不只是检索历史对话,还要更新用户画像、选择性遗忘和强化重要记忆。' +来源: 'arXiv:2305.10250' +日期: 2026-07-15 +分类: AI Agent / Long-Term Memory +难度: 中级 +difficulty: intermediate +trust: + version: study-v2 + source_kind: paper + note_type: paper + canonical_source: https://arxiv.org/abs/2305.10250v3 + source_authority: AUTHOR_PRIMARY + accessed_at: '2026-07-15' + publication_id: arXiv:2305.10250 + source_version: arXiv:2305.10250v3 + evidence_type: STATIC_ANALYSIS + verification_status: UNVERIFIED + reviewed_at: '2026-07-15' + review_after: null + applicable_version: arXiv v3 +--- + +## 是什么 + +MemoryBank: Enhancing Large Language Models with Long-Term Memory 是一篇面向长期对话和 AI companion 场景的 LLM 记忆机制论文。 + +类比:普通 chatbot 像第一次见面的陌生人,每次都要重新介绍自己;MemoryBank 像一个会写关系笔记的朋友,记得你最近的状态、长期偏好和重要经历,并且会随着时间更新印象。 + +本卡只基于 arXiv v3 和论文静态阅读整理,没有复现 SiliconFriend,也没有重新跑定性或定量对话实验。所有结果保持 `UNVERIFIED`。 + +## 问题是什么 + +长期陪伴式 LLM 有一个基本矛盾:用户希望它记得自己,但模型上下文有限,历史对话又可能过期、冲突或不重要。 + +如果只做原文检索,会遇到几个问题: + +- 旧事实可能已经变了; +- 太多碎片会冲淡真正重要的信息; +- 用户画像需要综合,不是简单 keyword match; +- 记忆还要有情感和关系连续性。 + +MemoryBank 的问题是:如何让 LLM 在长期对话里召回相关记忆、更新用户画像,并模拟一定程度的“遗忘”和“强化”? + +## 为什么重要 + +- 它把长期记忆从 agent 任务经验扩展到用户关系和人格画像。 +- 它引入类似 Ebbinghaus forgetting curve 的选择性遗忘机制。 +- 它关注陪伴、心理对话等持续互动场景。 +- 它能和 [[generative-agents]] 的 memory stream 形成互补:一个偏社会模拟,一个偏单用户长期交互。 +- 它提醒我们:memory 治理必须处理过时、重要性和隐私边界。 + +## 核心方法 + +MemoryBank 的记忆可以理解成三层: + +| 层 | 内容 | 作用 | +|---|---|---| +| raw dialogs | 原始对话片段 | 提供证据 | +| summarized memory | 摘要后的事件 / 偏好 | 降噪和检索 | +| user profile | 对用户性格、偏好、状态的综合理解 | 生成更贴合的回复 | + +论文引入遗忘曲线思想:随着时间推移,记忆强度下降;重要或重复出现的记忆会被强化。这样 memory 不再是无限堆积,而是会根据时间和重要性动态变化。 + +应用例子是 SiliconFriend:一个带 MemoryBank 的长期 AI companion,用来展示更连贯的陪伴式对话。 + +## 论文地形 + +1. 引言提出 LLM 缺少长期记忆的问题。 +2. 方法部分描述 MemoryBank 的存储、检索、更新和遗忘机制。 +3. 系统部分展示 SiliconFriend。 +4. 实验部分结合真实用户对话和模拟对话做定性 / 定量分析。 +5. 讨论部分强调长期陪伴、心理对话和人格理解。 + +读这篇时要注意:它不是通用 agent benchmark,而是偏长期互动产品形态的 memory system。 + +## 手工 toy 复现 + +假设用户连续几周和 AI 助手聊天: + +| 对话事实 | 是否该记 | 处理方式 | +|---|---|---| +| “我明天要面试 iOS 岗” | 是 | 近期重要事件 | +| “我今天喝了奶茶” | 视情况 | 单次闲聊,低权重 | +| “我不喜欢被催得很急” | 是 | 长期协作偏好 | +| “我现在改投后端了” | 是 | 更新旧画像 | + +好的 memory 不只是把四句话都存起来,而是要知道哪些会影响未来回复,哪些会随时间衰减,哪些会覆盖旧事实。 + +这个 toy 只说明 MemoryBank 的机制直觉,不代表复现论文实验。 + +## 评测读法 + +MemoryBank 的评测要小心看三点: + +1. **记忆召回**:回复是否用到了相关历史; +2. **用户理解**:系统是否形成合理用户画像; +3. **长期一致性**:多轮交互里是否减少前后矛盾。 + +但这些指标容易受主观评价影响。论文里的 companion 场景很有启发,但不能直接等同于所有 agent memory 都会提升。 + +## 踩过的坑 + +1. **用户画像可能过度概括**:一句话不该永久定义一个人。 +2. **遗忘曲线只是启发**:人类记忆规律不能机械套到所有任务。 +3. **心理陪伴场景风险更高**:错误记忆或错误共情可能伤害用户。 +4. **长期记忆有隐私成本**:记住得越多,越需要权限、可见性和删除机制。 +5. **模拟用户不等于真实用户**:用 LLM 生成长对话可以扩规模,但会引入模拟偏差。 + +## 与当前工作的连接 + +这篇对 `study` 的意义在于提醒我们:长期 memory 不应只保存“事实”,还要保存“协作偏好”和“变化历史”。 + +但这也有边界。仓库 memory 只应保存稳定偏好、规则、经验,不保存敏感原文或瞬时聊天细节。MemoryBank 的产品设想要转成工程实践,必须加权限、来源和过期机制。 + +它也补上 [[memgpt]] 没强调的一侧:MemGPT 更像 runtime;MemoryBank 更像用户关系层。 + +## 学到什么 + +MemoryBank 的核心不是“多存一点聊天记录”,而是把长期交互拆成记忆抽取、重要性更新、遗忘衰减、用户画像综合四个动作。 + +对 agent 来说,记忆系统必须同时回答三个问题:这条信息是否真实、是否仍然有效、是否应该影响当前行为。缺任何一个,memory 都可能变成污染源。 + +## 延伸阅读 + +- arXiv: [MemoryBank: Enhancing Large Language Models with Long-Term Memory](https://arxiv.org/abs/2305.10250) +- [[generative-agents]] —— multi-agent 社会模拟里的 memory stream +- [[memgpt]] —— virtual context management +- [[memgym]] —— memory benchmark + +## 关联 + +- [[generative-agents]] —— 记忆与反思驱动可信行为 +- [[memgpt]] —— 分层上下文和长期存储 +- [[memgym]] —— 评估 memory 对 agent 执行的帮助 +- [[evo-memory-2511]] —— 后续 agent long-term memory 方向 +- [[self-evolving-agents-survey]] —— memory 作为 self-evolution 组件 +- [[reflexion]] —— 失败经验记忆 +- [[lats]] —— 与 memory 互补的 planning / search 控制流 + +## 反向链接 + + + diff --git a/src/content/docs/queue.md b/src/content/docs/queue.md index cded466cd..38416e89d 100644 --- a/src/content/docs/queue.md +++ b/src/content/docs/queue.md @@ -6,7 +6,7 @@ sidebar: --- > 不是"读哪 20 个"的清单,是"先读哪 5 个就能撑起一个领域"的导航。 -> 当前站点 961 篇项目笔记 + 1079 篇论文笔记,凑数没有意义,**取舍**才有。 +> 当前站点 961 篇项目笔记 + 1083 篇论文笔记,凑数没有意义,**取舍**才有。 > 每个主题给 3-5 个 pillar:反向链接最多、跨主题被引最广、读完能形成判断。 ## 怎么用这页 @@ -189,7 +189,7 @@ PL 理论在论文侧根扎得最深:[[hindley-milner]] / [[lambda-calculus]] ## 全景 atlas - 项目全景(961 篇按主题分组、反向链接热度、消化状态):[projects-atlas](/study/projects-atlas/) -- 论文全景(1079 篇按子领域、pillar 标记、未消化队列):[papers-atlas](/study/papers-atlas/) +- 论文全景(1083 篇按子领域、pillar 标记、未消化队列):[papers-atlas](/study/papers-atlas/) - 论文推荐入口(与本页平行的论文版导航):[papers-queue](/study/papers-queue/) - 方法论与挑选标准:[about](/study/about/) / [method](/study/method/) / [papers-method](/study/papers-method/)