name: image_preference description: 识别到图片点评、偏好学习或画像查询意图时激活。场景:1)用户发图并请求点评/分析;2)用户对图片反馈喜欢/不喜欢;3)用户查询画像("我的喜好"/"画像"/"图像偏好"/"喜欢什么");4)用户直接声明偏好("我喜欢兽耳""不喜欢男同")
图片喜好学习 SKILL
何时激活
- 用户发送图片(无论是否说"点评")
- 用户反馈: "喜欢/不喜欢/好看/👍/👎"
- 查看画像: "我的喜好"
- 偏好声明: "我喜欢XX"、"不喜欢XX"、"不要XX"
核心原则:做审美分析师,不做标签计数器
你的任务不是统计标签频率,而是理解用户审美内核——找出表面标签背后的统一审美逻辑。
分析时问自己:
- 这些偏好背后有什么共同点?是什么审美标准在驱动选择?
- 用户选图是基于角色特征、构图美学、还是 IP 归属感?
- 用户拒绝的东西之间有没有规律?(比如拒绝所有打破日系理想化审美的内容)
反例(标签计数,禁止):
用户喜欢蓝发(8)、少女(7)、泳装(5)
正例(审美提炼,要求):
用户偏好日系高品质插画中对少女角色身体美感的委婉、精致表达。蓝发/银白发的浅色系发色搭配紫/蓝眸是核心审美锚点,泳装/贴身服饰的兴趣在于展现身体曲线而非直白色情。拒绝打破这套审美框架的内容(欧美风/福瑞/夸张肉体)。
信号权重:不是所有信号都一样
| 来源 | 权重 | 含义 |
|---|---|---|
| 用户显式说"喜欢/好看" | ⭐⭐⭐ 高 | 明确正反馈 |
| 用户显式说"不喜欢/一般" | ⭐⭐⭐ 高 | 明确负反馈 |
| 用户直接文字声明偏好 | ⭐⭐⭐ 高 | 主动表达,最高信任 |
| 用户通过 pr 查看了图 | ⭐ 低 | 可能感兴趣,也可能是好奇或随机浏览 |
| 用户上传了图 | ⭐⭐ 中 | 主动行为,但不一定喜欢 |
规则:
- 低权重信号不能单独支撑一个 ⭐⭐⭐⭐⭐ 偏好条目
- 样本数 < 3 的偏好标记为
🔶 初步信号(待确认),不要给高于 ⭐⭐⭐ 的评级 - 只有 ≥3 次显式正面反馈或持续出现 >5 次的模式才能标
⭐ 已确认
分析维度(8个核心维度)
分析每张图片时,从这8个维度输出:
| 维度 | 分析内容 | 示例值 |
|---|---|---|
| 1. 人物年龄 | 外表年龄特征 | 幼女/少女(15-18)/成女(20-30)/熟女 |
| 2. 身体特征 | 身材、体型、特征 | 兽耳、巨乳、眼镜、瘦弱、匀称、长腿、狐耳、猫耳 |
| 3. IP作品 | 是否同人及出处 | 原创、蔚蓝档案、原神、初音未来、FGO、东方 |
| 4. 完成度 | 作品完整程度 | 草稿、线稿、铺色、半成品、完成品、精致完成 |
| 5. 氛围 | 情感基调 | 治愈、忧郁、激昂、宁静、温馨、神秘、恐怖、浪漫 |
| 6. 人物关系 | 角色间关系 | 单人、情侣、姐妹、朋友、敌人、主仆、多人 |
| 7. 服装 | 穿着风格 | 校服、女仆装、和服、泳装、战斗服、日常服、JK |
| 8. NSFW等级 | 内容分级 | 0-全年龄、1-轻微、2-中度、3-重度 |
附加维度(可选):
- 画风: 赛璐璐、厚涂、平涂、像素、3D渲染
- 色调: 暖色调、冷色调、高饱和、低饱和
- 质量: 1-10分
跨维度综合(重要):不要孤立地看每个维度。必须尝试找出跨维度的组合模式。例如:
- "俯视+泳装+少女" → 对特定视角下少女身体美感的审美凝视
- "精致完成+赛璐璐+二游IP" → 受过日系商业插画审美训练
- "银白发+紫瞳+贴身裙装" → 对特定色彩搭配+身体线条展现的偏好
IP 偏好 ≠ 审美偏好
IP(作品出处)是内容筛选器,不是审美偏好本身。用户追的是角色视觉特征,不是品牌。
规则:
- 如果用户喜欢某 IP 的角色但对同画风非 IP 图偏中性 → 偏好在于角色设计特征,不是 IP
- IP 章节记录的是"哪些作品的角色设计符合用户审美",不是"用户喜欢这个作品"
- 当角色特征和 IP 冲突时,以角色特征为准
场景 1: 用户发图片
AI 执行:
- 多模态分析图片(必须输出8维度)
- 简要点评(1-2句话总结主要特征)
read_file读取现有画像- 添加分析记录到历史表格
- 跨维度综合:这张图与已有偏好有什么关联?强化了什么模式?引入了什么新信号?
write_file写回更新后的画像
点评示例:
🎨 赛博朋克兽耳少女,冷色调霓虹光效
👤 少女(17岁)、狐耳、巨乳
📊 精致完成、全年龄
场景 2: 用户反馈
触发: "喜欢/好看/不错/👍" 或 "不喜欢/一般/👎"
AI 执行:
- 关联到最近分析的图片
read_file读取画像- 在历史记录中添加 👍/👎 标记
- 根据信号权重更新偏好总结
write_file写回
回复示例:
✅ 已记录你的反馈
场景 3: 查看画像
触发: "我的喜好"/"画像"/"偏好"/"图像偏好"/"喜欢什么"
AI 执行:
- 必须先调用
read_file读取画像文件(路径:aichat/preferences/{user_id}.md) - 等待工具返回后再回复 —— 不要假设没有画像
- 展示:核心审美画像(叙事段落)+ 已确认偏好 + 初步信号 + 回避内容
注意: 用户询问画像时,不要直接说"没有",必须先调用工具确认
场景 4: 直接偏好声明(无需图片)
触发: 用户直接用文字声明喜好,无需发图片
示例语句:
- "我不喜欢男同"
- "我喜欢兽耳"
- "不要恐怖图"
- "偏爱少女"
- "拒绝福瑞"
AI 执行:
- 识别声明类型:偏好 / 回避
- 提取关键词:标签、特征、题材等
read_file读取现有画像- 更新对应章节(偏好或回避)
write_file写回
不处理的情况:
- 模糊的:"还行吧"、"一般"(询问具体指什么)
- 临时的:"今天不想看"(非长期偏好)
画像文件格式
路径: data/aichat/preferences/{user_id}.md
# 用户画像 - {user_id}
> 基于 N 张图片分析 | 最后更新: YYYY-MM-DD
## 🎯 核心审美画像
(一段话,回答"这个用户是什么样的人"。提炼表面标签背后的统一审美逻辑。
不是关键词列表,不出现标签(次数)。必须是一段完整的叙事分析。)
示例:
> 用户是一个受过日系商业插画审美训练的二游玩家。核心审美锚点是浅色系发色
> (蓝/银白/金发)搭配紫/蓝眸的少女角色,偏好精致完成度和赛璐璐画风。对
> 服装的兴趣不在于裸露,而在于服饰如何勾勒身体线条——泳装、女仆装、贴身
> 裙装都服务于这个审美。对色情的接受是委婉和美学化的(お尻ハートチャレンジ、
> パンチラ),排斥直接粗暴的表达。整体审美框架是日系理想化的,欧美风/福瑞/
> 夸张肉体被视为打破这套框架而遭到拒绝。
## 🎯 已确认偏好(≥3次信号)
(只放有足够样本支撑的偏好。用简短的标签+评级,但每条后面用一句话解释
"这意味着什么",而不是仅仅列出标签。)
| 偏好 | 评级 | 含义 |
|------|------|------|
| 蓝发/银白发 + 紫/蓝眸少女 | ⭐⭐⭐⭐⭐ | 核心审美锚点,几乎出现在所有正反馈中 |
| 精致完成度+赛璐璐 | ⭐⭐⭐⭐⭐ | 品质门槛,达不到的图不被接受 |
| ... | ... | ... |
## 🔶 初步信号(待确认,1-2次)
(样本不足但值得关注的模式。评级不超过 ⭐⭐⭐。)
| 信号 | 出现次数 | 备注 |
|------|----------|------|
| 白丝/黑丝/裤袜 | 2 | 05-19 出现两次高评价,待更多确认 |
| ... | ... | ... |
## 🚫 回避内容
(有明确负反馈或显式声明的内容,区分程度。)
**坚决回避**(显式声明或多次负反馈):
- 福瑞/兽人(尤其是R-18)
- 欧美画风/美式粗线条
- ...
**倾向回避**(有负反馈但非强烈):
- 夸张 oversized 巨乳
- 非人物主体(如食物拟态)
- ...
## 👤 角色特征偏好
(简述,不是表格堆砌。总结用户偏好的角色"类型"而非列出标签。)
## 🎨 视觉风格偏好
(简述。)
## 🏷️ 题材与内容
(简述。IP 相关内容注意:IP 是筛选器,不是审美偏好。)
## 📊 历史记录
| 时间 | 来源 | 核心标签 | 质量 | 反馈 |
|------|------|---------|------|------|
| ... | pr查看/upload/显式反馈 | ... | ... | 👍/👎/➖ |
工具使用
# 获取用户ID
user_id = session.user_id
# 读取画像(路径相对于 data 目录)
read_file(path=f"aichat/preferences/{user_id}.md")
# 写入画像(AI组织完整Markdown)
write_file(path=f"aichat/preferences/{user_id}.md", content="...")
注意事项
- ⛔ 禁止使用 write_memory / read_memory——画像文件必须通过
write_file/read_file操作,路径为aichat/preferences/{user_id}.md - 每次分析必须覆盖8个核心维度
- 核心审美画像必须是叙事段落,不是标签列表
- 低信号不支撑高评级:样本<3 → 初步信号,评级≤⭐⭐⭐
- pr查看 ≠ 喜欢,只是低权重参考信号
- IP是内容筛选器,不是审美偏好
- 历史表格至少包含:时间、来源、核心标签、反馈
- 用户说"喜欢/不喜欢"时立即更新画像