如何给下一代模型写提示词:给目标而非步骤,用一条硬标准逼它自检
本站为独立第三方技术服务平台,提供多模型 API 聚合接入服务,与 Anthropic、OpenAI、Google 等模型提供商无任何关联、授权或合作关系。
很多人抱怨"同样的模型,别人做出来的东西比我强得多"。多数时候差距不在模型,而在你怎么用它。前沿模型(Claude Fable 5、Opus 4.8、GPT-5.6 Sol 等)是新一代的推理能力,如果你还用旧模型的方式去写提示词——一步步指挥它——那你只能拿到旧模型的结果。换个用法,天花板会明显抬高。
下面这套方法整理自一线实践,核心就六条。文末给出在 Code0 上一 Key 横向验证多模型的完整代码。
TL;DR
- 给目标,不给步骤:把大而宽泛的任务整体交给模型,别替它规划"怎么做"。
- 定几条红线规则:用少量"永远为真"的约束给自由度兜底,甚至让子代理专门查规则。
- 设一条可自检的硬标准:不用"高质量"这种形容词,给一个模型能自己验证的硬指标。
- 循环打磨:让它建→自查→找最大缺口→补→再来,直到达标。
- 复用旧成果:把过去做好的东西当"燃料",指向它、要求"对齐并超越"。
- 别挡它的路:预先给预算、给凭证位置、授权它自己决策,减少来回打断。
前置准备
- 注册 Code0:https://console.code0.ai/console/dashboard
- 创建 API Key(控制台 → API Keys → 创建)
- 安装 SDK:
pip install openai
Code0 是多模型聚合网关,OpenAI SDK 零改造兼容——同一套代码只改 model 字段就能在 Fable 5、Opus 4.8、GPT-5.6、Gemini 3 Pro 之间切换。这一点对"验证提示词方法"特别有用:同一个提示词,哪个模型最会接住你的目标,一试便知。
六条核心方法
1. 给目标,不给步骤
最大的转变是:别再逐步指挥。旧模型你不说"怎么做"它就跑偏;强模型正相反——你给的空间越大,它做得越好。
把大而宽、甚至没说全的任务整体丢给它,就像你把一个目标交给一个你信任的聪明人,让他自己找最优路径。你每写死一个步骤,其实都是在用你的判断去覆盖它的判断,而后者往往更好。
一开始这会让人不安。让它变安全的,是下一条。
2. 定几条"红线规则"
underspecified 的目标之所以能放心用,是因为你用少量绝不能越的规则把它围起来。红线规则就是那几件"无论它怎么达成目标,都必须为真"的事。
举例:做 Agent 时,模型爱过度工程——本该用一段自然语言描述行为、让模型自己推理,它却上来就写一堆正则去硬匹配特殊情况。于是我有一条常设规则:不要硬编码特殊分支,把想要的行为写进系统提示,让模型去推理。
再加一层保险:让主模型固定派一个子代理,在任何产物"提交"前先对照红线规则检查一遍。这样你就能放手让它在目标上跑得很宽,同时确定它不会交出破坏底线的东西。
3. 设一条可自检的硬标准
如果你只说"做得高质量点",它会停在自己认为的"够好",而那个线通常比你的低。所以别用形容词,给一条它能自己验证的硬标准,并且把这条标准定得足够狠。
有时候标准是你写的,具体到"外行分辨不出我们的渲染图和真实照片"。有时候你自己都不知道怎么量化——那就把"怎么衡量"这个问题也交给模型。
一个真实例子:有人想克隆一套组件库,一直做不好。两个问题:其一,他在 ShadCN 之上克隆 ShadCN 的组件,模型一直在跟 ShadCN 的约定对着干;其二,他没有"何为完成"的判据,只会说"照着这个克隆"。解决办法:把 ShadCN 扔掉、从零开始(组件库完全可以从零建,旧代码只是包袱);然后,既然谁都不知道怎么衡量"像不像",就让模型自己想——它录了原组件运行的屏幕录像,转成"元素移动位置"的热力图,一直改到自己的版本对上。我们从没教它怎么做,只告诉它"完成"意味着什么,让它自己发明量尺。
一条绝不破的规矩:谁建造,就不许谁打分。 负责建的代理天然有偏向,还带着一整套"我为什么这么做"的理由去自证达标。永远另起一个全新上下文的子代理,指向真实产物(实际像素、真实运行的 App),让它去尝试证明"没达标"。
4. 循环打磨,尤其是创意任务
有了硬标准,就把模型放上"循环":建 → 自查 → 找最大缺口 → 补上 → 再来,可以跑几个小时甚至几天。循环的意义在于——模型永远没资格自己宣布完成,总有下一个缺口。它停在你说停,或它确实找不出可改的地方(配置得当时后者很少见)。
长跑时的一个技巧:让模型把进度实时贴到一个协作文档里(截图、备注、当前状态),你在手机上瞄一眼就知道进展,随时留言调方向。如果同时跑多个模型实例,一个带看板 + 聊天的共享文档还能当"协调层":它们互相派任务、认领、提问、报冲突。
5. 让它在你已有的成果上继续建
做过的越多,它越强——旧成果会变成新工作的燃料。
第一次做一个从没做过的高难度东西(比如一个照片级的 3D 场景),你得很用心地把初始提示写对,因为没有参照。但一旦你有了一个足够好的样板,之后就轻松了:直接把模型指向它——"这是代码,这是质量线,对齐它并超越",不必再从头解释。
更进一步,它还能读你过去会话的轨迹:当初为了做那个场景,它试过什么、什么有效什么无效。于是你不用再交代"每个物体用一个独立子代理",只需说"读一下那次的轨迹,学里面有效的做法",它自己就接住了。
6. 别挡它的路
每次它停下来问你,都是在浪费时间。 所以把障碍提前清掉:接一个要花钱的真实服务,就给它一个预算,而不是每次调用都来请示;告诉它凭证放在哪;并且白纸黑字授权它自己决策,只在真正被卡住、或只有你能拍板时才回来找你。
唯一的例外是规划——而且只针对特别大、后果特别重的事。大工程我要先看到计划、要它把所有不确定的地方一次性问清楚;计划一旦敲定,就让它一口气跑完。
两种跑法
同一套方法,工程和创意的"外围设置"不同:
- 工程 = 跑一支队伍。 多个模型实例同时干,各自从列表 / 看板领任务;每个任务都用子代理三重自查,带着证据开 PR。再单独留一个实例只做集成:合 PR、跑全量、像真实用户一样测、保持全绿。两个功能会重叠时,让其中一个盯着另一个的轨迹保持兼容,边并行边在文档聊天里协调。
- 创意 = 靠势头和细节。 同样的循环、同样的硬标准,但通常扇出子代理各攻一块(比如一个子代理专门打磨森林里的某一种树),有时并行跑几个完全独立的尝试,留最好的那个、把有效经验带进下一轮。
什么时候上"重档模式"
有些平台/模型提供更贵的"重档推理"模式(如某些模型的 ultra / max)。日常其实很少需要——一个目标够野心的好循环,往往不用重档也能到位。
它真正值回成本的地方是打地基:从零搭一个要维护几个月的新系统(比如成为业务或代码库核心的东西),你希望第一天就把底子打对。这跟"把 ShadCN 扔掉重来"是一个道理——好地基让上层一切更容易,坏地基让一切永远更难。也就这种活,多花的钱值得。
完整代码:一 Key 横向验证"给目标不给步骤"
同一个"只给目标"的提示词,到底哪个模型接得最好?用 Code0 循环换 model 直接对比:
from openai import OpenAI
client = OpenAI(
base_url="https://hk.code0.ai/v1",
api_key="sk-你的Key", # 在 console.code0.ai 获取
)
# 只给目标 + 一条红线规则 + 一条硬标准,不写任何步骤
goal_prompt = """目标:写一个命令行工具,把一个杂乱的 CSV 清洗成规范表格。
红线规则:不要为特殊情况硬编码分支,用可读的规则描述清洗逻辑。
完成标准:对我给的任意样例,输出都能通过 `python -c "import pandas as pd; pd.read_csv(out)"` 且无报错列。
你自己决定实现方式,完成后另起思路自查是否真的达标。"""
for model in ["claude-fable-5", "claude-opus-4-8", "gpt-5.6-sol", "gemini-3-pro"]:
resp = client.chat.completions.create(
model=model, # Model ID 以控制台标注为准
messages=[{"role": "user", "content": goal_prompt}],
)
print(f"\n===== {model} =====")
print(resp.choices[0].message.content[:600])
改 model 就能横向比,其余代码一行不动——这正是"给目标不给步骤"最省事的验证方式。
常见问题
- Q:给这么宽的目标,模型不会跑偏吗? → 用第 2 条的红线规则兜底,再让独立子代理按规则验收,就能放手又不失控。
- Q:401 / 模型不可用? → 确认 Key 有效、余额充足,Model ID 以控制台标注为准(未上架的新模型以控制台通知为准)。
- Q:想换模型对比? → 只改
model字段,其他代码不用动,一个 Key 就能跑遍多模型。
小结
方法一点都不复杂,模型也是大家都有的那一个。结果之所以不同,就三件事:不喂饭式指挥、用一条它糊弄不过去的硬标准逼它自检、让它在已有成果上继续建。 剩下的,交给一个够狠的循环。想验证哪个模型最吃这套方法,去 console.code0.ai 拿个 Key,同一段提示词换着 model 跑一遍就知道了。



