Docs · App Dev Guide
大模型应用开发
从 Prompt 工程到 AI Agent,一站式覆盖大模型应用开发全链路 —— 让你能在 1 周内跑出生产级 MVP。
Prompt · 5 大设计原则
四要素是「结构」,5 大原则是「内容」 —— 让 Prompt 真正生效的底层准则。
原则 1:明确性优先
模型不会脑补你脑子里的隐含条件。所有「显然如此」都得显式写出来。
# ❌ 模糊
帮我写个登录功能
# ✅ 明确
帮我用 FastAPI 写一个 /login 接口,要求:
- 请求体: {"email": str, "password": str}
- 返回: {"access_token": str, "token_type": "bearer"}
- 验证逻辑: 查 PostgreSQL 的 users 表,密码用 bcrypt 比对
- 失败统一返回 401 + {"detail": "Invalid credentials"}
明确性的本质:消除二义性。任何允许多种解读的指令,都会得到「模型最省事」的那种解读。
原则 2:上下文与语境
补足模型回答所需的背景信息 —— 这是规避幻觉最有效的手段。
# ❌ 无上下文(模型只能瞎猜)
这个错误怎么解决?
TypeError: 'NoneType' object is not subscriptable
# ✅ 有上下文
我在做一个 RAG 系统,技术栈:FastAPI + langchain 0.3 + Qdrant。
执行 retriever.invoke(query) 时报:
TypeError: 'NoneType' object is not subscriptable
完整堆栈:
[贴堆栈]
我的查询是中文,已经过 BGE-zh embedding。
请帮我定位问题。
经验:贴堆栈 / 贴报错 / 贴版本 三件套,能解决 80% 的「这个为什么不工作」类问题。
原则 3:问题可分解
复杂任务直接抛给模型 → 输出混乱。先人工拆解,再让模型做每一步。
# ❌ 一锅炖
帮我写一个数据分析报告,要求 SWOT + 趋势预测 + 行动建议
# ✅ 分步骤
请按以下顺序输出(每节单独一段):
【1. 数据现状】用 3 个核心指标概括当前情况
【2. SWOT 分析】4 象限分析,每象限 3 条
【3. 趋势预测】基于过去 6 个月数据线性外推,给出 3 个月预测
【4. 行动建议】给出 5 条可执行建议,按优先级排序
分解的好处:
- 每步任务复杂度低,模型不容易跑偏
- 输出结构清晰,可单步评测
- 哪一步崩了一目了然
原则 4:结构化 vs 自然语言
不是所有 prompt 都要写得像 SQL。看任务类型选:
| 任务类型 | 推荐风格 |
|---|---|
| 创意写作 / 头脑风暴 | 自然语言,越随意越好 |
| 标准化任务(分类 / 提取) | 结构化,模板化 |
| 多轮对话 | 混合,第一轮结构化定调,后续自然语言 |
| Agent 工具调用 | 强结构化 + JSON Schema |
# 创意类(自然语言反而效果好)
我想做一个面向程序员的咖啡品牌,你帮我头脑风暴 10 个有趣的名字
和对应的 slogan,要有「调试」、「编译」、「死循环」这种梗
# 标准化类(必须结构化)
角色: 资深安全工程师
任务: 检查下面代码的 OWASP Top 10 漏洞
输出: JSON 数组,每项 {type, severity, line, fix}
代码:
{code_here}
原则 5:限制条件显式声明
模型默认会「填空」 —— 没说不要做什么时,它会自己加内容。
# ❌ 没说约束(模型会自由发挥)
帮我写产品介绍
# ✅ 显式约束
帮我写产品介绍,要求:
- 不超过 200 字
- 不要用任何「赋能 / 颠覆 / 闭环」这类词
- 不要列举竞品
- 只描述产品本身,不写公司背景
- 用第二人称(「你」)写给目标用户看
5 大原则的优先级
按踩坑频率排序,前面的优先做:
明确性 → 上下文 → 显式约束 → 可分解 → 结构化 vs 自然语言
新手最容易忘的是明确性和显式约束 —— 因为你的脑子里其实是有答案的,但忘了告诉模型。
🎯
实战 Tip:写完一条 prompt,自己冒充模型读一遍 —— 「如果我什么背景都不知道,按这个 prompt 能产出你想要的结果吗?」答案是「能」之前,prompt 就还不够好。
下一节:Zero-shot vs Few-shot —— 该不该给示例。