CodeWhale实战3:只读代码审计+Web搜索的深度勘察实践(完整指南)
CodeWhale实战3:只读代码审计+Web搜索的深度勘察实践(完整指南)
【免费下载链接】CodeWhaleOpen-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.项目地址: https://gitcode.com/GitHub_Trending/de/CodeWhale
CodeWhale是一个用 Rust 编写的开源终端编码 Agent,它不仅能写代码,还支持只读代码审计和Web 搜索两大核心能力:切到 Plan 模式后,Agent 被"锁死"为只读状态,无法修改任何文件或执行 Shell 命令,却能自由地勘察代码库并联网搜索资料。本实战带你用一套组合拳,完成一次"零风险、带证据"的深度代码勘察。
1. 为什么选 Plan 模式做只读代码审计
CodeWhale 有三种 TUI 模式:Plan → Work → Operate(按Tab循环切换,或执行/mode plan直接跳转)。其中 Plan 模式是天然的"审计模式":
| 能力 | Plan 模式 |
|---|---|
| 读取文件、检索代码 | ✅ 可用 |
| Web 搜索 / 抓取网页 | ✅ 可用 |
| 写入 / 编辑文件 | 🔒 运行层直接拒绝 |
| 执行 Shell 命令 | 🔒 运行层直接拒绝 |
关键在于:拒绝不是靠"提示词约束",而是由运行层集中强制执行(见 docs/MODES.md 的 Tool availability 表)。即使模型"想"动手改文件,工具调用也会在落地前被拦截——这是审计陌生仓库或生产代码时最想要的保证。
💡 配合权限姿态(
Shift+Tab循环 Ask → Auto-Review → Full Access),你可以全程用默认的 Ask 姿态,审批弹窗只会在真正需要决策时出现。
2. 三步开启 Web 搜索
web_search工具默认由Firecrawl(免密钥)提供搜索,失败或额度耗尽时会显式降级到 DuckDuckGo 再到 Bing,每次"跳板"都会记录在结构化的搜索回执里。
第一步:确认功能开关。Web 搜索由web_search特性开关控制,内置工具默认开启;如需临时打开:
codewhale-tui --enable web_search第二步(可选):按需选择搜索后端。在配置文件的[search]表中切换 provider,国内部署可显式选择 Baidu、Metaso、Volcengine 或可信的 SearXNG 端点:
[search] provider = "firecrawl" # 也可填 duckduckgo | bing | tavily | bocha | metaso | searxng | baidu | volcengine | sofya完整配置说明见 docs/CONFIGURATION.md 的 "Web Search Provider" 小节;后端实现位于 crates/tui/src/config/search.rs。
第三步:善用两个互补工具——web_search负责"找",fetch_url负责"读"(直接抓取已知 URL,支持 markdown/text 输出,默认上限 1MB)。审计时通常先用搜索定位官方文档、安全公告、已知 CVE,再用抓取读取全文,形成"代码证据 + 外部证据"的交叉验证。
3. 一条命令的并行只读审计
真正的大招在Operate 模式:它把"侦察-汇总"编排成可复现的工作流。CodeWhale 自带一个只读审计起点脚本 workflows/operate_read_audit.workflow.js,其流程是:
- Scout 阶段(并行):同时派出 3 个只读侦察员——
- 列出工作区各 crate 的职责地图
- 扫描 Rust 源码中的
unsafe块 - 定位热路径中密集的
.unwrap()/.expect()
- Synthesize 阶段:一个只读评审员过滤失败结果、按严重级别分组,产出审计摘要
执行方式只有一行:
/workflow run workflows/operate_read_audit.workflow.js上图正是 Operate 模式下"fan-out 并行侦察"的实战画面:父会话保持空闲指挥,多个后台工人分头勘察,最后带验证证据汇合。相关编排设计可参考 docs/FLEET.md 与 docs/MODES.md 中的 Operate loop。
4. 实战清单:如何组织一次深度勘察
- 📌先切模式:
/mode plan确认处于只读状态,再开始读陌生仓库 - 📌先地图后细节:让 Agent 先输出模块/目录职责清单,再逐点深入
- 📌内外证据交叉:本地发现疑似问题后,用 Web 搜索核对官方已知缺陷与修复版本
- 📌高风险仓库升级编排:仓库大、线索多时,切
/mode operate跑并行审计工作流 - 📌留痕:所有工具调用与审批都留有回执,审计结论可回放
5. 关键资料索引
- 模式与权限说明:docs/MODES.md
- 配置与搜索后端:docs/CONFIGURATION.md
- Web 搜索实现:crates/tui/src/tools/web_search.rs
- 只读审计工作流:workflows/operate_read_audit.workflow.js
- 安全边界设计:docs/SANDBOX.md
小结
Plan 模式给了你"绝对不改文件"的硬保证,Web 搜索补上了"代码之外"的证据维度,Operate 并行审计则把勘察效率拉满。三者组合,就是 CodeWhale 面向新手也友好、面向资深工程师也够专业的只读代码审计 + Web 搜索深度勘察完整实践路线。🐳
【免费下载链接】CodeWhaleOpen-source coding agent for your terminal, built in Rust and on a journey of continuous community improvement. Issues and PRs welcome.项目地址: https://gitcode.com/GitHub_Trending/de/CodeWhale
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
