整个 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。

参考