Skip to content

Repository files navigation

ONITalk

ONITalk 是《缺氧》(Oxygen Not Included)的上下文感知复制人对话模组。复制人会根据当前工作、环境、压力、呼吸状态、近期共同经历和殖民地事件生成简短台词;台词同时显示在头顶气泡和可拖动、可缩放的半透明聊天历史窗口中。

ONITalk 只生成文本,不控制复制人,也不修改游戏模拟。远程模型不可用时会自动回退到内置离线台词。

当前版本

  • 完整版:1.0.0(2026-08-02)
  • 最近实测游戏版本:U59-744825
  • 支持基础游戏与 Spaced Out!
  • 界面与台词语言:英语、简体中文、西班牙语
  • 下载:ONITalk-v1.0.0.zip · SHA-256
  • 许可证:MIT License

主要功能

  • 原生闲聊、压力、缺氧和环境状态触发,并过滤睡觉、如厕等不合理场景;
  • 最多三句的受控双向连续对话;
  • 按殖民地 GUID 隔离的关系、行动和重大事件记忆;
  • 本地相关性检索和 Token 预算,不为记忆选择额外调用模型;
  • 可拖动、缩放、最小化和清空的半透明聊天历史窗口;
  • 固定跟随复制人的头顶气泡,支持暂停冻结、相邻气泡错层、时长、大小和透明度调整;
  • 受保护的默认提示词,以及可选的自定义风格指令和本地预览;
  • 远程请求失败后的离线回退和有上限的指数退避;
  • 长期记忆查看、导出和双重确认清空;
  • 英语、简体中文和西班牙语界面,生成台词严格跟随所选界面语言;历史混合语言内容只作为事实参考。

实机截图

以下功能图均为专门新建的 ONITalk QA 测试存档的 1920×1080 Steam F12 JPEG 实机截图;没有加载或修改玩家原有存档。512×512 PNG 主预览图是仅使用这些实机截图制作的宣传合成图,不是额外游戏功能截图。

头顶气泡与聊天历史 长期记忆库
ONITalk 头顶气泡与半透明聊天历史窗口 ONITalk 长期记忆库
记忆注入预览 服务商与气泡设置
ONITalk 记忆注入预览 ONITalk 服务商与气泡设置

AI 服务商与离线模式

模组选项提供统一的服务商、Endpoint、模型和 API Key 配置面板。内置预设包括:

  • DeepSeek、OpenAI、OpenRouter、Google Gemini、SiliconFlow;
  • Ollama、阿里云百炼/通义千问、Groq;
  • Anthropic Claude 的 OpenAI 兼容层;
  • 自定义 OpenAI Chat Completions 兼容接口;
  • 完全不发送网络请求的离线台词。

选择预设会填写推荐的 Endpoint 和模型,但不会锁定配置。服务商的模型名、接口兼容性和计费规则可能随时变化,预设也不代表所有服务商都已使用真实账号逐一实测。1.0.0 的自动检查覆盖统一请求构造、鉴权差异、错误回退和配置迁移;OpenAI GPT-5 预设使用 max_completion_tokens 并省略不兼容的 temperature 参数。DeepSeek 已完成真实远程生成验收。使用其他服务商前,请在选项中核对其当前文档并点击“验证配置”。

Ollama 和离线台词无需 API Key。自定义本地接口是否需要 Key 取决于该服务本身;云端服务通常需要有效 Key。

快速开始

  1. 安装与升级 安装 ONITalk,并在游戏“模组”页面启用。
  2. 完全重启游戏,在主菜单打开“模组”,找到 ONITalk 并点击“选项”。
  3. 选择界面语言和服务商。离线台词或 Ollama 可不填 Key;云端服务填写 Key 后点击“验证配置”。
  4. 进入殖民地。附近复制人满足触发、距离和冷却条件后会开始对话。

连续对话和高频测试模式会增加请求次数及费用。正常游玩时建议关闭高频测试模式。

聊天窗口与头顶气泡

聊天历史窗口只保留当前游戏会话的内容,可以拖动、从右下角缩放、最小化和清空。位置与尺寸按屏幕比例保存在本机配置中。

头顶气泡每帧跟随复制人位置和镜头缩放:

  • 暂停游戏时冻结显示倒计时;
  • 长台词按长度延长,最大显示时长受限;
  • 相邻气泡会自动纵向错层;
  • 复制人离开屏幕或切换世界时气泡会隐藏;
  • 可在局外模组选项中关闭气泡,或调整时长、背景不透明度和整体大小。

长期记忆

ONITalk 会按殖民地 GUID 保存有限的关系、行动和重大事件记忆,不同存档不会混用。

  • 高频低价值行为(如睡觉、如厕、开门)不会记录;
  • 单块砖、梯子、线缆和管道等零散施工先在后台累计,达到阈值后才形成低权重摘要;
  • 切换殖民地、卸载场景或清空记忆时会取消正在生成的对话;旧异步结果会按会话、轮次和殖民地 epoch 复核,不会显示或写入新存档;
  • 点击聊天窗口标题栏的“忆”可查看上一次请求选中的记忆和评分;
  • 点击“库”可查看计数和摘要、导出完整记忆,或经两次确认后清空;
  • 导出不含 API Key,但可能包含殖民地名称、复制人名称和生成台词,请按私人数据保管。

当前行动和事件记忆仍保留部分历史语言相关分类字符串。1.0.0 会在注入英语或西班牙语提示词时翻译已知结构文本,但尚未迁移到跨语言稳定事实 ID;中途切换语言可能使旧事实的检索或显示不完全一致。该 schema 升级列入 post-1.0 路线。

配置、隐私与费用

配置通常位于:

Documents\Klei\OxygenNotIncluded\mods\config\ONITalk\ONITalk.json

API Key 输入框只在界面中遮挡显示;Key 仍会以明文保存在该文件及配置备份中。使用远程模型时,复制人姓名、状态、触发原因、上一句台词、本地选中的记忆摘要和自定义风格提示词可能发送到所选 Endpoint。ONITalk 不运营中转服务器,也不收集遥测。

带 API Key 的请求只允许 HTTPS 或本机回环地址。费用、数据保留和可用性遵循所选服务商的规则。公开日志或配置前请阅读 隐私与网络请求

文档

构建

需要 Windows、PowerShell 5.1+、.NET 8 SDK 和本机《缺氧》游戏文件。

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\doctor.ps1
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\build.ps1

构建会运行核心与本地化检查,并使用本机当前游戏程序集生成 artifacts\ONITalk\ONITalk.dll。发布包由固定白名单构建,并执行敏感信息扫描和 SHA-256 校验。

本地安装

关闭游戏后运行:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\install-local.ps1

不要同时启用 Steam 创意工坊版和 mods\Local\ONITalk 本地版。PLib Core/UI/Options 4.25.0.0 以 MIT 许可随 ONITalk 分发,许可与修改说明包含在发布文件中。

许可证

ONITalk 以 MIT License 发布。PLib、Harmony 及游戏本身的权利归各自作者所有,详见 第三方许可说明。本项目与 Klei Entertainment 无隶属关系。

About

Context-aware AI dialogue mod for Oxygen Not Included

Topics

Resources

Contributing

Security policy

Stars

32 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages