CORE_ARCHITECTURE MODULE
CORE_ARCHITECTURE
The Lane-based Gateway
Clawdbot 本质上是一个 TypeScript CLI 应用程序,而非 Web App。它作为守护进程运行在你的机器上,充当所有外部连接(Telegram, Slack 等)的网关。
核心架构采用了 "泳道" (Lane-based) 设计模式:
- Channel Adapter: 标准化不同渠道的消息输入。
- Gateway Server: 任务协调中心,处理并发请求。
- Lane Queue: 默认串行执行 (Default to Serial)。每个会话分配一个独立泳道,避免了 async/await 带来的竞争条件地狱。只有明确的低风险任务才会并行处理。
TypeScriptCLISerial Queue

IMG_SRC:RENDER_OK
// Gateway Coordinator
class Gateway {
// Map session ID to dedicated Serial Lane
private lanes = new Map<string, SerialLane>();
async handleRequest(req: Request) {
const lane = this.lanes.get(req.sessionId)
|| new SerialLane();
// High-risk/Stateful -> Serial Lane (Queue)
if (req.isStateful) {
await lane.add(new Task(req));
}
// Low-risk/Read-only -> Parallel execution
else {
await runParallel(new Task(req));
}
}
}
// Serial Lane: Prevents race conditions
class SerialLane {
private queue: Task[] = [];
private isRunning = false;
async add(task: Task) {
this.queue.push(task);
if (!this.isRunning) this.process();
}
private async process() {
this.isRunning = true;
while (this.queue.length > 0) {
// Execute one by one
await this.queue.shift()?.execute();
}
this.isRunning = false;
}
}MEMORY_SYSTEM MODULE
MEMORY_SYSTEM
Hybrid Retrieval Architecture
如果没有记忆,AI 只是金鱼。Clawdbot 通过双层系统解决持久化问题:
- Session Transcripts (JSONL): 记录完整的会话历史,用于上下文构建。
- Memory Files (Markdown): 长期记忆存储在
memory/*.md中。
混合搜索 (Hybrid Search)
结合了 Vector Search (SQLite) 和 Keyword Search (FTS5)。搜索 "authentication bug" 既能找到语义相关的 "auth issues",也能匹配精确短语。Agent 通过标准的文件写入工具直接管理记忆,没有黑盒 API。
JSONLMarkdownSQLiteFTS5

IMG_SRC:RENDER_OK
// Memory Structure
memory/
├── user_profile.md
├── project_claudia.md
└── tech_stack_notes.md
// Search Query
SELECT * FROM memory
WHERE vec_search(embedding, query)
OR text_match(content, query);COMPUTER_USE MODULE
COMPUTER_USE
Sandboxed Execution
Clawdbot 赋予 Agent 真实的计算机操作权限,但在安全上做了严格限制:
- 执行环境: 默认为 Docker Sandbox,也可配置为直接宿主机操作。
- Allowlist (白名单): 用户显式批准的命令(如 npm, git)。
- Blocklist (黑名单): 默认拦截危险操作(如
rm -rf /,命令替换,重定向到系统文件)。
DockerSandboxAllowlist
// ~/.clawdbot/exec-approvals.json
{
"allowlist": [
{ "pattern": "/usr/bin/npm", "lastUsed": 1706644800 },
{ "pattern": "/opt/homebrew/bin/git", "lastUsed": 1706644900 }
],
"blocked": [
"rm -rf /",
"cat file > /etc/hosts"
]
}SEMANTIC_VISION MODULE
SEMANTIC_VISION
Accessibility Tree over Pixels
浏览器工具并不依赖截图(Screenshot),而是使用 语义快照 (Semantic Snapshots)。
它是页面 Accessibility Tree (ARIA) 的文本化表示。
IMAGE SNAPSHOT
~5MB Size
High Token Cost
SEMANTIC SNAPSHOT
<50KB Size
Structure Only
浏览网页本质上是语义理解任务,而非单纯的视觉任务。Agent 看到的是按钮、输入框、标题的结构化列表。
PlaywrightARIALow-Token

IMG_SRC:RENDER_OK
- button "Sign In" [ref=1]
- textbox "Email" [ref=2]
- textbox "Password" [ref=3]
- link "Forgot password?" [ref=4]
- heading "Welcome back"