跳转至

OpenClaw 大模型面试题(附答案)

以下 30 道题覆盖基础概念、架构设计、记忆机制、工具调用、上下文管理、安全机制等核心维度,按难度递进排列。


一、基础概念篇(Q1-Q8)

Q1:OpenClaw 是什么?一句话说清楚它的定位。

答案: OpenClaw 是一个开源、本地优先的 AI Agent 框架,通过 WhatsApp、飞书、Telegram 等消息平台连接大模型,让 AI 不仅能“说”,还能真正“做”——执行 Shell 命令、操作文件、调用 API、控制浏览器等。

面试加分话术: “OpenClaw 和 ChatGPT 的本质区别在于——ChatGPT 是对话工具,OpenClaw 是执行框架。前者给你答案,后者帮你干活。”


Q2:OpenClaw 的前身是什么?为什么改名?

答案: 演变路径为:Warelay → Clawdbot → Moltbot → OpenClaw。改名主要是为了体现项目定位的演变——从一个简单的机器人框架成长为开放的 AI Agent 执行平台。


Q3:OpenClaw 和普通聊天机器人(如 ChatGPT)的核心区别是什么?

维度 ChatGPT OpenClaw
能力边界 只输出文本 调用工具、执行命令、操作文件
交互方式 一问一答 多步自主循环(ReAct)
部署方式 云端 SaaS 本地优先,数据归用户
记忆机制 会话内记忆 长期记忆 + 混合检索

答案: OpenClaw 是“执行框架”,ChatGPT 是“对话工具”。


Q4:OpenClaw 支持哪些消息平台?

答案: 支持 20+ 平台,包括 WhatsApp(Baileys)、Telegram(grammY)、Discord(discord.js)、Slack(Bolt)、飞书、钉钉、Signal、iMessage、IRC、Matrix、Google Chat、Microsoft Teams、LINE 等。


Q5:OpenClaw 的开源许可证是什么?这意味着什么?

答案: MIT License。允许个人和商业使用、修改和再发布,对二次开发和商业化非常友好。


Q6:OpenClaw 的技术栈是什么?

答案:

  • 核心运行时:Node.js v22+

  • 开发语言:TypeScript

  • 包管理:npm / pnpm / bun

  • 消息通道:各平台 SDK(Baileys、grammY、discord.js、Slack Bolt 等)

  • 底层推理引擎:Pi 内核(pi-mono)


Q7:什么是“本地优先”?OpenClaw 的数据存在哪里?

答案: 所有数据(记忆、会话、配置)默认存储在本地 ~/.openclaw/ 目录,以 Markdown 和 JSON 文件形式保存,不依赖云数据库。Workspace(~/.openclaw/workspace)存放 AGENTS.md、SOUL.md 等配置;State Dir(~/.openclaw/)存放凭证、会话历史。


Q8:OpenClaw 支持哪些大模型?

答案: 模型无关设计,支持 GPT、Claude、Gemini、DeepSeek、Llama、Minimax 等。模型通过 provider/model 格式配置,如 openai/gpt-4oanthropic/claude-sonnet-4-20250514,也支持 OpenRouter 聚合接口。


二、架构设计篇(Q9-Q15)

Q9:OpenClaw 的五大核心组件是什么?各自职责是什么?

答案:

组件 职责
Gateway(网关) WebSocket 服务器(默认 localhost:18789),负责消息路由,不做推理
Brain(大脑) 核心推理引擎,编排 LLM 调用,运行 ReAct 循环
Memory(记忆) 两层记忆架构(短期 JSONL + 长期 Markdown),混合检索
Skills(技能) Markdown 格式的技能模板,存储于 SKILL.md 文件
Heartbeat(心跳) 主动执行机制,默认每 30 分钟触发一次巡检

Q10:Gateway 为什么不做推理?这种设计的优势是什么?

答案: Gateway 只负责消息路由——从各消息平台接收消息并分发给 Agent。不做推理是为了模块化解耦:消息通道和 Agent 逻辑分离,更换消息平台(如从飞书切到钉钉)不影响推理流程,便于维护和扩展。


Q11:如果要设计一个同时接入 Telegram、飞书、钉钉的 Agent 系统,你会怎么设计抽象层?

答案: 核心思路是适配器模式。三层设计:

  1. 统一消息模型:定义内部标准 MsgContext,包含 channelId、userId、content、attachments 等字段

  2. Channel Adapter:每个渠道实现一个适配器,负责协议转换(如飞书的 webhook 格式转成统一格式)

  3. Gateway 路由:Gateway 只与统一模型打交道,不关心底层渠道差异


Q12:Agent Runner 是如何工作的?一次 Agent 运行经历了哪些阶段?

答案: Agent Runner 是核心调度器,负责协调 LLM 调用、工具执行、错误处理。完整阶段:

  1. 排队:先入 session 级队列,再入全局队列

  2. 准备:解析 workspace、provider/model、thinking level

  3. 插件+Hook:加载插件,动态覆盖 provider 和 model

  4. 模型解析+鉴权:确定模型定义、上下文窗口大小,选 API Key

  5. 尝试执行:LLM 推理 + 工具调用循环

  6. 溢出降级:上下文超限时触发 compaction 压缩


Q13:一条用户消息从进入系统到收到回复,完整链路是怎样的?

答案:

text

用户发送消息 → Channel Adapter 接收原始消息 → 转换为统一 MsgContext → Gateway 入站补全(鉴权、限流、幂等去重)→ Routing 路由匹配(决定交给哪个 Agent)→ 斜杠命令检查(如 /new 重置会话)→ Agent Runner 启动→ LLM + 工具调用循环(ReAct)→ 投递回复到原渠道


Q14:OpenClaw 的多 Agent 模式是如何实现的?

答案: OpenClaw 支持多 Agent 模式,每个 Agent 互相独立,拥有专属配置(~/.openclaw/agents/<agentId>/)和独立记忆。通过 OPENCLAW_PROFILE=<name> 环境变量实现 Workspace 隔离,路径变为 ~/.openclaw/workspace-<profile>,用于多 Agent 环境隔离。


Q15:Pi 内核是什么?OpenClaw 与它的关系是怎样的?

答案: Pi 内核(pi-mono)是 OpenClaw 内嵌的通用轻量推理引擎,负责模型抽象、流式推理、Agent Loop 和工具执行。OpenClaw 通过 SDK 方式将 Pi 内核嵌入 Gateway,实现三层解耦:

  • Pi:负责“如何执行”(推理循环)

  • OpenClaw:负责“有哪些工具可用”(工具注入)

  • Skills:用户定义“如何组合工具解决具体问题”


三、记忆与上下文篇(Q16-Q21)

Q16:OpenClaw 的记忆系统分哪两层?分别怎么存储?

答案:

记忆类型 存储位置 内容
短期记忆(会话级) ~/.openclaw/agents//sessions/*.jsonl 每轮对话原始记录,JSONL 格式
长期记忆(跨会话) ~/.openclaw/workspace/MEMORY.md + memory/*.md 用户偏好、重要决策、提炼的关键信息

短期记忆由系统自动追加;长期记忆通过 Memory Flush 机制自动提炼写入。


Q17:短期记忆和长期记忆之间是怎么转换的?

答案: 两种触发机制:

  1. session-memory Hook:用户执行 /new 重置会话时,自动将上一会话的关键内容转换为 Markdown 写入 memory/YYYY-MM-DD.md

  2. Memory Flush:当会话接近 Context Window 上限时,系统发起静默回合,让 AI 将值得长期保留的内容写入 Memory 文件,然后清理历史——用户完全无感知


Q18:Memory 的索引是怎么建的?为什么用 SQLite 而不是向量数据库?

答案: Markdown 文件是记忆本体,SQLite 是加速层。建索引流程:

  1. 发现:监控 MEMORY.md 和 memory/*.md 变化,标记 dirty

  2. 切块:按语义将 Markdown 切成多个 chunk

  3. 双路索引:

  4. 向量索引(sqlite-vec):语义相似召回
  5. 全文索引(FTS5 + BM25):精确关键词匹配

  6. 存储:chunk、元信息、索引都存于 ~/.openclaw/memory/paismart.sqlite

选择 SQLite 而非 ElasticSearch 等专用向量数据库,是因为本地优先理念——无需额外基础设施,单文件即开即用。


Q19:混合检索为什么比纯向量检索更优?

答案: 纯向量检索擅长“语义相似”,但不擅长“精确关键词匹配”。举例:

  • 搜索 "nomic-embed-text" 这个精确字符串,纯向量可能把“embedding 模型”“本地向量索引”等语义相关内容都捞出来,但关键字命中反而弱

  • 搜索 "上次说过的那个文章写作偏好是什么来着?" 则纯关键词检索不够用

OpenClaw 采用 FTS5 (BM25) + sqlite-vec 混合检索,融合精确匹配和语义相似,最后做结果融合排序,保证召回率和准确率。


Q20:Context Window 是 Agent 工程中最核心的约束之一,为什么?

答案: Context Window 是 LLM 单次请求能处理的最大 token 数。Agent 的上下文里塞了很多东西:

  • System Prompt

  • 工具定义列表(每个工具 JSON Schema)

  • 完整对话历史

  • 每次工具调用的入参和返回结果

  • 模型回复预留空间

一次 Agent 可能运行多轮,每轮结果都追加到历史,context 会越来越大。超过窗口上限会导致:

  • 推理失败(直接报错)

  • 早期关键信息被截断

  • Token 成本飙升


Q21:当对话历史太长、裁剪也不够用时,OpenClaw 的 Compaction 策略是怎样的?

答案: Compaction 是用 LLM 把一大段对话历史压缩成精炼摘要,替换原始消息。核心流程:

  1. 分块(Chunking):按 token 预算切分消息,最近几轮对话保留原文

  2. 逐块摘要:每个 chunk 发给 LLM 生成摘要。超大消息走降级路径(跳过,标注被忽略)

  3. 合并摘要:多段局部摘要再调一次 LLM 融合成一份连贯的最终摘要

  4. 替换:用摘要替换原始消息块,释放上下文空间


四、工具调用与 Skills 篇(Q22-Q25)

Q22:Tool Calling 的完整链路是怎样的?

答案: 核心四步:

阶段 说明
定义工具 JSON Schema 格式,包含 name、description、参数类型约束
LLM 决策 收到用户消息后,判断需调用工具,返回 tool_use 消息
系统执行 解析工具名,找到本地注册函数,传参执行
结果回传 执行结果包装成 tool_result 追加到对话历史,发回 LLM

LLM 根据结果判断:信息够了则生成最终回答,不够则继续 tool_usetool_result 循环。


Q23:OpenClaw 的 Skills 是什么?存储格式是怎样的?

答案: Skills 是存储为 Markdown 文件的提示词模板,每个 Skill 一个文件夹,内含 SKILL.md。格式:

markdown

---name: weekly-reportdescription: 自动生成周报---# 指令内容你需要根据用户的对话记录,生成一份周报...

目前 ClawHub 技能市场已有 5000+ 社区贡献的 Skills。


Q24:工具调用返回超大结果(如代码搜索返回 50KB)会带来什么问题?OpenClaw 怎么处理?

答案: 三个直接问题:Token 爆炸、挤占上下文空间、延迟飙升。

OpenClaw 两层防护:

  1. 单条截断:每条 tool result 设字符上限,截断时检测尾部错误信息,采用 head + tail 分割,中间加省略标记

  2. 全局预算守卫:每次发 LLM 请求前,计算所有消息总 token 数,超过阈值时从最早的 tool result 开始用 placeholder 替换


Q25:System Prompt 在 Agent 系统中承载了哪些职责?太长怎么处理?

答案: 五类职责:

  1. 角色定义和行为准则

  2. 工具使用规范和约束

  3. 输出格式要求

  4. 安全与权限控制

  5. 上下文信息补充

处理策略:拆、选、扔

  • 拆:按职责拆成独立模块

  • 选:根据当前任务只注入相关模块

  • 扔:把稳定不变的知识移出 prompt,放到外部文件,让 Agent 需要时通过工具读取


五、高级机制与面试加分篇(Q26-Q30)

Q26:Heartbeat(心跳)机制是什么?和普通定时任务有什么区别?

答案: Heartbeat 让 Agent 从“被动响应”变成“主动执行”,默认每 30 分钟触发一次,检查所有 Agent 文件,判断是否有需要主动处理的任务(如定时查邮件、每天早上发天气摘要)。

与普通定时任务的关键区别:Heartbeat 在主会话中运行,具有完整的对话上下文和记忆,能智能判断是否需要行动,而不是机械执行固定脚本。


Q27:OpenClaw 的 Workspace Bootstrap 文件有哪些?各自作用是什么?

答案: 位于 ~/.openclaw/workspace/

文件 作用
AGENTS.md 行为规范、会话流程、内存管理、安全规则
SOUL.md 人格语气、核心价值观(拒绝“讨好型 AI”)
TOOLS.md 工具说明、环境特定配置
BOOTSTRAP.md 首次运行引导,完成后可删除
IDENTITY.md Agent 名称、风格、表情符号
USER.md 用户偏好、项目背景、操作习惯

空文件会跳过,大文件会截断。


Q28:OpenClaw 的浏览器自动化为什么比传统截图识别更省 Token?

答案: 基于 Playwright 开发,采用语义快照(Semantic Snapshot)技术——基于页面可访问性树(Accessibility Tree)生成文本化表征,而非图像截图。优势:

  • 文本大小不足 50KB(截图通常 5MB+)

  • 模型能通过 [ref=1] button "Sign In" 这类标识精准定位页面元素

  • 极大节省 Token 消耗,提升推理效率


Q29:OpenClaw 的安全机制有哪些?如何防止沙箱逃逸?

答案:

  1. 最小权限原则:Agent 只拥有显式授予的权限

  2. Sandbox 安全限制:初始化时只复制 Workspace 内的普通文件;指向 Workspace 外部的 symlink 或 hardlink 被忽略,防止沙箱逃逸

  3. Shell 分级执行:沙箱(Docker,高风险)、本地宿主机(常规)、远程设备(跨设备)

  4. 敏感信息过滤:凭证独立存储于 ~/.openclaw/credentials/,不在会话中明文记录


Q30:面试官问“你在项目中用过 OpenClaw 吗?”——没有实际项目经验怎么回答?

答案: 即使没有生产级项目经验,可以从以下角度展示能力:

  1. 源码研究:“我研究过它的源码结构,理解了 Channel Plugin 接口设计,知道如何新增一个消息平台适配器”

  2. 本地部署实践:“我在 Windows 11 上完成过本地部署,配置了飞书接入,遇到过接口调用失败的问题,通过调试配置文件解决”

  3. 概念理解:“我理解 OpenClaw 解决的核心问题是‘让 AI 拥有执行能力’,它的混合检索、Compaction 机制、Heartbeat 主动巡检等设计,对我理解 Agent 工程化很有启发”

  4. 扩展思考:“如果要接入企业业务系统,我认为关键在于工具定义——需要把内部 API 封装成符合 OpenClaw Tool Schema 的接口”


总结:OpenClaw 面试高频考点地图

text

┌─────────────────────────────────────────────────────────┐│ OpenClaw 面试考点地图 │├─────────────────────────────────────────────────────────┤│ 基础定位 │ 与 ChatGPT 区别 / 本地优先 / 开源协议 │├─────────────────────────────────────────────────────────┤│ 架构设计 │ 五组件 / Gateway 路由 / Agent Runner 流程 │├─────────────────────────────────────────────────────────┤│ 记忆机制 │ 两层记忆 / Memory Flush / 混合检索原理 │├─────────────────────────────────────────────────────────┤│ 上下文管理│ Context Window / Compaction / Tool 截断策略 │├─────────────────────────────────────────────────────────┤│ 工具调用 │ Tool Calling 链路 / Skills 格式 │├─────────────────────────────────────────────────────────┤│ 安全机制 │ 沙箱隔离 / 最小权限 / 敏感信息保护 │├─────────────────────────────────────────────────────────┤│ 主动能力 │ Heartbeat / 浏览器语义快照 │└─────────────────────────────────────────────────────────┘

祝面试顺利!🦞