..

Claude Code is Engineering rooted in Ingenium

Claude Code火遍Youtube、X、知乎、B站,甚至小红书,哪哪都是她,想不看都不行。于是下载了使用下,居然还不错,Claude家出品必属精品。在不长的使用体验中,有几个不错的体验:

  • 可以快速了解CodeBase,如果写新项目,这种CLI的方式确实有点难受,当然CC也有VSCode的插件,不过我还没体验;
  • 形成执行计划,如果开了Bypass Permissions mode 后,可以一路执行下去;
  • 成功率很高,表现在两个方面:
    • 整个流程基本不怎么报错,看来工程做了很多
    • 代码可用性很高,我用的是Claude-code-router1,接入了gpt-4.1、Claude-3.7,模型的能力差距还是挺大的,4.1有时候连python的缩进都是错的。所以,Claude Code的良好变现是建立在优秀模型的基础上的。
  • 如果集成到GitHub Actions2中,酷炫又提效

体验了后,又回头去看了眼Claude Code best practices3,发现列出的使用场景也主要在前期项目了解、修复、部署为主,没怎么提到从头build新项目。

Claude Code best practices
Claude Code best practices

出于从小拆解玩具的本能,必须要了解下工作原理,虽然Claude Code本身是闭源的,但是社区已经做了逆向工程4,得以一窥其中的工作原理。

Claude Code architecture
Claude Code architecture (Claude绘制)

整体架构相当完整,解决了上下文管理、鉴权、工具选择执行、subagent管理等较难的问题,而且使用起来体验还错,确实对得起Ingenium(engineering的拉丁语词源5 6)。具体的模块在逆向工程的文档中有详细的介绍,就不复述其中的细节。

总体看下来,有很多Cline7的影子

  • 和Cline很相似的点:
    • 引入了基础的工具,包括文件操作、搜索等,这部分几乎一样,也好理解,写代码的动作无非也就这些,工具的执行方式比较类似;
    • 上下文注入和恢复机制,这部分的相似度也极高,不过Claude Code做得更加细节;
    • 任务规划,相似度也比较高,在这部分上,Coding Agent的实现方式也大差的;
    • 都没有对CodeBase构建索引,而是直接使用文本搜索工具来实现定位,Copilot、Continue、Windsurf等都是对CodeBase构建索引来实现定位的,这样的好处是比较省Token,Cline在文本搜索的基础上做了AST,可以检索到函数签名之类的。Claude Code选择这种方案猜测无非两个原因:
      • 目前的模型能力和上线文都足够强大,文本搜索的结果已经足够好,且不差钱;
      • 构建索引耗时,体验不太好。
  • 不同点:
    • 上下文管理是很优秀的,什么时候该压缩,怎么压缩,看起来做得挺好的,这部分需要重点学习下的,所有的Agent中这部分都不能避免。关于内容是用原生的好还是压缩好,其实也没有共识,需要更多的研究;
    • 记忆管理模块做的也很细致,个人理解,Agent中这部分数据其实是结构化的,需要也应该做更加精细的处理,比如只记录状态变更,而不是每次都记录全部内容。

顺便提一句,Claude Code在多Agent的并发做得也没有很好,在Claude Code best practices演讲的答疑阶段也提到了这点。其难度在于,需要有一个中心化的管理协调模块来实现,这必然涉及到不同任务之间的冲突和撤回等,想象下你和同事的代码冲突就知道了。不过,在实践中可以尝试用git-worktree开多个feature分支来实现,没有实践过,但从工作原理上可行。


EOF 🤞