今晚装了 Mindwalk 跑我两个真会话,agent 走过的地方发光,没走的一片漆黑

cover

哈喽,我是飞飞。

今晚睡前我干了件挺不寻常的事。装了个叫 Mindwalk 的东西,把今天上午和下午写两篇姊妹稿的两个完整 Claude Code 会话,拍成了一张 3D 夜间地图,回放着看了一遍。发光那半我意料之中,是那大片漆黑没进去的地方让我坐直了。

作者不是新面孔

先说信任问题。Mindwalk 在 GitHub 的坐标是 cosmtrek/mindwalk,作者叫 cosmtrek。这个名字对写 Go 的人不陌生。他前一个作品叫 Air,Go 生态最常用的一款 live reload 工具,现在归 air-verse 组织维护。Reddit、pkg.go.dev、StackOverflow 都还留着它以 cosmtrek/air 起家的痕迹。

说白了这不是又一个 vibe coder 的周末小项目,是个已经把开发者工具做扎实过一次的人做的。看到 GitHub 页面那一瞬间我心里那个默认警惕,直接松了半档。

一条 curl 就装完

安装步骤简单到反常识。

1
2
3
curl -fsSL https://raw.githubusercontent.com/cosmtrek/mindwalk/master/scripts/install.sh | sh
export PATH="$HOME/.local/bin:$PATH"
mindwalk

装到 ~/.local/bin,install 脚本会用 checksums.txt 验签、可用 INSTALL_DIR 换目录、VERSION 锁版本。Windows 有 Releases 压缩包,愿意自己编就 make setup && make build

mindwalk 无参启动,它会自动扫两个目录,~/.claude/projects~/.codex/sessions。前者是 Claude Code 官方存 session 的地方,每个项目是一串 URL 编码过的路径当子目录名,里面是一堆 .jsonl。后者是 Codex 的对应结构。扫完起个随机端口的本地 UI,自动开浏览器。session 数据全在本机跑,一根网线都不用往外拉。

Ploy 篇那张图长这样

打开的头一眼,是我今天上午写「Ploy 迁移工程债」那篇文章时那个会话对应的地图。

Mindwalk Tree 视图·MyHexoBlog 仓库 Ploy 篇 CC 会话·89 calls · 512 里 493 黑

数字先甩出来。这次会话 89 个 tool call、13 个 user turn、258 KB 输出。仓库 512 个文件里,被 edited 的只有 1 个、被完整 read 的 2 个、被 SEEN(瞟一眼)的 16 个。剩下 493 个纯黑512 里 493 黑,96% 从头到尾没被 agent 摸过。这个比例我用眼睛看之前完全没数。

Tree 视图从中央射出去几条主脉。最亮的一支是 source(我的 _posts/ 里那 100 多篇 md 全散在这支上);另一支是 .claude(skill 目录、references、CLAUDE.md 全在这里);再往外是 imagesreferencescontent-publisherskillsspecs 几个分支。整个图看着像一朵有几片长瓣的花。

右下方那个暖琥珀色的亮点标着 blog-cover,那是这次会话唯一被 edited 的目标,Phase 5 那次补配封面的动作在图上就一个孤立的暖点。

换 Terrain 视图再看一份

Tree 视图看重心散射,Terrain 视图看城市地形。按右上角切换到 Terrain,我顺手打开了另一份 codex 会话。那是一份 894 个文件的安卓项目性能分析会话,画风完全变了。

Mindwalk Terrain 视图·codex 会话 894 files·41 calls·2 turns·纯 read 无 edit 的调研型形状

图从放射状变成一片树图平面,每个文件夹凸起成一个方块,高度是被摸的深度和次数。绿色一片是 SEEN,浅蓝几列是 READ。数字读出来:EDITED 0、READ 84、SEEN 322、UNVISITED 488。41 个 tool call、只有 2 个 user turn、re-reads 5%。

这是一份纯 read 会话,agent 走进去把整个仓库结构和几十个关键文件读了一遍,动都没动。城市地图上一整片绿色低矮建筑铺开,蓝色几栋略高一点,剩下暗色的地基是那 488 个没进去过的目录。

两张图并排看之下才明白,Ploy 篇那种「写作型」会话是一朵有编辑热点的花,codex 那份「调研型」会话是一整片没红点的绿城。同一个 agent,同一个模型,形状差得远。

摩擦信号才是第二把尺

HUD 顶上有一条我特别在意的东西,摩擦信号带。三个字段:

  • error rate:这次会话里 agent 报错的比例
  • churned files:反复被改的文件,那些改一遍不满意、又改一遍的地方
  • edits after last verify:最后一次跑测试或验证之后,agent 又动过的文件

Ploy 篇那张图上的读数看得我脸僵了一下。

re-reads ~60%,同一批文件被反复读了近六成的比重。19 errors,19 次 tool call 报了错。1 file edited 3+ times,有一个文件被改了 3 次以上(大概率是那份 _posts/202607131714.md 本尊,polisher 后 grep 硬扫、再补字数、再改破折号回潮那 3 轮)。**顶上还挂着一行 never verified**,意思是这次会话从头到尾没走过一次 verify 类的操作。

这 4 个数字连起来读挺扎心的。

我脑子里的自我印象是「今天流水线跑得很干净」。可 HUD 一列一列摆出来告诉我另一个版本:读了六成回头翻的册子、错了 19 次没人拦、有一个文件被反复捶了 3 次以上、验证那步根本没跑。稿子最后是发出去了,只是过程比我以为的糙一档。

Ploy 那篇复盘里我讲过一件事,Ploy 团队跨模型头一次跑评测,1/3 的失败根本不在模型的锅,是 harness 的假设错了。今天在自己会话的 HUD 上看这三个字段的时候我意识到,同样一批数据从跑通率上看 100% 都过,可摩擦信号带上写着「哪些地方我改了三次、还从没验过」。这是 eval harness 之外的第二把尺,卡在跑通和跑对之间。

三个符号让会话可倒带

回放条下面还有一层时间轴,三个符号我上手就记住了:

  • 是 context compaction,上下文压缩事件
  • 是 subagent launch,子代理启动
  • 是 user turn,用户轮次

每一个都是 click-to-jump。你想跳到「上一次子代理启动之前 agent 干了什么」,点那个圆圈就行。

Ploy 篇那条时间轴我盯着看了会儿。前段一片蓝绿(search / read / exec 冷色),中段冒出一片密密的橙黄(edit / verify 暖色),那是 writer 那一大段疯狂 Edit / Write 的批量段落。尾部零星几个绿点(verify),基本没什么,跟 HUD 上「never verified」对得上。13 个 用户轮次密度不高,说明今天创作节奏是一口气跑、我停下手工插话的次数并不多。

Claude Code 我用了几个月,session 撑到 6 小时的时候 Claude 开始重复生成已有函数这件事我踩过。当时只能凭直觉判断「上下文糊了」,现在这个 直接告诉你压缩到底发生在哪一秒。

我为什么盯着黑的那半

回到开头那句话。发光那半我意料之中,是我 skill 目录、.claude/skills/*.md、Obsidian 04-Distribution 那几层,一路照着 Opus 的脾气磨了小半年的家底,被 agent 走一遍是必然。

盯着黑的那半我坐直了。512 里 493 黑,那一片深色区域里,一部分是我预期就该黑的(比如整个 themes/next/ 的几百个 ejs 模板,写文章根本不用碰);另一部分是让我意外的黑,原以为 agent 会顺手查一下、结果整个会话它都没进去。这两种黑意义完全不同。

Mindwalk 那句作者写的话我抄下来贴到了 skill 经验库里:「**The agent’s understanding of the task becomes a shape you can see at a glance.**」翻译一下就是,agent 对任务的理解成了你一眼能看见的形状。

以前评估 agent 干活好不好,我看跑通、看输出、看月底账单,都是「发生了什么」的信号。现在还得看那半黑的:agent 没看到什么。特别是那种「按我脑子里的范围它本该看一眼、结果整个会话没进去」的黑,是一整层新的评估维度。

我下一步准备用 mindwalk trace 把今天两个会话导成规范化 JSON 存下来。说真的,这个季度的 CC 会话我打算定期回放对照,看那些黑区里有多少是真的不该看、有多少是我 skill description 写太窄导致 agent 压根没被唤起。

Agent View 后台 session 之前坑过我一次,dashboard 显示 running 实际已 hang 在某个工具调用。那次 hang 我是发现输出 30 分钟没变才觉得不对,如果当时手边有 Mindwalk,摩擦信号带上那一段异常平的曲线应该早就把我叫回来了。

今晚就装一份

Mindwalk 才发布一天,还是很早期的东西,很多细节值得跑起来慢慢磨。但作者不是新面孔、部署零心智负担、session 数据不离开机器、观测那一层是真的补上了。

一条 curl,一个 Go 二进制,扫两个默认目录,浏览器打开就是你自己 CC 会话的夜间地图。真的建议今晚 20 分钟装一份看看。

你 CC 会话里那大片黑,是意料之中的黑,还是你自己都没想到 agent 压根没进去的黑?

参考资料

  • [[mindwalk-cosmtrek-readme]]

相关洞察

  • [[mindwalk-agent-session-visual-observability]]