[Chinese title]

Claude Code vs Mistral AI:关于AI如何辅助编程的两种截然不同的理念

[Chinese translation]

Claude Code vs Mistral AI:关于AI如何辅助编程的两种截然不同的理念

过去两周,我深入体验了Claude Code和Mistral AI的开发者工具。不仅仅是运行演示——我重建了一个小型内部仪表盘,修复了一个有问题的ETL管道,并为两者编写了文档。我想知道哪个工具能真正提升我的效率,哪个只是看起来不错。

让我从一开始就说明:这两款产品并非直接的竞争对手,不像GitHub Copilot和Amazon CodeWhisperer那样。Claude Code是一个驻留在终端中的专用编码代理。Mistral AI是一个模型提供商,提供聊天界面和API访问其模型。但两者都声称能帮助你更快地编写更好的代码。这就是我要做的比较。

以下是我的发现。


每个工具的实际功能

Claude Code是Anthropic基于终端的编码代理。你可以通过npm安装,在项目目录中运行claude,它会连接到你的代码库。它可以读取文件、编写新文件、运行命令,并根据自然语言指令编辑代码。它不是VS Code的插件或聊天窗口——它是一个在你的文件系统上运行的独立代理。

Mistral AI提供几项功能:chat.mistral.ai的聊天界面、其模型(Mistral Large、Mistral Small、Codestral)的API,以及用于文档交互的Le Chat界面。针对编码,他们有Codestral,一个针对代码生成微调的模型。你可以通过其API或聊天界面访问它。没有专门的编码代理。

你可以立即看到理念上的差异。Claude Code是一个为你工作的代理。Mistral AI给你一个模型,期望你将其集成到你的工作流程中。


第一印象:设置和入门

Claude Code

我运行了npm install -g @anthropic-ai/claude-code,然后在项目文件夹中运行了claude。它要求提供API密钥。我有一个来自Anthropic账户的密钥。就这样。没有扩展市场,没有配置文件,没有"选择你的模型"下拉菜单。只有一个终端提示符显示"Claude Code已准备就绪"。

我问的第一件事是"这个项目是做什么的?"它读取了我的README.md,查看了package.json,扫描了目录结构,并给了我一个摘要。这花了大约8秒钟。我印象深刻。

Mistral AI

对于Mistral,我访问了chat.mistral.ai,创建了一个账户,并从下拉菜单中选择了"Codestral"模型。我粘贴了同样的问题:"这个项目是做什么的?"它回复了一个通用答案,说如果我提供上下文,它可以帮助我理解项目。我必须手动上传文件或粘贴代码片段。

我还尝试了API。我注册了API密钥,阅读了他们的文档,并编写了一个小型Python脚本向Codestral端点发送提示。它有效,但显然是为想要构建自己工具的开发者设计的,而不是为只想编写代码的人。

设置胜出者: Claude Code。一个命令即可开始工作。


实际用例1:重构混乱的Python脚本

我有一个Python脚本,从三个不同的API抓取数据,清理数据,并写入CSV。这是400行的意大利面条式代码。我想将其重构为带有错误处理的适当函数。

Claude Code

我说:"重构这个脚本。将其分解为函数。为API调用添加错误处理。使用main()入口点。保持相同的输出。"

Claude Code读取了整个文件,然后问:"我应该保留现有的CSV列名和顺序吗?"我说是的。然后它重写了文件。它在每个API调用周围添加了try/except块,创建了用于获取、清理和写入的单独函数,并添加了if __name__ == "__main__"保护。它还在顶部写了一个简短的注释块解释模块。

整个过程花了大约30秒。我审查了差异。有一个问题:它将变量从raw_data重命名为api_response,破坏了下游引用。我说"将变量名改回raw_data。"它照做了,大约3秒。

Mistral AI (Codestral)

我将整个脚本粘贴到聊天界面中,并请求相同的重构。Codestral在聊天窗口中给了我一个重写版本。结构良好,错误处理也不错。但我必须手动复制整个新脚本,粘贴到编辑器中,保存,然后测试。

我发现了一个错误:它忘记导入json,尽管脚本使用了json.loads()。我指出了这一点。它道歉并给出了修正后的导入。我必须再次手动编辑文件。

重构很好,但工作流程是手动的。复制、粘贴、测试、复制、粘贴、测试。

重构胜出者: Claude Code。它直接编辑文件,并更快地处理后续修正。


实际用例2:调试失败的测试

我有一个Jest测试因模糊的超时错误而失败。该测试涉及异步数据库操作。

Claude Code

我在项目根目录运行了claude,并说:"tests/db.test.js中的测试因超时而失败。找到问题并修复它。"

Claude Code读取了测试文件,然后读取了它导入的数据库辅助模块。它发现数据库连接是在测试的beforeEach块内初始化的,这很慢。它建议将连接移到beforeAll并增加超时。我说"进行更改。"它编辑了两个文件,然后运行npm test验证。测试通过了。

Mistral AI

我将测试文件和辅助模块粘贴到聊天中。Codestral正确识别了同样的问题:连接被重复创建。它建议了相同的修复。但同样,我必须手动编辑两个文件,保存它们,并自己运行测试。

调试胜出者: Claude Code。它读取多个文件,进行更改,并自动运行测试。


实际用例3:生成样板代码

我需要在一个Express应用中添加一个新的API端点:一个返回带过滤的分页用户数据的GET路由。

Claude Code

我说:"创建一个新的用户列表路由文件,支持分页和按角色过滤。遵循routes目录中的现有模式。"

Claude Code查看了现有的路由文件以了解模式(错误处理中间件、响应格式等)。它创建了新文件,包含正确的导入、路由定义和一个占位控制器。它甚至在数据库查询应该放置的位置添加了一个TODO注释。然后它更新了主应用文件以包含新路由。

Mistral AI

我让Codestral生成相同的路由。它给了我一个完整的Express路由文件。代码正确,遵循常见模式。但它没有查看我现有的代码库,所以响应格式与我使用的略有不同。我必须手动调整错误处理和响应结构。

样板代码胜出者: Claude Code,因为它适应你现有的代码模式。


对比表格

特性 Claude Code Mistral AI (Codestral)
设置时间 ~2分钟 ~10分钟(API)或即时(聊天)
代码库感知 完整:读取所有文件 无:你提供上下文
文件编辑 直接:创建和修改文件 手动:你复制/粘贴
命令执行 为你运行shell命令 无命令执行
多文件重构 是,协调进行 否,一次一个文件
调试工作流程 读取、编辑、测试循环 你手动循环
模型质量 非常高(Claude 3.5 Sonnet) 高(Codestral)
定价 按使用的API令牌付费 按使用的API令牌付费(更便宜)
开源 是(模型开放权重)
离线使用 否(需要API)
集成 仅终端 API、聊天、Le Chat
学习曲线 低:只需输入你想要的内容 中等:你构建工作流程

Claude Code的不足之处

我不想让这听起来一边倒。Claude Code确实存在问题。

它很贵。 Claude Code底层使用Claude 3.5 Sonnet,每百万输入令牌收费3美元,每百万输出令牌收费15美元。当Claude Code读取整个代码库以理解上下文时,费用会迅速增加。在我两周的测试中,我消耗了大约40美元的API积分。对于全职开发者来说,每月可能达到200-300美元。

它会做不必要的更改。 有时Claude Code决定"改进"你没有要求的东西。我让它给一个函数添加注释,它却重新格式化了整个文件并更改了变量名。我不得不还原。

对于大型项目很慢。 当我将其指向一个包含10,000多个文件的项目时,它花了超过一分钟"理解代码库"才做出响应。而且它经常混淆哪些文件是相关的。

不支持多模型。 你只能使用Claude。如果你更喜欢其他模型处理某些任务,那没办法。


Mistral AI的亮点

Mistral AI具有Claude Code无法比拟的优势。

它便宜得多。 Codestral每百万输入令牌收费0.20美元,每百万输出令牌收费0.60美元。这大约是Claude Code的15-25倍便宜。如果你预算有限或管理团队,这很重要。

你控制工作流程。 Mistral AI不会强迫你使用特定工具。你可以使用他们的API构建你需要的任何东西。想要一个使用Codestral的VS Code扩展?自己构建。想要一个审查拉取请求的自定义CI管道?你可以做到。Claude Code是一个黑盒。

开放权重模型。 Mistral发布了其许多模型的权重。如果你有计算资源,可以在自己的硬件上运行它们。没有供应商锁定。没有数据离开你的网络。

更适合一次性生成。 如果你只需要一个函数或一个快速脚本,Codestral快速且便宜。你不需要额外的开销。