两周前,我在写一篇关于如何从电商网站抓取产品的文章时,差点把自己写到“想吐”。
原因很简单:我想用一套我为 Datablist 的 AI assistants 写的用于数据分类与编辑的 prompting 框架,去抓取一个叫 GymShark 的电商网站的产品数据。一开始看起来没问题,但最后数据排序全错了——导致整份数据集直接报废。
也就是那一刻我意识到:不同的 AI、不同的场景,需要完全不同的 prompt。
因为在 prompting 这件事上,细节决定成败,哪怕漏掉 5% 的关键点,你的输出也可能就变得毫无用处。
我们开始吧!
本文关键收获:
- Datablist 的 AI agents 可以搜索 Google、访问网站、调用 API 等
- 用 AI agent 时,一个好 prompt 的差距非常大
- 按我们的 best practices 写 prompt,会明显更省心、更稳定
- Datablist 提供 prompt 模板,但真正理解写法依然最重要
Datablist 的 AI Agents vs AI Assistants 对比
要搞清楚“给 AI agent 写 prompt”和“给 AI assistant 写 prompt”的差异,首先要明确这两类能力边界。
下面用两段非常短的说明,快速概括它们各自能做什么:
AI Assistant
Datablist 里的 AI assistants,主要用于读取、分类、提取、编辑,以及生成文本和代码。
AI Agent
Datablist 的 AI agents 则是“带工具的 AI”:它们可以执行 Google 搜索、渲染 HTML、在多个页面间导航、调用 API,还能访问并从 Google News、网站、电商商店等来源提取结果。
💡 简单好理解
你可以把 AI agents 理解为“负责外部数据”的系统;把 AI assistant 理解为“负责你 Datablist collection 内数据”的系统。
Datablist 的 AI Agent 能力清单
要写出有效的 AI agent prompt,我们最好再把它能用的工具/能力列一遍,主要包括:
- 搜索 Google
- 搜索 Google News
- 提取与生成文本或代码
- 获取 account 信息
- 访问网站
- 网站分页(paginating)
- 渲染 HTML
- 调用 API
Datablist AI Agent Prompt 写作 11 条规则
当你理解了 AI agent 的能力之后,想要做到接近 100% 的准确率,就需要遵循一些简单但非常关键的规则。这 11 条是:
- 把 prompt 当作“路线图”:你要带着 agent 走完流程,而不是只丢一个需求然后期待它自动搞定。
- 永远从目标开始,并给足背景信息。
- 给 prompt 的每个部分加 tag,让 agent 更好理解你在写什么,同时把动作/指令拆分开。
- 用清晰的命令去调用 AI agent 的工具,比如“search Google”“extract text”“get HTML code”等。
- 给输出加 tag,并提供具体示例——这些会成为你配置输出字段(output configuration)的依据。
- 如果你要抓取特定信息,要告诉它信息在网页的哪里(哪个区域/模块)。
- 用分隔符(".===") 把 prompt 分段,结构更清晰。
- 明确告诉它要避免哪些错误,让它提前规避。
- 定义遇到 error 或缺失数据时该怎么处理。
- 不断迭代 prompt,不要把糟糕结果都怪到 AI agent 身上(我以前就爱这么干)。
- 需要它引用的数据列名(从哪一列取输入)请永远放在最后。
遵循这些 prompting 的 guidelines 和 best practices,你会明显更省 credits,也能少花很多时间在“改 prompt—重跑—再改”的循环里。
📘 好 Prompt 真的很重要
就算你完全不遵循上述规则,AI agent 也能跑;但遵循这些规则后,结果会稳定很多,因为 prompt 的结构本身就会显著影响输出质量。
AI Agent Prompt 示例:好 Prompt vs 坏 Prompt
AI Agent Prompt:好例子
先看好 prompt,再看坏 prompt,你会更有感觉。
这是我最近写的一条 prompt,用来从电商网站抓取产品。
我们拆解一下为什么这是一个好 prompt:
- 一上来就把目标和背景讲得很明确、很具体
- prompt 分成了多个部分,并且都做了 tag——AI 很容易读懂
- 使用了清晰、行动导向的动词命令
- 命令按清晰的顺序执行
- 描述了要找什么,并给了示例
- 说明了如何处理数据不一致和 error
- 明确写了它需要避免的具体错误
- 用 ".===" 把段落清晰隔开
- 结构清楚,AI 会被“带着走”完成请求
- 最后把引用数据的列名(referring data)链接上了
AI Agent Prompt:坏例子
如果你觉得“你是技术人所以才会写好 prompt”,那我说个真相:第一,我不会写代码;第二,我以前写的 prompt 就是这样:
没错,有些人可能还会觉得这也算“不错”,但其实不算——因为输出真的很差。
在这个例子里,很多地方都出了问题。看上去挺“高级”,但 prompt(以及结果)是不可用的。下面是我做错的点,以及你如何避免:
坏 Prompt 原因 #1:结构一般、流程不顺
prompt 缺少清晰的流程与组织方式。
怎么避免:
把目标拆成具体步骤,就像你在把任务交代给另一个人一样。 例如:
- 先访问网站。
- 再找到产品区域。
- 最后提取价格。
坏 Prompt 原因 #2:tag 不清晰
标签和分区不够具体。
怎么避免:
用更直白的日常语言来命名分区。比如别写“Data Parameters”,改成“要提取的产品信息”。别写“Input”,改成“要处理的网站 URL”。
坏 Prompt 原因 #3:输出结构不明确 + 缺少示例
数据格式与期望输出示例没有定义清楚。
怎么避免:
一定要同时提供数据结构(用编号列表)以及 2-3 个具体的期望输出示例。
示例:
1. Product Name: Nike Air Max; Adidas Ultraboost; Puma RS-X;
2. Price: $120; $180; $110;
3. Color: Black; Cloud White; High Risk Red;
4. Size: US 9; US 10.5; US 8;
5. Material: Mesh & Synthetic; Primeknit; Leather & Mesh;
坏 Prompt 原因 #4:没有清晰的执行顺序
动作没有按逻辑顺序排列。
怎么避免:
像给朋友指路一样写步骤——“先做这个,再做那个”。
示例:
1. Open the website;
2. Find the product section;
3. Extract the data
使用 AI Agents 最常见的 3 个坑
自从我加入 Datablist.com 以来,我和很多想用 AI agent 的客户聊过。聊多了就会发现一些重复出现的错误——你一定要尽量避免:
-
不愿意写 prompt: 有些人以为 AI 能自动理解他们脑子里想什么,不说也行。他们想“省时间”,但又不愿意在“如何省时间”上投入时间——千万别学他们。
-
指令太笼统: 与其说“获取产品信息”,不如明确你要哪些字段(例如“从产品详情区域提取 product name、以 USD 展示的 price、以及 available sizes”)。
-
忽略 error handling: prompt 里应该写清楚缺失数据或异常情况怎么处理(例如“如果 price 不可用,就标记为 'N/A'”)。
Prompt 写作要投入多少时间才合理
你应该从“这个 workflow 能带来多少价值、能帮你节省多少时间”来倒推。
我自己会花很多时间写 prompt,一方面自己用,一方面也为了帮我们的用户。
比如我用 Grok 的时候,不会花 30 分钟去写一条 prompt——因为我的问题并不复杂,通常先问一版再迭代就行。但当我在写用于 email personalization 或数据清洗的 prompt 时,我会更认真打磨:因为这会帮我减少后面找问题、反复迭代、过几天又得重来的时间成本。
Harrison Chase, Founder of LangChain: “I don’t think we’ve kind of nailed the right way to interact with these agent applications. I think a human in the loop is kind of still necessary because they’re not super reliable. But if it’s in the loop too much, then it’s not actually doing that much useful thing. So, there’s kind of like a weird balance there.”
可直接改的 AI Agent Prompt 模板(含示例)
**给你一个可以直接编辑的模板,下面还附了两个例子:**一定要按你的 use case 花时间改一改。
P.S. 我花了好几个小时才整理出这套 prompt 公式,你可以免费拿走 ;)
My Goal: 你的目标 + 背景
===
I want you to:
- 任务的第一步,例如 do a Google search
- 任务的第二步,例如 extract information
Information to extract (With examples):
- Output 1 (Example 1, Example 2)
- Output 2 (Example 1, Example 2)
- Output 3 (Example 1, Example 2)
How to handle data inconsistencies:
- 预判输出或网站上可能出现的错误/不一致,并告诉它该怎么处理
Mistakes to avoid:
- 这里写一些“实习生第一天很可能犯”的错误
Name your input here: 并使用 / 来引用你 collection 里的某一列
下面是我把这个框架用在电商抓取场景的示例:
My Goal: 我有一份电商网站列表,需要从中提取指定的产品信息。
===
I want you to:
- 访问我将提供链接的每个网站
- 为每个产品提取信息(我马上会说明具体字段)
Here's the information I am looking for (With examples):
- Name of the Product (Traveler XP 300)
- Original Price of the product in the displayed currency ($30; €10)
- Product category (Travel backpack; Business bag)
- Product specification 1 (30L Capacity; 17.4×14.3×8)
- Product specification 2 (Black; 11 Compartments)
- Special Tags (Last chance; Limited offer)
How to handle data inconsistencies:
- 每种类型只返回一条信息
- 如果数据不存在,返回 "N/A"
Mistakes to avoid:
- 不要返回不属于上述数据类型的内容,例如 CTA、reviews 等
- 不同页面结构可能不一样,但产品字段的标注通常足够清晰,你应该能区分各类 data points。
Here are the sites to scrape the products from: /Category Pages
下面是我把这个框架用在媒体研究(media research)场景的示例:
My Goal: 我想根据姓名与公司名,找到特定人物最近的媒体/新闻提及。
===
Task Instructions:
- Search Google for news/press articles for mentions of each person
- 访问提及该人物的网站
- 按下方要求提取与提及相关的信息
Information to Extract (With Examples):
- Article Title ("John Smith Launches New Tech Startup")
- Publication Name (The Tech Times)
- Publication Date (2025-05-20)
- Type of Mention (Interview, News Coverage, Press Release)
Data Handling Rules:
- 只提取最近 3 个月内最新的一次 mention
- 如果最近 3 个月没有媒体报道,返回 "No recent mentions"
Mistakes to Avoid:
- 不要包含社交媒体 mentions,直接忽略
- 不要把同名人士搞混,所以你应该始终匹配 "full name + company name"
- 跳过 sponsored content 或广告
- 确认 publication date 在指定时间范围内
Full name of the person: /People to Research
===Company name of the person: /company name
关于写 AI Prompts 的常见 FAQ
1. 我真的需要花时间写 prompts 吗?不能直接跟 AI 说我想要什么?
看起来确实更费时间,但投入时间把 prompt 写清楚,是获得准确结果的关键。指令越模糊,输出越模糊,最后你会在反复迭代和修正上花掉更多时间。
2. 什么样的 prompt 算“好”,什么算“坏”?
好的 prompt 具备清晰结构、具体指令、期望输出示例,以及 error handling 指南。坏的 prompt 往往笼统、无结构、没示例,也没有考虑潜在错误或数据不一致。
3. 有没有一个简单模板可以照着写?
有。本文提供了一个包含五个核心部分的模板:Goal、Task Instructions、Information to Extract、Data Handling Rules、Mistakes to Avoid。每个部分建议用 "===" 清晰分隔。
4. prompt 里的示例要写到多细?
示例要具体,并覆盖你可能遇到的不同情况。比如提取产品信息时,最好给出不同格式、不同货币、不同计量方式的示例,避免模型“只会一种”。
5. prompt 里最不能省略的部分是什么?
Error handling 和 “Mistakes to Avoid” 这两段非常关键。它们能显著减少常见问题,并让你在遇到异常数据或突发场景时,依然能拿到一致、可用的输出。





