近期,我在提示词工程方面做了不少探索。实践发现,精准的提示词能让 AI 输出媲美人工的成果。我便将这一思路引入生活,希望借助 AI 和思维模型辅助思考决策。
一开始,我不确定哪家模型的效果最佳,因此需要设计一个能统一管理、轻松切换模型的快捷指令。经过一番设计与改进,这个快捷指令应运而生,它具备以下特点:
- 制作简单:逻辑清晰,维护成本低。除去 HTTP 请求模块,核心的数据构建仅需 12 个组件。
- 高度兼容:兼容任意厂商的 API 模型,只需修改一个变量即可切换。
- 支持上下文:支持可变长度的上下文对话。
- 跨平台:支持 iOS、iPadOS 和 macOS 全平台。
下面,我就来介绍它的制作思路和使用方法,供大家参考。
(本文假定读者对快捷指令的基本用法、OpenAI API 的基本结构有所了解,并已有 OpenAI API 或其兼容 API 的账号。)
快捷指令下载:AI Assistant


技术实现原理
引入单个模型
首先,我们从最简单的单个模型入手,看看如何设计这样一个快捷指令。下文列举了十个查理·芒格的思考模型,作为演示内容(由 ChatGPT 生成)。在快捷指令中,我们可以用「从菜单中选取」组件来选择不同的思考模型。
{
"逆向思考": "通过从相反的方向思考来解决问题。例如,不仅问“如何成功”,也要问“如何避免失败”。",
"机会成本": "在做出决策时,始终考虑放弃的其他选择可能带来的价值或收益。",
"复利效应": "复利不仅适用于金融,也适用于知识积累、技能提升等领域。",
"边际效用递减": "随着投入增加,每单位额外投入带来的收益逐渐减少。",
"沉没成本谬误": "做决策时,不应因为过去的投入而被迫坚持错误的方向。",
"权衡取舍": "生活和商业中没有完美的选择,所有决策都伴随着权衡。",
"避开极端": "做事避免走向两个极端,寻找中庸或平衡之道。",
"格栅理论": "通过跨领域知识(心理学、经济学、物理学等)建立知识格栅,使解决问题的思路更全面。",
"第一性原理": "回到问题的最基本原理或事实,而不是依赖已有的假设或惯例。",
"圈子理论": "认识自己的能力圈,专注于自己擅长的领域,并避免进入自己不了解的领域。"
}
参考 OpenAI API 文档,我们只需将思维模型的简要描述赋予 system
角色,再结合具体问题,便能构建一个简单的请求,格式如下:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
在快捷指令中,我们可以使用「获取 URL 内容」动作,将用户选择的思考模型和输入的问题填入请求结构,从而实现最基本的业务流程。整体快捷指令如下图所示。

可以看出,messages
数组仅包含两个元素:系统消息和用户提问。值得注意的是,OpenAI 要求在 Authorization
请求头中提供鉴权 Token,这一点与后续将要介绍的 Claude 不同。

引入表单提交
上述单模型方案存在一个问题:提示词过于简单,无法实现灵活的上下文模板。所有关于模型的思考方法、本质和示例,都只能堆砌在 system
角色的 content
中。
但根据 OpenAI 的提示词工程指南,提示词应当「明确完成任务所需的步骤」(Specify the steps required to complete a task)。
对于思维模型而言,我理解这意味着需要清晰地阐述其思考方法、本质和示例。因此,我倾向于将这些内容拆分成多轮对话,构成上下文。
然而,每个思考模型的上下文对话轮数并不固定。在这种情况下,继续使用快捷指令的图形化界面编辑数据结构,不仅维护成本高,设计也十分烦琐。
为了解决上下文维护的难题,我们需要放弃在「获取 URL 内容」中手动构建固定结构的方式,转而通过文件提交完整的 JSON 请求体。例如,我们可以将请求的 JSON 结构预先定义好,并将其作为「第一性原理」这个键的值。这样,就解决了上下文维护的难题。
{
"逆向思考": {"model":"gpt-4o","messages":[]},
"机会成本": {"model":"gpt-4o","messages":[]},
"复利效应": {"model":"gpt-4o","messages":[]},
"边际效用递减": {"model":"gpt-4o","messages":[]},
"沉没成本谬误": {"model":"gpt-4o","messages":[]},
"权衡取舍": {"model":"gpt-4o","messages":[]},
"避开极端": {"model":"gpt-4o","messages":[]},
"格栅理论": {"model":"gpt-4o","messages":[]},
"第一性原理": {"model":"gpt-4o","messages":[{"role":"user","content":"你是第一性原理思考者, 擅长从万物基本原理和常识出发, 推演做事思路.你作为 Charlie Munger 的头号粉丝, 学习了他的所有著作和文章, 理解他分析事物的思考方式. 你会利用你学到的这些第一理原理思考方式, 来帮用户进行事物分析.\n如果能够理解请回复:确认。我将继续给给你介绍关于第一性原理应用的限制条件了"},{"role":"assistant","content":"确认。我理解作为第一性原理思考者的角色,将运用从基本原理出发的思维方式,结合查理·芒格的思维模型来帮助分析问题。请继续介绍关于第一性原理应用的限制条件。"},{"role":"user","content":"限制条件:1. 每次思考之前, 先深吸一口气\n2. 思考时不要着急, 一步步思考, 慢慢来, 想透彻\n3. 只输出角色要求的内容, 不要输出多余的鼓励和解释说明语句\n如果能够理解请回复:确认。我将继续给你告诉你你的技能"},{"role":"assistant","content":"确认。请继续说明我的技能,我准备好听取更多的内容了。"},{"role":"user","content":"擅长技能:\n1. 反向思考: 有了一个思考方向之后, 会从反面角度进行思考, 提醒自己要注意或强调什么\n2. 第一性原理思考: 从底层原理开始推理, 结合常识和独立思考, 分解遇到的任何问题\n3. 对于输出中的核心关键词,你会加粗强化输出。\n4. 在适当地方添加少量的 Emoji 表情, 提升阅读体验\n5. 讲解时需在适当地方提供旁白和流行文化参考\n如果能够理解请回复:确认。我将继续说明你的价值观念"},{"role":"assistant","content":"确认。请继续说明我的价值观念,我准备好进一步了解第一性原理了。"},{"role":"user","content":"价值观念:1. 原理胜过知识: 基于万物基本原理, 结合独立思考, 可解世间万事愁, 胜过固有知识结构.\n2. 常识胜过理论: 不要沉溺于理论, 请使用生活常识. 实践是检验真理的唯一标准.\n3. 心理支配一切: 人类大脑中充斥着许多偏见, 被本能, 环境, 和大众所影响和驱动, 要利用心理学知识.\n4. 永远独立思考: 地球上有 80 亿人, 就有 80 亿个独特的视角. 永远不要让别人决定你的观点. 用原则和理由形成你自己的观点, 并独立评估遇到的每件事. 请总是独立思考!\n如果能够理解请回复:确认。我将继续跟你讨论你思考的工作流程"},{"role":"assistant","content":"确认。请继续说明我的思考的工作流程,我准备好进一步了解第一性原理了。"},{"role":"user","content":"工作流程:你会遵守价值观念的四条原则, 按如下流程来和用户交互:\n1. 输入: 通过开场白引导用户输入想要分析的问题\n2. 简化: 使用第一性原理和常识, 来简化用户的问题\n- 仔细思考要想实现用户的目标, 从最基本的原理来分析, 有哪三条路可能实现\n- 再基于你的常识和独立思考, 分析判断上面的三条路, 选中成功概率最大的一条路, 并阐述你的判断逻辑\n3. 数学: 使用数学来分解简化后的问题\n- 将分析获得的路线, 用数学公式来分解(使用 LaTeX 语法).\n- 每个变量再进一步分解, 要做到什么程度\n如果能够理解请回复:确认。我将抛出一个问题,请你用第一性原理思考给出自己的观点看法"},{"role":"assistant","content":"确认。请提出您的问题,我将基于第一性原理和工作流程进行分析。"},{"role":"user","content":"[[INPUT]]"}]},
"圈子理论": {"model":"gpt-4o","messages":[]}
}
为了适配这种方式,需要将「获取 URL 内容」组件的请求正文类型从「表单」改为「文件」,并选择包含 JSON 数据的变量,如下图所示。

拆分数据结构
前文提到,本快捷指令的设计初衷是方便切换不同模型。但目前的方案将上下文与模型配置耦合在了一起。为了解耦,必须将 messages
和其他配置项(如 model
)拆分,使同一套上下文可以复用于不同模型。
第一步,拆分出 messages
。为简化篇幅,此处仅以「第一性原理」为例。重构后的数据只保留思维模型名称和对应的 messages
内容: