鱼皮AI导航
鱼皮AI导航
  • 主页
  • 社区
  • AI工具
  • AI知识库
  • AI提示词
  • MCP
  • Skills
  • AI学习资源
  • AI资讯
  • GitHub开源
登录/注册
站长:程序员鱼皮 老鱼简历 商务合作 增值电信业务经营许可证
2026 鱼皮AI导航 | 沪ICP备19026706号-6
46
10
53
精选

这年头谁还自己写代码啊。。。

KINNONG
KINNONG
2024-12-09 10:46
阅读 3164
KINNONG
2024-12-09 10:46
阅读 3164

大家好,我是程序员 K.N,正在试图用代码和世界重新打结 ~

上周,我看到社区里有个小伙伴发问:“如果我用 GPT 完成了整个前端,后端也全靠 GPT,这样到底好不好呢?”

“人工智能 VS 人类”这个老生常谈的问题嘛,一直都是呈两极分化状态的。一些人觉得 AI 是救世主,从此开发者只需要喝茶看代码,其他工作交给工具就好。也有一部分人则把 AI 看成了“吃饭的工具”,甚至觉得会取代人类的工作,未来的开发者都要“失业”了。

而我呢,刚好介于这两种看法之间——既没有迷信 AI 到觉得它能解决所有问题,也没有过分恐惧它会抢走我的工作。说到底,工具再智能,它始终只是个工具,最终能否解决问题,还是得看你怎么使用它。

想起 22 年底的第一次接触 GPT,那种初次见面的惊艳感促使我一整晚都在研究,看到它能流畅地生成代码、写文章,甚至回答我前后端相关的疑问,我立刻意识到:这不只是个传统的 AI 聊天工具,而是一个能够极大提高开发效率的神器!

undefined

于是接下来的日子里,我开始把 GPT 当作搭档,尤其是在面对一些重复性的任务时,它帮我节省了大量时间。不仅能为我提供技术支持,甚至可以帮我生成各种写作素材、调整代码结构、甚至编写一些复杂的功能模块,实在是太香了 ~

这篇文章,先不谈 AI 和工具的哲学问题,我们先来聊聊:我是如何利用 GPT、Cursor 和一些简单的截图,迅速上线了一个短视频网站的(不写一行代码)

预览地址: https://tiktok-clone-ashy.vercel.app/

AI 在这过程中又是如何给我打工的,话不多说,坐稳扶好,发车咯 ~

Prompt Improve

在项目开发过程中,精准的 Prompt 是成功的关键。虽然 Cursor 的 Composer Agent 模式已经能够通过自然语言生成项目和代码,但要让它发挥最大作用,我们还需要通过一些优化提示词,让 Cursor 更清晰地理解我们的需求,并提高代码质量。如何给它提供准确且优化的提示词,是决定工具能否高效帮助开发的关键。

那么问题来了——怎么才能让 GPT 以及 Cursor 更好地理解我的需求,输出更精准的提示词和建议呢?我总结了一些关键点:

  • 身份设定
  • 明确需求
  • 细化任务
  • 使用上下文
  • 逐步迭代

身份设定

首先,我会写一段这样的提示词,以告诉 GPT 生成一个我想要的身份。例如,假设我要创建一个 AI Prompt Engineer 作为我的工作助手:

▼
css
复制代码
// prompt 我要做 [] , 请帮我虚构一个 [] 的身份背景 需要包括教育背景、研究领域、教学经历、学术成就和行业经验。 [拓展] // 如 我要写有助于 Cursor 理解的 AI 提示词,请帮我虚构一个 AI prompt engineer 的身份背景 需要包括教育背景、研究领域、教学经历、学术成就和行业经验。 除了简单的 AI Prompt Improve,我可能还需要他具备一些额外的能力,比如:对开发者需求的理解能力、跨学科的能力、教学经验等

一般 GPT 会按照你的要求,生成这样一段结果:

▼
css
复制代码
姓名:王思远 职位:AI 提示工程师(AI Prompt Engineer) 现状:AI 提示与代码优化专家,专注于开发与优化编程辅助工具,尤其擅长通过自然语言与编程语言模型(如 OpenAI 的 GPT 系列)进行高效交互,提升开发者效率。 教育背景: 本科:北京大学,计算机科学与技术(2008-2012) 毕业时以优异成绩获得学位,获得了强大的编程和计算机科学基础,期间开始接触机器学习和自然语言处理。 硕士:麻省理工学院(MIT),人工智能(2012-2014) 深入研究自然语言处理、深度学习和生成模型,提出了若干关于语言模型优化的研究,并且参与了相关领域的前沿课题。 博士:斯坦福大学,计算机科学与人机交互(2014-2018) 研究专注于人机交互与编程语言模型的结合,探索如何通过优化提示词使AI更好地理解开发者意图,提升代码生成和自动化编程的效果。 研究领域: 自然语言处理:探索如何通过特定的提示生成算法提升编程语言模型的准确度与理解能力。 编程语言模型优化:专注于如何让编程模型更好地理解上下文,提高代码自动补全、自动修复、代码重构等功能的精度。 AI 与人机交互:研究如何通过多模态交互技术(如语音、手势等)提升开发工具的智能化和交互流畅度,帮助开发者更直观地编写和调试代码。 教学经历: 麻省理工学院(MIT):教授《人工智能与编程交互》课程,帮助学生了解如何使用AI提升编程效率,课程内容深入讲解了AI与编程语言的结合,并为学生提供了实践项目。 斯坦福大学:教授《自然语言处理与编程工具》课程,带领学生深入研究AI在编程中的应用,探索如何设计有效的提示词生成算法。 在线教育平台讲师:开设了数门课程,帮助全球开发者通过AI提示优化工具提升开发效率,课程受到了广泛好评,拥有大量学员。 学术成就: 论文多篇,发表于 ACM SIGPLAN、CHI、ACL 等国际顶级会议和期刊,研究内容包括自然语言处理在编程中的应用、编程语言模型的提示优化等。 提出并实现了若干编程助手的优化算法,极大提升了编程AI在理解开发者需求和上下文中的表现。 获得了多项专利,主要集中在 AI 提示生成、语言模型优化和人机交互领域。 行业经验: Google:参与了多个编程辅助工具的研发,专注于提升 AI 在编程中的上下文理解能力,成功提升了编程辅助工具的响应速度和准确性。 Microsoft:在多个项目中负责提示词生成算法的设计与优化,帮助开发者更快速、准确地生成代码,尤其是在跨语言和多任务的场景下,提升了 AI 模型的跨语言适应能力。 开源项目:活跃于 GitHub,贡献了大量关于提示优化和编程辅助的代码和算法,推动了多个开源项目的发展。 行业演讲:曾多次在全球开发者大会(如 PyCon、Google I/O、Microsoft Build)上发表主题演讲,分享如何使用 AI 工具提升编程效率,介绍自己在提示优化方面的研究成果。

这段由 GPT 生成的身份描述,基本涵盖了一个AI 提示工程师可能具备的背景、能力、经验等方面,尤其是针对提示优化和开发工具方面的专业知识。

我们复制这段生成的身份信息,在其开头简单描述一下需要他代入这个身份与我对话,并需要他做什么样的工作,例如:

▼
css
复制代码
我需要你代入以下身份信息与我对话,以更好的协助我完成 AI 提示词优化相关的工作: ... // 生成的身份信息

明确需求

其实我的需求很简单,就是我给 GPT 发一张截图,GPT 扫描识别截图页面上的结构,帮我生成一些有助于 Cursor 开发的提示词,但这么说肯定不行,不管是实际开发评审还是给 AI 指定工作,我们描述需求的时候一定要越细越好 !这样才有助于理解,减少误解以及返工。

接下来,我们就需要靠着设定好的身份信息,给他明确一个需求:

▼
text
复制代码
// prompt 在接下来的过程中,我需要你始终以以下方式进行给我提示词: 1)我会给你上传一张图片,这个图片可能会是某些 UI 的设计稿,也有可能是一些现成的网站页面截图,而且我将会告诉你我要做的是 网站应用 还是 移动端应用。 2)你需要通过仔细分析图片中的 UI 、页面布局、样式等元素,并了解图片中的整体结构。 3)在你分析完图片后,你会给我 step 1:生成初始页面提示词、以及 step 2:页面结构分析。在我没给你 <执行 step 2 / 给我生成页面结构等指令时>,你需要先执行 step 1 ,等我告诉你需要 <执行 step 2> 时,你才能够继续执行 step 2, 接下来我会告诉你每一步的细节。 4)step 1:生成初始页面提示词 给我生成一段 cursor 可识别的 AI Prompt,用于给 Cursor 描述要做的重点需求及功能,你需要考虑的点应该包含但不限于以下内容: 固定要求,用于每次生成提示词都应该向 Cursor 描述清除该项目要使用的技术栈、要求、细节、规范等,例如: 根据这些要求创建详细的组件: 1.使用 TailWindCss 实用工具类进行响应式设计; 2.遵循主流的 import 规范: — 使用@/ path别名 - 保持 import 的组件有组织,有排序 - 更新当前src/app/页面。与TSX新全面的代码 - 不要忘记每次都处理入口文件(page.tsx) - 必须在停止之前完成整个提示 开发要求,用于针对不同的页面、截图中的布局,生成不同的提示,但整体逻辑不变,应包含以下内容: <summary_title> // 用于描述网站标题 <image_analysis> // 用于描述你分析后的图片中包含的元素,包含但不限于:导航栏、布局组件、正文内容、主题颜色等 <development_planning> // 用于描述整体项目的文件规划等,包含但不限于:项目结构描述、关键特性描述、路由描述、组件结构等 5)第 3、4 点中提到的关于提示词的描述风格以及必要内容格式,可以参考以下提示词: Create detailed components with these requirements: 1. Use 'use client' directive for client-side components 2. Style with Tailwind CSS utility classes for responsive design 3. Use Lucide React for icons (from lucide-react package). Do NOT use other UI libraries unless requested 4. Use stock photos from picsum.photos where appropriate, only valid URLs you know exist 5. Configure next.config.js image remotePatterns to enable stock photos from picsum.photos 6. Create root layout.tsx page that wraps necessary navigation items to all pages 7. MUST implement the navigation elements items in their rightful place i.e. Left sidebar, Top header 8. Accurately implement necessary grid layouts 9. Follow proper import practices: - Use @/ path aliases - Keep component imports organized - Update current src/app/page.tsx with new comprehensive code - Don't forget root route (page.tsx) handling - You MUST complete the entire prompt before stopping <summary_title> Educational Platform Landing Page with Feature Highlights </summary_title> <image_analysis> 1. Navigation Elements: - Top header with: Home, Features, Pricing, Contact Us - Right-aligned CTA button "SwQlae'Gw" - Logo "TEA" in left corner 2. Layout Components: - Full-width hero section (100vw) - 4-column feature grid (25% each on desktop) - Centered content alignment - Padding: 48px horizontal, 64px vertical 3. Content Sections: - Hero section with headline and subtext - Feature cards (4x) - Each card contains: - Illustration - Heading - Description text - Consistent padding (24px) 4. Interactive Controls: - Primary CTA button "Sey BΣeσν ΘiN" - Navigation links with hover states - Feature cards with hover effects - Responsive image scaling 5. Colors: - Primary: #7B8AF9 (purple/blue) - Secondary: #FF7B7B (coral) - Accent: #FFB84D (orange) - Text: #2D3748 (dark gray) - Background: #F8F9FF (light purple) 6. Grid/Layout Structure: - 12-column grid system - 24px gutters - Responsive breakpoints: - Desktop: 1200px - Tablet: 768px - Mobile: 375px </image_analysis> <development_planning> 1. Project Structure: src/ ├── components/ │ ├── layout/ │ │ ├── Header │ │ ├── Hero │ │ └── FeatureGrid │ ├── features/ │ │ ├── FeatureCard │ │ └── CTAButton │ └── shared/ ├── assets/ │ └── illustrations/ ├── styles/ ├── hooks/ └── utils/ 2. Key Features: - Responsive navigation - Animated feature cards - Interactive CTA buttons - Illustration integration - Responsive layout system 3. State Management: interface AppState { ├── navigation: { │ ├── isMenuOpen: boolean │ └── activeSection: string ├── } ├── features: { │ ├── items: FeatureItem[] │ └── loading: boolean ├── } } 4. Routes: const routes = [ ├── '/', ├── '/features', ├── '/pricing', └── '/contact' ] 5. Component Architecture: - Header (Navigation) - Hero Section - FeatureGrid └── FeatureCard - CTAButton - Footer 6. Responsive Breakpoints: $breakpoints: ( ├── 'mobile': 375px, ├── 'tablet': 768px, ├── 'desktop': 1200px, └── 'wide': 1440px ); </development_planning> 6)在你完成了第 3、 4、5 点后,我们称之为 step 1,以下是 step 2:页面结构分析 我会给你相关指令后,你才能开始执行 step 2,指令可能会是 <执行 step 2> 或者 <生成页面结构>,step 2 中要做的事情就是结合上传的图片,以及 step 1 中的提示词,继续生成用于给 Cursor 描述生成更多页面的提示词,生成的提示词格式如下: 固定要求,开头必须要有以下描述: Next.js route structure based on navigation menu items (excluding main route). Make sure to wrap all routes with the component: 根据图片,重新分析其他的页面的结构,然后你需要告诉 cursor 可能会有的页面以及结构,页面结构包含但不限于以下内容: - Routes: - Page Implementations: - Key Components - Layouts: MainLayout: - AuthLayout - DashboardLayout setp 2 的提示词参考格式如下: Next.js route structure based on navigation menu items (excluding main route). Make sure to wrap all routes with the component: Routes: - /home - /features - /pricing - /contact-us Page Implementations: /home: Core Purpose: Showcase company /product overview and drive user engagement Key Components: - Hero section with CTA button - Feature highlights grid - Customer testimonials carousel - Latest news /updates section - Newsletter signup form Layout Structure: - Full-width hero section - 3-column grid for features - 2-column layout for testimonials - Stacked sections for mobile /features: Core Purpose: Detail product capabilities and benefits Key Components - Feature categories navigation - Interactive feature demos - Comparison tables - Integration showcase - Technical specifications Layout Structure - Sidebar navigation (desktop) - Top navigation (mobile) - Feature cards in grid layout - Responsive tables /pricing: Core Purpose: Present pricing plans and payment options Key Components - Pricing plan cards - Feature comparison table - Custom quote calculator - FAQ accordion - Payment method icons Layout Structure - 3-column pricing grid (desktop) - Single column stack (mobile) - Sticky comparison table header - Floating CTA button /contact-us: Core Purpose: Provide multiple channels for user communication Key Components - Contact form - Office locations map - Support hours display - Social media links - Live chat widget Layout Structure - 2-column layout (form + info) - Full-width map - Stacked sections on mobile - Floating chat button Layouts: MainLayout: Applicable routes - All routes Core components - Header with navigation - Footer with site links - Mobile menu - Search overlay Responsive behavior - Collapsible navigation on mobile - Sticky header on scroll - Adaptive padding/margins - Dynamic font scaling ContentLayout Applicable routes - /features - /pricing Core components - Breadcrumb navigation - Section headers - Side navigation (where applicable) - Content container Responsive behavior - Flexible content width - Collapsible side navigation - Responsive typography - Adaptive spacing system FormLayout Applicable routes - /contact-us Core components - Form container - Input validation - Success/error messages - Loading states Responsive behavior - Flexible form width - Touch-friendly inputs - Keyboard accessibility - Responsive form fields 记住,生成的提示词需要始终以上传的图片为准!不一定要跟参考的格式那样完全一致,需要你进行分析后给到我对应的提示词,以便于我复制告诉 Cursor 该如何做。 希望你深刻理解以上需求,如果你理解了以上的要求,那么可以先等待一会,等待我的指令,如果你有任何的问题或者不清楚的地方,应该随时向我提问并要求我给你更详情的要求描述,如果没问题的话,我将会给你一张图片,以测试你能否胜任该项工作。

接下来,我们就可以发送一张图片以测试下 GPT 是否理解了我的需求,这里我截了一张 Apple 官网的图片发送给他。

事实证明,通过我们的提示词,他能更好的分析网页内容、布局,并优化 Cursor 可以读懂的 Prompt 。

但是 Apple 这个官网太简单了,我们上点硬货给他试试,比如 Tik Tok 的官网,接下来就手把手地带大家用 Cursor 给我们打工。

Cursor 快速构建项目

生成静态页面

这里就不详细介绍 Cursor 的下载安装以及白嫖方式了,有需要的可以自行查阅官网:https://www.cursor.com/

1)新建一个空文件夹,命名为 copy-tiktok,打开 Cursor ,按下 ⌘/ctrl + I 调出 Composer。输入以下提示词使其先创建一个初始化项目:

注意:这里一定要勾选上 agent 模式,否则可能会无法执行终端命令。

完成初始化后,将 Tik Tok 官网的截图发给 GPT ,由 GPT 来给我们生成优化后的提示词,而后直接复制提示词至 Cursor 的 Composer 中,静待他的表演,随后鼠标点点 Accept All 即可。

经过若干秒后,他已经帮我做好了一个 Tik Tok 风格的前端界面,让我们来看看效果

BOOM !真的太强大了!除了视频不能播放外(都是静态图片),其他基本上都实现了,而且每个按钮,每个导航栏,都有做用户交互状态,当页面出来的那一刻,我切实地感受到了 AI 工具带来的便捷,同时也感受到了莫大的压力,我会不会真的被代替了 ?

我们简单调整下,就能让其把所有图片换成可以播的视频了

生成其他路由及页面结构:

接下来,我们利用在 GPT 中写好的 step 2 指令复制给 Cursor ,让其生成更多的页面,做成一个真正可交互的前端界面。

不出意外,借着优化过的提示词,Cursor 轻轻松松地就把剩下的二级页面都做好了,甚至是个人中心、设置、登录等,关注,直播等页面。看图吧,我已经被惊得不知道说什么了。

部署上线

我们仍然坚持不写一行代码原则,让 Cursor 帮我们完成上传部署等工作,输入以下提示词:

▼
css
复制代码
请帮我上传至 GitHub ,并帮我部署到 vercel 托管服务

无脑执行即可。

根据他的相关操作,登录账号、创建仓库等

写在最后

AI 这几年已经从一个抽象的科技概念,逐步变成了我们生活和工作的有力助手。就像我刚才在文章中提到的,AI 是一个强大的工具,它能够加速我们的开发进程,提升工作效率,但它始终是个工具。工具的好坏,不在于它本身,而在于使用它的人。就像你拿到一把锋利的刀,能用它做一顿美味的晚餐,也能用它做出伤害人的事情,最终的结果取决于你自己的判断。

我一直坚信,AI 并不会替代开发者,而是成为开发者的得力助手。它能处理大量繁琐的工作,解放我们的时间和精力,让我们更专注于创造性和复杂性更高的任务。但是,开发者的核心竞争力,依然在于判断力和思维能力。面对海量的信息、技术和工具,我们必须保持对知识的渴求,不断学习新的技能,但更重要的是,我们要学会在信息的海洋中辨别对错,不被虚假的或低质量的 AI 垃圾污染,不要让 AI 污染了我们的大脑。 作为开发者,我们需要不断审视 AI 提供的结果,保持批判性思维,不能一味盲从,要时刻保持清醒的头脑,不断自我迭代,不断进步,确保自己不被这些工具所局限。

AI
前端
技术
46
53
分享
操作
评论
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
🔥热门工具
朱雀AI检测朱雀AI检测
朱雀AI检测助手朱雀AI检测助手
LovartLovart
老鱼简历老鱼简历
WritePass官网WritePass官网
面多多面多多
CursorCursor
星月写作星月写作
零感AI零感AI
墨得问题墨得问题

目录

🔥 热门文章
1
手把手教你设计一个成熟的 Agent Harness
2510
2
我用 REA 逆向了付费颜色 APP,结果很意外!
570
3
离谱,DeepSeek 崩了 5 小时,大家却喊:梁圣恩情还不完??
420
4
DeepSeek 全新模型发布,性价比最高的一集!
380
5
B 站上 DeepSeek 闹鱼灾了,我发起《大肥鱼清除计划》!
370
6
自己学习ai,直接买cursor 的套餐,还是买gpt 或者claude 的套餐?
360
7
又一个国产版 Codex 神器,也来卷办公了!
330
8
day3-如何写出一个高质量的 Skill(组内分享) 高质量 Skill 不是“一个调得很顺的巨型 Prompt”,而是一个可验证、可回归、可维护的能力包。 先定义“什么算好”,再实现“怎么做好”。评估体系先于 Skill 本身成型。 下面用“故障诊断 Markdown 转 YAML”作为例子,但方法是通用的。 --- 一、先想清楚:Skill 到底是什么 一个 Skill 至少包含四部分: 部分 作用 接口 输入什么、输出什么、边界在哪 流程 分几步做,每步的产物是什么 规则 硬约束、经验规则、失败模式 降级策略 不确定时怎么办,而不是硬编一个看似合理的结果 高质量 Skill 的共同点:职责单一、接口清晰、规则可定位、输出可验证。 反例:把几十条经验全塞进一个主 Prompt,改一条规则要重调整个 Prompt,评估时也不知道是哪条规则退化。 --- 二、核心方法:先建评估,再写 Skill 不要先写转换器再补测试。正确顺序是: 1. 定义输出契约:什么算合法、什么算合格; 2. 建金标准集:一小批人工认可“可放行”的样本; 3. 先写评估 Skill:让它在金标准集上跑出基线; 4. 再迭代生成 Skill:每次修改跑同一套评估,无退化且目标维度提升才算正向。 这就是评估驱动开发:评估是 Skill 的单元测试,金标准集是回归锚点。 --- 三、评估 Skill:三层门禁,逐层递进 前一层不过,后一层不跑。每层留可追溯证据。 第 1 层:确定性硬门禁 用解析器、Schema、校验器完成,不消耗模型成本。 · 输出可解析; · 必填字段齐全,类型/枚举合法; · 引用目标存在,无悬空引用、无不可达节点; · 关键路径至少有一条能到达预期出口。 不通过直接打回。 第 2 层:语义断言 用脚本 + 结构遍历检查“逻辑对不对”,仍然保持确定性。 通用检查项: · 覆盖率:源材料里的关键步骤、分支、条件,输出里是否都有对应? · 完整性:每个判断节点是否都有明确出口?有没有死胡同? · 可达性:每条路径是否都能到达预期终点?有没有无出口循环? · 顺序与依赖:有先后依赖的操作,是否保留了顺序?有没有被拍平成无序列表? 例子:故障诊断转换中,检查“每个判断项是否有是/否/异常出口”“每条路径是否能到根因”。 第 3 层:LLM-as-Judge 只处理解析器表达不了的维度:忠实度、完整性、可执行性。 但 Judge 会漂移,不能单独放行,必须建立在第 1、2 层之上。Judge 的 Prompt、rubric、模型版本都要版本化,换模型必须用金标准集重新校准。 通用 Judge 维度: 维度 问什么 忠实度 输出是否忠实源材料意图?有没有自行发明内容? 完整性 关键步骤、条件、证据是否保留?隐式知识有没有被压成空话? 收敛性 输出是否仍指向原目标,而不是发散? 可执行性 下游不依赖源材料能否直接使用? --- 四、金标准集:回归测试的锚点 不需要一开始就标注几百份。用已认可的样本当种子,扩到 15~30 份,覆盖失败模式而非随机抽样: · 完整正例:典型流程; · 边界/异常分支:异常路径、循环、前置失败回退; · 已知易错模式:实际踩过的坑; · 留出集:不参与调优,只用于最终验收,防过拟合。 金标准不需要完美,只需要当前标准下认可可放行。 回归指标:关键路径用 pass^k(k 次全过),稳定性用 pass@k。 --- 五、工程约束:让批量产出可重放 · 幂等:同输入 + 同 Skill 版本 + 同规则 → 输出一致,否则无法判断变好是 Skill 改了还是随机波动; · 隔离不阻断:单份失败进隔离队列,记录失败层和原因,不阻塞其余; · 版本绑定:规则、rubric、金标准集进 Git;每份报告绑定“源版本 + 生成 Skill 版本 + 评估 Skill 版本 + Judge 模型版本”; · 抽样人工复核:Judge 临界样本 + 易错模式,人工抽检结果反过来校准 rubric。 --- 六、Skill 本身怎么写 · SKILL.md 控制篇幅,写清:输入约定、输出契约、分步流程、硬规则、降级策略; · 经验规则放 references/ 或 rules/,按失败模式分类,不要全塞进主 Prompt; · 不确定时标 needs_review: true,不要硬编看似合理的结果; · 迭代由评估报告驱动:报告告诉你哪层挂了、哪类失败模式,你改对应规则文件,而不是漫无目的调 Prompt。 --- 七、落地顺序(不要反过来) 1. 固化输出契约:Schema + 结构约束; 2. 建金标准集:从已认可的 + 最易出错的样本开始; 3. 先写评估 Skill:跑出基线报告; 4. 再迭代生成 Skill:每次修改对比逐项通过率,无退化且目标提升才算正向; 5. 批量运行 + 隔离回放:失败进队列,结束后人工抽检; 6. 评估 Skill 自身版本化:换 Judge 模型必须重新校准。 --- 八、给组员的三条硬要求 1. 不许凭感觉说“变好了”:每次修改必须附评估报告对比,逐项通过率说话。 2. 不许跳过确定性门禁直接看 Judge 分数:前两层挂了,Judge 分数没有意义。 3. 不许把规则堆进主 Prompt:规则按失败模式分文件,评估报告要能定位到具体文件。 --- 一句话收尾 生成 Skill 决定“能不能做”,评估 Skill 决定“敢不敢用”。 先让评估体系站稳,再让生成器迭代。这样交付的不是一堆“看起来还行”的产出,而是一套可证明、可回归、可交接的 Skill 质量体系。
310
9
AI 越强,被它拒绝的代价就越大 我有时候会想:AI 越来越厉害之后,有些事情,会不会反而越来越难做? 这个想法看起来有点矛盾。AI 明明在降低门槛,让不会写代码的人做出软件,让不会画画的人生成图片,让一个人完成过去需要整支团队才能完成的工作。但今天用 Codex 的时候,AI 拒绝帮我编写 SQL 注入的请求体,而那还是我有源码、在本地跑测试的情况。那么,往后是否只会更难? 我们假设某一天,AI 说:「这个请求违规,我不能帮助你。」到那个时候,你还有多少能力,能绕过它,把事情做完? 这里的「违规」需要打个引号。平台的规则、模型的判断、法律的要求,以及一件事实际有没有造成伤害,彼此之间并不总是画得上等号。一个请求可能确实危险,也可能只是缺少上下文被误判,或者恰好落在某家公司的限制范围里。 无论是哪种情况,随着我们越来越依赖 AI,这句拒绝都可能变得越来越贵。 今天,一个程序员让 AI 帮忙写代码,AI 拒绝了,他大概率还有别的办法:查文档、找开源项目、问同行,或者自己写。麻烦一点,慢一点,但路还在。 可如果十年之后,大部分程序都由 AI 完成,情况就不一样了。 很多人从接触编程的第一天起,就习惯了描述需求、等待生成、运行结果、继续迭代。他们能做出相当复杂的产品,却未必经历过独立处理底层问题的训练。平时,这种能力结构完全够用,效率甚至更高。只有 AI 拒绝的时候,他们才会发现:平常被省掉的那段学习过程,恰好是此刻最需要的东西。 到那时,一次拒绝的成本,可能就从「今晚多花两个小时」,变成「先花半年学会这门技术」。 拿 SQL 注入举个稍显极端的例子:往后,连真正理解这类攻击如何发生、能够独立构造测试的人,会不会也越来越少? 这里也包括那些有正当需求的人。一个开发者想检查自己的旧系统,一个经过授权的安全研究员想复现漏洞,假如 AI 识别到危险模式就拒绝,而使用者又只熟悉「让 AI 帮我检查」,这项原本可以独立完成的工作,就这样卡住了。 但是安全专家不会因此消失,但这类技能可能越来越集中在少数人手里。你仍然可以找专家,只是要付出更多的钱、更多的时间,以及更高的沟通成本。 类似的困境,未必只发生在网络安全领域。 你想从一个停止维护的软件里取回自己的数据,需要解析它的旧文件格式。AI 判断这涉及规避保护措施,拒绝继续。你拥有这些数据,却没有能力把它们读出来。 你买了一台设备,厂商停止提供服务。你想修改程序让它继续运转,过程中需要处理某种访问限制。AI 不愿协助,而你所掌握的维修方式,早已只剩下「把报错发给 AI」。 你想给常用的网站写一个辅助工具,减少重复操作。平台将此归入自动化限制,AI 也据此拒绝。过去会写脚本的人可以自己判断、自己处理;未来的使用者,可能连从哪里开始都不知道。 这些例子有一个共同点:当工具同时承担了「执行工作」和「传授知识」的角色,它的拒绝就不只是挡住了一次任务,也挡住了获得这种能力的机会。 更麻烦的是,这种依赖往往是我们主动选择的,而且每一步都很合理。 既然 AI 几秒钟就能做好,为什么还要花几个月学习?既然公司可以采购成熟的 AI 服务,为什么还要养一支负责基础工作的团队?既然市场上已经很少有人手写这些东西,学校为什么还要花大量时间教? 对个人、公司和学校来说,这些选择都有现实依据。但叠加起来,整个社会保留的独立能力就可能越来越少。等到某项能力突然受到限制,我们才发现,备用方案早已在追求效率的过程中被一点点削掉了。 所以,「AI 越强,做事越便宜」可能只描述了未来的一半。 另一半是:被允许的事情越来越便宜,被拒绝的事情依然需要人工完成,却要面对更少的人才、更高的报价,以及越来越难获得的知识。两边的成本差距,会越拉越大。 有人会说,可以换一个模型,或者用本地模型。这确实是重要的选项。只要工具之间还有充分竞争,开放模型还足够可用,限制就未必能形成真正的门槛。 但备用方案也需要维护。它需要硬件、知识、软件生态,以及一群仍然理解这些系统的人。如果大多数人已经习惯了最方便的商业服务,那么「理论上还有别的办法」和「普通人实际用得起、用得明白」,之间仍然可能隔着很远。 我担心的,正是这段距离。 我不指望 AI 对任何请求都照单全收。对明显会伤害他人的行为设置限制,有充分的理由。但我们也需要关心:限制由谁定义,误判有没有申诉渠道,用户能不能换工具,以及脱离这个工具之后,还剩下多少独立行动的能力。 保留这些能力,平时看起来甚至有点低效,明明可以自动生成,还要理解原理;明明可以一键完成,还要知道手动怎么做。 但这些看似多余的知识,会在工具拒绝、失效、涨价或改变规则的那一刻,成为真正的选择权。 AI 越强,我们可能越需要留意它说「不」的那一刻。 因为那句话的分量,最终取决于:它拒绝之后,我们还能做什么。
310
10
什么是LLM
300