使用 AI 模型增强代码编辑
Developer 扩展 支持在 str_replace 命令中使用 AI 模型来增强代码编辑能力。配置完成后,它不再只是做简单字符串替换,而是会借助 AI 模型更智能地应用代码修改。
使用专门擅长代码编辑的模型,可以降低主 LLM provider 的负担,同时提高准确性、质量和速度,并降低成本。这种增强方式带来的收益包括:
- 理解上下文的编辑:AI 能理解代码结构,做出更合理的修改
- 更稳定的格式:尽量保持现有代码风格和排版一致
- 降低错误风险:编辑时可能顺带发现并修复潜在问题
- 灵活的模型支持:兼容任何 OpenAI-compatible API
- 实现更干净:配置检查走正常控制流,不依赖异常处理
配置
设置下面这些环境变量即可启用 AI 驱动的代码编辑:
export GOOSE_EDITOR_API_KEY="your-api-key-here"
export GOOSE_EDITOR_HOST="https://api.openai.com/v1"
export GOOSE_EDITOR_MODEL="gpt-4o"
这三个环境变量必须全部设置且非空,功能才会生效。
这是一个完全向后兼容的可选能力。如果没有配置,扩展会继续使用原来的简单字符串替换逻辑。
支持的 Provider
任何 OpenAI-compatible API 端点理论上都可以使用,例如:
OpenAI:
export GOOSE_EDITOR_API_KEY="sk-..."
export GOOSE_EDITOR_HOST="https://api.openai.com/v1"
export GOOSE_EDITOR_MODEL="gpt-4o"
Anthropic(通过 OpenAI-compatible 代理):
export GOOSE_EDITOR_API_KEY="sk-ant-..."
export GOOSE_EDITOR_HOST="https://api.anthropic.com/v1"
export GOOSE_EDITOR_MODEL="claude-3-5-sonnet-20241022"
Morph:
export GOOSE_EDITOR_API_KEY="sk-..."
export GOOSE_EDITOR_HOST="https://api.morphllm.com/v1"
export GOOSE_EDITOR_MODEL="morph-v0"
Relace:
export GOOSE_EDITOR_API_KEY="rlc-..."
export GOOSE_EDITOR_HOST="https://instantapply.endpoint.relace.run/v1/apply"
export GOOSE_EDITOR_MODEL="auto"
本地 / 自定义端点:
export GOOSE_EDITOR_API_KEY="your-key"
export GOOSE_EDITOR_HOST="http://localhost:8000/v1"
export GOOSE_EDITOR_MODEL="your-model"
工作原理
当 str_replace 工具用于修改代码时,流程如下:
- 检查配置:goose 会确认这三个环境变量是否都已正确设置且非空。
- 启用 AI 时:如果配置齐全,goose 会把原始代码和你要求的修改一起发送给配置好的 AI 模型处理。
- 回退逻辑:如果没有配置 AI API,或调用 API 失败,就退回到简单字符串替换。
- 用户提示:第一次在未配置 AI 的情况下使用
str_replace时,你会看到一条说明消息,告诉你如何开启这个能力。