Skip to main content

模块六:高级前端 AI 进阶

从"对话式编程"进化到"工具化协作"

前端开发者的高级 AI 技能:Skills 工具调用、Function Calling 函数调用、MCP 协议、Repomix 全量上下文、v0.dev 原型生成、Aider 工作流与 AI 驱动 TDD 实践。

在前五个模块中,我们掌握了如何通过对话、上下文管理和领域知识来驱动 AI。但在复杂的前端工程中,仅仅靠对话是不够的。高级前端开发者需要更进一步:把 AI 变成一个拥有手脚、能够调用工具、甚至能自我修正的"数字队友"

本模块将重点讨论如何利用 Skills(技能)Function Calling(函数调用) 以及高级工程化思维来大幅提升效率。


一、理解 Skills(技能)与工具调用

在 Trae 或 Cursor 等现代 AI 编辑器中,AI 不再只是一个聊天窗口。它拥有 Skills(技能) —— 即 AI 能够主动执行的操作。

什么是 Skills?

Skills 是 AI 的"手脚"。比如:

  • 文件操作:读取、写入、重命名、删除文件。
  • 终端命令:运行测试、安装依赖、启动服务。
  • 代码搜索:通过语义搜索(Semantic Search)或 Grep 查找代码。
  • 浏览器预览:打开预览窗口查看 UI 效果。

高级用法:组合技能

不要只让 AI "写个组件",试着下达更复杂的指令:

  • "帮我重构这个组件,提取出逻辑到 Hook 中,并运行现有的单元测试确保没写坏。"
  • "分析当前页面的性能,找出渲染瓶颈,并自动尝试修复它。"

核心逻辑:当你下达指令时,AI 会在后台不断调用不同的 Skill(读取代码 -> 分析 -> 写入修改 -> 运行测试),这比你手动复制粘贴代码要高效得多。


二、Function Calling(函数调用)的妙用

如果你正在开发自己的 AI 应用(比如一个 AI 驱动的管理后台),Function Calling 是连接 AI 与业务逻辑的桥梁。

场景:智能数据报表

假设你有一个复杂的数据表格,用户想要"查看上个月上海地区的销售额,并按产品类别排序"。

  • 传统做法:用户手动筛选、排序、计算。
  • AI + Function Calling
    1. 你定义一个函数 getSalesReport(city: string, dateRange: string, sortBy: string)
    2. 将这个函数描述(JSON Schema)传给 LLM。
    3. LLM 识别出用户的意图,返回结构化参数:{ city: "上海", dateRange: "2024-05", sortBy: "category" }
    4. 你的前端代码自动执行该函数,并展示结果。

对前端的启示: 作为高级前端,你需要思考:哪些业务逻辑可以抽象为函数供 AI 调用? 这种"自然语言驱动 UI"的能力将是未来高级前端的核心竞争力。


三、高级 Prompt 工程:约束与规范

在高级开发场景下,Prompt 不再是简单的描述,而是结构化的协议

1. 使用 .trae/rules.cursorrules

正如我们在 README.md 中看到的,通过配置文件定义项目规范(如:禁止使用某种库、强制使用 TypeScript、特定的目录结构)是最高级的提效手段。

2. 角色化与上下文注入

不要只说"写个表格",要说:

"你是一个精通 Ant Design 5 的资深前端专家。请根据现有的 IUser 接口,写一个支持服务端分页和排序的表格组件。注意遵循我们项目中 src/utils/request.ts 的封装规范。"


四、AI 驱动的重构与调试

1. 深度重构

AI 擅长处理枯燥的模式转换。

  • 示例:将整个项目的 class 组件转为 Hooks 组件;将 JS 项目迁移到 TS。
  • 技巧:先给 AI 一个"黄金模版"(Example),然后让它批量处理。

2. 自动化调试(Debugger Skill)

当遇到难以排查的 Bug 时,可以利用 AI 的调试技能:

  • "我遇到了一个内存泄漏问题,请帮我分析 useEffect 中的闭包,并在可能出问题的地方加上日志,然后通过终端观察输出。"

五、主流 AI Skills 与最佳实践

除了编辑器自带的基础能力,市面上已经形成了一套成熟的 AI 提效工具链和工作流。

1. MCP(Model Context Protocol)- 跨工具的"通用插座"

MCP 是 Anthropic 推出的开放协议,旨在让 LLM 能够安全、标准化地访问外部数据源。

  • 核心价值:不再局限于代码。通过 MCP,你可以让 AI 访问你的 Google Drive 文档、Slack 消息、本地 PostgreSQL 数据库,甚至是 Jira 任务。
  • 最佳实践:配置一个 GitHub MCP Server,让 AI 直接读取 PR 评论或 Issue 详情,辅助编写代码。

2. Repomix / Code2Prompt - 全量上下文打包

当需要 AI 进行大型架构调整或跨模块重构时,零散的文件读取往往不够。

  • 工具repomix 可以将整个仓库(排除 node_modules)打包成一个结构化的文本文件。
  • 场景:将打包后的文件投喂给 Claude 3.5 Sonnet 等长上下文模型,询问:"基于目前全量代码,如何将状态管理从 MobX 迁移到 Zustand?给出详细方案和风险点。"

3. v0.dev / Screenshot-to-Code - UI 快速原型

高级前端不应该在基础样板代码上浪费时间。

  • v0.dev:Vercel 推出的 AI,通过自然语言生成高度可用的 React + Tailwind + shadcn/ui 组件。
  • Screenshot-to-Code:直接上传一张 UI 设计稿截图,AI 自动还原 HTML/CSS 或 React 代码。
  • 最佳实践:用 v0 生成 80% 的 UI 结构,然后由 AI 助手接入业务逻辑。

4. Aider / Composer 工作流 - 高频编辑循环

  • Aider:基于终端的 AI 编程助手,擅长通过 Git Diff 进行精准修改。
  • Composer (Cursor/Trae):通过多文件同步编辑能力,实现“一句话修改全局逻辑”。
  • 最佳实践:保持 Small Commits。每让 AI 完成一个原子功能,立即 commit,利用 Git 作为 AI 的“回滚点”。

5. AI 驱动的 TDD(测试驱动开发)

AI 非常擅长根据函数定义写测试,或者根据测试写实现。

  • 工作流
    1. 你定义函数签名。
    2. 让 AI 写出覆盖正常、边界、异常情况的单元测试。
    3. 让 AI 运行测试并根据报错信息补全函数实现。

六、实战建议:建立你的"AI 工具箱"

  1. 收集常用 Prompt:将那些能产出高质量代码的 Prompt 存为模版。
  2. 定义项目规则:每个新项目第一件事就是写好 .trae/rules
  3. 创建或集成 Skills:不要局限于编辑器自带的能力,尝试编写自定义脚本封装高频操作,或在团队内部署共享的公共 Skills(如自定义代码审查、一键部署流),让 AI 直接调用。
  4. 尝试 MCP(Model Context Protocol):学习如何通过标准协议给 AI 增加更多外部数据源(如接入 Jira 任务、GitHub PR、甚至是你的笔记软件)。
  5. 接入 CI/CD 流水线 (AI Code Review):将 AI 脚本接入 GitHub Actions 或 GitLab CI,在每次提交 PR 时自动进行代码审查、生成变更摘要,甚至提前拦截低级错误。
  6. 构建团队专属 RAG 知识库:如果团队有自研组件库或复杂的业务中台,建立一个基于向量数据库的私有知识库,让 AI 在写代码时先去检索内部文档,杜绝“幻觉”。
  7. 异常监控自动化联动:探索将线上错误日志(如 Sentry)的 Webhook 接入到 AI Agent,当发生报警时,AI 自动拉取错误栈对应源码,分析原因并生成初步的修复 PR。

🧠 思考题

  1. 在你当前的项目中,有哪些高频操作可以通过自定义 Skill 或脚本来让 AI 自动化完成?
  2. 如果要实现一个"自然语言查询数据库"的前端功能,你会定义哪些 Function Calling 接口?
  3. MCP 协议的出现,如何改变了 AI 助手的边界?它让 AI 能够获取到哪些以前无法触达的“隐性上下文”?
  4. 在使用 v0.devScreenshot-to-Code 生成 UI 后,作为高级前端,你通常需要做哪些后续处理才能使其达到生产环境要求?
  5. 为什么说“保持 Small Commits”是与 AI 协作时的核心安全策略?

下一步

恭喜你完成了核心能力的修炼!现在你可以前往 README.md 查看如何开始你的毕业项目。