最近我在Trae里写前端遇到一个很尴尬的场景:AI能帮我把组件的代码写得像模像样,但页面真正长什么样、交互有没有生效、控制台有没有报红,它一概不知道。以前想让AI检查UI问题,我只能手动截个图贴进对话,来回好几轮,效率极低。
后来我给Trae配上了Chrome MCP Server,AI就像多了一双眼睛和两只手,能自己打开浏览器、读取当前页面的结构化内容、点击按钮、输入文本、抓取控制台日志,还能截图看渲染效果。这篇文章就是把配置过程、配置文件里的每个字段、连接成功之后的实测用法,以及我踩过的一堆坑完整记录下来。核心目标只有一个:让用Trae做前端和全栈开发的人,少走弯路,一次配通。
如果你只是听过MCP、还没搞清楚它和浏览器之间怎么协作,我建议从第1部分开始看,前面有比较直观的解释;如果已经配置过但server一直起不来,可以直接跳到第5部分,我把完整的排查思路写出来了。
1. 这套组合解决的问题:AI怎么从"看不见"变成"看得见"
1.1 缺的不是大模型能力,而是浏览器的"眼和手"
先说结论:MCP本身不是一个"抓取网页"的工具,它是一套连接协议标准,全称叫Model Context Protocol,也就是模型上下文协议。
我用一个生活化的类比给你讲明白。以前各种智能设备充电口各行其是,后来大家统一成USB-C,一个充电头通吃所有设备,非常省事。MCP做的事差不多:它让AI编程工具和各种数据源、工具之间有了统一接口。AI编程工具是"主机",浏览器、文件系统、数据库这些能力是"外设",而MCP Server就是每个外设的"驱动程序"。
Chrome MCP Server,就是承担浏览器能力的那条"驱动"。它在本地运行一个服务进程,通过Chrome DevTools Protocol(简称CDP)和Chrome浏览器通信。CDP是Chrome官方提供的调试协议,专门用来让外部程序读取页面、操控页面、获取网络和性能数据。MCP Server把"打开网页""读取正文""点击元素""输入文字""截图""拿控制台日志"这些能力,封装成一组标准工具,暴露给Trae里的AI助手。
做完这层抽象之后,AI就不需要自己去解析HTTP、不需要拼接Chrome的底层协议参数,只需要在对话里说一句"用浏览器打开这个链接",后面的工具调度、参数组装、结果返回都是全自动的。
1.2 MCP链路拆解:从Trae到Chrome之间到底发生了什么
在配置之前,把整条链路弄清楚比急着写配置重要得多。一条请求从你的自然语言变成浏览器里的实际动作,中间经历了三层:
| 层级 | 组件 | 作用 |
|---|---|---|
| 应用层 | Trae内置AI助手(MCP客户端) | 理解用户意图,发起工具调用请求 |
| 工具层 | Chrome MCP Server进程 | 接收MCP协议请求,通过CDP与浏览器交互 |
| 目标层 | Chrome浏览器页面 | 执行导航、点击、输入、截图等真实操作 |
举个例子。你在Trae对话栏输入"用浏览器打开 example.com,把页面标题告诉我"。AI助手会先判断出这会用到MCP里的导航工具,于是向本地的Chrome MCP Server发送一个工具调用请求。MCP Server收到之后,把请求翻译成CDP指令发给Chrome。Chrome完成页面加载后,把渲染结果和标题文本返回给MCP Server,MCP Server再包装成MCP协议格式回传给Trae。最终你看到的是AI回复你:"这个页面标题是Example Domain。"
整个过程中最关键的一点是:AI读取到的是结构化文本数据,不是一张图片。它拿到的是DOM提炼出来的文本、属性、URL、控制台日志这些结构化信息,所以可以进一步分析、总结、判断。这是Chrome MCP比单纯截图塞给AI看高明的地方。
1.3 能做与不能做的边界:先搞清楚,再动手
我见过不少人刚配完Chrome MCP就把AI当成万能浏览器机器人,结果失望而归。它的能力边界其实挺明确。
能做的是这些:读取当前页面DOM和文本内容,模拟鼠标点击和键盘输入,滚动页面,切换标签页,获取控制台日志和网络请求记录,截取页面截图,还可以执行一些JavaScript调用。对于前端调试、网页自动化验证、内容抓取这类需求,完全够用。
不能做的是这些:绕过登录验证码、直接暴力破解密码、访问浏览器之外的本地文件系统和操作系统命令。登录验证这类需求属于其他MCP安全策略解决的问题,Chrome MCP只负责浏览器范围内的操作。另外要特别提醒,AI操作浏览器是有误操作风险的,我后面会在踩坑部分详细说安全问题。
所以,配置之前先想清楚你的场景:是想让AI帮你调试前端页面,还是做网页自动化,还是抓取页面信息。不同目标会导向不同的Chrome MCP Server选型,这正是第2部分要讲的内容。
2. 准备工作:Node环境、浏览器版本和MCP Server选型
2.1 Node.js版本和npm源:最容易忽略的第一道坎
Chrome MCP Server本质上是一个运行在Node.js环境里的程序,所以第一件事就是把Node环境检查清楚。
在系统终端里执行两条命令:
node -v npm -v目前主流的Chrome MCP Server要求Node.js 18以上,稳妥起见建议用Node 20。如果你的Node版本还在16甚至更低,建议先升级。这里提醒一句:不要只改配置里的版本号,npx运行时用的是系统PATH里那个Node,升级完要重启终端,不然可能还是旧版本。
另一个容易被忽略的是npm源。MCP Server用npx拉包的时候,如果本地网络环境不好,可能卡在"Downloading"半天没有反应,或者直接报网络超时。这种情况不用怀疑配置写错了,大概率是npm包拉不下来。把npm的registry切到镜像源能解决大部分问题:
npm config set registry https://registry.npmmirror.com切完再跑一次npx -y的命令,速度会有质的提升。
2.2 两个Chrome MCP Server怎么选:Puppeteer版和CDP版
目前我实际用过、社区反馈也比较多的Chrome MCP Server主要有两个,它们的技术路线和适用场景差别挺大,配置方式也不同,先选对再配置能少走很多弯路。
| 对比维度 | chrome-devtools-mcp | @modelcontextprotocol/server-chrome |
|---|---|---|
| 底层协议 | 直接基于CDP | 基于Puppeteer封装 |
| 偏重方向 | 前端调试、DOM快照、Console、网络分析 | 网页自动化、导航、点击、截图 |
| 常提供的工具 | browser_navigate、browser_get_snapshot、browser_get_console等 | browser_navigate、browser_click、browser_type、browser_take_screenshot等 |
| 上手复杂度 | 中,可直接连接系统Chrome | 中低,Puppeteer自动管理浏览器 |
我的建议是:如果主要目的是调试你自己的前端页面,比如想看看控制台报了什么错、交互有没有生效,选chrome-devtools-mcp,它和CDP的关系更紧密,拿到的调试信息更齐。如果是做网页自动化流程,比如批量抓取公开页面信息、模拟用户走完一个下单流程,选 @modelcontextprotocol/server-chrome 会更顺手,它对Puppeteer的封装让AI的每个动作都很明确。
两个可以同时配置,给它们起不同名字就行。MCP Server不是只能配一个,我本地就是两个都挂着的,根据任务性质侧重使用。
2.3 先单独跑一遍Server:在配置Trae之前排除基础故障
这一步是我强烈建议做的。很多人出了问题直接怀疑Trae配置写错了,其实很可能是Server本身在这台机器上就没跑起来。
在系统终端里直接执行:
npx -y chrome-devtools-mcp@latest这个命令会临时拉取并启动Server。如果看到类似Server启动成功、等待输入的信息,那就说明包安装没问题、Chrome能正常访问,问题不在Server本身。运行一段时间后按Ctrl+C退出即可。
如果这一步就报错,先对照排查:Node版本是否过低、Chrome浏览器是否安装、环境变量里有没有指向Chrome的路径。在终端先把基础问题解决掉,再进Trae配置,排查范围会小很多。
顺带说一下,chrome-devtools-mcp默认会在系统里找Chrome浏览器。如果系统装的是Chromium,或者Chrome安装路径比较特殊,在单独启动时需要显式指定浏览器路径。具体参数用--help查看当前版本的说明,不同小版本会有差异。
3. Trae里的MCP配置:从零写出能稳定连接的配置文件
3.1 配置入口:项目配置文件与设置面板
Trae的MCP配置入口有几种方式,不同版本界面可能略有调整,但最通用、最可控的方式是项目级配置文件。通常是在项目根目录下创建或修改.trae/mcp.json这个文件。
如果你用的是传统IDE思维,也可以去设置面板里找到MCP管理入口,通过界面添加Server。但我个人更推荐直接改配置文件,原因有两点:第一,json格式的东西一眼就能看全,不会出现界面表单和实际配置不一致的情况;第二,配置文件可以提交到Git仓库里,团队其他成员拉下来就能用,不需要每个人重新在界面上敲一遍。
另外,如果只是临时想试一下,不打算影响当前项目,可以优先考虑在工作区级别的配置文件里添加,避免把实验性的MCP Server带进正式项目的依赖里。
3.2 mcp.json字段逐个拆解:command、args、env该写什么
Trae的MCP配置格式和MCP生态的标准格式基本一致,核心都是一个叫mcpServers的JSON对象。下面是一个最基础的结构:
{ "mcpServers": { "chrome-mcp": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest"], "env": {} } } }这里面每个字段的含义都在下面:
mcpServers:配置根节点,里面可以挂多个Server,每个Server用唯一的key区分。command:启动Server时要执行的命令行程序。可以直接写npx,也可以写完整路径,后面讲踩坑时会专门说这个字段。args:传给命令的参数数组。最核心的就是-y让npx不用交互确认直接安装,以及Server包名。如果Server支持额外参数,也按数组元素依次追加。env:传给Server进程的环境变量对象。比如有的Server需要CHROME_PATH,有的调试时配DEBUG,都在这里写。cwd:可选字段,指定Server在哪一个目录下启动。disabled:可选字段,设为true可以让这个Server默认不加载,需要时再启用,适合挂了好几个Server但不想全部常驻的场景。
3.3 两种Server的实际配置示例
先看chrome-devtools-mcp的标准配置。它在做前端调试时非常方便,启动后AI能直接拿到DOM快照和控制台信息:
{ "mcpServers": { "chrome-devtools-mcp": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest"], "env": {} } } }如果你的场景需要固定CDP端口,可以加参数指定:
{ "mcpServers": { "chrome-devtools-mcp": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest", "--port", "9222"], "env": {} } } }再看 @modelcontextprotocol/server-chrome 的方案。这个Server基于Puppeteer,如果系统Chrome路径不在默认位置,必须在env里显式指定:
{ "mcpServers": { "puppeteer-chrome": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-chrome"], "env": { "CHROME_PATH": "/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" } } } }Windows下CHROME_PATH的写法和macOS不一样,常见路径是:
"CHROME_PATH": "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"注意Windows路径在JSON字符串里需要对反斜杠进行转义,写成两个反斜杠\\,或者直接改用正斜杠/,两种方式都能被Node接受。
3.4 连接状态怎么看:配置完别急着对话,先验证
保存mcp.json之后,回到Trae的MCP管理面板。正常情况下,刚才配置的Server名称旁边会从"未连接"或"连接中"变成"已连接",并列出它暴露出来的工具列表。
如果没有立刻变化,尝试在面板里点击刷新或重新加载。这里不要犯我之前犯过的错误:刚保存就急着让AI操作浏览器,结果AI告诉你找不到工具。因为MCP Server的启动有一个过程,首次还要用npx拉包,等个十几秒再验证是正常的。
验证的方式很简单,直接对AI说:"用浏览器打开 https://example.com,告诉我页面上有什么内容。"如果AI正确返回了页面标题和正文,那么恭喜,链路已经通了。接下来就进入真正好玩的实测环节。
4. 连接上之后的实测:让AI读取、点击、截图、查报错
4.1 读取页面内容:AI"看到的"不是截图而是结构化文本
连接成功之后,我做的第一个实验是让AI打开一个本地开发页面,读取渲染后的内容。
我在本地放了一个简单的HTML页面,里面有一个动态渲染的列表。我对AI说:"用浏览器打开 http://localhost:5173 ,把页面里的列表项全部列出来。"AI先是调用导航工具打开了页面,然后调用DOM读取工具拿到了渲染后的完整文本,最后把列表项如实列了出来。
这个过程看起来简单,但细想一下很有用。之前让AI看页面只能靠截图,而截图里的文字会有清晰度问题,AI识别还有误差。现在AI拿到的是页面渲染之后的结构化数据,每一个标题、每一段文字都是精确的,相当于AI跳过"看图片猜文字"这一步,直接读源码层面能看到的内容。
有一点要注意:AI读取的是当前打开的这个标签页,而不是整个浏览器的所有标签。如果AI之前打开过别的页面,最新的操作会停留在最后一个标签,指令里最好说清楚"在刚才打开的页面"或者"新开一个页面打开xxx"。
4.2 页面操作:点击、输入、滚动背后的工具调用
读取只是最简单的应用,Chrome MCP真正提升效率的是操作能力。
我专门做了一个带登录框和按钮的demo页面,让AI模拟用户操作。我对AI说:"在刚才的页面里,输入用户名admin,密码123456,然后点击登录按钮。"AI很快就调用了输入工具和点击工具,把值填进表单,点击了登录。页面跳转之后,AI又顺手读取了新页面的URL和内容。
这个能力意味着什么呢?以后你在Trae里面改完一个前端页面,不需要自己反复切到浏览器里手动验证流程了。可以让AI自己打开页面、点按钮、跳转路由、把关键状态反馈回来。
不过操作类任务有一个前提:AI需要知道目标元素在哪。常见的方式是先让AI读取一次页面快照,拿到按钮、输入框的位置和特征,再执行操作。如果页面是动态渲染的,点一个按钮之后DOM变了,AI往往会再取一次快照,整个过程慢一点,但结果是准的。
4.3 捕获Console报错与网络状态
这个是我目前用得最多的场景。我在demo页面里故意写了一段会报错的JavaScript,然后对AI说:"检查当前页面的控制台,看看有没有报错。"AI调用控制台日志工具之后,直接返回了报错内容和报错位置。
你可以想想这个场景的价值。以前遇到前端报错,流程是:自己打开浏览器开发者工具、切到Console面板、刷新页面、肉眼扫报错。现在直接在Trae里对AI说一句话,AI就能把控制台日志抓回来,很多运行时错误一眼就能定位。
更进一步,这个能力还可以和Trae本身的代码编辑能力串联起来。AI发现报错之后,你让它直接分析报错对应的源码,再给出修复方案,整个"定位问题-分析问题-提出修复"的过程都在同一个对话里完成,不用来回切换工具。
4.4 截图能力:视觉验证前端样式
Chrome MCP还可以直接截取当前页面的截图,这个能力虽然简单,但在视觉层面很实用。
我对AI说:"打开页面,截个图,告诉我页面的主要配色和整体布局。"AI执行截图之后,我能看到它返回了截图文件,同时还用自己的视觉能力描述了一下页面情况:哪个区域是主色、导航在顶部、页面主体是什么。
截图能力的一个使用技巧是把它用在"样式失效"的场景。比如AI改了某个CSS变量,你想确认页面颜色有没有变,可以让AI截个图自己看,也可以直接在对话里要求"截图后检查背景色是否符合预期"。当然,截图是位图,AI的视觉判断有一定的容错范围,不要拿它去做像素级的严格对比,更精确的验证还是得看计算样式和DOM结构。
5. 我从配置到跑通过程中踩过的坑(附完整排查链路)
5.1 最经典的失败:spawn npx ENOENT
这是我在配置过程中遇到的第一个硬故障,报错信息大概是:
spawn npx ENOENT我的第一反应是配置写错了,反复检查了command和args,发现都没问题。后来冷静下来一想,这其实是桌面应用最常见的一类PATH问题。
完整排查链路是这样的:
第一步,在Trae里确认报错确实指向npx找不到。第二步,自己在系统终端里执行npx -v,结果完全正常。这就很矛盾了:系统终端能用npx,Trae却说找不到。第三步,去查Trae进程继承的环境变量。桌面应用一般是通过快捷方式启动的,启动时继承的PATH往往比从终端启动要少,经常没有包含Node.js的安装目录。
解决办法有两个:
第一种,重启Trae,并且确保让它的启动方式是会加载完整用户PATH的。如果你是用命令行启动Trae的,直接把命令行进程关掉重新打开,让新进程继承终端的PATH。第二种,也是最稳定的,不依赖PATH,直接在mcp.json里写npx的绝对路径:
Windows:
"command": "C:\\Program Files\\nodejs\\npx.cmd"macOS或Linux:
"command": "/usr/local/bin/npx"路径可以通过where npx或which npx查出来。写成绝对路径之后,再也没出现过ENOENT。
5.2 连上之后AI调用工具报Target not found
连接状态已经变成"已连接",工具列表也加载出来了,但当AI真正执行打开页面的操作时,报错提示找不到目标页面,类似Target not found或者Page not open。
这个问题出在Server尝试启动浏览器时。Chrome MCP Server虽然可以自己拉一个浏览器实例起来,但这个过程受很多因素影响:系统里没有装Chrome、装了但路径不在默认位置、Port被占用,都可能导致启动失败。
排查思路从简到繁:
第一步,确认系统里能正常打开Chrome,而且不是Chromium内核的其他套壳浏览器。第二步,在mcp.json的env里手动指定CHROME_PATH,不让Server自己猜。第三步,最稳妥的办法:手动启动一个带调试端口的Chrome实例,让MCP Server只负责连接:
chrome --remote-debugging-port=9222然后在Server配置里通过参数或环境变量指定连接到9222端口,Server就不用自己负责启动浏览器了,成功率高很多,也方便排查。
5.3 Chrome单例模式导致的启动失败
这个问题和上一个问题经常一起出现,但本质不同。
Chrome有一个很"顽固"的行为:当一个用户数据目录已经有实例在运行时,新启动的Chrome进程不会真正启动,而是只会把新的窗口请求转交给已有实例,然后自己直接退出。对普通用户这是好事,但对自动化工具来说是灾难。Puppeteer系的Server想启动一个全新的浏览器实例时,发现你的日常Chrome已经在跑,新实例刚起来就退了,结果就是AI操作页面时找不到可用的目标。
排查方式很直接:把你手动开着的Chrome窗口全部关掉,包括后台进程,然后再让AI尝试执行打开页面的操作。如果这样就能成功,说明问题就是单例冲突。
长期解决办法是给自动化用的Chrome指定一个独立的用户数据目录,不要和日常浏览共用。这样日常Chrome开再多的窗口,也不影响MCP Server拉起自己专用的浏览实例。注意,指定了独立用户目录之后,那个实例里不会自动带上你的登录状态,所以涉及需要登录的页面,得在自动化实例里重新登录一次。这反而是一件好事,相当于把日常浏览和AI自动化完全隔离了。
5.4 DOM太大被截断:AI"读不全"页面
页面能打开了,操作也能做了,但AI开始"选择性失明"。它在给我总结页面内容的时候,明明页面上有几十条数据,它只说出了前几条,而且看起来不像是在故意省略。
问题的根源是上下文窗口。页面DOM结构太大时,MCP Server返回给AI的文本内容超过了AI单次能处理的上下文限制,超出的部分被截断了,AI不是不想看,是看不到。
解决这个问题的思路是让AI"缩小关注范围"。不要笼统地说"读取整个页面",而是明确说"只提取页面上的标题和第一屏文字"或者"列出页面上所有链接的href属性"。还可以把指令改成让AI先获取页面快照,根据快照定位到页面某个区域的局部内容,再针对这一小部分去做详细读取。
另外,同一段DOM不要反复让AI读取,每读一次都会占用上下文空间。对话多了以后即使页面不大,AI也可能因为对话历史过长而出现"忘记"页面内容的情况,这时候让AI重新读取一次页面会比在旧上下文里硬翻更高效。
5.5 Server占用与安全边界
最后一个坑不是技术问题,而是使用习惯问题。Chrome MCP把真实浏览器的控制权交给了AI,这本身就有"手滑"风险。
我试过一个场景:让AI在一个表单页面里演示"提交数据"的流程,它真的按下了提交按钮。还好当时用的是测试页面,如果是线上后台管理界面,这一下可能就把线上数据改掉了。
目前的建议是:给AI用的浏览器实例尽量独立,使用专门的无痕窗口或独立用户数据目录,不让它登录生产环境的重要账号。操作之前把页面切到测试环境,不要夹带任何真实敏感数据。自动化任务结束后,让AI主动关闭它打开的标签页,减少状态残留。
安全边界不是配置问题,是使用纪律问题。工具本身没有恶意,但使用的人要在每一轮对话里想清楚"这个按钮按下去会不会有不可逆的后果"。
6. 进阶玩法:把浏览器能力接进日常开发流程
6.1 端到端自检循环:AI代替人工点页面
配通Chrome MCP之后,我逐渐把它从"偶发调试工具"升级成了"日常自检流程"。
现在我在Trae里经常这样发指令:"先运行npm run dev,然后用浏览器打开 http://localhost:5173 ,检查首页的登录按钮是否正常渲染,点击它,告诉我跳转后的页面URL和页面标题。"
这本质上是一个端到端自检循环。以前这个流程要自己打开终端、启动开发服务、切浏览器、操作、再回到编辑器,来回切换至少五分钟。现在一条指令下去,AI自己完成全部操作,甚至可以在发现问题时直接回去改代码。
有一点经验值得提:别让AI一次做太多步骤还不给明确的停止条件。比如让它"点完所有按钮看看有没有报错",它可能会在一个页面上反复操作很久。比较好的做法是给任务加边界:"点完登录按钮,确认跳转成功就停,不要继续点击其他区域。"
6.2 一次配置,团队复用:把MCP配置提交进仓库
项目级的.trae/mcp.json是可以提交到Git仓库的。团队成员拉下代码之后,只要本机满足Node版本和Chrome安装这些前置条件,打开Trae就能直接用,不需要每个人都去记一份配置。
我自己维护配置时会特别注意三点:
第一,mcp.json里不放任何认证凭证。目前Chrome MCP还没有需要token的配置,但团队里如果挂了其他需要认证的MCP Server,例如数据库类,token一定不要写进配置文件,统一用环境变量注入。
第二,README里写清楚前置条件的版本要求。团队里有人从配置到跑通花了很久,最后发现是Node 16的问题,版本要求写清楚之后基本不会再踩。
第三,配置变更通过Pull Request走代码评审。MCP配置看起来只是几行JSON,但它实际上影响了所有开发者本机的AI工具行为,这个变更应该像代码一样被审阅。
6.3 让AI更精准调用工具的对话技巧
Chrome MCP加载之后,AI能调用的工具可能有一二十个,它在对话里判断该用哪个工具,本质上是一个语义匹配的过程。想让AI准确命中浏览器操作,对话指令里就要把意图说清楚。
比如想让AI去验证页面效果,直接说"用浏览器打开xxx看看";想让AI总结一篇链接里的内容,说"打开链接之后读取正文";如果只给一个链接让AI凭知识回答,它可能压根不会去调用浏览器,然后用一个不太准确的历史记忆糊弄你。
还有一个容易踩的细节:AI在已经打开了某个页面之后,如果新的指令里没有出现"打开""导航"这类词,它可能不会主动切换页面,而是在当前页面上执行操作。所以多页签操作时,每次切换都说清楚"先打开xxx页面",让AI在正确的上下文里做事。
6.4 日志级别与调试排错技巧
最后分享一个排错技巧。如果配置了Server之后各种连接问题迟迟搞不定,可以把MCP Server的日志打开,看Server进程到底在执行什么:
{ "mcpServers": { "chrome-devtools-mcp": { "command": "npx", "args": ["-y", "chrome-devtools-mcp@latest"], "env": { "DEBUG": "chrome-devtools-mcp*" } } } }设置DEBUG环境变量之后,Trae的MCP输出面板里会打出Server和浏览器之间的交互日志。比如它会在哪个环节尝试启动Chrome、往哪个调试端口发请求、收到什么错误响应,都能看得一清二楚。
这个日志模式用完记得关掉。开着DEBUG跑,日志会非常啰嗦,AI在读取上下文的时候可能会被这些不相关信息干扰,反而影响判断。
回到一开始那个问题:AI写前端代码却不知道页面效果,这件事到底怎么解?我现在的答案就是给AI配一个浏览器作为感官。配置Chrome MCP本身并不复杂,真正让它产生价值的是"AI自己验证自己写的代码"这条工作流。我现在不仅用它在Trae里调试页面,还会让它辅助做页面内容的快速核验,整个开发闭环顺畅了很多。
最后分享一个小技巧:可以专门在项目根目录放一个agent-tasks.md,把常用的验证任务整理成固定指令,比如"改完样式后让AI截图确认"、"改完逻辑后让AI打开页面点击关键路径"。这样每次只需要让AI去读这个文件再按步骤执行,比每次从零描述一遍稳定得多,也不会漏掉关键验证点。