clawd-code
Health Uyari
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Basarisiz
- child_process — Shell command execution capability in desktop/electron/main.js
- process.env — Environment variable access in desktop/electron/main.js
- fs module — File system access in desktop/electron/main.js
- fs.rmSync — Destructive file system operation in desktop/electron_bridge_e2e.mjs
- process.env — Environment variable access in desktop/electron_bridge_e2e.mjs
Permissions Gecti
- Permissions — No dangerous permissions requested
Bu listing icin henuz AI raporu yok.
Clawd Code — Python 智能体编程框架:多智能体协作 / 5 阶段工作流引擎 / MCP 桥接与检疫审批 / 逆向工具链 / Electron 桌面端 / 评测 harness(replay 确定性回归)
🚀 Clawd Code:AI 编程代理框架
"让 AI 像交响乐团一样协作,让编程像呼吸一样自然。"
当前版本: v0.81.0 | 测试: 见 test_ledger.md 与 scripts/e2e_smoke.py | 覆盖率: 见 coverage.json(由 pytest --cov=src 生成) | 质量工具: ruff, mypy, pytest-cov | CI/CD: GitHub Actions
版本号以
pyproject.toml为唯一真相源,src.__version__自动读取,不再手工维护。
具体数字请以命令输出为准,避免文档与代码漂移。
🖥️ Clawd Desktop(桌面端,v0.61.0 新增)
DSH 式桌面客户端,双击即用:
| 形态 | 获取 |
|---|---|
| NSIS 安装程序(带自动更新) | GitHub Release → Clawd Desktop Setup 0.1.0.exe |
| Portable 免安装 | 同 Release → ClawdDesktop-Portable-0.1.0.exe |
| 开发模式 | cd desktop && npm run dev |
- DSH 设计规范 UI:三阶深灰 + 品牌蓝,侧栏工作台、插件市场(毛玻璃弹窗)、工具调用实时折叠行
- 架构:Electron 壳(窗口/托盘/单实例/崩溃自愈)→ spawn Python Host(
clawd serve)→ WS 同端口托管 Web UI;壳内不造 IPC - 插件市场:
.clawd/plugins/*/pyproject.toml的插件会真实出现在市场(Host 只发现 manifest 不执行代码);
内置能力包(逆向工具集/安全工具目录/MCP 桥接/推理模式)一并展示;支持搜索与状态标注 - 设置面板:实时显示版本 / Python / 工作目录 / API Key 状态(不回显密钥),
可改 provider / model / base_url 与 RAG、原生 function-calling 开关;保存写入.clawd/ui_settings.json,
同时写入运行期配置(引擎立即生效,provider/model/base_url 需重启 Host) - 版本与更新:侧栏显示真实版本(单一来源
pyproject.toml,桌面壳package.json与之同步);
「检查更新」经 preload IPC 桥把状态回传 UI(检查中 / 下载中 / 已最新 / 就绪 / 出错 / 不支持) - 自动更新:仅安装版支持(portable 版明确提示不支持)。更新源默认是占位地址,
必须用环境变量CLAWD_UPDATE_URL(或改desktop/package.json的build.publish)指向真实发布源,
否则 UI 会明确告知"更新源未配置",不静默失败 - 首次启动:图形化引导配置 LLM API(OpenAI 兼容),配置存本机 userData
- 详见
docs/ENHANCEMENT_GUIDE.md(使用/排障)与docs/RELEASE_UPDATES.md(发布/更新)
桌面端 E2E(真实浏览器 + 真实 Electron + 真实更新源,非桩):
cd desktop && node ui_settings_e2e.mjs— 浏览器驱动 UI,17 项(设置/市场/版本/搜索)node electron_bridge_e2e.mjs— 真实 Electron 壳,10 项(preload 桥/版本一致性/各面板)node update_feed_e2e.mjs— 真实 electron-updater 拉本地 feed,4 项(feed 请求/版本识别/状态上报/URL 覆盖)更新链路已验证到「请求 feed → 识别新版本 → 开始下载」;静默安装需要真实发布环境与已签名安装包,见
docs/RELEASE_UPDATES.md。
⚡ 超级智能体能力(v0.61.0 新增)
| 能力 | 入口 | 说明 |
|---|---|---|
| 推理模式 | clawd reason reflexion|plan-execute|lats|debate "任务" |
四种反推循环:反思修正/计划重排/假设树/对抗审查 |
| MCP 桥接 | .clawd/mcp_servers.json + ToolGovernor().approve() |
外部 MCP server 工具自动进 Agent 工具池;签名+检疫审批防投毒 |
| 逆向工具 | Agent 内直接调用 | Ghidra HTTP 桥、strings/熵/hexdump、objdump/binwalk 等 8 个 |
| 安全工具 | SafeCatalogRunner |
YAML 目录 + scope 授权门禁 + 注入拦截(仅限授权测试目标) |
| 逆向知识库 | skills/reverse/ |
51 个场景 SKILL.md(固件/Ghidra/IDA/恶意软件/协议/pwn/CTF) |
| 插件开发 | .agent/skills/clawd-extension-sop.md |
四件套 SOP(manifest/DI/接入面/CLI) |
🤝 多引擎协同(v0.75.0 新增)
不只是"能分别接上引擎",而是让它们合起来跑一件事:
# 默认全用内置引擎;也可混搭
clawd collaborate "实现登录接口并补测试" --planner codex --executor native --reviewer opencode --rounds 1
流程:规划 → 执行 → 独立审查 → 不合格返工 → 再审查
- 审查者必须输出
VERDICT: APPROVE或VERDICT: NEEDS_FIX(确定性解析,两种都写判不通过、无标记判 UNKNOWN 不放行) - 返工有上限(
--rounds,默认 1),不会两引擎互相挑刺无限循环 - 换另一个引擎来审,能抓出"自己审自己"放过的问题
- 引擎实例按名字缓存,三阶段共用同一个引擎(避免重复初始化世界模型)
把我们自己的领域工具交给外部引擎(Codex 实测可用):
clawd codex --with-clawd-tools --bypass-approvals "用 clawd MCP 的 clawd_grep 搜索 'clawd-domain',只回复文件名"
# → 真实返回 tests/mcp/test_domain_server.py、src/mcp/domain_server.py
续聊(会话记忆):
clawd chat --resume <会话ID> # 载入历史续聊;REPL 多轮已自动累积上下文
clawd session resume <会话ID> "<本次目标>" # 非交互续跑
看懂它做了什么 / 让它被别人审(v0.76.6–v0.76.8 新增):
clawd explain # 中文解释最近一轮:模型/用量/工具调用成败/失败片段(零 LLM 调用)
clawd explain <会话ID> --json # 机器可读
clawd review src/app.py # 4 个评审角色**并行**(code/security/performance/style)
clawd review --json # 给 CI;裁决 VERDICT: APPROVE|NEEDS_FIX,任一角色失败=INCOMPLETE
clawd onboard # 上手体检:检测密钥 + 推荐模型 + 下一步
clawd role list # 角色库(系统提示词模板,不用自己写提示词)
clawd role show reviewer # 打印某角色的完整系统提示词(可审计)
clawd chat --role concise # 用指定角色开聊;桌面端在输入框左侧下拉切换
clawd review的裁决是确定性解析出来的(不是让模型自己说"通过"),
角色模板来自prompts/agents/*.md(已随 wheel 与桌面安装包一起发布);.env/*.pem/id_rsa等密钥类文件不会发给模型。
🧩 多引擎整合(v0.64.0 新增)
不合并源码(Rust/Go/TS 三套运行时合并必崩),而是统一驱动 + MCP 领域工具反向供给:
clawd engines # 多引擎总览(真实探活,不含水分)
clawd engines --json # 机器可读
clawd engines --run "任务" # 用首个可用引擎执行
| 项 | 真实性质 | 本机实测 |
|---|---|---|
| Codex | Agent CLI(Rust 内核,Apache-2.0) | ✅ ready 0.165.0 |
| OpenCode | Agent CLI(Go) | ✅ ready 1.19.5(凭据需自行登录) |
| OpenClaw | Agent CLI(TS) | ⚠️ incompatible(Node 版本区间不符) |
| Grok | 模型代理,不是引擎 | 归属 provider 层 |
| Pi | 插件/上下文原语包,不是引擎 | 归属能力层 |
| Hermes | 参考库无源码 | 未集成 |
领域能力分两条路(v0.64.1 起):
| 调用方 | 路径 | 说明 |
|---|---|---|
| 我们自己的 agent | 原生工具(WorldModelTool / ProjectMapTool / MemoryTool / StateTool / TraceTool / TeamTool) |
零进程、零序列化、共享进程内缓存;能力工具与 core/mcp 的 Server 类同源实现 |
| 外部引擎(Codex/OpenCode…) | MCP(src/mcp/domain_server.py、src/core/mcp/*_server.py) |
跨进程只能走协议 |
v0.80.0 起,状态/记忆/追踪/团队也内建成原生工具(
action子命令),
不再需要为自家 agent 起 MCP 进程;MCP 只留给外部引擎跨进程使用。
世界模型索引在引擎启动时自动后台预热(非阻塞,实测启动开销 0.00s)。
大仓库(源文件 >300)默认跳过全量索引并如实告知原因,用CLAWD_WM_FORCE=1/CLAWD_WM_MAX_FILES=<n>覆盖;轻量替代始终可用(ProjectMapTool/ 原生 grep)。
让我们自己的工具长进别人的内核里(src/mcp/domain_server.py):
# 任何支持 MCP 的引擎都能挂载(Codex 示例已内置于适配层)
python -m src.mcp.domain_server --root .
暴露工具:clawd_read_file(只读+越界防护)、clawd_grep(rg 优先)、clawd_project_map(代码库符号地图)、clawd_tool_list(发现我们的领域工具)。
实测:Codex 已能发现并调用这些工具
(mcp_tool_call {"server":"clawd","tool":"clawd_grep"});完整多轮循环受网关
Responses 续传能力限制,见docs/adr/0010-multi-engine-integration.md。
🔌 外部内核后端:Codex(v0.63.0 新增)
不自研重复造轮子——把成熟 agent 内核当后端接进来,我们只做适配与管控:
# 安装官方 Codex(Rust 内核,Apache-2.0)
npm i -g @openai/codex
# 用 Codex 内核执行任务(沙箱 + 事件流 + 用量统计)
clawd codex "读取 readme.txt 并只回复文件里那个单词" --cd . --sandbox workspace-write
clawd codex "只回复 PONG" --json # 输出归一化 JSON(events/commands/usage/errors)
- 协议适配而非 fork:走
codex exec --json的 JSONL 事件流,Codex 升级无需改我们代码 - 进程管控:硬超时 +
taskkill /T /F进程树强杀,避免残留进程累积 - 稳定性实测:
scripts/soak_backend.py --iters 40→ RSS 平稳、句柄/线程无增长、残留子进程 0 - 端点要求:Codex 0.165 只支持
responseswire API(我们自有网关已支持);
自定义端点在适配层注册为<provider>-custom(Codex 禁止覆盖内置 provider) - 决策与边界见
docs/adr/0009-adopt-codex-as-backend.md
🧪 Agent 评测与回归(v0.62.0 新增)
默认 replay 模式(零成本、确定性):用数据集里录制的输出做断言,可直接放进 CI 做 agent 行为回归。
# 跑示例数据集(3 用例,四类断言)
python -m src eval src/eval/datasets/smoke.json
# 与基线比对(pass_rate 下降或用例由通过转失败 → exit 1)
python -m src eval my_dataset.json --baseline .clawd/eval_baseline.json
# 把当前结果存为新基线
python -m src eval my_dataset.json --save --baseline .clawd/eval_baseline.json
断言类型:equals / contains / not_contains / regex / tool_sequence(工具调用序列完全一致)。
数据集格式:
{"version": 1, "cases": [
{"id": "c1", "input": "读取 config.yaml 并改 timeout",
"expect": {"tool_sequence": ["read_file", "edit_file"], "contains": ["timeout"]},
"recorded": {"output": "已改为 30", "tools": ["read_file", "edit_file"]}}
]}
付费红线:真实调用需
--live+ 环境变量CLAWD_EVAL_ALLOW_PAID=1双闸,否则直接拒绝(exit 2)。
默认路径不发起任何 LLM 调用。
📋 目录
🧠 核心功能
1. Swarm 多代理协作
将复杂任务分解,由专业 Agent 协同处理:
- Orchestrator: 意图路由与任务分发。
- Worker (Coder/Architect): 专注代码实现与架构设计。
- Auditor: 基于五轴标准的严苛代码审计。
- Integrator: 跨分支/工作树的结果集成。
2. 世界模型 (World Model)
代码库全景感知,集成了 Aider 风格的 RepoMap 与 Tree-sitter 语法解析,提供语义级的上下文注入。
3. 预算守卫 (Budget Guard)
业内领先的资源安全监控,实时追踪 CPU、内存(RSS)、PSI 压力及 API Token 消耗,支持动态熔断。
4. 隔离执行 (Isolation)
基于 Git Worktree 的物理隔离运行环境,支持多任务并行开发而互不干扰。
5. 智能意图路由系统
借鉴 oh-my-codex 的五意图分类与关键词检测机制:
- 意图分类: 自动识别 DELIVER/EXPLORE/EVOLVE/IMPLEMENT/DEBATE 五种任务类型
- 关键词注册表: 40+ 技能关键词(
$ralph,$team,$pipeline等)触发专用工作流 - 执行门控: ralplan-first Gate 确保重度编排任务经过规划审批
- 任务规模检测: small/medium/large/heavy 四级分类 + Agent 智能推荐
- Well-Specified 检测: 15+ 正则模式验证提示完整性,避免模糊指令
🚀 快速开始
环境要求
- Python 3.10+
- Git 2.30+
- OpenAI, Anthropic 或 OpenRouter API Key
一键启动
# 安装依赖
pip install -e .
# 运行 REPL / Chat 模式(推荐入口,与安装后的 `clawd` 完全一致)
python -m src chat
# 或
clawd chat
# 运行一键诊断
python -m src doctor
# 启动 WebSocket 服务端(远程会话;未配置令牌时会生成本次一次性令牌)
python -m src server --port 8765
可选能力开关
| 环境变量 | 默认 | 作用 |
|---|---|---|
CLAWD_ENABLE_RAG |
关闭 | 为工作目录建立惰性文本索引,首轮注入相关上下文;doctor 会显示状态 |
CLAWD_NATIVE_TOOLS |
关闭 | 使用 OpenAI 兼容原生 function calling;关闭时走 <tool>{json}</tool> 文本协议 |
CLAWD_SCRAPE_ALLOW_PRIVATE |
关闭 | 仅本地测试用:放开 ScrapeTool 的私网限制(生产禁止) |
关于入口:
python -m src与clawd是同一个 Typer CLI。
历史上还存在一个 argparse 入口python -m src.main,它的命令集更小、
且workflow语义不同。该入口保留用于兼容,但不再推荐。
⌨️ Aider 风格命令
Clawd Code 集成了强大的 Aider 风格命令系统,方便您在 REPL 中高效操作:
- 文件操作:
/add,/drop,/read,/edit - 代码执行:
/run,/test,/lint,/shell - Git 管理:
/diff,/commit,/undo - 高级功能:
/tokens,/model,/browse,/thinking
详细手册请参阅 Aider 命令手册。
🤖 Swarm 角色定义
系统通过多代理协作完成复杂工程任务,支持核心角色与动态合成:
- Orchestrator/Planner: 负责任务编排与路径规划。
- Worker/Auditor/Reviewer: 负责编码、严苛审计与架构审查。
- Diagnostician: 负责深度故障根因分析。
- Synthesized: v0.50.0 新增,支持根据上下文动态合成特定专家。
角色详情与自定义指南请参阅 Swarm 协作指南。
🧠 世界模型 (World Model)
代码库的"意识"层,提供精准的上下文感知:
- 模式检测: 自动识别 Singleton, Factory, Observer 等设计模式。
- 依赖预测: 基于代码图谱预测受影响的文件。
- 语义索引: 基于 Trigram 的语义级检索。
技术细节请参阅 世界模型说明。
🛡️ GoalX 增强特性
Clawd Code v0.50.0 深度集成了 GoalX 的持久化认知能力:
- 持久化认知表面 (Durable Surfaces): 维护 9 个规范化 JSON 表面(Charter, Objective, Evidence 等),确保任务执行过程可追踪、可审计、可恢复。
- 意图路由 (Intent Routing): 自动识别 5 种意图类型(DELIVER, EXPLORE, EVOLVE, IMPLEMENT, DEBATE),结合关键词注册表实现技能自动激活和最优路径选择。
- 关键词检测系统: 40+ 技能关键词(
$ralph,$team,$pipeline,$deep-interview等)+ 执行门控(ralplan-first Gate)+ well-specified 信号检测。 - 任务规模检测: small/medium/large/heavy 四级自动分类 + Agent 推荐,避免过度编排小任务。
- 辩论模式 (Debate Mode): 支持多模型对同一问题进行证据驱动的辩论,通过交叉验证确保输出质量。
- 内存种子与晋升 (Memory Seed & Promote): 从项目启动内存到长期经验存储的自动转化机制。
🏗️ 架构概览
详细架构说明请参考 ARCHITECTURE.md。
┌─────────────────────────────────────────────────────────┐
│ 用户交互层 (CLI/TUI) │
├─────────────────────────────────────────────────────────┤
│ Intent Routing │ Worktree Manager │ Budget Guard │
└─────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────┐
│ 核心引擎层 │
├─────────────────────────────────────────────────────────┤
│ SwarmEngine │ WorldModel (RAG) │ Self-Healing │
└─────────────────────────────────────────────────────────┘
│ │ │
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Agent 表面 │ │ 认知存储 │ │ 工具运行时 │
├───────────────┤ ├───────────────┤ ├───────────────┤
│ Charter │ │ EnterpriseLTM │ │ Bash/Git │
│ Objective │ │ Trigram Index │ │ Patch Engine │
│ Evidence │ │ RepoMap (AST) │ │ Sandbox │
└───────────────┘ └───────────────┘ └───────────────┘
📚 API 参考
运行工作流
# 5 阶段工作流引擎(识别 → 规划 → 执行 → 审查 → 发现)
python -m src run "重构认证模块" --intent evolve --budget 5usd
# 管道式命令组:ralph / ralplan / team / autopilot
python -m src workflow autopilot "实现用户登录"
python -m src workflow ralph "修复所有 lint 问题"
查看成本
# 注:Typer CLI 没有独立的 budget 子命令;预算通过 --budget 传入 run/workflow。
python -m src run "分析依赖" --budget 10usd
🧪 测试与质量
运行测试
make test # 运行全量 pytest
make coverage # 生成覆盖率报告
# 真实端到端冒烟测试(需要 .env 中配置可用的 LLM 端点)
python scripts/e2e_smoke.py
工作流真实验证(v0.58.0)
ralph-verify 阶段现在会真正执行一条验证命令并以退出码判定:
# 自定义验证命令(优先级最高)
export CLAWD_VERIFY_COMMAND="python -m pytest tests/ -q"
# 未设置时:工作目录有 tests/ → 自动跑 pytest;两者都没有 → 标记 skipped(未验证)
状态语义:passed → 阶段成功;failed/timeout/error → 阶段失败(管道停止);not_configured → 阶段 skipped,绝不冒充通过。
真实 E2E 冒烟测试
scripts/e2e_smoke.py 用项目自身的 LLM 栈(而非裸 SDK)打真实端点,
覆盖五步:读取配置 → 应用可导入 → 真实对话 → 工具调用 → 推理内容解析。
退出码 0 表示全部通过。
它存在的理由:静态检查(ruff 的 F821 只看名称、不查属性)发现不了
「属性名漂移」类缺陷。v0.51.0 修复的 11 个阻塞问题中,有 5 个只有在把
真实请求完整打通时才会逐层暴露。
质量基线(2026-10-29 实测;每轮只更新本轮真的跑过的项)
| 指标 | 当前 | 说明 |
|---|---|---|
| 测试用例 | 本轮按目录回归全绿:agent+cli+eval+mcp+backends 1403 passed / 0 failed(931s);backends+core+mcp+eval+cli 1500 passed(上一轮) | py -3.10 -m pytest tests/ -q |
| 快速层(不含 slow) | 本轮分目录跑:backends+core+mcp+eval+cli 1500 passed / 78s、agent+workflow 1208 passed / 554s | py -3.10 -m pytest tests/ -q -m "not slow" |
| 用例收集 | 5190 / 0 errors(2026-10-30 v0.76.8 实测) | py -3.10 -m pytest tests/ --collect-only -q |
| 契约测试 | 39 passed | pytest tests/contracts -q(历史值,本轮含在全量内) |
| 覆盖率 | 62.39%(上一轮实测;本轮未重跑,需时请以现跑为准) | py -3.10 -m pytest tests/ -q --cov=src |
| 覆盖率门禁 | fail_under = 60(已生效,2026-10-29 由 47 收紧) |
见 pyproject.toml 注释 |
Ruff F821 / F811 |
0 / 0 | py -3.10 -m ruff check src/ tests/ --select F821,F811,E9 |
| 导入期缺陷 | IMPORT-FAIL 0 / IMPORT-EXIT 0(624 模块,624 OK,DEP-MISSING 0;2026-10-29 实测) | scripts/import_sweep.py --strict-exit |
| 生产可达模块 | 482(2026-10-29 v0.76.6 实测;门槛 443) | scripts/reachability.py --min-reachable 443 |
| 死模块 | 64 个完全不可达(不可达合计 147 个 / 31,318 行;已删 47 文件 10,685 行,另有裁定保留待接线) | scripts/reachability.py --min-reachable 443 --list |
| Ruff 全量违规 | 会随批次波动(2026-10-29 实测 374) | 跑 py -3.10 -m ruff check src/ --statistics 看当前值;硬指标只看 F821/F811/E9 |
| 第三方依赖缺失 | 0(2026-10-29 补齐 celery/opentelemetry/pathspec 等) | scripts/import_sweep.py 的 DEP-MISSING |
| 静默吞异常 | 162(AST 口径,门禁 ≤162),基线文件 scripts/baseline-silent.json |
scripts/check_silent_except.py --fail-over 162 |
| 真实 E2E | e2e_smoke 5/5 · e2e_production 8/8 |
上一轮实跑(退出码 0);v0.76.5 未跑:真实 LLM 端点属付费红线 |
| 并发压测 | 200 并发 5/5,128 req/s,无死锁/错配 | scripts/stress_test.py --n 200(纯本地状态机) |
本表数字随批次更新;每次改动前请按
docs/MAINTENANCE.md§0 重新取数。
覆盖率爬升与死代码收敛计划见
计划书/下一步改进指南.md(现行 v4)。
注意:删死代码会让覆盖率百分比上升但绝对覆盖行数不变,
因此必须同时跟踪「已覆盖语句数」,防止分母变小造成的假象。
三条硬指标(回归红线)
python -m ruff check src/ --select F821,F811 # 必须 All checks passed
python scripts/import_sweep.py # 必须 IMPORT-FAIL = 0
python scripts/reachability.py # 删代码前后可达数必须不变
质量标准
- 函数长度 < 50 行
- 嵌套深度 < 4 层
- 强制类型注解
- 测试覆盖率最低要求 80% (核心模块)
📄 许可证
MIT License
Yorumlar (0)
Yorum birakmak icin giris yap.
Yorum birakSonuc bulunamadi