ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

告别VSCode半年:AI Agent + MCP如何重塑开发工作流

告别VSCode半年:AI Agent + MCP如何重塑开发工作流 1. 从“半年没打开VSCode”说起我的开发工作流到底变了什么第一次意识到自己已经很久没主动点开那个蓝色图标是上个月帮朋友排查一个前端构建报错。他让我远程看一下我下意识打开终端把报错日志丢给本地的 AI Agent让它读项目结构、定位依赖冲突、给出修改方案全程没碰编辑器。等事情解决我才反应过来——那个曾经占据我屏幕 80% 时间的 VSCode已经在我日常里“退居二线”快半年了。这不是标题党也不是说 VSCode 不行了。恰恰相反它依然是我电脑上装得最全的编辑器插件、配置、快捷键我都熟。但真正改变的是我写代码的入口和协作方式从“我打开 IDE我敲代码我调试”变成了“我描述意图Agent 读代码库Agent 改代码我审查结果”。VSCode 从“主战场”变成了“验收窗口”很多时候甚至不需要打开它终端加一个能读写文件、能跑命令的 Agent 就够了。这背后其实是三个东西在同时成熟AI 大模型的基础能力、MCP 这类工具协议、以及Agent 架构的工程化落地。热词里反复出现的 VSCode、AI、IDE、MCP、Agent本质上描述的是同一件事的不同侧面——开发者的操作界面正在从“图形化编辑器”向“自然语言 工具调用”迁移。我写这篇东西不是要劝谁卸载 VSCode而是想把这半年我踩过的坑、验证过的流程、以及那些“看起来很美但实际很坑”的方案原原本本讲清楚。适合谁看如果你每天写代码超过两小时对 AI 辅助开发有兴趣但还没跑通完整闭环或者你已经装了各种插件却觉得“也就那样”那这篇应该能帮你省下不少试错时间。2. 为什么是 Agent MCP而不是继续堆 VSCode 插件2.1 插件模式的天然天花板我最早也是插件党。VSCode 里装过不下十个 AI 补全插件从最早的 Tabnine 到后来的各种 Copilot 类工具。用下来的感受很一致补全很快但只能补“下一行”。你写一个函数名它帮你补参数你写一个循环它帮你补循环体。可一旦涉及跨文件改动、依赖升级、跑测试验证插件就无能为力了——因为它本质上还是“在你光标附近做预测”没有真正的项目级上下文也不能自主执行命令。这里有个关键区别补全模型和 Agent 是两种东西。补全模型是“你打字它猜下一个 token”Agent 是“你给目标它规划步骤、调用工具、读文件、跑命令、根据结果调整”。前者提升的是打字速度后者改变的是工作流本身。我实测下来补全能帮我省 20% 的敲键盘时间但 Agent 能帮我把“改一个跨 5 个文件的接口”从 40 分钟压到 8 分钟差距不在一个量级。2.2 MCP 到底解决了什么问题MCP 是什么全称 Model Context Protocol你可以把它理解成AI 和外部工具之间的“USB 接口”。在没有 MCP 之前每个 AI 工具想读你的文件、查你的数据库、调你的 API都得自己写一套适配代码重复且脆弱。MCP 出现之后只要工具方提供一个 MCP Server任何支持 MCP 的 Agent 都能直接调用不用重复造轮子。我举个实际例子。我有个项目需要经常查 PostgreSQL 的表结构以前要么手动\d看要么写脚本导出。后来我挂了一个数据库的 MCP ServerAgent 就能直接“看到”表结构改代码时自动对齐字段类型不用我反复粘贴 schema。热词里出现的codex 接入 figma mcp 怎么授权、ida mcp下载、x32dbg 的 mcp插件其实都是同一个逻辑把专业工具的能力通过统一协议暴露给 AI。这个思路一旦跑通VSCode 里那些“每个语言一套配置”的插件就显得很笨重了。2.3 Agent 架构从“问答”到“干活”Agent 和普通 AI 聊天的区别热词里有个词问得很准——harness和agent区别。我的理解是harness 是“约束框架”agent 是“执行主体”。一个能干活儿的 Agent 至少要有四块规划器拆任务、工具层读写文件、跑命令、调 MCP、记忆记住项目上下文、反思根据执行结果修正。缺了任何一块它就只能聊天不能干活。我现在的日常是终端里跑一个基于 Rust 写的轻量 Agent热词里基于rust语言ai agent不是偶然Rust 在启动速度和资源占用上确实有优势它挂载了文件系统、shell、git 三个基础工具再加两三个项目相关的 MCP Server。我给它一句话需求它自己读代码、改代码、跑测试失败了就自己看报错再改。VSCode 只在两种情况下打开一是我要做精细的 UI 调整二是 Agent 改完我要做最终 review。半年下来这个比例大概是 1:9。3. 核心细节拆解一个能替代日常 IDE 操作的 Agent 该怎么搭3.1 工具层文件、Shell、Git 是三大件Agent 能不能干活第一看工具层。我踩过的最大坑就是一开始只给了它“读文件”权限结果它改不了代码只能给我建议我还得手动复制粘贴——那和聊天没区别。后来我把工具补全成三类文件系统工具读、写、列目录、搜索。注意要限制在工作目录内别让它乱跑。Shell 工具执行命令、捕获 stdout/stderr。这是它“验证自己改得对不对”的关键。Git 工具看 diff、看 log、必要时回滚。这是安全网。提示Shell 工具一定要设超时和输出截断。我有一次让它跑一个死循环脚本没设超时直接把终端卡死最后只能杀进程。3.2 上下文管理别把整个项目塞进去大模型有 token 上限热词里ai agent token是什么意思问的就是这个。我的经验是永远不要试图把整个代码库塞进上下文。正确做法是让 Agent 自己按需检索——先看目录结构再根据任务定位相关文件只读需要的部分。我实测过一个 5 万行的项目如果全量塞进去不仅贵而且模型会“迷失”在无关代码里改错地方的概率大幅上升。具体做法给 Agent 一个“项目地图”工具让它先列出目录树和关键文件比如 package.json、Cargo.toml、README再根据任务决定读哪些文件。这个过程它自己会规划我要做的只是把工具给到位。3.3 多 AI 协作什么时候需要什么时候是负担热词里多ai协作出现频率很高。我试过让一个 Agent 写代码、另一个 Agent 做 review理论上很美实际很坑。问题在于两个 Agent 的上下文不同步review 的那个不知道写代码的那个为什么这么改给出的意见经常是“建议加注释”这种废话。后来我改成单 Agent 内置反思步骤它写完代码后自己再读一遍 diff检查有没有明显问题。效果反而更好。多 AI 协作真正有价值的场景是任务可以清晰切分且互不依赖的时候。比如一个 Agent 专门查文档一个专门写测试一个专门改实现。但这种场景对编排要求很高我目前只在少数复杂任务上用日常还是单 Agent 为主。3.4 安全边界Agent 能跑命令就必须有护栏agent安全这个词不是危言耸听。Agent 能执行 shell就意味着它能删文件、能改配置、能发网络请求。我的做法是三层护栏工作目录隔离Agent 只能操作项目目录碰不到系统文件。危险命令拦截rm -rf、git push --force这类命令直接进黑名单需要我手动确认。操作日志所有工具调用都记日志出问题能回溯。注意不要给 Agent 生产环境的凭证。我见过有人把数据库生产密码配进 MCP Server结果 Agent 跑测试时误删了数据。测试环境单独配一套这是底线。4. 实操过程从零跑通一个“不用打开 IDE”的开发闭环4.1 环境准备与基础配置先说环境。我用的是一台 Mac终端是 iTerm2Agent 跑在本地。核心组件就三个一个支持工具调用的模型接口、一个 Agent 运行时、若干 MCP Server。模型接口我用的是支持 function calling 的通用大模型 APIAgent 运行时是自己写的 Rust 小程序也可以用现成的开源框架逻辑一样。配置的关键是把工具描述写清楚。模型靠工具描述来决定调哪个工具描述模糊它就会乱调。比如文件读取工具我写的描述是“读取指定路径的文件内容路径必须是相对项目根目录的相对路径单次读取不超过 2000 行”。这样它就不会去读绝对路径也不会一次读爆上下文。4.2 一个真实任务的完整执行记录我拿上周的一个真实任务举例给一个 Rust 项目加一个“按标签过滤文章”的 API。第一步我给 Agent 的指令是“在现有文章列表 API 基础上增加按 tag 查询参数过滤的功能需要改 handler、query 结构和测试。”第二步Agent 自己规划并执行列目录找到src/handlers/article.rs和src/models/query.rs。读这两个文件理解现有结构。修改 query 结构加tag: OptionString字段。修改 handler在查询里加过滤条件。跑cargo test发现一个测试失败——因为原有测试没传 tag 参数断言对不上。自己读失败日志修改测试用例再跑通过。输出 diff 给我 review。整个过程我做了什么我只发了一句话然后等它跑完看了一眼 diff确认没问题提交。耗时 6 分钟。如果我自己写光是对齐现有代码风格和跑测试就得 20 分钟以上。4.3 参数选择为什么我不用“全自动”很多人问既然 Agent 能自己改自己跑为什么不干脆全自动连 review 都省了我的答案是模型会犯错而且错得很自信。我遇到过它把改成测试刚好没覆盖边界差点上线。所以我的流程里review 是必须的人工环节。Agent 负责把 80% 的机械工作干掉我负责最后 20% 的判断。这个比例是我试了很多次之后觉得最稳的。另外模型选择上我不用最大的那个。大模型贵且慢日常改代码用中等规模的模型足够只有遇到复杂重构才切大模型。这个切换我做成手动的因为自动判断“任务复杂度”本身就不太靠谱。4.4 与 VSCode 的配合不是替代是分工我现在的工作流是Agent 在终端干活VSCode 在需要精细操作时打开。比如调整一个复杂的 CSS 布局或者做代码格式化后的视觉检查我还是会打开 VSCode。但像加接口、改逻辑、写测试、修 bug 这些基本都在终端完成。VSCode 的插件我也没卸偶尔用它的 Git 图形界面看 diff比终端直观。实操心得把 VSCode 的“自动保存”关掉。Agent 改文件和你手动改文件如果同时发生容易冲突。我现在是 Agent 干活时 VSCode 不打开同一目录避免文件锁问题。5. 常见问题与排查技巧实录5.1 Agent 改错文件、改错地方怎么办这是最高频的问题。原因通常是上下文不足或工具描述不清。我的排查顺序是看日志确认它读了哪些文件。如果它没读关键文件就动手说明检索逻辑有问题。检查工具描述是不是“搜索文件”的描述太模糊导致它搜错。如果频繁发生在指令里显式指定文件路径别让它自己找。我整理了一个速查表现象可能原因解决改了无关文件检索范围太大指令里指定目录改错函数上下文没读全让它先输出理解再动手改完不跑测试工具没配或描述不清检查 shell 工具描述反复改不对模型能力不足换更大模型或拆任务5.2 命令执行卡住或输出爆炸Shell 工具必须设两个限制超时和输出行数上限。我设的是 30 秒超时、500 行输出。超过就截断并提示 Agent“输出被截断请用更精确的命令”。这个技巧帮我省了很多次手动杀进程的时间。5.3 MCP Server 连不上或授权失败热词里codex 接入 figma mcp 怎么授权这类问题很典型。MCP 授权失败通常是凭证格式不对或权限范围没配对。我的经验是先在命令行手动跑一次 MCP Server确认它能独立工作再接到 Agent 上。如果手动能跑、接上不行那就是 Agent 的工具配置问题检查 server 地址和 token 有没有传对。5.4 模型“幻觉”出不存在的方法这个没法完全避免但可以缓解。我的做法是在指令里要求它“只使用项目中已存在的依赖和方法”并且让它改完后自己 grep 一遍确认方法存在。另外项目里如果有类型系统比如 Rust、TypeScript编译报错会直接打脸幻觉这也是我偏爱强类型语言的原因之一。5.5 成本控制别让 Agent 烧钱Agent 跑起来 token 消耗比聊天大得多因为它要反复读文件、跑命令、看结果。我的控制手段限制单次任务的最大工具调用次数我设的是 30 次超过就停下来问我。另外简单任务用小模型复杂任务才用大模型。实测下来日常开发一个月的 API 成本比我之前订阅各种插件还便宜。6. 这半年我真正学到的几件事第一AI 写代码的上限不取决于模型取决于你给它的工具和上下文。同样的模型工具配得好它能干一个团队的活工具配得差它就是个高级补全。第二VSCode 不会消失但它的角色会变。从“写代码的地方”变成“看代码的地方”这个转变我花了两个月才适应但适应之后效率确实上来了。第三别追求全自动。全自动听起来酷实际风险高。人机分工各干各擅长的才是可持续的。最后分享一个我最近在试的扩展方向把 Agent 接到 CI 里让它自动 review PR 并给出修改建议。目前还在调主要问题是它给的 review 意见太啰嗦需要加一层过滤。等跑顺了再单独写一篇。
返回列表