浏览器对话、IDE 助手和终端 Agent 同时参与开发后,工具数量增加往往也会带来上下文分散、职责重叠和验证困难。要让 AI 真正融入日常工程流程,需要先明确任务从哪里进入、不同模型如何分工,以及代码修改最终通过什么方式检查和确认。

开始使用 AI 编程后,很多人的桌面会迅速变成这样:
工具越来越多,真正的问题却没有减少:
我后来意识到,AI 编程最重要的不是“拥有多少工具”,而是建立一个稳定的工作台。
这里的工作台不是某一个软件,而是一套能够重复使用的配置:
任务入口
↓
项目上下文
↓
模型分工
↓
代码执行与验证
↓
知识沉淀
本文分享的是一套面向中级开发者的最小 AI 编程工作台。
它不依赖某个具体品牌,也不要求一次配置很多工具。你可以用现有工具替换其中的任意一层。
为了避免把“工作台”写成一份工具广告,先说明本文不会讨论的内容:
这篇文章的目标是:
用最少的层次,搭一套能够持续使用、容易验证、方便迁移的 AI 编程工作台。
单个 AI 工具通常只能解决一个局部问题。
例如:
如果这些工具之间没有明确分工,就很容易出现两种情况:
情况一:所有问题都丢进对话窗口
↓
上下文越来越长
↓
答案越来越泛
↓
最终仍然要自己重新整理
情况二:所有改动都交给 IDE 或 Agent
↓
修改范围越来越大
↓
项目规则没有说清
↓
测试和审查压力反而增加
稳定的工作台应该让不同工具各自做擅长的事:
| 工作层 | 主要职责 | 适合的任务 |
|---|---|---|
| 对话层 | 思考、澄清、比较方案 | 需求拆解、技术方案、排障假设 |
| IDE 层 | 阅读、局部编辑、即时反馈 | 当前模块理解、小范围修改、代码解释 |
| 终端层 | 执行、批处理、验证 | 运行测试、生成文件、跨文件修改 |
| 模型层 | 按任务复杂度分工 | 快速问答、代码阅读、深度设计 |
| 项目上下文层 | 提供规则和可复用信息 | 架构、规范、接口、测试与安全边界 |
工作台的价值,不是让 AI 自动完成一切。
而是让每一次协作都有明确入口、足够上下文和验证出口。
一个任务开始时,先决定它最适合从哪里进入:
不要在多个工具中同时开始同一个任务。
否则很容易产生多个版本的结论、代码和待办事项。
AI 不需要知道整个项目,才能帮助你解决一个函数级问题。
提供上下文时,建议从小到大逐步增加:
任务描述
↓
相关文件和类型定义
↓
已有规则与测试
↓
必要的调用链和日志
这样既能减少无关信息干扰,也能降低敏感信息泄露的风险。
可以把模型简单分成三类用途:
| 模型类型 | 更适合的任务 | 使用重点 |
|---|---|---|
| 快速模型 | 代码解释、摘要、简单脚本、格式整理 | 追求反馈速度 |
| 主力模型 | 模块实现、测试设计、常规排障 | 追求稳定和性价比 |
| 深度推理模型 | 架构比较、复杂 Bug、跨模块设计 | 追求思考质量和风险分析 |
不需要为每一类任务准备多个模型。
先明确一个默认模型,再为复杂设计或高风险排障保留一个深度模型,通常就足够了。
无论输出来自对话窗口、IDE 还是终端 Agent,都不要把它当作最终交付。
你的工作台必须保留这条闭环:
AI 提供建议或代码草稿
↓
开发者审查改动范围
↓
运行格式化、静态检查和测试
↓
查看差异并确认业务逻辑
↓
提交或继续迭代
没有验证出口的工作台,只是一个更快的内容生成器。
对话区适合处理还没有进入代码编辑阶段的问题,例如:
每次开启对话,建议先给出固定的任务卡:
任务目标:
[要实现、排查或重构什么]
当前阶段:
[需求澄清 / 代码阅读 / 方案设计 / 实现 / 测试 / 排障]
已知事实:
[已经确认的业务规则、错误现象、相关模块]
待确认问题:
[目前还不清楚的地方]
本轮希望得到的结果:
[问题清单 / 方案对比 / 测试矩阵 / 代码草稿]
这比直接问“怎么做”更容易得到可审查的结果。
IDE 是代码修改的主阵地。
在这里使用 AI 时,建议遵守两个边界:
例如,与其说:
帮我重构整个订单模块。
不如说:
请只审查当前 Service 中的 cancelOrder 方法。
要求:
1. 不修改其他文件。
2. 列出输入校验、状态流转和异常处理问题。
3. 区分必须修改和建议优化。
4. 给出最小修改方案。
范围越清楚,审查和回滚就越容易。
终端型工具最适合执行固定、重复、可检查的动作:
但终端自动化不应该跳过测试。
建议把常用验证命令整理为项目脚本,并要求 AI 在执行后报告:
1. 修改了哪些文件。
2. 每处修改的目的。
3. 执行了哪些检查。
4. 哪些检查通过,哪些没有执行。
5. 还需要人工确认什么。
只要保留这份报告,即使工具自动化程度提高,开发者也不会失去对改动的掌控。
“所有任务都使用同一个模型”并非一定错误,但容易造成两种浪费:
可以用一个简单策略管理模型:
简单、重复、结果容易检查
→ 使用快速模型
常规开发、测试设计、代码审查
→ 使用主力模型
跨模块设计、复杂排障、重要技术决策
→ 使用深度推理模型,并要求列出假设和风险
模型不是越多越好。
关键是每次使用前,知道自己需要的是“更快得到草稿”,还是“更仔细地分析问题”。
这是最容易被忽略、但最值得优先配置的一层。
建议在项目里维护一份 AI 也容易阅读的上下文目录:
docs/
ai/
project-overview.md
architecture.md
coding-conventions.md
testing-guide.md
security-boundaries.md
task-template.md
这些文件不需要写得很长。
最重要的是回答常见问题:
| 文件 | 至少应包含什么 |
|---|---|
| project-overview.md | 项目目标、技术栈、启动方式、目录说明 |
| architecture.md | 模块职责、分层边界、核心调用链 |
| coding-conventions.md | 命名、异常、日志、依赖和提交规范 |
| testing-guide.md | 测试命令、测试类型、关键覆盖要求 |
| security-boundaries.md | 脱敏规则、权限边界、禁止暴露的信息 |
| task-template.md | 任务背景、规则、验收和输出要求模板 |
例如,project-overview.md 可以从最小版本开始:
# 项目概览
## 技术栈
- 后端:Java + Spring Boot
- 数据库:MySQL
- 测试:JUnit
## 目录职责
- controller:HTTP 请求和参数校验
- service:业务编排
- repository:数据访问
## 本地验证
- 运行单测:[填写命令]
- 运行静态检查:[填写命令]
## 注意事项
- 金额统一以分存储
- 业务错误统一使用领域异常
- 不要在日志中打印用户隐私字段
这类上下文文件既服务于 AI,也服务于新同事和未来的自己。
AI 编程工作台必须从一开始就把安全边界配置进去。
以下信息默认不应直接发送到外部模型或第三方工具:
建议保留以下习惯:
提交代码前
→ 检查 .env、密钥和本地配置是否被忽略
发送日志前
→ 删除用户标识、Token、完整请求体和内部地址
提供代码前
→ 只提供与问题相关的最小片段
使用自动化工具前
→ 确认它能访问哪些目录、能执行哪些命令
安全不是在出现问题后再补的功能。
它应该是工作台的默认配置。
不需要等到换电脑或新项目。
你可以用半小时完成下面这套最小配置:
project-overview.md,把技术栈、目录和验证方式写清楚。可以用这份清单检查自己的工作台是否已经可用:
[ ] 我知道每类任务应该从对话、IDE 还是终端进入。
[ ] 我有一个默认模型和一个处理复杂任务的模型。
[ ] 我能向 AI 提供项目概览、规范和测试方式。
[ ] 我不会在对话中暴露密钥、隐私数据和未脱敏日志。
[ ] 我会检查 AI 修改的文件和差异。
[ ] 我有固定的测试、静态检查或格式化验证命令。
[ ] 我会保存有效的 Prompt、检查清单和复盘记录。
这套配置的目标不是追求“全自动”。
而是让你在每一次真实任务中,都能更快进入状态、更少重复解释项目背景,并更容易验证 AI 的输出。
我的 AI 编程工作台,不是一张工具清单,而是一套五层结构:
当这五层逐渐稳定后,即使你更换工具或模型,核心工作方式也不会被打乱。
真正可持续的 AI 编程效率,来自清晰的任务入口、干净的项目上下文、可靠的验证闭环和不断积累的工程资产。
下一篇文章,我们来解决一个更具体的问题:
一条高质量编程 Prompt,应该包含什么?