AI编码工具选择

AI 编程工具

AI 编程工具共有几种形态, 分别是: IDE+ AI 插件、原生AI IDE工具、原生AI Agent工具、ADE工具。

aicoderscope 有很多ai coding的review文章 https://aicoderscope.com/blog/
https://www.bitdoze.com/ai-coding-tools/
https://www.bitdoze.com/ai-programming-beginners-guide/
https://www.bitdoze.com/best-open-source-llms-claude-alternative/

ADE工具

https://github.com/stablyai/orca
https://github.com/getpaseo/paseo

原生AI IDE工具

Jetbrains 开源的 thinkrail 值得期待, 底层是pi agent+ monica editor, 同时支持 SDD.

zed 也内置了 agent。
https://aicoderscope.com/blog/zed-ollama-local-model-setup-2026/
https://aicoderscope.com/blog/continue-dev-cursor-acquisition-2026/

原生AI Agent工具

原生 AI Agent工具目前可选择的太多了, claude code、codex、T3 Code、PI Agent。

我选择PI agent, 搭配 herdr。
https://www.bitdoze.com/pi-coding-agent-setup-guide/

推荐: 可以使用 herdr 来管理多个 agent 和 命令窗口 https://github.com/joeseesun/herdr-guide/blob/main/Herdr_软件全面调研与使用教程.md
herdr 的几个概念

  • space, 对应左上角的清单
  • tab, 对于右边工作区的tab page, tab 从属于一个space中
  • pane, 是tab page 下方的一个操作区, 一个tab 可以平铺多个pane.

也可以使用 pi专用的 desktop:
https://github.com/minghinmatthewlam/pi-gui
https://github.com/Jaxton07/percho

VS Code + AI coding agent 插件

vscode中有非常多的AI coding agent插件, 比如:

  • Github copilot插件, vs code内置插件, 使用太复杂了, 我直接禁用了.
  • Qwen Code Companion 插件, 也挺好的.
  • Continue 插件, 我最喜欢的插件, 提供最佳的FIM(fill in middle) 代码补全功能(语义级的代码补全, 比LSP语法级更智能一些), 还有很多其他功能, 该公司已被cursor收购, 并且停止开发, 好在代码补全功能已经非常稳定.
  • cline 插件: 这个是下载量最多的, 对标 claude code风格的, 我没有实际用过.
  • pendant 插件: 基于pi agent, 我没有实际用过
  • kilo code 插件: 官方说自己支持FIM(fill in middle) 代码补全功能, 据说不太好用.

vscode 中在使用AI coding agent如果某个动作执行时间过长, vscode 会碰到弹窗, 弹窗内容为: you can reopen or close the window or keep waiting.
图片

抑制该窗口的弹出方法是:
Help → Developer: Toggle Developer Tools, 这要开发工具处于打开状态, 就不会有弹窗了. 如果嫌该工具占用屏幕, 可将开发工具的视图切成为dock模式, 这时就可以最小化开发工具窗体了.

另外如果碰到了vscode某个功能不work, 除了观察vs code的 output 底部页签, 也可以在开发者工具中查看console页签是否有深层的报错信息.

VS Code 的 Continue 插件

Continue (AI助手类, 对标 cursor工具, 该公司已被cursor收购, 并且停止开发), 特点有:

  • 配置简单, 一个 config.yaml 搞定
  • 支持语义级的代码补全, 使用 tab 键盘补全, 不仅是代码补全, markdown 文档也能补全, 要求模型支持FIM(fill-in-middle)自动补全功能
  • 可以将编辑器选中选中区域使用 inline edit 方式进行编辑, 和 inline chat方式进行对话
  • 支持自定义 prompt(使用@作为前缀), 自定义slash命令(使用/作为前缀)
  • 支持chat/plan/agent三种模式, plan会启用mcp tool(只读), agent会启动mcp tool+ builtin tool(读写)
  • 文档网站 https://docs.continue.org.cn/customize/overview
  • 提供 continue 侧边栏, 用于下达chat/plan/agent任务
  • 提供 continue log 底边栏, 能看出每一次和大模型交互的内容/消耗的token等信息
  • 关于 Continue 的 auto complete ghost text功能: https://aicoderscope.com/blog/continue-dev-autocomplete-not-working-fix-2026/

vscode的 settings.json 增加如下配置, 主要是禁用 copilot 插件, 启用 continue的一些特性.

  "files.watcherExclude": {
    "**/node_modules/**": true,
    "**/.git/objects/**": true,
    "**/.git/subtree-cache/**": true,
    "**/dist/**": true,
    "**/build/**": true,
    "**/coverage/**": true,
    "**/.next/**": true,
    "**/.cache/**": true,
    "**/.venv/**": true,
    "**/__pycache__/**": true,
    "**/*.log": true,
  },
  "editor.minimap.enabled": false,
  "chat.disableAIFeatures": true,
  "editor.inlineSuggest.enabled": true,
  "editor.tabCompletion": "on",
  "continue.enableNextEdit": false,
  "continue.enableTabAutocomplete": true,
  "continue.showInlineTip": true,
  "continue.enableConsole": true,
  "continue.disableQuickFix": false,
  "continue.pauseCodebaseIndexOnStart": true,

deepSeek 4.1 是一个全功能的模型, 无需额外配置即支持FIM自动补全, 下面是 config.yaml 的配置, 更多信息, 可查看官方文档 https://docs.continue.dev/reference

其实一些特制的 coder 小模型对于代码补全来说已经非常够用, 比如 continue 官方推荐的 qwen2.5-coder:7b 或 qwen2.5-coder:1.5b , 本地使用 ollama 就可以跑起来, 不需要消耗deepseek API额度.

continue 不同功能推荐的模型清单:
https://docs.continue.dev/customize/models#recommended-models

Continue 的模型支持多种工作模式:

  1. Agent 工作模式对应的模型至少需要开启 chat + apply + edit
  2. Chat 工作模式对应的模型至少需要开启 chat
  3. Plan 工作模式对应的模型至少需要开启 chat + apply

Chat / Plan / Agent 的思考核心都高度依赖 chat role 的模型质量。Agent 在修改代码时,如果配置了独立的 apply role,能够显著提升大文件修改效率。

使用 deepSeek 4.1 作为全能模型的配置 config.yaml:

name: Main Config
version: 1.0.0
schema: v1
models:
  - name: DeepSeek flash
    provider: deepseek
    model: deepseek-flash
    apiKey: sk-xxxxxxxxx
    roles:
      - autocomplete # 用于行内实时 Tab 自动补全
      - chat  # 用于侧边栏日常对话与问答
      - edit  # 用于行内代码重构与修改 (Ctrl/Cmd + I)
      - apply  # 用于自动将代码应用到文件中
    defaultCompletionOptions:
      contextLength: 128000  #模型全局支持的最大上下文长度, 128K
      maxTokens: 12800  #最多生成的token, 如果仅用于补全, token 还可以设置的更小一些
      temperature: 0.1 #温度, 区间0~1
      reasoning: false # 是否启用推理
    autocompleteOptions:  #针对 autocomplete 的额外设置
      maxPromptTokens: 1024 # 最大提示词长度, 自动补全没有必要使用太多token
      disable: false # 是否禁用该模型的autocomplete功能
      modelTimeout: 300 # 模型响应超时时间(关键数字),减少卡顿
      debounceDelay: 250  # 输入停顿多少毫秒后才允许触发补全,可减少卡顿
      prefixPercentage: 0.3 # 前缀文本占比(关键数字)
      maxSuffixPercentage: 0.3  # 允许补全时读取光标后30%的代码作为后缀
      # Custom template for autocomplete using Mustache syntax
      #template: |
      #  <|fim_prefix|>{{{prefix}}}<|fim_suffix|>{{{suffix}}}<|fim_middle|>
      onlyMyCode: true # 是否仅基于用户自己的代码生成补全
      useRecentlyEdited: true #includes recently edited files in context.
      useRecentlyOpened: true  #includes recently opened files in context.
      #https://docs.continue.dev/reference

使用 ollama 下载并配置模型 qwen2.5-coder:1.5b

# windows上配置 OLLAMA_MODELS 环境变量为 D:\ollama\models 
D:\my_workspace\OLLAMA_MODELS\
ollama pull qwen2.5-coder:1.5b
ollama list
ollama run qwen2.5-coder:1.5b

使用 deepSeek 4.1 作为主模型, 本地qwen2.5-coder作为自动补全模型的配置 config.yaml:

name: Main Config
version: 1.0.0
schema: v1
models:
  # 专用于 chat 等高级功能
  - name: DeepSeek flash
    provider: deepseek
    model: deepseek-flash
    apiKey: sk-
    roles:
      # - autocomplete # 用于行内实时 Tab 自动补全
      - chat  # 用于侧边栏日常对话与问答
      - edit  # 用于行内代码重构与修改 (Ctrl/Cmd + I)
      - apply  # 用于自动将代码应用到文件中
    defaultCompletionOptions:
      contextLength: 128000  #模型全局支持的最大上下文长度, 128K
      maxTokens: 12800  #最多生成的token, 如果仅用于补全, token 还可以设置的更小一些
      temperature: 0.1 #温度, 区间0~1
      reasoning: false # 是否启用推理
    autocompleteOptions:  #针对 autocomplete 的额外设置
      maxPromptTokens: 1024 # 最大提示词长度, 自动补全没有必要使用太多token
      disable: false # 是否禁用该模型的autocomplete功能
      modelTimeout: 300 # 模型响应超时时间(关键数字),减少卡顿
      debounceDelay: 250  # 输入停顿多少毫秒后才允许触发补全,可减少卡顿
      prefixPercentage: 0.3 # 前缀文本占比(关键数字)
      maxSuffixPercentage: 0.3  # 允许补全时读取光标后30%的代码作为后缀
      # Custom template for autocomplete using Mustache syntax
      #template: |
      #  <|fim_prefix|>{{{prefix}}}<|fim_suffix|>{{{suffix}}}<|fim_middle|>
      onlyMyCode: true # 是否仅基于用户自己的代码生成补全
      useRecentlyEdited: true #includes recently edited files in context.
      useRecentlyOpened: true  #includes recently opened files in context.
      #https://docs.continue.dev/reference


  # 专用于tab 自动补全的模型
  - name: qwen2.5 coder
    provider: ollama
    model: qwen2.5-coder-1.5b
    roles:
      - autocomplete # 用于行内实时 Tab 自动补全
    defaultCompletionOptions:
      contextLength: 1280  #模型全局支持的最大上下文长度, 1280
      maxTokens: 256  #最多生成的token, 如果仅用于补全, token 还可以设置的更小一些
      temperature: 0.1 #温度, 区间0~1
      reasoning: false # 是否启用推理
    autocompleteOptions:  #针对 autocomplete 的额外设置
      maxPromptTokens: 1024 # 最大提示词长度, 自动补全没有必要使用太多token
      disable: false # 是否禁用该模型的autocomplete功能
      modelTimeout: 500 # 模型响应超时时间(关键数字),减少卡顿
      debounceDelay: 250  # 输入停顿多少毫秒后才允许触发补全,可减少卡顿
      prefixPercentage: 0.3 # 前缀文本占比(关键数字)
      maxSuffixPercentage: 0.3  # 允许补全时读取光标后30%的代码作为后缀
      # Custom template for autocomplete using Mustache syntax
      # template: |
      #   <|fim_prefix|>{{{prefix}}}<|fim_suffix|>{{{suffix}}}<|fim_middle|>
      onlyMyCode: false # 是否仅基于用户自己的代码生成补全
      useRecentlyEdited: false #includes recently edited files in context.
      useRecentlyOpened: false  #includes recently opened files in context.
      #https://docs.continue.dev/reference

Autocomplete不工作:如何修复?
https://aicoderscope.com/blog/continue-dev-autocomplete-not-working-fix-2026/

按以下步骤排查,确保所有配置正确:

  • 检查“Enable Tab Autocomplete”设置是否勾选(VS Code:状态栏Continue按钮;JetBrains:Settings→Tools→Continue);
  • 确认已下载Ollama,且执行ollama run qwen2.5-coder:1.5b验证模型已成功下载;
  • 关闭其他代码补全工具(如Copilot),避免冲突;
  • 查看日志定位错误:
    • VS Code:cmd/ctrl + shift + P → “Toggle Developer Tools” → “Console” tab;
    • JetBrains:查看 ~/.continue/logs/core.log;
  • 检查VS Code设置:确保"editor.inlineSuggest.enabled"设为true(通过cmd/ctrl + ,搜索设置)。

OpenSpec/superpowers/SpecKit

SDD 对于AI编码来说至关重要, 防止AI跑偏.

实战项目的参考规范

https://github.com/OliverAAAAA/ai-coding-java-springboot-skills/blob/main/README.md
https://github.com/forztf/open-skilled-sdd

posted @ 2026-10-04 13:21  harrychinese  阅读(45)  评论(0)    收藏  举报