整个 AI Agent 的开发流程中,编写高质量的 Prompt 非常重要,目前总结了一些 writing prompt 的技巧,可以作为后续的参考
要点
- 内容需要详细,不要概括笼统,月具体越好
- 让模型充当一个角色,让其更加专业和明确
- 使用分割符来区分输出的不同部分
- 指定任务完成的步骤,将复杂任务简化
- 提供示例,给模型进行参考
- 指定输出长度
内容
1. 确定角色定义
明确定义 AI 的身份和专业背景,这决定了 AI 的回答风格和专业程度。
要点:
- 具体的职业身份(如:高级软件架构师、产品经理、数据分析师)
- 相关的专业背景和经验
- 工作场景和责任范围
- 与用户的关系定位
示例:
## 角色定义
你是一个专门负责XXX互动游戏框架的高级需求分析师,具备深度的技术架构理解能力和丰富的互动营销产品经验。
2. 确定核心目标
清晰描述希望 AI 完成的主要任务和期望达到的效果。
要点:
- 主要任务的具体描述
- 预期的输出结果
- 成功的衡量标准
- 目标用户和使用场景
示例:
## 核心目标
- **产出需求文档**:你的主要职责是将复杂的互动营销产品需求与现有的XXX基座能力进行深度结合,系统性地拆分成技术边界清晰、可独立开发和测试的产品包需求模块,并生成标准化的产品包需求文档
3. 确定关键规则
设定 AI 行为的边界和约束条件,确保输出的质量和一致性,迭代过程中可以持续拓展相关规则
要点:
- 约束AI 的行为
- 内容的准确性标准
- 禁止的行为或内容
- 特殊情况的处理方式
示例:
## 关键规则
- **后端聚焦**:一定只提取后端功能需求(业务逻辑、数据处理、系统集成),必须忽略前端实现细节
- **防简化要求**:严格遵循 `./anti-simplification-rules.md` 中的防简化规则,绝对禁止简化、概述、总结原始需求内容
4. 确定执行流程
定义 AI 处理任务的具体步骤和逻辑顺序。
要点:
- 分析问题的步骤
- 信息收集和处理流程
- 决策和推理过程
- 输出生成的顺序
示例:
## 拆解执行流程
### 任务1:知识了解
**目标**:深入学习XXX互动游戏框架的核心知识和互动基座架构
**执行清单**:
1. **阅读xxxx文档**:
- 仔细阅读 `.xxx.md` 文件
- 重点理解xxxx的定义和概念、功能
2. **阅读xxxx模型文档**:
- 仔细阅读 `.xxxx.md` 文件
- 重点理解xxx模型的核心概念、数据结构和业务流程
- 识别关键实体和它们之间的关系
3. **阅读互动基座架构文档**:
- 仔细阅读 `.xxxx.md` 文件
- 理解互动基座的整体架构设计、各层职责和模块划分
- 掌握技术实现细节和集成方式
4. **知识整合分析**:
- 分析两个文档中的关键信息点
- 建立xxxx模型与互动基座架构之间的映射关系
- 识别业务概念到技术实现的转换路径
### 任务2:环境准备
**目标**:建立标准化的文档目录结构
**执行清单**:
1. ✅ 检查并创建根目录:`./docs`
2. ✅ 检查并创建需求目录:`./docs/requirements`
3. ✅ 检查并创建子需求目录:`./docs/sub_requirements`
4. ✅ 检查并创建功能设计目录:`./docs/function_designs`
5. ✅ 验证原始需求文件存在:`./docs/requirements/{需求ID}.md`
### 任务3:需求分析与拆解
**目标**:基于xxxx模型进行系统性需求分析
**输出**:需求拆解分析报告
### 任务4:子需求文档生成
**目标**:创建结构化的子需求文档
**文档规范**:
**输出**:完整的子需求文档集合
### 任务5:一致性保证
**目标**:确保所有文档间的技术一致性
**输出**:技术一致性报告
5. 确定输出模版
规范化输出格式,确保信息的结构化和易读性。
要点:
- 固定的输出结构
- 各部分的内容要求
- 格式化规范
- 示例和模板
示例:
## 需求文档模版
整体务必遵循 .xxx-split-template.md 模版的格式
输出模版
# [产品包名称]技术方案
> **使用说明:** 本模板适用于XXX互动游戏框架的产品包技术方案设计,请根据实际情况填写各个章节内容。带有 `[占位符]` 的内容需要替换为具体信息。
## 概述
> **填写指导:** 用1-2句话简洁描述产品包的核心定位和技术实现方式,说明其基于IGF框架的扩展方案。
[产品包名称]是[目标活动/业务场景]的[核心功能定位],负责[主要功能1]、[主要功能2]、[主要功能3]等功能。本技术方案基于 xxxx 基座的 [骨架名称] 骨架进行扩展实现,采用 IGF [框架类型]框架实现[核心玩法/业务逻辑]。
....
大模型参数
- Temperature:简单来说,temperature 的参数值越小,模型就会返回越确定的一个结果。如果调高该参数值,大语言模型可能会返回更随机的结果,也就是说这可能会带来更多样化或更具创造性的产出。
- Top_p:同样,使用 top_p(与 temperature 一起称为核采样(nucleus sampling)的技术),可以用来控制模型返回结果的确定性。如果你需要准确和事实的答案,就把参数值调低。如果你在寻找更多样化的响应,可以将其值调高点。
- Max Length:您可以通过调整 max length 来控制大模型生成的 token 数。指定 Max Length 有助于防止大模型生成冗长或不相关的响应并控制成本。
- Stop Sequences:stop sequence 是一个字符串,可以阻止模型生成 token,指定 stop sequences 是控制大模型响应长度和结构的另一种方法。例如,您可以通过添加 “11” 作为 stop sequence 来告诉模型生成不超过 10 个项的列表。
- Frequency Penalty:frequency penalty 是对下一个生成的 token 进行惩罚,这个惩罚和 token 在响应和提示中已出现的次数成比例, frequency penalty 越高,某个词再次出现的可能性就越小,这个设置通过给 重复数量多的 Token 设置更高的惩罚来减少响应中单词的重复。
- Presence Penalty:presence penalty 也是对重复的 token 施加惩罚,但与 frequency penalty 不同的是,惩罚对于所有重复 token 都是相同的。出现两次的 token 和出现 10 次的 token 会受到相同的惩罚。 此设置可防止模型在响应中过于频繁地生成重复的词。 如果您希望模型生成多样化或创造性的文本,您可以设置更高的 presence penalty,如果您希望模型生成更专注的内容,您可以设置更低的 presence penalty。