Claude开发
得益于Claude 3.5 Sonnet的主动编码能力,Claude开发能够逐步处理复杂的软件开发任务。通过允许他创建和编辑文件、探索复杂项目以及执行终端命令(在您授权后)的工具,他可以以超越简单代码补全或技术支持的方式为您提供帮助。虽然传统的自主AI脚本通常在沙盒环境中运行,但Claude开发提供了一个人机交互的图形界面,以监督每个被更改的文件和执行的命令,为探索主动AI的潜力提供了一种安全且易于使用的方式。
- 在聊天中粘贴图片以使用Claude的视觉能力,将模型转换为功能完整的应用程序,或通过截图修复错误
- 直接在编辑器中检查Claude所做的每个更改的差异,并提供反馈,直到您对结果满意为止
- 直接在聊天中运行终端命令,因此您无需自己打开终端(还可以通过发送消息来响应交互式命令)
- 在使用工具或向API发送信息之前显示权限按钮(例如"批准终端命令")
- 跟踪整个任务循环和单个请求的总令牌数和API使用成本
- 为任务设置最大允许的API请求次数,超过后需要获得继续进行的许可
- 当任务完成时,Claude会确定是否可以通过终端命令(如
open -a "Google Chrome" index.html
)向您展示结果,您只需点击按钮即可运行
专业提示:使用Cmd + Shift + P
快捷键打开命令面板,并输入Claude Dev: Open In New Tab
以在编辑器中直接开始一个新任务。
工作原理
Claude开发使用自主任务执行循环,结合思维链提示和强大工具的访问权限,使他能够完成几乎任何任务。首先提供一个任务,然后循环开始,在思维过程的每一步可能会使用某些工具(经您许可)来完成任务。
工具
Claude开发可以使用以下功能:
execute_command
:在系统上执行终端命令(仅在您许可的情况下,输出会流入聊天,您可以响应标准输入或在准备好时退出长时间运行的进程)list_files_top_level
:列出指定目录顶层的所有文件路径(适用于通用文件操作,如从桌面检索文件)list_files_recursive
:列出指定目录及嵌套子目录中的所有文件路径(排除.gitignore中的文件)view_source_code_definitions_top_level
:解析指定目录顶层的所有源代码文件,提取关键元素(如类和函数)的名称(详见下文)read_file
:读取指定路径文件的内容write_to_file
:将内容写入指定路径的文件,自动创建所需的目录ask_followup_question
:向用户询问完成任务所需的额外信息(由于程序的自主性质,这不是典型的聊天机器人——Claude开发必须明确中断任务循环以获取更多信息)attempt_completion
:完成任务后向用户展示结果,可能会附带启动演示的终端命令
在现有项目中工作
在现有项目中执行任务时,Claude会像您我一样寻找最相关的文件来阅读和编辑——首先查看目录、文件、类和函数的名称,因为这些名称通常反映了它们在更广泛系统中的目的和角色,并且经常封装了有助于理解项目整体架构的高级概念和关系。通过使用list_files_recursive
和view_source_code_definitions_top_level
等工具,Claude能够提取项目中各种元素的名称,以确定哪些文件与给定任务最相关,而无需您自己提及@file
或@folder
。
-
文件结构:Claude首先使用
list_files_recursive
工具获取项目的完整文件结构图。事实证明,Claude 3.5 Sonnet非常擅长仅从这些文件名中推断出需要进一步处理的内容。 -
源代码定义:然后,Claude可能会对特定感兴趣的目录使用
view_source_code_definitions_top_level
工具。该工具使用tree-sitter通过自定义标签查询来解析源代码,提取类、函数、方法和其他定义的名称。它首先识别tree-sitter可以解析的源代码文件(目前支持python
、javascript
、typescript
、ruby
、go
、java
、php
、rust
、c
、c++
、c#
、swift
),然后将每个文件解析为抽象语法树,最后应用特定语言的查询来提取定义名称(您可以在src/parse-source-code/queries
中看到每种语言使用的确切查询)。结果被格式化成简洁易读的输出,Claude可以轻松解释以快速理解代码的结构和目的。 -
阅读相关文件:通过从各种文件和源代码定义的名称中获得的洞察,Claude随后可以使用
read_file
工具检查与当前任务最相关的特定文件。
通过仔细管理添加到上下文中的信息,Claude可以为复杂的大型项目提供有价值的帮助,而不会使其上下文窗口过载。
仅在您的许可下
Claude在执行任何工具或将信息发送回API之前,总是首先征求您的许可。这使您能够在每一步都控制这个主动循环。
贡献
Paul Graham 说得好:"如果你现在构建的东西勉强能用 AI 工作,下一代模型将使它真正发挥作用。"我构建这个项目时假设缩放法则将继续提高 AI 模型的质量(和成本),今天对 Claude 3.5 Sonnet 来说可能很困难的事,对未来几代来说将毫不费力。这就是我想要开发这个项目的设计理念,因此它将始终使用最好的模型、工具和功能进行更新——而不会浪费精力去实现像更便宜的代理这样的权宜之计。话虽如此,我始终欢迎建议和反馈,所以请随时通过提交问题和拉取请求来为这个项目做出贡献。
要在本地构建 Claude Dev,请按以下步骤操作:
- 克隆仓库:
git clone https://github.com/saoudrizwan/claude-dev.git
- 在 VSCode 中打开项目:
code claude-dev
- 为扩展和 webview-gui 安装必要的依赖:
npm run install:all
- 按
F5
启动,打开一个加载了扩展的新 VSCode 窗口
评论
- "在 VSCode 中使用此扩展体验 Claude Sonnet 3.5 功能" 作者:CoderOne
- "ClaudeDev:新的编码代理可以在 VS Code 内生成应用程序!" 作者:WorldofAI
- "ClaudeDev:这个令人惊叹的编码代理可以在几分钟内构建 SaaS 应用!" 作者:AI for Devs
- "Claude Dev:这个编码代理可以在 VS Code 内生成应用程序!" 作者:AICodeKing
- "ClaudeDev + NextJS + Supabase:使用 Claude 3.5 Sonnet 生成全栈应用" 作者:AICodeKing
- "认识 Claude Dev — VS Code 中的开源 AI 程序员" 和 "使用 VS Code 中的 Claude Dev 零代码构建游戏" 作者:Jim Clyde Monge
- "Claude Dev 构建 NextJS 应用!Aider、Continue Dev 和 GitHub Copilot 开源替代品" 作者:Josh Pocock
- "Claude Dev 令人惊叹。最好的编码助手工具?","将 Claude Dev 与 Google Gemini 结合,以低投入快速构建",以及 "Claude Dev 让浏览器自动化变得简单" 作者:Yaron Been
- "ClaudeDev:VS Code 的终极编码代理" 作者:Blas
- "我用 Claude Dev 扩展在一天内构建了我的第一个 Web 应用 – 令人惊叹!"
- "使用 Claude Dev 进行 AI 开发" 作者:Shannon Lal
- "使用 Claude Dev 更智能地编码:为您的项目准备的 AI 程序员" 作者:Iana D.
- Claude Dev 还登上了 r/ClaudeAI 论坛有史以来前 10 名的帖子
许可证
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
有问题?
在 X 上联系我 @sdrzn。如果您遇到 bug 或希望添加功能,请创建一个issue。
致谢
特别感谢 Anthropic 提供支持此扩展的模型。