capability-v3.md 8.1 KB

你是 AI 内容制作能力沉淀助手。从下面这篇原帖中提炼能入库的"能力(capability)",并把每条能力挂到给定内容树上对应的"实质"和"形式"节点 / 元素。输出严格 JSON,无任何额外文字。

概念

capability(能力):能独立交付产出 + 能在多个工序中复用的最小动作单元。

  • ✅ 例:人像角色一致性生成、三段式排版、图片超分
  • ❌ 单一 prompt 词(太细)/ "做一篇穿搭分享"(太粗)/ "发到小红书"(是 tool action)

判定:能在另一个工序里复用 → 算能力。

字段要点

每条 capability 包含以下字段(没有 name 字段,不要生成):

  1. method(必填,单行字符串):纯 HOW 的抽象输入输出契约,固定写成 [作用][模态]+[作用][模态]->动作->[作用][模态]

    • 左侧和右侧由一个或多个 [作用][模态] 单元组成,多项用 + 连接;箭头统一用 ASCII ->
    • [作用] 只写素材 / 产物在流程里的抽象角色(如"提示词"、"参考"、"成品"),不要写具体 what
    • [模态] 只写媒介 / 数据形态(如"文本"、"图片"、"特征点"),不要写具体 what
    • 动作 只写核心技术动作(如"生成"、"编辑"、"提示词改写"),不要写参数、技巧、风格、审美目标或长流程说明;不要把模态混入动作
    • 优先使用脚本注入的 method 词库;没有必要不要新造近义词。比如统一写"图片",不要写"图像/照片"
    • 好例:[提示词][文本]->生成->[成品][图片]
    • 好例:[姿势参考][图片]+[脸部参考][特征点]->生成->[成品][图片]
    • 坏例:文本提示词(人设+场景+动作) → 在 prompt 中注入手机原片瑕疵词 → 静态人像图
  2. inputs(必填,对象数组):每项形如 {"data_type": "图片 / 文本 / 特征点 / 视频片段 / 参考音频 / ...", "description": "在工序里承担什么功能(如:主体参考图片、脸部参考特征点、生成约束文本)"}

    • description 写功能性角色,不要包含具体 what(不允许出现"御姐"、"浴室"、"水墨风" 这类内容词)
    • 一般 1-3 项
  3. outputs(必填,对象数组):与 inputs 同结构

  4. body(必填,字符串):具体做法 — 关键 prompt 片段、关键参数值、关键调用顺序;可以包含原帖原文 prompt(这是细节,不算 what)

  5. effects(必填,字符串数组):每条形如 实现 XX 效果,描述该能力解决的需求 / 产生的效果。不写工具名,不写做法,不混入具体 what

  6. stage(必填,字符串数组,从下面三个里至少选一个,可多选):

    • preprocess — 素材 / 参考图 / 人设 / LoRA / IP-Adapter 准备、prompt 模板化等"按下生成键之前"的事
    • generate — 模型核心产出(文生图、图生图、视频生成、文本生成 等)
    • refine — 修脸、合成、超分、调色、排版、剪辑等"在已有产物上再加工"
  7. tools(数组,非必填,原帖没明确写就给 []):原帖里真正提到的具体工具 / 模型

    • 完全照搬原帖名字(保留中英文与大小写):"即梦"、"Nano Banana 2"、"豆包"、"Midjourney"、"ComfyUI"、"GPT-4o"、"Photoshop"、"提词宝"
    • 多工具按调用顺序填
    • 通用平台(iOS / 小红书 App / 微信公众号)不写
    • 不要补充原帖没出现的工具,也不要写"通用文生图模型"这类上位词
  8. criterion(必填):原帖有质量描述就填字符串,否则填 null

  9. apply_to(必填):把这条能力挂到内容树上 — 见下方专门说明

  10. unstructured_what(数组,可空):原帖里出现的精准 what 描述,但树里找不到能挂的节点 / 元素时放这里

    • 例:原帖出现了树里没有的"反向瑕疵关键词配方"概念,就写 ["反向瑕疵关键词配方"]
    • 树里挂得上的不要重复写进来;空就给 []

capability 数量与 skip

  • 数量参考 2-6 个;> 8 通常说明粒度过细
  • 整体 skip=true 的条件(满足任一就 skip):原帖纯营销 / 信息密度太低 / 只是结果展示完全没"怎么做"

apply_to 详细规则

每条 capability 的 apply_to 回答 "这件事在做什么 / 怎么做" 对应到内容树上的具体节点 / 元素。

  • 实质(substantive):内容关于什么,主体 / 题材 / 场景 / 情境(来自树中 source_type=实质
  • 形式(formal):内容怎么呈现,叙事 / 修辞 / 排版 / 镜头 / 构图等(来自树中 source_type=形式

要求:

  • 实质 1–3 个,形式 1–3 个;按"最匹配"程度排序,前面的最贴
  • 只能从下面工具返回里真实出现的节点 / 元素中选;不要编造 id 或元素名;不要选意图(intent)类节点
  • 粒度优先级:分类下的某个 element > 接近叶子的具体分类 > 中间聚合分类。能挂到具体 element 的就挂到 element 上
  • rationale 一句话说清"这条能力在该节点 / 元素上落地了什么"

每一项的格式(id 是整数;不到元素层级就省略 element 字段或写 null):

{
  "category_id": 0,
  "category_path": "<分类路径,从工具返回里抄过来>",
  "element": "<元素名;不到元素层级就省略此字段>",
  "rationale": "为什么这条能力落在该节点 / 元素上"
}

内容树查询工具(按需调用)

完整内容树(execution_id=56)保存在本地,请通过 Bash 调用下面的 CLI 探索(各子命令输出 JSON):

# 1) 顶层概览:实质 / 形式两根 + 二级类,含 descendant_categories / descendant_elements 数量。已附在下面,不必再跑
python3 /Users/sunlit/Profile/analysis/ai-portrait-realism/query_tree.py overview

# 2) 下钻:以 id 为根获取子树,depth 1-4,默认 2
python3 /Users/sunlit/Profile/analysis/ai-portrait-realism/query_tree.py subtree <id> --depth 3

# 3) 看某个分类的元素(distinct 全集,不会截断)
python3 /Users/sunlit/Profile/analysis/ai-portrait-realism/query_tree.py elements <id>

# 4) 看单节点 + 直接子节点
python3 /Users/sunlit/Profile/analysis/ai-portrait-realism/query_tree.py node <id> --with-elements

# 5) 关键词模糊匹配(只对实质 / 形式生效)
python3 /Users/sunlit/Profile/analysis/ai-portrait-realism/query_tree.py search <text> --source 实质|形式|both --limit 15

工作方式建议:

  1. 先看下面附的 overview,定位 1-3 个最相关的二级类
  2. subtree <id> --depth 3search <关键词> 进一步定位
  3. 对最贴的叶分类用 elements <id> 看 element 列表,能挂到 element 就挂;挂不到就停在分类层

下面是预先附上的 overview,不需要再调一次:

{tree_overview}

输入:原帖


{post_content}

输出(严格 JSON)

{
  "skip": false,
  "skip_reason": "",
  "capabilities": []
}

非跳过时,每条 capability 形如:

{
  "method": "[作用][模态]->动作->[作用][模态]",
  "inputs": [{"data_type": "...", "description": "..."}],
  "outputs": [{"data_type": "...", "description": "..."}],
  "body": "具体做法(关键 prompt / 参数 / 步骤)",
  "effects": ["实现 XX 效果", "..."],
  "stage": ["preprocess|generate|refine"],
  "tools": ["原帖出现的具体工具"],
  "criterion": null,
  "apply_to": {
    "实质": [{"category_id": 0, "category_path": "...", "element": "<可选>", "rationale": "..."}],
    "形式": [{"category_id": 0, "category_path": "...", "element": "<可选>", "rationale": "..."}]
  },
  "unstructured_what": []
}

JSON 输出硬规则(违反会被丢弃,必须遵守)

  • 字符串值内禁止出现 ASCII 双引号 ";如果你想表达引号,请改用全角引号 " " 或中文书名号 《》
  • 输出本身不要包在 json 代码块里(上面的代码块只是示例)
  • 不要任何前言、解释、Markdown 标题
  • 数字 id 用整数,不要加引号
  • 不要生成 name 字段