Skip to content

Commit 6d9904a

Browse files
claudepezy
authored andcommitted
docs: add Slate architecture analysis
Slate is a new agent architecture pattern from Random Labs that generalizes beyond ReAct and RLM through a thread-based episodic memory system. This document covers: - Core challenges: long-horizon tasks, working memory (Dumb Zone), strategy vs tactics - Limitations of prior approaches: compaction, subagents, markdown planning, task trees, RLM, Devin/Manus/Altera - Slate's solution: Thread, Episode, Thread Weaving - Agent architecture comparison table Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent 5661ef2 commit 6d9904a

1 file changed

Lines changed: 205 additions & 0 deletions

File tree

Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
---
2+
tags: agent-architecture, memory-system, slate, random-labs, threads, episodic-memory
3+
---
4+
5+
# Slate 架构设计分析
6+
7+
> **Related topics**: [[agent-architecture]], [[memory-system]], [[rlm-architecture]]
8+
9+
## 概述
10+
11+
Slate 是 Random Labs 提出的一种新型 Agent 架构,旨在超越 ReAct 和 RLM(递归语言模型)。该架构通过**基于线程的片段记忆系统**(Thread-based Episodic Memory)同时解决了现代 LLM Agent面临的三大核心问题:长时序任务执行、策略与战术平衡、以及工作记忆管理。
12+
13+
**项目地址**: https://github.com/randomlabs-ai/slate
14+
**官方文档**: https://docs.randomlabs.ai
15+
16+
---
17+
18+
## 1. 核心挑战
19+
20+
### 1.1 长时序任务
21+
22+
长时序任务是**路径依赖的**(path-dependent),即完成任务所需的步骤数量超过了最小 harness 能处理的范围。Agent 需要具备:
23+
24+
1. **充足的工作记忆** - 模型能在正确的时间关注正确的上下文
25+
2. **策略与战术的平衡** - 既能制定良好的计划,又能正确执行
26+
3. **整合新信息的能力** - 在执行过程中整合发现的新信息,而不丢失整体目标
27+
28+
### 1.2 工作记忆与 "Dumb Zone"
29+
30+
模型无法在整个上下文窗口中均匀地分配注意力。随着上下文长度增长,模型关注信息的能力会退化。**可用的部分(即退化区域之前的部分)就是工作记忆**
31+
32+
Dex Horthy 创造了 **"Dumb Zone"** 这一术语来描述上下文窗口中检索质量下降的部分。
33+
34+
```
35+
┌─────────────────────────────────────────────────────────┐
36+
│ Context Window │
37+
├─────────────────────┬───────────────────────────────────┤
38+
│ Working Memory │ Dumb Zone │
39+
│ (有效注意力区域) │ (注意力退化区域) │
40+
└─────────────────────┴───────────────────────────────────┘
41+
```
42+
43+
研究表明,即使在简单任务上,四个前沿模型(Claude Sonnet 4、GPT-4.1、Qwen3-32B、Gemini 2.5)的性能都随着输入长度增长而**非均匀地**退化。
44+
45+
### 1.3 策略与战术
46+
47+
- **策略(Strategy)**: 基于知识的开放性规划,引导系统走向目标
48+
- **战术(Tactics)**: 学到的、局部的动作序列,帮助实质性地朝目标推进
49+
50+
这个区别与 RL 在围棋和象棋中的历史解决方式惊人地相似:
51+
- **Stockfish**: 暴力搜索遍历整个走法树(基于战术的搜索)
52+
- **AlphaZero**: 自我对弈学习哪些位置在战略上重要(价值网络 + 策略网络)
53+
54+
AlphaZero 的研究揭示了一个重要发现:战术概念(子力价值)最先学习,战略概念(王的安全性、威胁、机动性)随后出现。它们在网络的不同层中分离地出现。
55+
56+
---
57+
58+
## 2. 现有方案的局限性
59+
60+
| 方案 | 问题 |
61+
|------|------|
62+
| **Compaction(压缩)** | 本质上是有损压缩,可能不可预测地丢失重要信息 |
63+
| **Subagents(子代理)** | 上下文隔离,但信息传递仅限于返回一条响应消息 |
64+
| **Markdown Planning** | 计划会过时;三种失败模式:计划不详细、执行不彻底、忘记更新计划 |
65+
| **Task Trees(任务树)** | 刚性结构,适应性差,表达性低 |
66+
| **RLM(递归语言模型)** | 缺乏中间反馈,像在迷宫中盲目猜测 N 步 |
67+
| **Devin/Manus/Altera** | 压缩边界存在丢失关键状态的风险 |
68+
| **Claude Code/Codex** | 同步依赖消息传递,能力受限于模型训练 |
69+
70+
---
71+
72+
## 3. Slate 架构
73+
74+
### 3.1 核心概念:Thread(线程)
75+
76+
**Thread** 是 Slate 的核心原语:
77+
78+
1. **Orchestrator(编排器)**: 中央调度 Agent,使用高度表达的界面(DSL)将动作委托给工作线程
79+
2. **Worker Thread(工作线程)**: 执行单个动作,完成后暂停并将控制权交还给主线程
80+
3. **Episode(片段)**: 线程完成动作后返回的**压缩表示**,包含该动作序列的步骤历史
81+
82+
```
83+
┌─────────────────────────────────────────────────────────────┐
84+
│ Orchestrator (主线程) │
85+
│ (LLM 作为操作系统内核) │
86+
├─────────────────────────────────────────────────────────────┤
87+
│ │
88+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
89+
│ │ Thread 1 │ │ Thread 2 │ │ Thread 3 │ ← 并行执行 │
90+
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
91+
│ │ │ │ │
92+
│ ▼ ▼ ▼ │
93+
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
94+
│ │ Episode1 │ │ Episode2 │ │ Episode3 │ ← 压缩返回 │
95+
│ └────┬─────┘ └────┬─────┘ └────┬─────┘ │
96+
│ └──────────────┴──────────────┘ │
97+
│ │ │
98+
│ ▼ │
99+
│ ┌─────────────────────┐ │
100+
│ │ Episode Composition │ ← 片段可组合 │
101+
│ └─────────────────────┘ │
102+
└─────────────────────────────────────────────────────────────┘
103+
```
104+
105+
### 3.2 Thread vs Subagent
106+
107+
| 特性 | Subagent | Thread |
108+
|------|----------|--------|
109+
| 生命周期 | 持久化 | 单次动作 |
110+
| 通信方式 | 消息传递 | 显式共享上下文 |
111+
| 上下文传递 | 隔离 | 通过 Episode 传递 |
112+
| 执行模式 | 可能是异步 | 同步完成 |
113+
114+
### 3.3 片段记忆(Episodic Memory)
115+
116+
**Episode** 是线程完成动作时采取的步骤的压缩表示:
117+
118+
- **不是完整的战术轨迹**,而是只保留重要结果
119+
- 线程不与主线程进行来回的消息传递
120+
- 执行完成后直接返回 Episode
121+
- 这种内置的完成边界使压缩变得自然
122+
123+
**Episode 的可组合性**
124+
- 一个 Thread 可以用另一个 Thread 的 Episode 作为输入
125+
- 继承有用的结论和工作历史,而不继承完整上下文
126+
127+
### 3.4 Thread Weaving(线程编织)
128+
129+
> "编排器分派,线程执行,片段组合"
130+
131+
核心机制:
132+
1. 编排器**通过引用**使用线程
133+
2. 动作在线程内**逐步执行**(每步都有中间反馈)
134+
3. 线程范围有界,系统自然与当前计划同步
135+
4. 线程是 LLM 驱动的,可以对意外环境状态做出反应
136+
137+
---
138+
139+
## 4. 与 OS 类比
140+
141+
Slate 的架构直接映射到 Karpathy 提出的 **LLM OS** 框架:
142+
143+
| LLM OS 概念 | Slate 实现 |
144+
|-------------|------------|
145+
| Kernel(内核) | Orchestrator(编排层) |
146+
| Process(进程) | Thread(线程) |
147+
| RAM(内存) | Context Window(上下文窗口) |
148+
| Process Return Values | Episode(片段) |
149+
| Filesystem, Terminal | Peripherals(外设) |
150+
151+
> "Slate 的片段架构直接回答了这个问题:与其让 RAM 填充直到进程崩溃,每个线程返回都是一个自然的机会来决定保留什么、压缩什么、丢弃什么。"
152+
153+
---
154+
155+
## 5. Agent 架构对比
156+
157+
| 特性 | ReAct | Markdown Plan | Task Trees | RLM | Devin/Manus | Claude Code | **Slate** |
158+
|------|-------|---------------|------------|-----|-------------|-------------|-----------|
159+
| 规划方式 | 隐式 | 文件 | 显式 | REPL | 规划代理 | Plan 模式 | 隐式 |
160+
| 分解方式 ||| 直接树 | REPL 函数 | 任务型 | 子代理 | 隐式 |
161+
| 同步方式 | 单线程 | 单线程 | 门控步骤 | REPL 返回 | 压缩返回 | 消息传递 | **片段** |
162+
| 中间反馈 | 每步 | 每步 | 任务失败时 | 执行时 | 压缩后 | 消息传递 | **每片段** |
163+
| 上下文隔离 | N/A | N/A | 每子任务 | 每子调用 | 子代理 | 子代理 | **每线程** |
164+
| 压缩方式 | N/A | N/A | 任务型 | REPL 切片 | 子代理压缩 | 压缩 | **片段压缩** |
165+
| 并行执行 | N/A | N/A | N/A | REPL 内 | 仅 Altera | 原生 | **原生** |
166+
| 表达性 ||||||| **** |
167+
| 适应性 || 是(若更新计划) |||| 有限 | **** |
168+
169+
---
170+
171+
## 6. 关键洞察
172+
173+
### 6.1 长时序任务的瓶颈
174+
175+
> "长时序 Agent 任务的真正瓶颈是**上下文管理**,而不是模型智能。模型已经有能力解决比当前成功解决的更多任务——这是**知识过剩(Knowledge Overhang)**。差距是系统问题,不是能力问题。"
176+
177+
### 6.2 知识过剩
178+
179+
模型的潜在知识覆盖了任务空间中的广泛轨迹,但直接的单步采样只能访问狭窄区域。规划、思维链和脚手架扩展了采样区域。
180+
181+
### 6.3 有趣的观察
182+
183+
1. **大规模并行执行**:真实的软件任务自然分解为并行线程工作流,编排器可以同时分派多个线程
184+
2. **跨模型组合**:在相同任务中使用 Sonnet 和 Codex 效果良好,片段边界作为模型之间的清晰交接
185+
186+
---
187+
188+
## 7. 技术栈
189+
190+
| 组件 | 技术 |
191+
|------|------|
192+
| 核心接口 | DSL(领域特定语言) |
193+
| 包管理 | npm |
194+
| 安装 | `npm i -g @randomlabs/slate` |
195+
196+
---
197+
198+
## 8. 参考资料
199+
200+
- [Slate GitHub](https://github.com/randomlabs-ai/slate)
201+
- [Random Labs 官方文档](https://docs.randomlabs.ai)
202+
- [RLM - Recursive Language Models (paper)](https://arxiv.org/pdf/2512.24601v1)
203+
- [Karpathy - LLM OS](https://x.com/karpathy/status/1935518272667217925)
204+
- [Context Rot (Chroma, 2025)](https://research.trychroma.com/context-rot)
205+
- [Manus - Context Engineering](https://manus.im/blog/Context-Engineering-for-AI-Agents-Lessons-from-Building-Manus)

0 commit comments

Comments
 (0)