Shiori 是一个以角色为核心的本地 Agent 应用,当前以 Windows 桌面端 + Python Agent Runtime 为主要形态。
它关注角色如何在长期相处中保持一致:每个角色有自己的设定、素材、会话、记忆和渠道绑定,也可以在合适的时候主动联系你、延续同一个场景,或把对话转化成图片。
你可以创建多个角色,并分别维护名称、简介、系统提示词、头像和立绘。每个角色拥有独立的记忆空间与会话,不会因为切换角色而混淆身份和经历。
角色还可以绑定不同的聊天渠道和允许对象:可以让不同角色面向不同联系人,也可以让同一个角色从桌面延伸到 Telegram 或 QQ。
Shiori 会把会话、近期上下文和长期记忆分开管理。角色可以在后续对话中重新取回与你有关的信息,而不是只依赖当前窗口里有限的聊天记录。
记忆整理在后台完成,并保存在本地工作区。你可以直接查看和维护这些内容,不需要把角色经历锁在不可见的云端账号里。
主动能力会结合角色关系、距离上次互动的时间和当前场景,决定是否发起新消息或继续刚才的话题。用户回复、场景切换和会话结束都会影响后续主动行为,避免把主动消息退化成固定间隔的提醒。
Drift 则用于角色空闲时的后台活动,让信息搜集、记忆整理或其他可扩展任务不必占用当前对话。
接入 NovelAI 后,角色可以手动生成图片,也可以根据最新一轮对话判断是否需要生成场景 CG。场景判断会区分延续、切换与结束,并避免在冷却期或同一回合中重复生成。
图片会作为会话内容保存并同步到桌面端。外部渠道主动推送的图片也会回到同一会话中,不会成为游离在聊天记录之外的附件。
| 场景 | 体验 |
|---|---|
| 桌面陪伴 | 在本地桌面端创建角色、聊天、管理素材与查看历史会话 |
| 长期角色扮演 | 让角色通过独立记忆延续关系、设定和共同经历 |
| 跨渠道联系 | 将角色绑定到 Telegram 或 QQ,在离开电脑后继续收发消息 |
| 主动互动 | 让角色根据关系与场景主动问候、追问或分享内容 |
| 场景视觉化 | 在对话中手动生图,或让 NovelAI 自动生成合适的场景 CG |
| 多角色共存 | 为不同角色配置独立人设、素材、记忆和联系人 |
| 桌宠陪伴 | 将角色以独立透明窗口常驻桌面,并从桌宠快速回到对应角色窗口 |
- 角色创建、编辑、删除与切换
- 多会话聊天、历史记录与消息上下文操作
- 头像、立绘、聊天图片与本地素材管理
- 图片生成、提示词标签与图片预览
- 模型、记忆、渠道、主动能力、Drift 与 NovelAI 设置
- 关闭窗口后驻留系统托盘,继续保持已配置渠道在线
- 每个角色可以独立启用桌宠并绑定自己的桌宠素材包,支持 ZIP 导入、安全校验、选择、删除和动作映射。
- 桌宠运行在独立透明窗口中;关闭主窗口后仍可通过系统托盘继续运行,双击桌宠可打开对应角色,右键菜单由主进程接管。
- 支持原生拖拽、位置持久化、拖拽惯性和屏幕边界约束;桌宠会根据移动方向播放动作并在停止后恢复 idle。
- 角色在桌面回合中可以调用
pet_action播放已授权动作或移动桌宠;外部渠道不会暴露桌宠控制能力。 - 屏幕观察伴侣可在明确授权后向角色提供观察结果,并在桌宠附近展示角色回复气泡。
- 被动回复与流式输出
- 近期上下文、长期记忆检索与记忆整理
- Proactive 主动推送与同场景后续互动
- Drift 空闲任务
- 工具调用、插件扩展与生命周期拦截
- 桌面端、Telegram 与 QQ 的统一会话同步
- 每个角色独立保存人设、素材、记忆与会话
- 按角色配置渠道账号、允许对象和默认路由
- 桌面端与外部渠道共享角色状态和消息记录
- 外部推送的文本、图片和媒体元数据同步回桌面会话
- 桌面端目前优先支持 Windows。
- 模型请求会发送到你配置的模型服务;角色、会话和记忆默认保存在本地。
- Telegram 和 QQ 是当前保留的外部消息渠道,需要分别提供可用凭据。
- 自动 CG 与图片生成需要额外配置 NovelAI。
- 桌宠需要角色已启用桌宠并选择有效素材包;没有可用绑定时不会创建桌宠窗口。
Windows 桌面端 ─┐
Telegram / QQ ──┼── Agent Runtime
│ ├── 角色与关系
│ ├── 会话与记忆
│ ├── 工具与插件
│ ├── Proactive / Drift
│ └── 图片生成
└── 本地工作区
默认工作区位于:
~/.shiori/workspace/
其中包含:
roles/:角色定义、素材与角色记忆memory/:长期记忆与近期上下文sessions.db:会话与消息proactive_sources.json:主动推送数据源mcp_servers.json:MCP 服务定义
修改或删除工作区内容前,建议先退出桌面端并备份对应文件。