她有身体,有日程,有情绪。 不是一句人设,是一整天的生活。 插件负责她的身体、日程、情绪和关系背景;怎么说话,仍然由大模型按人设自己决定。
作者 娜莉灵 · 显示名 人形化核心伴侣 · 插件 ID astrbot_plugin_humanoid_core(为兼容已安装用户与联动发现保持不变)
运行要求:AstrBot 4.24.0+ · Python 3.10+(更早的版本会被 AstrBot 的版本校验拒绝加载)
「人形化核心伴侣」是给 AstrBot 做的拟人化插件:给她一份会变的身体、一整天的日程和会波动的情绪,让角色不只是一句固定人设。
- 她有会随时间变化的身体:精力、困意、睡眠债、饥饿、生理周期,不要求你先说话才更新;
- 她有一整天的日程:动态现排、可以被打断,被打断的事挂起后还能自己回去接着做;
- 她有情绪与关系:好感度、心境、认识天数,按互动慢慢变,不是每条消息都从零开始;
- 她知道自己在哪、几点、什么天气、什么日子;
- 她不替自己写台词:插件只把背景递给她,怎么说还是大模型的事。
- 身体状态 —— 精力、困意、睡眠债、饥饿、不适、唤醒度、想不想说话(社交欲望)随休息与活动一起变,不同数值是不同状态;
- 社交能量 —— 陪聊会消耗、独处会恢复,累了就先管自己(可关);
- 睡眠 —— 睡不够会起不来;睡着那一段不会被消息重排,但会记下「被吵到」;
- 生理周期 —— 8 个阶段各有体感,也会影响部分状态变化;
- 梦 —— 睡着会做梦,刚醒的一小段时间她还没完全缓过来。
- 动态日程 —— 一天会被打断,不是每天机械重复同一套安排;
- 日程打断 —— 私聊里叫住她(「在吗」「陪我」),她会放下手上的事换一件;
- 挂起续做 —— 被打断的旧活会挂起一段时间,忙完可以自己回去接着做。
- 情绪 —— 会随互动变化,持续性情绪不会下一条消息就清零;
- 好感度 —— 关系会变深,也会因为连着几句难听话掉下来;
- 认识天数 —— 记得你们认识多久,但不逼她时时提起;
- 关系阶段 —— 好感与认识时长走到不同阶段,措辞与主动性会跟着变,不是只换一个数字;
- 注意力 —— 她此刻对你这句话上不上心,会影响措辞与主动性。
- 时间时区 —— 按她的城市过,作息跟着走;
- 天气 —— 她那边什么天,要不要带伞她自己知道;
- 节日季节 —— 知道今天是什么日子,含农历节日(2025–2030)与二十四节气;2031 年起农历查不到,节气照常;
- 穿搭 —— 她知道自己穿着什么:按人设/名字自动挑,也可以手写预设、随场景变化(可关)。
- 正在输入 —— 私聊回复时显示「正在输入」(仅 NapCat);
- 多角色 —— 每个角色各自生活,互不覆盖;
- 长期记忆 —— 装了记忆插件就按你这句话去读,没装照常跑;
- 未完事项 —— 记着手上还开着的事,最多三条、最多放 4 天;
- 对话间隔 —— 知道你多久没来,但不逼她问「你去哪了」;
- 同机 bot —— 可以聊;同一对 bot 十分钟最多三轮,真人一开口就清零;
- 群聊 —— 群里一样有身体和日程;默认群消息不做情绪分析(可在面板打开「群聊也算情绪」),管理指令在群里对非管理员静默;
- 环境模式 —— 可以把整个插件限定在私聊或群聊(面板「生效范围」,默认两边都生效)。
- 亲密场景模拟 —— 默认关闭的进阶项:当好感与亲近欲都到一定程度、又真的想要时,她会进入一个更亲密的互动情境,并据此调整自己的情绪与措辞;关闭时完全不参与普通聊天。开启前请确认使用场景合规,面板里有独立开关与阈值。
1. 装上
AstrBot「本地安装 zip」不覆盖同名目录:装过旧版先卸载(不要勾「删除配置」「删除数据」),再上传新 zip。
需要 AstrBot 4.24.0 及以上:更早的版本会被 AstrBot 的版本校验直接拒绝加载(官方声明的最低版本就是真实 API 下限)。
官方声明支持平台:aiocqhttp(QQ / NapCat)与 qq_official;其他 AstrBot 平台理论可用但未逐一验证,其中「正在输入」只在 NapCat 生效。
2. 填一处
| 填哪里 | 填什么 | 例子 |
|---|---|---|
| 她所在的城市 | 决定她的钟点、作息、天气、季节 | /拟人 时间 大阪 |
就这一处。装完第一件事就是改城市——不改会静默退回服务器时区,天气和季节也一起错掉。 表里没有的名字可以直接填 IANA 时区名(
Asia/Ho_Chi_Minh)。
3. 确认人设
AstrBot 里的角色人设要先写好——日程语气与生活特质都从这份人设里读。
4. 想接天气
填 weather_api_key(OpenWeather 免费档够用);不填也能跑,只是没有天气。
配置在 data/config/astrbot_plugin_humanoid_core_config.json,身体状态在 data/plugin_data/humanoid_core/state.json;卸载插件时这两份数据都不会被删除。依赖只有 aiohttp。
查状态的这几条谁都能用,直接打,不带前缀:
| 指令 | 作用 |
|---|---|
/你的状态 |
精力、身体轴、生理、天气、日程、关系、注意力 |
/亲密状态 |
亲近欲离门槛多远、在不在场景里(仅私聊) |
/查看日程 |
她今天过出来的日程,动态现排、不预排未来 |
/时间 城市 |
指定城市的当前时间、星期与节日 |
/好感度 |
情绪档案总览;管理员加「排行榜」看排名 |
/情绪详情 |
详细情绪档案,含基线值与交互轮次 |
/情绪日志 |
最近的情绪波动记录 |
/叫我 昵称 |
设置她对你的称呼,没设过时她会自动认一次 |
/拟人帮助 |
显示指令帮助 |
管理员 · 改配置
下面这些挂在「拟人」组里,要带 /拟人 前缀,且只有管理员能用。
| 指令 | 作用 |
|---|---|
/拟人 时间 城市 |
设置她所在的城市(时区),只改当前这个机器人 |
/拟人 设置 |
看常用项;写成「/拟人 设置 间隔 30」改一项,立即生效(也支持「/拟人 设置 穿搭 白色针织衫」单独给当前角色设穿搭) |
/拟人 参照名称 名字 |
设定注入里代表她的名字(默认跟人设) |
/拟人 诊断 |
排查模型选择、时区是否生效、上下文与状态文件大小、落盘健康 |
/拟人 重载 |
面板改完进阶项,用它刷新配置 |
管理员 · 动数据
| 指令 | 作用 |
|---|---|
/拟人 重置日程 |
立即重新决定她当前这一段 |
/拟人 日程打断 |
让她放下手上的事,换一件(不是继续) |
/拟人 日程继续 |
把当前这一段往后延长,不另外生成 |
/拟人 重置状态 |
重置精力、社交能量与生理周期 |
/拟人 重置情绪 |
把你自己的情绪重置到初始值 |
/拟人 设置好感度 数值 |
手动设置自己的好感度(0-100) |
/拟人 批量好感度 QQ:值,QQ:值 |
批量导入好感度 |
/拟人 查看昵称 |
看所有用户设置的昵称 |
面板上共 134 项(多数带【进阶】标记),这里列真正需要动的:
| 项 | 默认 | 什么时候调 |
|---|---|---|
timezone_city |
河源(记得改~) | 必改。决定她的钟点、作息、天气、季节 |
她所在的角色人设 |
AstrBot 那边设 | 日程按它排;写她的语气、身份、说话习惯 |
use_llm_schedule |
开 | 关掉则日程改用本地模板(更省额度,情节也更死板) |
llm_daily_call_budget |
200 | 每日模型调用次数上限(不是 token),多 bot 共享一份 |
llm_idle_silence_minutes |
60 | 连续这么久没人说话就停掉后台调用,有人一说话立刻恢复 |
mood_use_llm_for_delta |
开 | 关掉则情绪完全本地判断,零额外调用 |
mood_llm_interval_messages |
10 | 每人每几条消息用模型分析一次情绪(按人算) |
mood_data_retention_days |
7 | 超过这么多天没说话,情绪档案清回初始值(称呼保留) |
mood_negative_streak_required |
2 | 连着几句难听话才扣好感;1=每句都扣 |
mood_negative_softening |
开 | 底部减速 + 情绪韧性(好感越低扣得越少、关系越深越抗打击) |
mood_recovery_bonus |
开 | 道歉快速回温 + 低于基线时暖话加成 + 连着哄加速消气 |
cooling_enabled |
开 | 冷静期:好感跌破门槛后她冷着一段时间,且这段时间不主动找他 |
cooling_affection |
10 | 好感低于它就进入冷静期 |
cooling_minutes |
15 | 冷静期语气持续多久(分钟) |
cooling_no_proactive_days |
3 | 冷静期里不主动找 TA 的天数 |
auto_identify_user |
关 | 开则注入里用真名区分「她」和「对方」 |
auto_nickname |
开 | 从消息自带的名字认一次称呼;含数字/emoji/占位词一律不认 |
schedule_interrupt_on_call |
开 | 私聊里明确叫住她(「在吗/你在干嘛/陪我」)时,不熬安静间隔也算一次来访 |
schedule_interrupt_quiet_minutes |
45 | 距上一条私聊至少隔这么久才算「有人来访」;0 = 每条私聊都算(多人部署慎用) |
schedule_continue_minutes |
45 | /拟人 日程继续 一次把当前这一段往后延长多久 |
schedule_pause_ttl_minutes |
180 | 被打断的事保留多久(期间她可以自己回去接着做) |
weather_api_key |
空 | OpenWeather 密钥(免费档就够) |
soma_enabled |
开 | 关掉则身体轴只保留精力一个数(不影响跨插件契约里的非身体内容) |
contract_enabled |
开 | 跨插件契约总开关;关掉后不再向「自主拟人社交」导出她的状态 |
input_state_enabled |
开 | 私聊回复时显示「正在输入」(仅 NapCat) |
改完面板里的进阶项,用 /拟人 重载 刷新;/拟人 设置 改的项立即生效。
建议搭配 自主拟人社交 v1.28.17 及以上(契约 v2)。装了时,她把身体、日程、关系、称呼与亲密状态一起导出去,由对方决定什么时候主动开口;没装也能独立跑,只是没人替她先说话。两边都靠插件 ID astrbot_plugin_humanoid_core 互相发现,ID 保持不变。
| 对比 | 人形化核心伴侣 | 自主拟人社交 |
|---|---|---|
| 主要职责 | 维护身体、情绪、日程、关系 | 决定是否主动联系、联系谁、聊什么 |
| 是否主动发消息 | 不负责 | 负责 |
| 日程与状态 | 生成并维护 | 读取作为决策参考 |
| 状态 | 她的表现 | 怎么处理 |
|---|---|---|
| 没装自主拟人社交 | 独立跑,只是没人替她先开口 | 想要主动消息再装 |
| 已装,但版本偏旧 | 读不到的字段按「没有」降级,不报错;部分由头、称呼用不上 | 升级到 v1.28.17+ |
| 已装,但配置关闭 | contract_enabled 关掉后不再对外导出契约,对方拿不到她的状态;只关 soma_enabled 则仍导出身份、日程、节日、事件等非身体内容,身体数值给中性表示 |
想联动就打开 contract_enabled;只想轻量可只关身体轴 |
- 她不做长期记忆:不建记忆库、不存聊天记录。
- 她只留两样短东西:最近 12 小时内你说过的几句原话(最多 4 条),以及手上还开着的未完事项(最多三条、最多放 4 天,事情了结就消失)。
- 这两样都随每条回复递给她一句事实,不落会话历史:上下文被压缩掉之后它们还在。
- 装了「我会牢牢记住你」时两边会接上:每轮按你刚说的话去读这个人的记忆,她自己生活里的事真正结束时补一条回去;没装照常跑。
她按「她所在的城市」过日子:/时间 城市 可以查别的城市,但她的身体和日程只按这个。填表里有的名字(河源/北京/大阪/莫斯科),或者直接填 IANA 时区名(Europe/Moscow)。
表里没有的名字会静默退回服务器时区——/拟人 诊断 的【时区】会直接告诉你有没有生效。地名表共 9,855 条,中国、日本、俄罗斯的地级与县级驻地大多都认,写「广东省」「大阪市」这类带后缀的也认。多 bot 可以在各自的 /拟人 时间 城市 里单独设,互不影响;/时间 城市 谁都能用,只是查时间。
天气城市填英文名+国家码(Beijing,CN);留空则跟着城市配置走(且必须是英文名)。两处不一致会出现「说在北京却报河源的天气」。
- 状态进用户消息,背景进系统提示:每轮在变的东西(她对 TA、心情、身体感觉)进用户消息;几点、天气、季节、她今天在做什么进背景——塞进用户消息里,模型会拿它们当开场白。
- 给体感,不给数值:「有点困」是递给她的;「好感 46/100」这种体检单留在
/你的状态里给你看。 - 同一件事只说一遍:关系位置、心气、精力、想不想说话,各自有且只有一个来源。
- 日程按 15 分钟一个决策窗:到点或掷中「改主意概率」才排下一段,不预排未来;关掉模型就用按日期轮换的本地模板,任何时刻都有段可做。
- 有人打破一段安静来找她:给她一次中途换事的机会,旧活挂起,忙完可以自己回去接着做。
- 睡眠不受消息打扰:睡着那一段不会因为来消息就重排,但会记下「被吵到」;刚醒的一小段时间她还没完全缓过来。
- 身体按时间积分:睡眠债、久坐、饥饿随时间推进,停机后按离线时长补算(上限 72 小时)。
- 情绪本地先判:模型结果只占 0.3 权重融合;本地已经判负明确时,那一次模型调用直接跳过。
- 状态写盘节流:变更后按存档体积自适应间隔整份重写(默认 60 秒,存档越大间隔越长),原子替换;序列化分块进行、不再卡住消息主循环。
/拟人 诊断会显示文件大小、用户数与【状态落盘】一节(间隔、上次序列化耗时、写入体积、连续失败次数与最近错误)——落盘失败会计数,状态仍留在内存,恢复后自动补写。
- 数据不用迁移:
state.json的结构与路径都没变,配置、角色、好感、情绪档案与联动契约会原样继续;升级前备份一下data/plugin_data/humanoid_core/state.json更稳。 - 安装方式不变:AstrBot「本地安装 zip」不覆盖同名目录——先卸载旧版(不要勾「删除配置」「删除数据」),再上传新包;插件 ID 没变,卸载再装不会丢配置与数据。
- 最低版本变了:从 3.0.0 起要求 AstrBot 4.24.0 及以上。
- 显示名变了:面板里显示「人形化核心伴侣」,插件 ID 仍是
astrbot_plugin_humanoid_core,数据目录与跨插件发现都不受影响。
见 更新日志 · 仓库:https://github.com/naliling/humanoid_core_plugin
本插件采用私用授权,不是开源许可证:版权所有 © 2026 娜莉灵,保留所有权利。仅授权个人私下安装与使用;未经作者书面许可,不得再分发或用于商业用途,也不得移除版权声明。完整条款见 LICENSE。
如果你喜欢这个插件,欢迎提出更新需求、帮它继续更新下去。常规更新只递增补丁版本(0.0.1 级别,例如 3.0.0 → 3.0.1 → 3.0.2),不会随意跳大版本;只有兼容性这类大改动才会升主版本。作者做这个插件,是希望能无偿帮到更多人——它不收费,也欢迎你把它推荐给需要的人。
