🪟 乔哈里视窗 × 提示词策略
认知框架乔哈里视窗基础必修
一、基础框架
乔哈里视窗(Johari Window)原本是心理学中用于理解"自我认知与他人认知"关系的模型。当我们将"别人"替换为"AI",这套框架立刻成为提示词工程的元方法论:提示词的本质就是信息传递——你给的、你没给的、AI 能猜到的、双方都不知道的——这四种状态决定了一切输出质量。
① 开放区
我知道 · AI 知道
你明确说出来的信息。这是提示词的基础层——越清晰、越结构化,AI 越少猜错。
② 盲目区
我不知道 · AI 知道
你的思维模式、盲区假设、省略的前置条件——AI 能推断出来,但你从未意识到。
③ 隐藏区
我知道 · AI 不知道
你没说的背景、约束、偏好、历史失败。提示词最大的浪费就在这里——你默认 AI 知道,但它真不知道。
④ 未知区
我不知道 · AI 不知道
双方都未发现的潜力——新的视角、跨界类比、反向思维。这是 AI+人类 > 任何一方的核心价值。
提示词工程的终极目标:最大化开放区,发现盲目区,主动暴露隐藏区,反复探索未知区。
💡 核心心法: 每次写提示词前,先问自己:"我有什么没说,但 AI 知道了会做得更好?" 这一步把信息从隐藏区移到开放区,是提升提示词质量最有效的单一路径。
二、四象限 × 12 个实战提示词模板
① 开放区 → 🔓 放大
策略: 把你知道的,用结构化方式喂给 AI。越清晰,AI 猜错的余地越小。
示例 1 · 结构化场景描述
> 系统提示词
你是一个资深 DevOps 工程师助手。用户是同一团队的同事。
目标:为我们维护的 Flask + PostgreSQL 微服务编写健康检查脚本。
约束:
- 使用 Python 3.11,不要第三方库
- 检查每个端点的 /health 路由
- 失败超时 5 秒
- 输出格式:JSON,含 status、latency_ms、message
示例 2 · 角色 + 背景 + 输出格式三段式
角色:你是我的 CTO,有 15 年技术管理经验。
背景:我想用 Redis Streams 替代 RabbitMQ 来做任务队列。
输出格式:先列出 3 个 RabbitMQ 无法替代的场景,再给出迁移建议优先级。
每点用 50 字以内说明原因。
示例 3 · 用示例限定输出风格
请用以下风格回答技术问题:
✅ 好例子 → "这个问题本质是缓存一致性问题,你需要在这 3 处加锁……"
❌ 坏例子 → "嗯,这个要看情况,可能可以尝试用分布式锁……"
我的问题:如何保证 Redis 缓存和 MySQL 的一致性?
🎯 开放区心法: 开放区不是字数越多越好,而是密度越高越好。一个 50 字的角色声明 + 一个 30 字的结构约束,胜过 200 字的口水话。
② 盲目区 → 🪞 借 AI 照镜子
策略: 让 AI 反向审查你的思维过程——它能看到你忽略的前提假设和思考盲区。
示例 1 · 盲区诊断
以下是我对一个项目的技术选型分析。请指出:
1. 我默认了哪些假设没说出来?
2. 我的思维模式倾向于哪种风格?(保守/激进/过度设计?)
3. 哪些风险我完全没考虑到?
[粘贴你的分析]
示例 2 · 反向视角
我刚写了一个方案,请用以下三个截然不同的身份来审查它:
- 一位极度激进的技术极客(选最新技术)
- 一位极度保守的银行架构师(用稳定技术)
- 一位刚入职的初级工程师(关注可理解性)
每个身份给出 3 个最尖锐的质疑。
示例 3 · 挖掘遗漏条件
假设你是一个有 10 年经验的提示词工程师。
阅读我写的这个提示词,然后:
1. 列出 AI 可能需要猜的所有事情
2. 按"这不重要"→"可能会错"→"一定出错"分级
3. 对"一定出错"级的,告诉我该怎么补充
[粘贴提示词]
🎯 盲目区心法: 大多数人用 AI 只求"答案",高手用 AI 求"反馈"。一个好的"照镜子"提示词,比十个常规提示词给你更多成长。如果你发现自己老是得到不满意的回答,先让 AI 分析你的提示词——问题很可能在你没意识到的盲目区。
③ 隐藏区 → 📤 主动摊牌
策略: 把你认为"AI 应该知道"的事情,明确说出来。这条是提升提示词质量最快的方法。
示例 1 · 上下文宣言
[上下文宣言]
- 项目阶段:原型验证期,不需要生产级别
- 团队成员:只有我一人,全栈
- 时间压力:这周末要 demo
- 语言:Python 3.11(不能用 Go — 我不会)
- 之前已做:我已经写好了一个 CLI 原型,现在是加 Web 界面
基于以上,帮我设计一个最简单的 Web 前端方案。
示例 2 · 约束条件前置
以下是我的要求清单。请逐条遵守,如有冲突请指出:
[约束]
- 不要给我推荐换技术栈——我有 200 万行在 Django 上
- 不要假设我可以上云——项目部署在离线内网
- 不要写超过 100 行的代码块——我每段需要理解
- 我的 Python 水平:知道装饰器但不会写元类
- 之前踩过的坑:Celery 序列化乱码,所以这次用 Redis 直连
需求:[描述你的需求]
示例 3 · 历史教训模板
[历史记录]
上一次我尝试类似方案的时候遇到了这些问题:
- RabbitMQ 客户端在低版本 Linux 上装不了
- pika 0.13+ 和 1.0 的 API 不兼容,花了 2 天调试
- 最后的方案是直接 HTTP POST,虽然不够优雅但能跑
这次我打算用 [新方案],请:
1. 评估这次方案和上次失败的相似度
2. 指出可能的新坑
3. 如果历史会重演,提前告诉我怎么做
🎯 隐藏区心法: "AI 不知道"是提示词失败的第一原因。检查一下:你写提示词时花了几秒在"我说了什么"上,又花了多久在"我没说但重要"的事情上?一条"约束前置"行,能省掉 3 轮来回对话。
④ 未知区 → 🧪 共同探索
策略: 当你和 AI 都不知道答案时,不要假装知道。让 AI 成为你的探索伙伴,而非答案机器。
示例 1 · 多元视角探索
我遇到了一个问题:[描述你的问题]
请从以下 5 个完全不同领域的视角来分析它:
- 生物学家(进化论类比)
- 象棋大师(策略博弈)
- 软件架构师(系统耦合)
- 投资人(ROI 回报)
- 一个 10 岁小孩(最直接的重述)
每个视角给我一个我没想到的洞察。
示例 2 · 反向思维挑战
我有一个初步方案:[描述方案]
请执行以下思维实验:
1. 假设这个方案 100% 会失败——找出 5 种最可能的原因
2. 针对每种原因,提一个"你没想到的"早期预警信号
3. 分析这些问题中,哪些是"已知已知"(我写的)、哪些是"已知未知"(我担心的)、哪些是"未知未知"(我俩都没意识到的)
先列出第三类——那才是真正的价值所在。
示例 3 · 跨界类比跳跃
帮我用以下方式重新理解我的问题:
1. 把我当前的问题用一句话说清楚
2. 找 3 个看似不相关的领域,解释它们的核心困境和我的问题结构相同
3. 从每个类比的解法中,提炼出一个可以迁移到我的场景的策略
4. 哪个策略最反直觉但最有可能打破僵局?
我的问题:[描述问题]
🎯 未知区心法: 这里 AI 的价值不是"告诉你答案",而是 "让你看到你没看到的可能性"。一个跨界类比带来的视角转换,常常比十次常规问答更有价值。前提是——你愿意接受"我不知道"这个现实。
三、一张表总结
| 象限 |
操作 |
一句话口诀 |
常见错误 |
| ① 开放区 |
放大 |
说清楚,少让 AI 猜 |
信息密度低,废话多重点少 |
| ② 盲目区 |
照镜子 |
让 AI 反问你 |
只求答案不求反馈 |
| ③ 隐藏区 |
摊牌 |
你以为 AI 知道,但它真不知道 |
默认 AI 知道背景和约束 |
| ④ 未知区 |
探索 |
不知道就说不知道 |
假装有答案,不敢接受"未知" |
四、课后练习
找一段你最近写的提示词,逐条做四象限自检:
- 开放区:结构是否清晰?是不是应该拆成角色+背景+输出格式三块?
- 盲目区:让 AI 分析这个提示词——它发现了什么你没想到的假设?
- 隐藏区:你有哪些背景没说出来?试试加一条"上下文宣言"。结果有什么不同?
- 未知区:在常规需求之外加一个"用 3 种不同身份反驳我"——你发现了什么新东西?
📌 下节课预告: 第 2 章将深入 角色锚定与上下文筑基——如何写好 System Prompt,让 AI 从一开始就站在正确的位置。