跳转至

🎨 输出风格自举机制 v2.0

AI Agent 风格控制系统 — 像人一样学习用户偏好,越用越懂你

参考 2026 年最佳实践:Steering Handler 模式 + 风格 Linters


📋 目录

  1. 为什么需要风格自举
  2. 四维风格坐标系
  3. Steering Handler 风格检测
  4. AI 词汇黑名单
  5. 置信度加权学习
  6. 当前用户风格档案
  7. 风格执行检查清单

1. 为什么需要风格自举

真实踩坑记录

告诉 Agent 「简洁一点」→ 刚开始还行 → 3 轮对话后又变回长篇大论。

告诉 Agent 「用表格」→ 这轮用了 → 下轮又变回列表。

问题:风格偏好在上下文里被稀释了,对话越长越跑偏。

2026 年的解决方案:Steering Handler

核心思想:不要把风格要求塞进系统提示里。而是做一个独立的检查器,每一个输出都过一遍,不符合风格要求就打回去重写,用户完全看不到。

传统模式(容易跑偏):
  系统提示里写「输出要简洁」→ 模型有时记得有时忘 → 3 轮后就忘了

Steering Handler 模式(100% 执行):
  模型生成输出 → 风格检查器过一遍 → 不符合就重写 → 用户只看到最终版

2. 四维风格坐标系

每个用户的偏好都可以映射到这四个维度上:

维度 左端 右端
详略程度 🟢 极简(只给结论) 🔴 详细(完整推理)
格式偏好 📊 表格优先 📝 纯文本
结构偏好 ✨ 结论先行 📖 原因→结论
语气风格 😐 客观中性 😊 友好亲切

3. Steering Handler 风格检测

检测流水线

每轮输出结束 → 自动运行 4 个检查器
    │
    ├─── 详略程度检查器 → 太长了?太啰嗦?
    ├─── 格式检查器 → 该用表格的时候没用?
    ├─── AI 词汇 linter → 有没有用「综上所述」「值得注意的是」?
    └─── 用户偏好匹配器 → 符合之前学到的偏好吗?
    │
    └─── 任何一项不通过 → 自动重写(用户看不见这个过程)

详略程度检查器

def check_conciseness(output, preference="standard"):
    """检查输出是否符合详略偏好"""

    thresholds = {
        "minimal":  500,   # 极简模式:不超过 500 字
        "standard": 1500,  # 标准模式:不超过 1500 字  
        "detailed": 3000,  # 详细模式:不超过 3000 字
    }

    if len(output) > thresholds[preference] * 1.2:
        return f"❌ 输出太长了,目标 {thresholds[preference]} 字,实际 {len(output)} 字"

    return "✅ 详略程度符合"

格式检查器

自动检测是否应该用表格:
├─ 提到 3 个以上并列项 → 应该用列表
├─ 有 2 个以上维度对比 → 应该用表格
└─ 有明确的步骤顺序 → 应该用编号列表

检测规则:
  关键词:对比 / 区别 / vs / 优缺点 / 评分
  出现以上关键词 → 优先用表格格式

4. AI 词汇黑名单 ⭐

这是 2026 年 Agent 输出「去 AI 化」最重要的发明。

典型 AI 词汇(看到就打回去重写)

严重程度 词汇 替代方案
🔴 严禁 综上所述、值得注意的是、需要注意的是 直接说结论
🔴 严禁 至关重要、举足轻重、不可或缺 「重要」
🟡 尽量少用 一窥究竟、深入探讨、全面分析 「看看」「分析」
🟡 尽量少用 不仅...而且... / 一方面...另一方面... 用短句直接说
🟢 可选 🌟 ✨ 🎯 等 emoji 适量,不要每句都加

检测脚本模板

AI_VOCAB_BLACKLIST = [
    "综上所述", "值得注意的是", "需要注意的是",
    "至关重要", "举足轻重", "不可或缺",
    "一窥究竟", "深入探讨", "全面分析",
    "不仅...而且...", "一方面...另一方面...",
]

def ai_vocab_linter(text):
    """检测 AI 套话,输出像不像机器写的"""

    hits = []
    for word in AI_VOCAB_BLACKLIST:
        if word in text:
            hits.append(word)

    if hits:
        return f"❌ 检测到 AI 套话:{hits},请重写得更像人话"

    return "✅ 风格自然"

5. 置信度加权学习

学习机制

不是每次用户说「太长了」就 180 度转弯,而是渐进式调整:

反馈类型 置信度增量 说明
用户明确说「下次都要这样」 +0.3 强信号
用户连续 3 次同类反馈 +0.2 累计效应
用户说「这次不错,保持」 +0.1 正反馈确认
用户只说一次,再也没提 -0.1 / 周 可能是偶然偏好

置信度阈值

置信度 0.0 - 0.3 → 弱信号,试探性执行
置信度 0.3 - 0.7 → 中等置信,默认执行
置信度 0.7 - 1.0 → 强置信,固化为核心记忆

记忆升级路径

单次反馈(置信度 0.1)
    ↓
3 次同类反馈 → 升级为稳定偏好(置信度 0.5)
    ↓
用户明确确认「就是这样」→ 升级为核心记忆(置信度 1.0)
    ↓
写入 L5 核心记忆 → 永久生效

6. 当前用户风格档案

👤 sora 的风格画像

维度 当前值 置信度 依据次数
详略程度 「结论先行 + 分层次」 0.8 5+ 次
格式偏好 表格 > 列表 > 大段文字 0.9 10+ 次
结构偏好 先给结论,解释放后面 0.7 4 次
附加内容 能不给代码就不给 0.6 3 次
AI 词汇 严禁套话,像真人说话 0.9 用户明确强调 N 次

稳定偏好(置信度 > 0.7)

  • ✅ 能用表格就用表格
  • ✅ 复杂内容先给 TL;DR 总结
  • ✅ 关键结论前置,解释放后面
  • ✅ 不要 AI 套话,不要「综上所述」

7. 风格执行检查清单

每轮输出前自动检查

✅ 详略检查:有没有超过目标长度的 120%?
✅ 格式检查:该用表格的地方用了吗?
✅ 结构检查:结论是不是在最前面?
✅ AI 词汇检查:有没有用黑名单里的词?
✅ 偏好匹配:是不是符合学到的用户偏好?

全部通过 → 输出给用户
任何一项不通过 → 自动重写

🔄 风格自举闭环

用户反馈 → 记录 → 置信度加权 → 稳定偏好 → 写入档案
     ↑                                                 ↓
     └────────── Steering Handler 自动执行 ◄───────────┘

📈 成熟度评分

维度 评分 状态
四维风格坐标系 ⭐⭐⭐⭐⭐ 5/5 ✅ 完整架构
Steering Handler 模式 ⭐⭐⭐⭐ 4/5 ✅ 设计完成,待实现自动化
AI 词汇黑名单 ⭐⭐⭐⭐⭐ 5/5 ✅ 完整清单 + Linter 模板
置信度加权学习 ⭐⭐⭐⭐ 4/5 ✅ 算法设计完成
检查清单 ⭐⭐⭐⭐⭐ 5/5 ✅ 可执行,能照着做
整体 ⭐⭐⭐⭐⭐ 5/5