写好提示词
649 字
3 分钟
写好提示词
Prompt Engineering = improving prompts to get more reliable, higher-quality outputs from language models.
1. Being Clear and Direct
Key components = Action verb at start + direct task statement + expected output details.
- 避免提问,直接告诉模型要做什么。
- 例如:Instead of “Can you summarize this article?”, say “Summarize the following article in 3 sentences: [article text]”.
Examples:
- “Write three paragraphs about how solar panels work”
- “Identify three countries that use geothermal energy and for each include generation stats”
- “Generate a one day meal plan for an athlete that meets their dietary restrictions”
2. Being Specific
- Type A (Attributes) = list qualities/attributes desired in output (length, structure, format)
- 适用于一般情况下的大多数任务,帮助模型理解输出的具体要求。
- Type B (Steps) = provide specific steps for model to follow in reasoning process
- 通常用于复杂任务,帮助模型分解问题并逐步解决。
- 需要模型有更广阔的视角,能够考虑更多因素并进行更深入的分析。
3. Structure with XML Tags
一种已经在现代模型中能够以几乎确定性的方式被正确解析的结构化提示方法,通过结构化的标签区分内容边界,而非依靠模型对自然语言提示的理解推理边界。
对于传统的自然语言提示,边界是隐式的,以理解”First analyze the data then provide recommendations.”这句话的语义来推断出”analyze”和”recommendations”为例,逐词解析时对每一步的隶属关系都保持着“不确定性”,假设模型在解析时对每个词的概率分布如下:
| 词 | P(analysis) | P(recommendations) |
|---|---|---|
| First | 0.95 | 0.05 |
| analyze | 0.9 | 0.1 |
| the | 0.85 | 0.15 |
| data | 0.8 | 0.2 |
| then | 0.4 | 0.6 |
| provide | 0.2 | 0.8 |
| recommendations | 0.1 | 0.9 |
其中,“then”是一个边界词(boundary token),这就是边界不确定性出现的时刻,这种不确定性会向前传播,导致模型可能错误地将”provide”归到”analysis”的部分,从而导致后续对”recommendations”的理解也受到影响。
而 XML 标签直接在算法层面,让模型能直接通过语法解析来区分不同部分的内容,消除了边界不确定性,例如:
<analysis>analyze the data</analysis>
<recommendations>provide recommendations</recommendations>它的可能解析结果如下:
| token | P(analysis) | P(recommendations) |
|---|---|---|
<analysis> | 1 | 0 |
| analyze | 1 | 0 |
| the | 1 | 0 |
| data | 1 | 0 |
</analysis> | 1 | 0 |
<recommendations> | 0 | 1 |
| provide | 0 | 1 |
| recommendations | 0 | 1 |
</recommendations> | 0 | 1 |
概率经过标签直接跳变,直接阻断了边界不确定性的传播。
几点建议:
- Tag naming = Use descriptive, specific tag names (e.g., “sales_records” better than “data”) to provide context about content nature.
- Example use case = Debugging prompt with mixed code and documentation becomes clearer when separated into <my_code> and
tags.
4. Providing Examples
即 One-shot/Multi-shot,通过提供示例来引导模型理解任务要求和预期输出格式。
- 为边界情况提供示例,帮助模型理解如何处理特殊或复杂的输入。
- 提供的示例包括对为什么该输出理想的解释。
- 将示例放在主要提示和指导原则之后。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章智能推荐
1
MCP协议,换皮的工具调用?
科研学习假如有一个函数 getweather(location) ,传统的客服机器人的做法是: LLM 提供了强大的自然语言理解能力,而 Function Calling 的目标就是非结构化的自然语言描述 函数调用。现在的处理流程变为: Function Calling 虽然阐述了如何与大模型进行信息交换,但没有明确,还停留…
2
RAG(Retrieval-augmented generation)个人学习笔记
科研学习传统的 LLM 模型主要存在以下 2 个问题: RAG 可以通过结合基于检索和生成模型的优势来提供更准确和上下文相关的响应,可以添加自己的预料构建知识库。 理论上,对于需要外挂知识库,即需要处理大量文本数据的场景,不通过微调,将这些文本数据全部塞进 Prompt 未尝不可,但:
3
MCP vs. Skill 旧瓶装新酒这一块
科研学习我在之前对 MCP 的学习中简单提到过当时 MCP 的一些痛点,不过发展到现在 MCP 这套通信协议已经被 Anthropic 搞得相当完善,MCP Server 也能快速适配到不同 Client。 从本质上来说,MCP 的功能侧重于包装了 Function Calling(函数调用),用户不需要具体 Tool 的逻…
4
2026.5 Live Repo
生活杂谈翻了翻相册才发现上一次已经是去年 9 月的羊文学了,哎gszm坏事做尽。 这回的出行方式是经典京沪高铁二等座,去年锅贴得意之作绿皮 D9 真给我坐麻了,这次果断 G 系列。不过被课表背刺,本来还可以买早一班(),结果就是快 0 点才到虹桥。好像是第一次这么晚到沪国。
5
Workflow 还是 Agentic?
科研学习Workflow(工作流),简单来说,一系列对 LLM 的调用,旨在通过预定的一系列步骤来解决特定问题。可以理解为用 DAG(有向无环图)把 LLM 节点连起来。市面上一些可视化拖拽式 Agent 开发平台,例如 Coze、Dify 等,基本上都是基于 Workflow 的设计思路来实现的。



