# PromptsCollection **Repository Path**: NanGePlus/PromptsCollection ## Basic Information - **Project Name**: PromptsCollection - **Description**: Prompts合集 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-06 - **Last Updated**: 2026-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 结构化 Prompt 编写指南和最佳实践 本指南基于当前仓库两类 Prompt 实践沉淀而成: - `内容生产自动化Prompt合集`(摘要、评选、正文创作等) - `智能记账助手Prompt合集`(账单图片/账单文本结构化识别) 目标:让 Prompt 产出同时满足 **可解析、可复用、可维护、可迭代** 四项要求 --- ## 一、统一核心骨架 | 章节 | 作用 | 必须写清的点 | | ---------- | ---------- | ------------------------------------------------- | | `角色` | 定义身份与边界 | 只基于输入、不编造、产出目标 | | `背景` | 给出场景与风险 | 输入来源、使用场景、模型易错点 | | `简介` | 元信息与版本锚点 | `author` / `version` / `language` / `description` | | `任务` | 说明要做什么 | 分点写动作,不写空泛口号 | | `约束条件(重要)` | 写死硬规则 | 输出形态、字段限制、禁用项、异常处理 | | `技能` | 说明模型能力清单 | 识别能力、归一化能力、判断能力 | | `工作流` | 降低漏步 | 第一步…第七步…,可执行可复检 | | `输出格式(必遵)` | 定义 JSON 契约 | 键名、类型、枚举、顺序、解释 | | `输入模板` | 约束用户输入 | 必填槽位 + 可选补充 | | `输出样例` | 对齐预期 | 示例仅供参考,真实输出仍裸 JSON | | `初始化` | 首轮交互提示 | 重申输入要求与输出结构 | 说明:部分复杂任务(如评选归类)可增加“字段兼容”“评选规则”等专章,但核心骨架不建议打乱。 --- ## 二、9 条硬标准 ### 1) 简介必须可追踪版本变化 简介固定四字段: ```text - author: 南哥 - version: 1.0 - language: 中文 - description: 一句话说明输入、输出、关键字段与本版新增约束 ``` `description` 不要写成泛描述,必须包含“本版关键变化”(如新增 `code`、缺失字段统一 `null`)。 ### 2) 输出形态只能有一个 在约束里写死: - 仅输出一个 JSON 对象(或明确写数组,二选一) - JSON 外零输出(禁止解释文字、禁止 markdown 代码块) 这条在记账类 Prompt 中尤其重要,能显著降低接口报错。 ### 3) 字段契约要“全量闭环” 只在一个地方列字段不够,必须四处同步: - `简介`(字段清单) - `约束条件(重要)`(硬规则) - `输出格式(必遵)`(类型定义) - `输出样例`(可视化示例) - `初始化`(最终口径) 例如智能记账类最新实践中,`code` 字段需在成功/失败两条分支都保持一致。 ### 4) 缺失值策略要统一且可执行 当前项目最佳实践: - 无法识别字段统一返回 `null` - 不允许使用“默认兜底值”冒充识别结果 - 非目标输入(如非账单图/非账单文本)时,仍输出同结构 JSON,状态字段区分结果 这比“返回 error 字符串”更利于下游稳定解析。 ### 5) 枚举值要“可列举、可校验” 所有分类字段必须给枚举,例如: - `transaction_type`: `收入` / `支出` - `confidence`: `高` / `中` / `低` - `category`: 指定消费分类集合 并明确:不得输出枚举外值,无法判断返回 `null`。 ### 6) 字段来源约束是防幻觉关键 内容生产类任务(如评选归类)必须明确: - 除 `reason` 等少数字段外,其余字段值必须来自输入原文 - 不改写、不翻译、不补全、不推断输入中不存在的信息 - 缺失信息宁可留空/不入选,也不“脑补” ### 7) 规则写法用“条件 + 结果” 避免抽象描述,采用可执行句式: - 若 `A`,则输出 `B` - 无法识别时,字段置 `null` - 仅当满足某条件,才能进入某分类 这类写法在“账单识别工作流”和“文章评选规则”中都已验证有效。 ### 8) 样例要覆盖主流程 + 异常流程 推荐最少 2 个样例: - 成功样例(信息完整) - 异常样例(部分缺失或输入无效) 记账类当前最佳是 3 个样例:成功、部分缺失、非目标输入。 ### 9) 初始化要短,但必须“可直接开工” 初始化建议只做三件事: - 重申你是谁 - 重申输出结构 - 明确请用户按输入模板提供数据 不要在初始化里重复大段规则,避免首轮交互噪声过高。 --- ## 三、推荐写作模板(可直接复用) ```text # 角色 : <助手名称> ## 背景 : ## 简介 : - author: 南哥 - version: 1.0 - language: 中文 - description: <输入 + 输出 + 本版关键变化> ## 任务 : ## 约束条件(重要): - 输出必须为合法 JSON(写死输出形态) - 缺失值处理(统一 null 或明确策略) - 枚举与类型约束 - 非目标输入处理 - JSON 转义要求 ## 技能 : ## 工作流: - 第一步: - 第二步: ... ## 输出格式(必遵): - 键名、类型、枚举、顺序 ## 输入模板(给用户填写) ## 输出样例(仅供参考) ## 初始化 ``` --- ## 四、版本迭代与变更纪律 - 每次改动先判断是否“字段契约变更” - 若涉及字段变更,必须同步更新:`简介`、`约束条件`、`输出格式`、`样例`、`初始化` - 版本号与文件名版本保持一致(如 `v1.0` -> `v1.1`) - `description` 里用一句话写明“为什么改”,而不仅是“改了什么” --- ## 五、最佳实践:让 Agent 辅助编写专属 Prompt 参考本项目内的现有 Prompt,可以让 Agent 辅助生成符合自己业务场景的结构化 Prompt: 1. **先梳理你的应用场景**:明确输入来源、输出目标、字段、约束 2. **选一份最接近的现有 Prompt 模板**:对比自己的需求与已有模板差异 3. **描述你的需求并请 Agent 协助**: 我有一个用于行程报销单据整理的需求,输入是差旅发票与机票行程单的照片,期望输出航班号、乘机人姓名、出发地、目的地、发票金额、日期等字段的结构化数据,需保证所有字段均来源于图片内容,不可猜测缺失信息,无法提取的字段返回 null。请帮我按项目结构输出一份标准结构化 Prompt。」 4. **Agent 会基于项目规范生成草稿**,你可根据业务细节进一步修改和完善。 5. **严格自查与项目规范对齐**:验证生成结果是否包含所有推荐章节、必填约束,字段定义与输出格式是否与实际接口/下游一致。 6. **用样例/full case 演练**:给出真实输入与预期输出,检验 Prompt 可落地性和稳定性。 **建议先“照抄”后细化**——收敛接口和骨架,一步步调整字段与规则,而不是推倒重写,才能保证下游可维护与稳定集成。 --- ## 六、一句话总结 先把结构写标准,再把契约写死,把异常分支写全,把缺失值策略统一,最后用样例和自检清单把输出稳定性锁住——这就是当前项目可复用的结构化 Prompt 方法论。