news 2026/8/30 11:41:30

Craft Agents多文件Diff功能:像VS Code一样审查AI的每次改动

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Craft Agents多文件Diff功能:像VS Code一样审查AI的每次改动

Craft Agents多文件Diff功能:像VS Code一样审查AI的每次改动

【免费下载链接】craft-agents-oss项目地址: https://gitcode.com/GitHub_Trending/cr/craft-agents-oss

用 AI 编程助手改代码时,最令人不安的瞬间莫过于:它说"我改好了",你却要挨个打开文件才能确认它到底动了什么。Craft Agents 是 craft.do 团队开源的 AI 智能体桌面工作台(桌面端 AI 智能体工具),它的Multi-File Diff(多文件 Diff)功能把每一轮对话中 AI 修改的所有文件,聚合到一个类似 VS Code 的 Diff 审查窗口里——一行行红绿对比、每个文件的增删统计,全部一目了然。

为什么你需要一个"Diff 审查窗口"

大多数 AI 编程工具只会把代码改动以文字流的形式打印出来:

  • 改了哪个文件?改了哪一行?是增是删?
  • 它会不会顺手改坏了别的文件?
  • 多个文件的改动之间是什么关系?

你只能凭"读字"来脑补这些答案。而 Craft Agents 的思路是:把 AI 的每次写文件操作,还原成程序员熟悉的红绿 Diff 视图,让你像 Review 同事提交的 PR 一样,Review 智能体的每一次改动。

多文件 Diff 功能是如何触发的 📂

整个流程不需要任何配置:

  1. 你向智能体下达任务,例如"把项目中所有setTimeout替换成防抖工具函数";
  2. 智能体通过内置的Edit(编辑)Write(写入)工具逐个修改文件;
  3. 每一轮(Turn)结束后,Craft Agents 自动汇总这一轮里发生的所有文件变更;
  4. 点击对应的改动卡片,即弹出全屏的多文件 Diff 预览窗口

这个汇总逻辑位于桌面端渲染层:collectFileChangesFromActivities 会遍历一轮中的所有工具活动,识别出EditWrite两类操作,并兼容 Claude、Pi SDK、Codex 三种不同的改动数据格式。

一次看清所有文件:GitHub PR 式堆叠视图

打开 Diff 窗口后,你会看到类似 GitHub Pull Request 文件的"堆叠式"视图——每个文件一段,自带文件头(文件名 + 绿色新增行数 / 红色删除行数),所有文件的改动从上到下排列在同一个可滚动区域里。

核心组件是 MultiDiffPreviewOverlay,它的实现细节很讲究:

  • 按文件合并(Consolidated):同一文件被改了 3 次?它们会被归到一起,只展示一个文件段,避免重复刷屏;也可以切换为"逐次改动"模式,查看每一次单独编辑。
  • 统一视图 / 分栏视图(Unified / Split):左侧原始代码、右侧新代码并排对比,或像 git diff 那样上下折叠,两种模式一键切换。
  • 语法高亮:基于 Shiki 语法高亮引擎,并跟随你当前使用的主题(如 Dracula、Nord),Diff 窗口和主界面颜色保持一致。

从聊天卡片到审查窗口:交互路径

在聊天界面里,智能体的每次文件操作都会显示为一张活动卡片。Craft Agents 的 TurnCard 组件负责渲染这些卡片,而 ChatDisplay 在检测到"multi-diff"类型的预览请求时,就会挂载整个 Diff 审查窗口:

  • 单文件改动 → 标题直接显示文件路径
  • 多文件改动 → 标题显示"N 处编辑"的汇总徽标;
  • 支持聚焦定位:从某一张具体卡片点进来时,窗口会自动滚动并聚焦到对应的改动位置。

所有交互设置(比如你偏好分栏还是统一视图)会持久化保存,下次打开保持你的习惯。

底层技术:它和 git diff 有什么区别?

值得向新手说明的一点:这个 Diff 不是调用git diff生成的,而是由改动数据即时计算出来的:

数据来源说明
前/后文件内容智能体执行 Edit/Write 时自带的 old/new 文本,直接计算差异
预计算补丁部分后端(如 Codex 格式)直接提供 unified diff 补丁,UnifiedDiffViewer 负责渲染
差异统计绿色/红色行数为@pierre/diffs库解析后实时统计

这意味着即使目录不是 git 仓库,你依然能看到完整的红绿对比——这正是"文档优先"工作流(Craft Agents 的核心理念之一)下非常实用的能力。相关渲染与主题适配可参考 ShikiDiffViewer。

谁最应该开启这个功能?✅

  • 让 AI 做大规模重构的开发者:一次改动几十个文件,逐个打开看太累,堆叠式 Diff 一屏掌握全局;
  • 代码审查者:把智能体的输出当 PR 来看,聚焦在"+/-"统计异常的文件上,快速定位风险改动;
  • 刚接触 AI 编程的新手:红绿对比是最直观的"AI 到底干了什么"说明书,帮你建立对智能体改动的信任与判断力。

写在最后

Craft Agents 把"审查 AI 的改动"这件容易遗漏的事,做成了和 VS Code Diff 一样自然的体验。配合它的多会话收件箱、权限模式(Explore / Ask to Edit / Auto)与后台任务能力,这套桌面工作台非常适合希望既高效又可控地使用 AI 智能体写代码的开发者。

💡 想深入了解多文件 Diff 的聚合逻辑与交互细节,可阅读 文件变更汇总逻辑 对应的测试用例,以及 UI 组件入口 中导出的MultiDiffPreviewOverlay相关类型定义。

【免费下载链接】craft-agents-oss项目地址: https://gitcode.com/GitHub_Trending/cr/craft-agents-oss

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/30 11:40:32

Typst 完整入门指南:5 分钟用标记语言写出专业级排版文档

Typst 完整入门指南:5 分钟用标记语言写出专业级排版文档 【免费下载链接】typst A markup-based typesetting system that is powerful and easy to learn. 项目地址: https://gitcode.com/GitHub_Trending/ty/typst Typst 是一个基于标记语法的现代排版系统…

作者头像 李华
网站建设 2026/8/30 11:40:03

claude-video Token消耗指南:如何用最少的Token看最多的视频

claude-video Token消耗指南:如何用最少的Token看最多的视频 【免费下载链接】claude-video Give Claude the ability to watch any video. /watch downloads, extracts frames, transcribes, hands it all to Claude. 项目地址: https://gitcode.com/GitHub_Tren…

作者头像 李华
网站建设 2026/8/30 11:39:57

箭头函数 this 详解:从动态绑定到词法捕获的完整指南

你写了很多 JavaScript 代码,却在某个回调里突然发现this变成了undefined;你在 Vue 组件方法里用了一个setTimeout,结果函数里的this.$data直接报错;面试官随口问一句“箭头函数的 this 是什么”,你只能回答出“指向定…

作者头像 李华
网站建设 2026/8/30 11:39:35

Freqtrade 开源加密交易机器人完全指南:3步搭建你的自动交易

Freqtrade 开源加密交易机器人完全指南:3步搭建你的自动交易 【免费下载链接】freqtrade Free, open source crypto trading bot 项目地址: https://gitcode.com/GitHub_Trending/fr/freqtrade 熬夜盯盘、新策略不敢拿真钱验证——这是每个做加密交易的人都绕…

作者头像 李华
网站建设 2026/8/30 11:38:54

小芯片推理的时延与资源核对

小芯片推理的时延与资源核对在小型芯片上运行推理服务,体验问题往往不是单一原因造成的。用户感觉“识别变慢”,可能是模型计算变重,也可能是摄像头输入增加、内存紧张触发回收、设备温度升高导致频率调整,或者结果传输与显示占用…

作者头像 李华
网站建设 2026/8/30 11:37:46

异步运行时本地跑通的最小路径

异步运行时本地跑通的最小路径本地跑通一个 async 项目,目标不是把所有外部服务都复制到电脑上,而是建立一条可重复的最短路径:相同版本的工具链、明确的功能开关、一份无敏感信息的配置,以及至少一条成功和一条失败用例。先把这条…

作者头像 李华