v0.1.9 · 153+ 测试全绿 · MIT 开源

属于你自己的
自主进化 AI 助手。

EvoClaw 把 agent 循环搬到你的笔记本上。每次任务都在学习,密钥在边界处脱敏永远不进入模型 API,长会话 token 成本降到约 1/3。ACP + MCP 标准互通,开源 MIT。

→ 立即上手 ★ GitHub Star
Rust 1.80+ macOS · Linux · Windows 核心约 8K LOC 零遥测
差距

没有 EvoClaw vs 有了 EvoClaw

SaaS Agent 把每条 prompt 都打进它们的日志,把你的代码索引在它们的服务器上,等你想问"上周二那次任务到底发生了什么"已经无迹可寻。EvoClaw 把这个循环重新接到你自己的机器上。

没有 EvoClaw
$ cat ~/.bashrc | grep -i token | curl acme-ai.com/chat
!! prompt 已记录到 acme-ai.com:443,每个字节被索引
$ acme-ai chat "修一下生产数据库迁移"
!! GHP_xxxx 在 tool 参数里裸奔,进了厂商后台
$ acme-ai replay last-tuesday
ERROR: 免费版日志只保留 24 小时
$ acme-ai run --offline
ERROR: 后端不可达,账号已暂停
14 prompt 之前 · 花费 ¥13.40 · cache hit 不知道
有了 EvoClaw
  • 本地优先。唯一向外的网络包是你自己挑的模型 API。其他全部留在 ~/.evoclaw/
  • 密钥永远不进入模型。两层 redactor 在 6 个边界点幂等地脱敏 prompt、tool 参数与 assistant 回复。
  • 任意会话可回放。每个任务一份 append-only JSONL。evo replay 把上周二那次任务原样还原。
  • 断网模式。model.base_url 指到 Ollama / vLLM / llama.cpp,循环不变,无需联网。
  • 长任务花费 ≈ 1/3。5 招叠加,缓存命中率稳定 ≥ 60%。
核心能力

8 个支撑能力。

让一个长跑 Agent runtime 值得你信任、敢让它在真实机器上无人值守地跑 —— 缺一不可。

🌳

自主进化的 Skill Tree

YAML 技能 + 五态 EWMA 生命周期(Draft → Candidate → Active → Degraded → Deprecated)。Active 技能进入下一轮 planner。

🔒

密钥隔离屏障

Vault 命中变 ${SECRET:NAME};模式兜底变 [REDACTED:kind:fp]。6 个边界点幂等。

📉

Token 经济

Schema 指纹、ephemeral cache、summary 协议、头尾截断、周期压缩。长任务花费 ≈ 1/3。

🧠

分层记忆 L0–L5

Scratch / 偏好 / 环境事实(90 天淘汰)/ 任务记录 / 反思 / 冷归档。JSONL + grep,召回不耗 prompt。

🧾

Append-only JSONL 回放

一任务一日志,一记录一 JSON。evo replay 还原任意会话;doctor closure 校验日志闭合。

💰

三层预算引擎

任务硬停 / 日软警 + 4× 硬停 / 月度硬停。doctor tokens 看 7 天 / 30 天花费与命中率。

🛡

P0–P8 权限阶梯

evo-policy::Permission 里强制有序。默认上限 P1;渠道发送方硬封顶 P4。

一份 CLI、两个二进制

evoclaw 长名 + evo 三字母别名 —— 同一份 lib。直接打名字进 REPL。

三步上手

从 clone 到第一条任务,三步

编译、配置、跑。其余的交给向导。

编译

克隆仓库,让 cargo 干活。单一静态二进制,热缓存约 30 秒。

# Rust 1.80+
git clone https://github.com/DevEloLin/evoclaw
cd evoclaw && cargo build --release

配置

首启动跑交互向导:选 provider(17 家厂商)、贴 API key、挑模型。

./target/release/evoclaw
# 向导写入 ~/.evoclaw/config.toml
# 密钥落到 ~/.evoclaw/secrets/vault.json (chmod 600)

输任务。EvoClaw 规划、调工具、观察、再规划、收尾 —— 然后默默蒸馏一份 Skill。

evo run "诊断我的 SSH 为什么断流"
evo replay   # 完整反思追踪
evo skill tree
集成

和你已经在用的 一切 互通。

17 家模型厂商、7 个 ACP coding agent、7 个 MCP 服务、4 种本地 runtime —— 全部走标准协议,没有私有粘合层。

DeepSeekKimiQwen 通义千问 豆包智谱 GLM百度千帆 MiniMax阶跃星辰腾讯混元 OpenAIAnthropicGemini MistralGroqOpenRouter TogetherFireworks
Claude CodeCodexCursor GitHub CopilotGemini CLI Aider通义灵码 Qwen Code

~/.evoclaw/config.tomlprovider = "acp:claude" —— EvoClaw 拉起上游 CLI 子进程,通过 stdio JSON-RPC 转发 prompt。

filesystemGitHubfetch timeBrave Search PostgresSlack + 自带服务

工具在注册表里以 mcp__server__tool 出现。鉴权环境变量在 mcp add 时被截留,永远不进入模型。

OllamavLLM llama.cpp任意 OpenAI 兼容地址

model.base_url 指到 http://localhost:11434/v1(Ollama)或任意本地服务。跳过 API key 步骤。Redactor 与 skill tree 照常工作。

快速开始

挑一个安装方式。

不需要注册账号。零遥测。也不会强制你"先创建账号"。

# macOS · Linux · Windows — 需要 Rust 1.80+
git clone https://github.com/DevEloLin/evoclaw && cd evoclaw
cargo build --workspace --release
./target/release/evoclaw                 # 首启动自动跑交互向导
向导写完 ~/.evoclaw/config.toml 之后会直接落到 REPL。
# 从 git tag 拉取并装到 ~/.cargo/bin(evoclaw + evo 两个二进制)
cargo install --locked --git https://github.com/DevEloLin/evoclaw evo-cli

evoclaw                                  # 长名
evo                                      # 三字母别名 —— 同一份 lib
在 v0.2.0 发布到 crates.io 之前,从 git 直装是官方支持的方式。
# 注册一个密钥 —— 值永远不出本机
evo secret add github_pat ghp_yourActualValueHere

# 跑一条任务
evo run "诊断我的 SSH 为什么断流"

# 回放任意会话 —— 反思 / 花费 / 工具调用全在
evo replay
想用浏览器聊?evo gateway --bind 127.0.0.1:7878 --token mychat 在本机起一个 Bearer 保护的页面。
实时演示

一次会话长这样。

规划、调工具、观察、再规划 —— 然后默默把 Skill 落盘。

evo · ~/work/myrepo
╔══════════════════════════════════════════════════════════════════╗ ║ ███████╗██╗ ██╗ ██████╗ ██████╗██╗ █████╗ ██╗ ║ ║ ██╔════╝██║ ██║██╔═══██╗██╔════╝██║ ██╔══██╗██║ ║ ║ █████╗ ██║ ██║██║ ██║██║ ██║ ███████║██║ ║ ║ ██╔══╝ ╚██╗ ██╔╝██║ ██║██║ ██║ ██╔══██║██║ ║ ║ ███████╗ ╚████╔╝ ╚██████╔╝╚██████╗███████╗██║ ██║███████╗║ ║ local-first · self-evolving · v0.1.9 ║ ╚══════════════════════════════════════════════════════════════════╝ ┌─ context ─────────────────────────────────────────────────────┐ │ home : ~/.evoclaw │ │ provider: deepseek (https://api.deepseek.com/v1) │ │ model : deepseek-chat │ │ api key : ok · secrets file: ~/.evoclaw/secrets/deepseek.key │ │ skills : 12 loaded · 3 ACTIVE │ └───────────────────────────────────────────────────────────────┘ 把 ~/work 下的所有 Cargo.toml 总结一下,写到 cargo-toml-summary.txt 规划中... [cache hit · 8/12 工具已 fingerprinted] tool: list_dir("~/work") + 12ms tool: read_file × 7 + 84ms · 头尾截断 tool: write_file(cargo-toml-summary.txt, ...) + 6ms 完成,4 轮¥0.014cache 73% === final === 已写入 7 条路径到 cargo-toml-summary.txt。根目录:evoclaw、my-other-repo、... 反思:蒸馏出新技能 cargo-toml-aggregateDraft 日志:~/.evoclaw/logs/task-20260503T012245.823.jsonl _
参考

架构与设计图。

两个页面、四种语言。架构页是同一张画布上的全模块巡览;设计页覆盖每一个状态机、序列与闭合规则。

对比一下

托管 SaaS vs EvoClaw

同一组问题,问七遍。

问题SaaS AgentEvoClaw
我的代码去了哪?每次 prompt 都进它们的后端只到你选的模型 API;其他全留本地
我的密钥去了哪?你贴进去就在它们日志里vault.json chmod 600;模型只看到占位符
我的日志去了哪?它们服务器,可被检索~/.evoclaw/logs/;你说删就删
能回放上周二吗?看它们留没留evo replay /path/to/log.jsonl
能离线跑吗?不能能 —— base_url 指 Ollama / vLLM / llama.cpp
能处理合规内容吗?大概率不行可以 —— 每个字节都在你机器上
换厂商?从头来Skill / 记忆 / 配置照常工作
FAQ

常见问题。

速答在这里,长版去文档。

EvoClaw 是什么?一句话说。

用 Rust 写的本地优先 Agent runtime,每次任务都在学习,工作过程在 append-only JSONL 里完整可证,你打的密钥永远不会进入模型 API。

能离线跑吗?

能。把 model.base_url 指到 http://localhost:11434/v1(Ollama),或者任何本地的 vLLM / llama.cpp 服务。跳过 API key 步骤。Redactor 与 skill tree 照常工作。

重新 clone 仓库后我的 Skill 还在吗?

在。状态全部在 ~/.evoclaw/,不在仓库里。EvoClaw 怎么删怎么重装都行,你的 Skill / 记忆 / 保险柜原地不动。

会话日志能分享给同事吗?

能。每个文本字段在落盘前都过了 redactor,JSONL 直接发给同事不需要再人工核一遍。

模型把我的密钥原样回吐到日志里怎么办?

Redactor 是双向的 —— 进模型前脱敏,从模型回来再脱敏一次。哪怕模型把已注册的值原样吐回来,assistant 文本也会在落 JSONL 之前被再次清洗。

为什么不上向量数据库?

向量检索在召回的瞬间就在烧 prompt token。在本机工作流上,对分层记忆(L1 偏好、L2 环境事实、L3 任务记录)做子串匹配的召回率相当,但 prompt 成本只是它的零头。要向量?挂个 MCP 服务器接向量后端就行。

为什么用 Rust?

单一静态二进制,没有运行时,没有 GC 暂停;类型系统能拦下一类长跑 Agent runtime 里特别要命的 bug。我们想要这些好处,又不想付 C++ 的税。

怎么换模型 provider?

evoclaw login 选另一家,或者直接编辑 ~/.evoclaw/config.toml。EvoClaw 支持 DeepSeek、Kimi、Qwen、OpenAI、OpenRouter、Anthropic、GitHub Copilot、Ollama,以及任何 OpenAI 兼容端点。

今天就开始你的 AI 之旅。

几分钟拥有自己的个人 AI 助手。不用注册,零遥测 —— 一份 Rust 二进制就够了。