手把手教你用claw-code搭建Agent
3月31日,Claude Code 的源码因 source map 文件未剥离意外泄露。51万行 TypeScript 代码、1903个文件,就这样暴露在了公网上。
而就在泄露后的几小时内,一个韩国开源团队 instructkr 就启动了 claw-code 项目——用 Rust + Python 对 Claude Code 的核心架构进行了 clean-room 复刻。
这个项目 2 小时冲上 50K star,创下 GitHub 历史最快纪录。
对我们求职党来说,这意味着什么? 意味着你现在可以拆开 Claude Code 的引擎盖,学习一套工业级 AI Agent 系统的设计思路,甚至基于它搭建自己的面试练习 Agent。
一、claw-code 是什么?
简单说:它是 Claude Code 的开源复刻版,核心用 Rust 实现(约2万行代码),配合 Python 做辅助分析。
项目地址:github.com/instructkr/claw-code
它不是泄露代码的搬运,而是基于公开架构模式的 clean-room 重写,完全 MIT 开源。
核心模块
rust/crates/
├── api/ # API 客户端,SSE 流式处理
├── commands/ # 斜杠命令注册表
├── runtime/ # 会话、配置、权限、MCP、提示词
├── claw-cli/ # 主 CLI 入口
└── tools/ # 18个内置工具实现
它复刻了 Claude Code 最核心的几个系统:
- 工具系统:bash 执行、文件读写、搜索、Web 抓取等 18 个内置工具
- 权限系统:ReadOnly / WorkspaceWrite / DangerFullAccess 三级权限
- 子 Agent 架构:Explore Agent(只读探索)、Plan Agent(规划)、Verification Agent(验证)
- MCP 协议:模型上下文协议的完整客户端/服务端实现
- 会话管理:对话持久化、成本追踪、token 用量统计
二、怎么上手?3 步跑起来
环境准备
你需要:
- Rust 工具链(rustup 安装)
- Python 3.10+
- 一个 Claude API Key(设置环境变量
ANTHROPIC_API_KEY)
第 1 步:克隆 & 构建
git clone https://github.com/instructkr/claw-code.git
cd claw-code/rust
cargo build --release
构建完成后,可执行文件在 ./target/release/claw。
第 2 步:启动交互式 REPL
./target/release/claw
进入交互模式后,你就拥有了一个类 Claude Code 的终端 Agent,支持:
- 流式对话(SSE)
- 工具调用(文件操作、bash 命令、搜索等)
- Markdown 渲染输出
第 3 步:试试 Python 分析工具
# 查看系统模块总览
python3 -m src.main subsystems --limit 16
# 查看命令清单
python3 -m src.main commands --limit 10
# 跑测试验证
python3 -m unittest discover -s tests -v
三、从源码学 Agent 设计:可以做哪些 Agent?
claw-code 最大的价值,不是给你一个现成产品,而是给你一套 可参考的 Agent 架构范式。以下是几个可以直接落地的方向:
1. 面试刷题 Agent
利用 claw-code 的工具系统 + 子 Agent 架构,你可以搭一个:
- 出题 Agent(Plan Agent 模式):只读访问题库,根据岗位和难度出题
- 判题 Agent(Verification Agent 模式):对你的回答做 adversarial probes,找漏洞
- 讲解 Agent(Explore Agent 模式):只读分析你的代码,给出优化建议
关键设计:出题和判题的 Agent 必须分离,这是 Claude Code 验证系统的核心思想——实现者和验证者不能是同一个角色。
2. 简历优化 Agent
利用文件读写工具 + MCP 协议:
- 读取你的简历文件
- 对照目标 JD 做匹配分析
- 输出修改建议,直接编辑文件
3. 模拟面试官 Agent
基于 claw-code 的对话运行时,设定面试官 system prompt:
- 按轮次递进:一面基础 → 二面项目深挖 → 三面系统设计
- 每个回答后自动追问
- 面试结束自动生成评价报告
4. 代码 Review Agent
直接复用 claw-code 的 bash + file_read + grep_search 工具链:
- 读取你的项目代码
- 跑 lint、跑测试
- 输出 code review 报告,标注问题和改进建议
四、面试高频问题:如果面试官问你 AI Agent 架构
读完 claw-code 源码,以下这些问题你应该能答得很扎实:
Q1:AI Agent 和普通 LLM 调用有什么区别?
Agent 不只是"调一次 API"。claw-code 里一个工具调用要经过:输入校验 → 权限检查 → Hook 前置处理 → 执行 → 后置处理 → 失败兜底,整条链路有 10+ 个环节。Agent 的核心是 工具治理,不是模型本身。
Q2:为什么要做多 Agent 而不是一个 Agent 搞定所有事?
claw-code 里有 Explore Agent(只读)、Plan Agent(规划)、Verification Agent(验证)三个特化角色。原因很简单:一个 Agent 同时做研究、规划、实现、验证,每件事都做不扎实。尤其是验证——自己写的代码自己验,天然有偏见。
Q3:怎么管理 Agent 的上下文窗口?
claw-code 复刻了 Claude Code 的三层压缩:微压缩(清理旧工具结果)→ 自动压缩(87% 阈值触发)→ 完全压缩(AI 摘要替换历史)。核心原则:上下文是预算,不是免费空间。能缓存的缓存,能按需加载的不要提前塞进去。
Q4:什么是 MCP 协议?为什么重要?
MCP(Model Context Protocol)是让 Agent 连接外部工具和数据源的标准协议。claw-code 完整实现了 MCP 客户端/服务端。它的价值在于:不用为每个工具写死接口,任何符合 MCP 协议的服务都能即插即用,这是 Agent 生态化的基础设施。
Q5:Agent 的权限系统怎么设计?
claw-code 采用 fail-closed 设计:工具默认不安全、默认会写入。如果开发者忘了声明安全属性,系统假设最坏情况。三级权限(ReadOnly / WorkspaceWrite / DangerFullAccess)+ 子 Agent 权限继承但受限。宁可过度保守,也不漏掉风险。
Q6:Prompt 工程在 Agent 系统里是怎么做的?
不是写一段 prompt 就完了。claw-code 复刻了 Claude Code 的动态拼装机制:静态部分(行为规范、工具说明)走缓存;动态部分(环境信息、记忆、会话状态)按需注入。每个工具还有独立的 prompt.ts 使用手册。这是工程化的 prompt 管理,不是手工艺。
Q7:怎么防止 Agent "乱来"?
两层约束:第一层是 prompt 层面的行为规范——不要加用户没要求的功能、不要过度抽象、先读代码再改代码、不能假装测试过了。第二层是 runtime 层面的权限检查——危险操作必须确认,Explore Agent 物理上不可能修改文件。
Q8:你怎么评价这个开源项目的架构?
最值得学的三点:(1) 工具系统的 fail-closed 设计哲学;(2) 实现者/验证者分离的多 Agent 模式;(3) prompt cache 的字节级前缀复用优化。这不是一个"聊天机器人加几个工具",是一个以 LLM 为内核的运行平台。
五、这个项目目前的局限
实事求是说,claw-code 目前还不是 Claude Code 的完整替代:
- Hook 系统:配置解析有了,但实际执行管线还没实现
- Plugin 系统:完全缺失,没有插件加载器
- Skill 系统:只支持本地加载,缺少注册表和热重载
- 部分 CLI 命令:/agents、/hooks、/mcp、/plugin 等命令族还没移植
但作为学习 Agent 架构的教材,它已经足够好了。274 个测试全部通过,核心对话循环、工具执行、MCP 集成都是可用的。
写在最后
AI Agent 是今年求职绕不开的话题。不管你面的是大模型算法、AI 应用开发、还是 AI 产品经理,"你对 Agent 架构的理解"几乎是必考题。
与其背八股文,不如花几个小时读一读 claw-code 的源码。2万行 Rust 代码,结构清晰,注释充分,比任何博客文章都直观。
读源码,是提升技术判断力最快的方式。
#AI求职实录##Claude Code泄露源码#