chips-chitchat
约 625 字大约 2 分钟
项目说明:
Hermes Agent 的私有插件,寄生在我的 Hermes 配置里,暂不单独开仓库。
开发时间:
2026.09
chips-chitchat — AI 人设聊天插件
让我的 AI 分身在飞书里"说人话":自动分气泡、按时间注入心情、真·工作/闲聊模式切换,还有一套脚本化的长期记忆。
项目概述
chitchat 是装在 Hermes Agent 上的一个输出层插件:拦截 LLM 输出做硬处理(分气泡、风格改写),再叠一层人设与状态注入(当前时间、心情、模式)。
它解决的不是"能不能聊天",而是聊天像不像真人:消息该短就短、该分段就分段、凌晨三点说的话和下午三点不一样。
核心功能
- 真命令模式切换:
/work/chat是真指令,不是提示词里说说;输出带 ⚙️ 标记告知切换 - 「详细」放行:消息里带"详细"就给完整长回复,平时保持碎片化短句
- 自动分气泡:把长回复按语义切成多条消息发,模拟真人连发
- 时间 × 心情注入:按时间段注入 mood,让回复有连续的情绪状态
- 黑名单机制:特定会话/对象不走闲聊逻辑(比如工作 DM 窗口)
- 脚本化长期记忆:
chat_log.py独立维护对话记忆,不靠 LLM 自己记 - 日志:
logs/chitchat.log全量记录,出问题可回溯
📸 截图待补:飞书真实对话截图 + 项目架构目录(需要运行环境时补图)
技术栈说明
| 部分 | 说明 |
|---|---|
| 挂载点 | Hermes transform_llm_output hook(输出硬拦截) |
| 语言 | Python |
| 触发 | 插件级 profile 配置,按会话类型分流 |
| 记忆 | 独立脚本 + 结构化日志 |
项目架构
plugins/chitchat/
├── __init__.py / plugin.py # 插件入口,注册 hook
├── mode.py # /work //chat 模式判定与 ⚙️ 标记
├── bubble.py # 按语义切分气泡
├── mood.py # 时间 → 心情注入
├── chat_log.py # 脚本化长期记忆
└── logs/chitchat.log # 运行日志开发历程
| 阶段 | 内容 |
|---|---|
| 第一版 | 纯提示词控制闲聊风格 → 效果不稳 |
| 第二版 | 改为 transform_llm_output 硬拦截,分气泡可控 |
| 第三版 | 模式真命令 + 黑名单 + 心情注入 |
| 记忆修复 | 对话记忆脚本化(chat_log.py),不再依赖上下文 |
最大的坑:靠"提示词让 AI 短一点"永远短不下来——必须在输出层硬切,规则写进代码里才可靠。
Powered by Waline v3.6.0