🤖 Claude 工程师
Claude 工程师是一个先进的交互式命令行界面(CLI),它利用 Anthropic 的 Claude 3 和 Claude 3.5 模型的强大功能来协助完成各种软件开发任务。这个工具无缝地结合了最先进的大型语言模型的能力,以及实用的文件系统操作、网络搜索功能、智能代码分析和执行能力。
✨ 特性
- 💬 与 Claude 3 和 Claude 3.5 模型的交互式聊天界面
- 📁 全面的文件系统操作(创建文件夹、文件、读写文件)
- 🔍 使用 Tavily API 进行网络搜索,获取最新信息
- 🌈 代码片段的增强语法高亮
- 🏗️ 智能项目结构创建和管理
- 🧐 高级代码分析和改进建议
- 🖼️ 图像分析能力,支持在终端中拖放图片
- 🚀 改进的自动模式,实现高效的自主任务完成
- 🔄 自动模式中的稳健迭代跟踪和管理
- 📊 基于差异的精确文件编辑,用于受控代码修改
- 🛡️ 增强的错误处理和详细的工具使用输出
- 🎨 使用 Rich 库进行彩色终端输出,提高可读性
- 🔧 详细记录工具使用和结果
- 🔁 改进的文件编辑工作流,分离读取和应用步骤
- 🧠 基于自动模式状态动态更新系统提示
- 🔍 TOOLCHECKERMODEL 用于验证工具使用和输出
- 📝 CODEEDITORMODEL 用于专门的代码编辑任务
- 🖥️ CODEEXECUTIONMODEL 用于分析代码执行结果
- 📊 每个模型的令牌使用跟踪(输入、输出和总计),使用表格改进可视化
- 🪟 剩余上下文窗口显示
- 💾 聊天记录保存功能
- 🔒 使用隔离的虚拟环境增强代码执行能力
- 🔄 长时间运行代码执行的进程管理
- 📚 多文件同时读取功能,高效处理多个文件
🛠️ 安装
-
克隆此仓库:
git clone https://github.com/doriandarko/claude-engineer.git cd claude-engineer
-
安装所需依赖:
pip install -r requirements.txt
-
设置环境变量:
- 在项目根目录创建
.env
文件 - 添加以下环境变量:
ANTHROPIC_API_KEY=你的_anthropic_api_密钥 TAVILY_API_KEY=你的_tavily_api_密钥
- 在项目根目录创建
-
设置代码执行的虚拟环境: Engineer 在首次执行代码时会创建一个虚拟环境来运行代码。 如果你想在虚拟环境而不是默认环境中运行主脚本,可以按以下步骤操作:
python -m venv code_execution_env source code_execution_env/bin/activate # Windows 上使用:code_execution_env\Scripts\activate pip install -r requirements.txt deactivate
🔧 虚拟环境设置
Claude 工程师使用专用的虚拟环境进行代码执行,以确保隔离和安全性。在首次运行代码时会自动创建虚拟环境。但如果你想手动设置或自定义它,请按以下步骤操作:
-
创建虚拟环境:
python -m venv code_execution_env
-
激活虚拟环境:
- Windows:
code_execution_env\Scripts\activate
- macOS 和 Linux:
source code_execution_env/bin/activate
- Windows:
-
安装所需依赖:
pip install -r requirements.txt
-
完成后退出虚拟环境:
deactivate
code_execution_env 虚拟环境将用于所有代码执行任务,确保运行用户代码时环境一致且隔离。
🚀 使用方法
运行主脚本以启动 Claude 工程师界面:
python main.py
启动后,你可以通过输入查询或命令与 Claude 工程师交互。一些示例交互:
- "为一个网络应用创建新的 Python 项目结构"
- "解释 file.py 中的代码并提出改进建议"
- "搜索 React 开发的最新最佳实践"
- "帮我调试这个错误:[粘贴你的错误信息]"
- "分析这张图片并描述其内容"
- "执行这段 Python 代码并分析结果"
- "读取多个文件:file1.py, file2.py, file3.py"
特殊命令:
- 输入 'exit' 结束对话并关闭应用程序。
- 输入 'image' 在消息中包含图片进行分析。
- 输入 'reset' 重置整个对话而不重启脚本。
- 输入 'automode number' 进入自主模式,指定迭代次数。
- 输入 'save chat' 保存当前聊天记录。
- 随时按 Ctrl+C 退出自动模式并返回常规聊天。
每次交互后,Claude 工程师将显示:
- 当前模型的令牌使用情况(输入、输出和总计)
- 剩余上下文窗口大小
代码执行和进程管理
Claude 工程师现在支持在隔离的 'code_execution_env' 虚拟环境中执行代码:
- 使用
execute_code
工具在隔离环境中安全运行 Python 代码。 - 可以使用
execute_code
返回的进程 ID 管理长时间运行的进程。 - CODEEXECUTIONMODEL 分析执行结果并提供见解。
使用不同的 AI 模型
Claude 工程师利用多个专门的 AI 模型:
- MAINMODEL:用于一般交互的 Claude 3 或 Claude 3.5
- TOOLCHECKERMODEL:验证工具使用和输出
- CODEEDITORMODEL:执行专门的代码编辑任务
- CODEEXECUTIONMODEL:分析代码执行结果
脚本会根据任务自动选择适当的模型。
🤖 改进的自动模式
增强的自动模式使 Claude 能更高效和可控地自主处理复杂任务。在自动模式下:
- Claude 根据你的请求设定清晰、可达成的目标。
- 它逐一完成这些目标,根据需要使用可用工具。
- Claude 定期提供进度更新,包括当前迭代次数。
- 自动模式持续运行,直到目标完成或达到最大迭代次数。
- 进入自动模式时可以指定最大迭代次数(默认为 25 次)。
- Claude 根据进展和遇到的障碍动态调整其方法。
- TOOLCHECKERMODEL 验证工具使用和输出,提高可靠性。
使用自动模式:
- 提示输入时,输入 'automode number',其中 number 是最大迭代次数。
- 根据提示提供你的请求。
- Claude 将自主工作,每次迭代后提供更新。
- 当任务完成、达到最大迭代次数或你按下 Ctrl+C 时,自动模式退出。
📊 增强的基于差异的文件编辑
Claude 工程师现在支持改进的基于差异的文件编辑系统,允许对现有文件进行更精确和受控的修改。新的工作流程包括:
- 使用
edit_and_apply
函数读取文件的全部内容,而不提供新内容。 - 使用
edit_and_apply
函数应用变更,提供新内容,并显示建议更改的详细差异。 - 利用 CODEEDITORMODEL 进行专门的代码编辑任务,确保高质量的修改。
编辑文件时,Claude 将:
- 显示建议更改的详细差异,使用 Rich 库的彩色编码突出显示添加、删除和未更改的行。
- 专注于添加新代码或修改现有代码,避免不必要地移除功能。
- 提供添加和删除行数的摘要。
- 谨慎应用更改,避免重复和不必要的替换。
- 支持各种编辑场景,包括有针对性的更改、追加内容、在开头插入和替换整个文件内容。
- 使用 CODEEDITORMODEL 确保代码更改遵循最佳实践并保持一致性。
此功能增强了 Claude 改进代码库的能力,同时保持现有功能的完整性。
🧠 动态系统提示
系统提示现在根据脚本是否处于自动模式而动态更新。这允许根据当前操作模式提供更具针对性的指令和行为:
- 在常规模式下,Claude 专注于提供有用的回应并根据需要使用工具。
- 在自动模式下,Claude 被指示自主工作、设定目标并定期提供进度更新。
- 系统提示适应特定任务,优化 Claude 在每种情况下的表现。
- 系统提示现在包含文件上下文,以增强令牌管理。
动态系统提示增强了 Claude 适应不同场景并提供更相关帮助的能力。
📊 令牌管理和可视化
Claude 工程师现在具有改进的令牌管理和可视化功能:
- 使用系统提示中的文件上下文增强令牌管理。
- 使用表格格式改进令牌可视化。
- 显示每次模型交互的输入、输出和总令牌使用情况。
- 可视化剩余上下文窗口大小。
这些改进提供了更好的令牌使用洞察,有助于更有效地管理对话。
🔧 可用工具
Claude 工程师配备了一套强大的工具来协助完成各种任务:
- create_folder:在指定路径创建新文件夹。
- create_file:在指定路径创建带内容的新文件。
- edit_and_apply:读取文件内容,并可选择应用更改。
- read_file:读取指定路径文件的内容。
- read_multiple_files:读取指定路径多个文件的内容。
- list_files:列出指定文件夹中的所有文件和目录。
- tavily_search:使用 Tavily API 进行网络搜索,获取最新信息。
- execute_code:在隔离的虚拟环境中运行 Python 代码。
- stop_process:管理和停止长时间运行的代码执行。
- TOOLCHECKERMODEL:验证工具使用和输出,提高可靠性。
- CODEEDITORMODEL:高精度执行专门的代码编辑任务。
- CODEEXECUTIONMODEL:分析代码执行结果并提供见解。
这些工具使 Claude 能够与文件系统交互、管理项目结构、从网络收集信息、执行高级代码编辑和安全执行代码。
🖼️ 图像分析
Claude 工程师现在支持图像分析功能。要使用此功能:
- 提示输入时,输入 'image'。
- 将图像文件拖放到终端或提供文件路径。
- 提供关于图像的提示或问题。
- Claude 将分析图像并回答你的查询。 这项功能使Claude能够协助处理涉及视觉数据的任务,如分析图表、截图或与您的开发工作相关的任何其他图像。
🛡️ 错误处理和恢复
Claude工程师实现了健壮的错误处理和恢复机制:
- 优雅地处理API错误和网络问题。
- 对暂时性故障进行自动重试。
- 在需要时提供清晰的错误消息和用户操作建议。
- 记录错误以便调试和改进。
- 能够在非关键错误后恢复并继续运行。
- 在需要时安全终止长时间运行的进程。
这些功能确保了即使面对意外问题或复杂的代码执行,也能提供流畅可靠的用户体验。
💾 聊天记录保存
在与Claude工程师交互过程中,您可以随时保存当前的聊天记录:
- 在提示输入时输入"save"。
- 聊天记录将保存到当前目录下的文件中,文件名包含时间戳。
- 您可以稍后查看这些日志以供参考或继续之前的对话。
🧠 AI模型和专门代理
Claude工程师利用多个AI模型提供专门功能:
- MAINMODEL(Claude 3或Claude 3.5):处理一般交互和任务处理。
- TOOLCHECKERMODEL:验证各种工具的使用和输出,确保可靠性。
- CODEEDITORMODEL:专门处理代码编辑任务,确保高质量的修改。
- CODEEXECUTIONMODEL:分析代码执行结果并提供见解。
这些模型协同工作,提供全面而智能的开发辅助体验。
工作流程图
[此处省略Mermaid图表代码]
👥 贡献
欢迎贡献!请随时提交Pull Request。对于重大更改,请先开启一个issue讨论您想要更改的内容。
🦙 Ollama工程师已就位
现在您可以使用Ollama和任何支持函数调用的模型,完全在本地使用此脚本的功能: Llama 3.1 Mistral Nemo Firefunction v2 Command-R +
运行前确保安装最新版本的Ollama应用程序并执行
pip install ollama
然后
python ollama-eng.py
🚨使用Ollama工程师时的重要安全注意事项!
如果您允许这些本地模型在您的机器上运行代码,特别是使用执行代码工具时,请格外小心。它可能会损坏您的机器。我完全禁用了OLLAMA工程师的工具执行功能,但如果您想根据原始脚本再次实现它,请自行承担风险。
Star历史
[此处省略Star历史图表]