IcarusII
游戏内 AI 助手:按 R 打开终端,可问机制、产线、存档状态,并在你确认后执行游戏内操作。需自备 DeepSeek 或任意 OpenAI 兼容 API Key。
| Date uploaded | 2 weeks ago |
| Version | 1.1.247 |
| Download link | from_dsp_bwiki-IcarusII-1.1.247.zip |
| Downloads | 34 |
| Dependency string | from_dsp_bwiki-IcarusII-1.1.247 |
This mod requires the following mods to function
README
伊卡洛斯·贰 / Icarus II
游戏内 AI 助手。按
R打开终端,问机制、产线排布、存档状态; AI 能读取你当前的存档给建议,并在你确认之后执行游戏内操作。
你需要三样东西
| 项 | 说明 |
|---|---|
| 游戏 | Dyson Sphere Program (0.10.30.3100) |
| 框架 | BepInEx 5.4.17+ |
| API Key | 任意 OpenAI 兼容端点(Ollama / LM Studio / vLLM…) |
DeepSeek Key 在 https://platform.deepseek.com/ → 左侧 API Keys → 创建。 API 按量计费,和网页版聊天是两套计费;新账号如果没有赠送额度,需要先充值。
安装(推荐:r2modman)
- 安装 r2modman;
- 游戏列表里选 Dyson Sphere Program,进入 Online,搜索
IcarusII(作者from_dsp_bwiki),安装;BepInEx 5.4.17 会自动作为依赖装好; - 安装完点 Start modded 启动游戏——不要从 Steam 直接启动,否则配置档不会生效;
- 进游戏按
R。
r2modman 把 mod 和 BepInEx 放在自己的配置档目录,不会写进游戏根目录。 更新也在 r2modman 里完成;不要手动往配置档里覆盖 DLL。
手动安装(不推荐 / 备用)
只有不用 r2modman、或需要自己管理游戏目录时才走这条路。手动安装和 r2modman 配置档 是两套目录,不要混着装。
先安装 BepInEx 5.4.17+(或 5.4.23.5)到游戏根目录,和 DSPGAME.exe 同级;启动一次游戏
让 BepInEx/plugins/ 生成,再把压缩包里的 IcarusII 文件夹(Thunderstore 包路径是
plugins/IcarusII/,手动包是 IcarusII/BepInEx/plugins/IcarusII/)整个复制到
<游戏目录>/BepInEx/plugins/,最终结构应为:
BepInEx/plugins/IcarusII/
├── IcarusII.dll
├── sidecar/icarus-ii-sidecar.exe
└── ui/icarusii-ui
首次使用
- 从 r2modman 点 Start modded 进游戏,按
R; - 第一次会提示尚未配置 AI。点聊天窗右上角的 ⚙ 齿轮——聊天窗会先收起, 设置窗口会直接停在 mod 新增的「模型」页;
- 在 API 密钥 里粘贴 DeepSeek Key,点「检测」,看到「Key 可用」再往下;
- 模型列表里点一个模型(萌新用
DeepSeek V4 Flash);用 DeepSeek 时 API 地址留空, 列表为空或没有可用模型时,点 获取可用模型 从账号实际可用的模型里添加; - 点右下角 应用设置,关掉设置窗口,再按
R打开聊天窗; - 状态变成「就绪」后就能提问了。
保存后密钥框会清空,显示「已配置,留空不修改」,这是正常的,不是没保存。
Key 只保存在本机 sidecar 的数据目录里,不会回传到游戏界面,也不会写进聊天记录。
能做什么
- 问游戏机制、配方、产线排布、卡关了该先修什么;
- 让 AI 读取你当前存档的状态(背包、电力、物流、研究…)再给建议;
- 在你确认之后执行游戏内操作(例如改配方、存储整理、投料、建立方位指示);
- 生成 / 下载 / 复制蓝图后,对话末尾会出现蓝图卡片:显示产量、建筑数、占地与作者, 点「查看」打开蓝图浏览器,点「使用」直接进入粘贴预览;重进存档也会随历史回放;
- 右上角 ⚙ → 模型 页签:改提供商 / 模型名 / API Key / API 地址 (把地址指向本地 Ollama 就能完全离线跑);
- 输入框工具条:插入游戏图标、复选框、文字颜色——和游戏原生输入框同一套弹窗。
隐私与安全
- API Key 只存在本机,聊天内容发送到你自己配置的那个端点;
- 调用 Wiki / 蓝图搜索时会访问对应网站,但不会把整个存档打包上传;
- sidecar 是本地子进程,只监听
127.0.0.1; - AI 执行任何游戏操作前都会先征求你的确认;
- 卸载:在 r2modman 里卸载 IcarusII;手动安装则删除
BepInEx/plugins/IcarusII/(数据目录%APPDATA%/icarus-ii可另行删除)。
常见问题
装了没效果 / 游戏里没有 mod 确认你是从 r2modman 的 Start modded 启动,而不是从 Steam 直接点开始。 r2modman 的配置档不会注入 Steam 直接启动。
按 R 没反应
在 r2modman 里打开 Settings → Locations → Browse profile folder,
看 BepInEx/LogOutput.log 里有没有 Icarus II 1.1.247 已加载。
没有 → BepInEx 没生效(依赖没装好 / 启动方式不对);有 → 建造模式下 R 会主动让位给游戏
(旋转建筑),退出建造模式再按。星图、戴森球编辑器等全屏界面也不响应。
窗口显示「未连接」
检查 r2modman 配置档里的 BepInEx/plugins/IcarusII/sidecar/icarus-ii-sidecar.exe
在不在;多半是被杀软隔离了,把整个 IcarusII 文件夹加进白名单。
杀毒软件报毒 / 提示"未知发布者"
sidecar 是用 Node.js 打包的自包含 exe,且会拉起本地进程,容易被启发式引擎误报。
可用下面的 SHA256 校验文件,或把样本提交给微软误报申诉。介意的话可以先只装 .dll,
不复制 sidecar/(此时聊天不可用,但界面能看)。
Linux / Steam Deck / Proton
用 r2modman 的 Linux 版 / flatpak,点 Start modded 即可,Proton 环境它会自己处理,
不需要手动加 winhttp。
只有手动安装(不用 r2modman)时才需要二选一:
# Steam 启动选项
WINEDLLOVERRIDES="winhttp=n,b" %command%
或向前缀注册表写入(与安装脚本做的事相同):
[Software\\Wine\\AppDefaults\\DSPGAME.exe\\DllOverrides]
"winhttp"="native,builtin"
设置窗口里没有「模型」页 说明 mod 没加载成功(页签是运行期注入的),先按上面的方法查日志。
接口报错 / 401 / 404
进 ⚙ → 模型,确认 provider、模型名、API 地址是否与你的 Key 匹配;
用本地模型时地址要带 /v1(例如 http://127.0.0.1:11434/v1)。
游戏更新后不能用了 DSP 每次大版本更新都可能改动内部类型。看日志里的报错,或等本 mod 适配新版本。
遇到问题?加群讨论
QQ 群 1091497260(伊卡洛斯二号研发中心)。
提问时带上现象描述和 BepInEx/LogOutput.log 里对应的报错,能更快定位。
文件校验(1.1.247)
icarus-ii-sidecar.exe SHA256 ea173e28274c6227ccf9f5aa069ab2b3d0df706d06d1bd55c8bcfbbed31f3368
IcarusII.dll SHA256 c547dfefda180a373629465e93eb64ba0a1e08dc552b76cc6d773b9a97a77540
English (short)
In-game AI assistant for Dyson Sphere Program. Press R, ask about mechanics,
factory layouts or your save; the AI can read your save and, only after your
confirmation, perform in-game actions.
Requires BepInEx 5.4.17+ (5.4.23.5 also tested) and your own DeepSeek (or any OpenAI-compatible) API key. The key is stored locally only; all traffic goes to the endpoint you configure.
Questions? Join the QQ group 1091497260.
MIT licensed. Bundles Node.js (MIT) and pi (MIT). BepInEx is not redistributed — r2modman installs it as a dependency, or install it manually.
CHANGELOG
更新日志
1.2.342
多会话与聊天窗体验更新。
新功能
- 多会话并行:多个会话可以同时回答,切换会话不会中断后台任务;需要确认或作答时会在左栏提示。
- 左栏会话标题显示最后回复时间,并支持置顶;点击标题可展开或收起记录。
- 回复区支持重新生成和撤回最后一轮。
- 作答面板支持返回、多题单选连续作答,以及选项说明。
- 写操作确认页显示 AI 请求的详情。
改进
- 后台会话出错时保留提示,切回后能看到原因。
- 脚本写操作、切换存档和确认操作的稳定性提升。
- 聊天窗与设置页的显示问题已修正。
1.1.298
会话列表状态图标。
新功能
- 左侧会话标题前的状态图标:正在回答时显示旋转的 loading,等待玩家确认或作答时显示 warning, 后台会话完成时显示 new;普通状态仍然显示原来的展开/收起箭头。
- 状态图标只负责展开/收起会话记录;切换会话仍然点标题。
- 后台会话需要确认或作答时,不再强制切到那个会话;你可以继续看当前会话,切过去后再处理。
修复
- 后台会话完成后再切回去,历史回答的脚注保留完成时间,不再显示
--:--。
1.1.295
多会话并行、蓝图 DSL 与工厂布局出图。
新功能
- 多会话并行:多个会话可以同时回答;切到别的会话不会中断后台任务,切回后会接上已生成的正文。 建造/存储/研究等写操作按建筑、星球分层加锁,避免两个会话同时改同一目标;后台会话需要玩家确认或提问时会等你切过去。
- 蓝图 DSL:可以用简短的
bp.js描述产线并编译成游戏蓝图,blueprint_compile负责校验与生成; 不再只能手写完整蓝图数据。 - 工厂布局出图:按总线/模块生成工厂布局,支持多配方、量子化工厂、化工厂、位面熔炉、研究所和物流站供料; 出图前做碰撞、分拣器、断带、越界硬校验,并按容量拆张、给出蓝图统计。
- 物流站:新增端口格表与站单体校验,供料支持
supply=station。 - 轮内待办:AI 可以在当前回合维护目标清单,回合结束自动清空。
- 顾问字幕:聊天窗关闭时,后台完成/提问等事件用游戏顾问字幕提示。
修复
- 已完成或跳过的游戏目标在重开后不再重新注入。
- 目的地指引右键逐个删除、清空全部定位时按游戏原生行为处理;地图标记使用当前行星的定位标记。
- 自由探索和沙盒存档里也能正常显示 AI 目标。
- 思考块流式输出时高度只增不减,不再抖动。
- 左栏会话记录改为最新一轮在前;工具页分类标签恢复分组筛选。
- 顾问提示恢复三段式,修掉双层引号、表格残留和首行缩进。
- 星球链接聚焦补上分步日志与半径防护。
- 兼容 0.10.35 蓝图的
content字段,并校准校验器。
变更
- 升级 pi SDK 到 1.5.0,依赖升级到 Node 26 / TypeScript 7 / typebox 1.4 线。
- 蓝图出图器取代旧的线性链/单段布局;大产线拆张有 8 秒预算和 512 张上限。
1.1.247
第三方 mod 桥重做、回答可中断,以及作答面板与聊天窗的一批修复。
新功能
- 其他 mod 控制:设置 → 工具 → mod 页签可逐插件开启或关闭;关闭后该插件对 AI 完全不可见。 每个插件可以单独设权限档位(只读 / 受限 / 接管,默认受限),列表会标注适配器来源与工具数量。
- AI 生成适配器:AI 可以按插件的公开方法生成适配器,玩家确认后写入并立即生效; 生成的能力每次调用都会请求确认,插件更新后版本不匹配的适配器会自动禁用。
- 中断与插话:回答过程中可以中断当前回合,或在输入框有内容时插话;被打断的回复会保留并标注「已停止」。
修复
- 作答面板:选项 hover 高亮残留、题目序号不随题目变化、自定义答案输入框无法使用输入法。
- 聊天窗:中断后按钮不回切「发送」、长文本不撑开输入区、用户气泡的时间与复制按钮消失。
- 会话:切走空会话后仍留在索引里;左栏记录按标签真实字号截断,不再溢出。
- 其他 mod:适配器参数类型写法不规范会导致整轮请求失败;插件启动较晚才注册的配置项不会生成配置工具; 设置页不刷新适配器状态。
1.1.227
设置页重制、第三方 mod 桥,以及聊天窗的过程正文与输入体验修复。
新功能
- 设置页重制:改为左侧六分区导航(通用 / 模型 / 会话 / 工具 / 按键 / 关于), 关于页二维码放大居中。
- 快捷键:打开、发送、换行三组按键可自由绑定,带字符拦截与输入法组字保护。
- 会话管理:会话页支持跨存档索引、搜索、重命名、删除与导出。
- 工具开关:可逐项关闭工具;被关掉的工具不会下发给模型,
run_script白名单同步收紧。 - 第三方 mod 桥:可以读取和修改其他 BepInEx 插件的配置; 只注册插件自己声明的工具,并可按插件启用/禁用; 另提供 manifest 草稿工具,以及 uGUI 控件树快照与合成点击。
- 过程正文:模型在两次思考/工具调用之间说的话,会按发生时刻排在块序列里, 不再和最终回答拼成一段;历史回放也按同样顺序重建。
- 输入草稿:关闭聊天窗不再丢失未发送的内容,重新打开会恢复; ESC 只让位/关窗,不再被当成“取消编辑”。
修复
- 长思考块:增量改为逐帧渲染,流式只画最新一段;单块上限 12000 字符, 超出部分给省略提示,避免长思考卡顿或后半段不显示。
- 恢复草稿后点击输入框,文字因颜色表被清空而不可见。
- 工具列表展示工具描述;修正工具行开关被纵向拉伸的问题。
- 会话列表隐藏 0 条记录的新会话。
1.0.0
首个正式版:多会话、目标注入、权限与思考档位,以及一轮界面重做。
新功能
- 多会话:一个存档可以保存多个对话;左栏新增会话列表,可新建、切换、删除, 切换会话不再覆盖旧记录。
- 会话标题:AI 会为会话自动生成标题,也可以直接重命名;标题随会话保存,切回不会丢。
- 会话索引:标题可以展开/收起(三角旋转动画);当前会话蓝色高亮; 删除按钮只在鼠标停留在标题上时出现,平时与标题同色、悬停变红; 顶部“新会话”改为气泡加号图标按钮(白色默认、悬停变蓝)。
- 标题图标:标题栏新增图标按钮,可把游戏图标插入会话标题。
- 权限与思考:思考四档(关闭/低/高/最高)、权限三档(只读/受限/接管), 默认“受限”;只读模式下不显示蓝图写工具。
- 供应商:设置页的供应商列表从 pi 内置目录自动加载,预设第一项为“自定义…”, 可以直接填中转地址。
- 游戏目标:AI 可以在玩家确认后注入游戏原生目标,在目标面板里显示并追踪。
- 入口与引导:首次使用会引导到右上角设置页;Game Menu 截图键旁新增聊天入口; 输入工具条的图标/复选框/颜色按光标位置插入。
- 反馈渠道:README 增加 QQ 群(1091497260)。
变更
- 运行期配置迁入 sidecar 的
config.json,聊天窗文案走游戏本地化。 - 未配置 API Key 时不再预置模型:模型列表保持为空,配好 key 后再拉取或手动添加。
- 日志瘦身:去掉每秒一次的诊断输出和
DebugLogGate开关, sidecar 的 info 日志不再刷进主日志。
修复
- 标题框与输入框互相抢焦点;聊天输入框多余的“输入”悬停提示。
- 重命名会话标题后切换会话会回退。
- 标题图标按钮点选后不回填。
- 切换底部面板后高度不重算、打开窗口不贴底。
- 确认页的拒绝按钮与布局、目标注入后不显示。
- 标题栏保持在对话区上方。
0.4.0
读侧优化、受控写工具、实体链接卡片与方位指示。
新功能
- 丢弃/配方/存储/投料:
game_drop_item、game_set_recipe、game_set_assembler_batch、game_take_output、game_feed_input,以及存储过滤器/容量/移库/存入/取出。 写操作仍需玩家确认;存储/投料可撤销,取成品不可撤销。 - 受控写脚本:
run_script默认只读;脚本含字面量写工具时先弹一次脚本级确认, 租约绑定脚本哈希与写工具名,结束立即释放;动态拼写写工具名会被拒绝。 - 实体链接:回答里的
dsp://entity/planet|building|vein/...可点击聚焦; 建筑/星球/矿脉链接卡片随回答显示,支持历史回放、定位/已定位。 - 方位指示:
game_tether_add/list/clear,本星球多目标自绘线,跨行星用原生导航。 - 读侧优化:
game_get_entity支持fields/entityIds;game_get_planet支持矿脉群与逐矿脉分页。
修复
- 恢复
game_place_marker,保持game.write.v1工具集合兼容;标记可撤销。 - 按 design §9.1 移除不可撤销的
game_dismantle,避免无自动存档兜底时的破坏性操作。 - 撤销栈:不可撤销操作会占用栈顶并明确报错,不再误撤销更早的无关操作;
game_undo_last_write现在也走确认。 - 存储写入按真实容量(bans + 过滤)预检,修复背包/存储满时可能丢物品的窗口。
- 矿脉链接卡片不再在历史回放/删除回合时丢失。
- 重复提问的链接卡片按回答原文消歧,避免卡片串到别的回合。
- 行星视图聚焦与研究目标切换:写工具在行星视图/研究目标下不再失败或切错。
0.3.2
问答界面、受控写操作与经纬度坐标;上下文压缩可见、可撤销;sidecar 升级到 pi 1.4。
新功能
- 问答界面:AI 需要玩家选择或补充信息时,聊天窗会弹出原生问答面板 (选项 + 自定义答案),玩家回答后继续。
- 受控写操作:
game_focus_camera、game_place_marker、game_open_panel、game_set_research、game_undo_last_write;执行前弹确认,关窗、Esc、 60 秒不回答都按拒绝处理;写操作带一次性令牌,重放或改参数会被拒绝。 - 经纬度坐标:读侧工具返回建筑/目标的经纬度,便于描述位置。
- 压缩记录:模型自动整理上下文时,聊天窗会出现一条
“
[时间] 自动压缩上下文”记录,下面是压缩摘要;之前的对话在索引里变灰, 鼠标移上去不再显示删除按钮。 - 撤销压缩:删除这条压缩记录会真正撤销压缩,展开旧对话并恢复删除按钮。 只允许撤销最近一次;如果上下文仍然超限,下一次提问可能再次压缩。
- 上下文压缩完成后,状态栏会显示“整理上下文中…”,不再像卡死。
修复
- 压缩后重进存档,聊天记录不再凭空消失(改为回放完整会话分支)。
- sidecar 升级到 pi 1.4.0:改进会话恢复、工具调用、压缩摘要与错误重试; 运行 sidecar 的 Node 门槛提高到 22.19。
0.3.1
思考/工具过程收进一个可折叠的「终端」分组,并补上玩家消息脚注与重新推理。
新功能
- loading 分组头:思考/调用工具时显示「终端运行中…」+ 游戏自带加载图(旋转); 这一轮结束后变成「已完成」并收起整组,点标题行随时展开/收起(运行中也可以点)
- 每段思考独立成块,按「思考 → 工具 → 再思考」的顺序排列;正文开始时这一轮所有 思考块/工具块自动收起,只留摘要
- 思考与工具记录随会话保存:重进存档按原顺序还原(收起态),能展开看当时的推理原文、 工具参数与结果,不再只剩正文
- 玩家消息也有脚注:游戏时间 + 复制
- 回答脚注新增刷新:对最后一轮重新推理(先删掉旧回合再重新提问,旧回答不会留在上下文里)
- 窗口标题使用 prefab 的「工业机甲终端」样式(字体、颜色、字号、材质完全按设计稿)
修复
- 模型思考时,推理内容不再全部挤进第一个思考块
- 蓝图卡片渲染的瞬间,滚动条会及时贴到底部
0.3.0
从「能查、能看」到「能出蓝图」,并修好第三方供应商的接入。
新功能
- 蓝图生成:
blueprint_generate用知识库里的真实配方 + dsp-calc 布局,直接生成完整产线蓝图 (多阶段、多行、超高产量自动拆多张、按当前已解锁档位默认、蓝图尺寸校验) - 蓝图卡片:生成 / 下载 / 复制后在聊天窗显示卡片,点卡片可直接粘贴预览;重进存档可回放
- 截图:默认给可见建筑编号框 + 图例,
view=topdown可临时切俯视机位 - 助手回复显示游戏内时间,点击可复制
修复
- 多供应商接入:模型目录与 Key 检测现在共用同一套地址清洗与鉴权
(Anthropic
x-api-key、Geminix-goog-api-key、Azureapi-key), 支持.../v1/chat/completions这类完整端点、缺/v1自动补全、超时回退, 不再出现「检测通过但取不到模型」 - 模型页:错误提示可换行;检测成功后自动补全聊天实际可用的 API 地址
- 模型页:移除容易误删其它供应商的「恢复本页设置」按钮
- 蓝图:首尾误连、坐标轴与元数据、尺寸超限、档位默认值等一批修复
- 重进存档回放历史时,蓝图卡片不再打断回放
0.2.0
从「能聊」到「能查、能看、能算、能规划」。
新工具
- 视觉:
game_capture_view截图进模型上下文,聊天窗显示缩略图 - 建筑:
game_get_entity/game_get_entities(配方、输入输出槽、供电、物流塔槽位、 传送带线路与货物、分拣器手上物品;其余建筑走通用组件快照) - 进度:
game_get_progress - 量化:
kb_plan按目标产量算机器数 / 电力 / 传送带 - 产线:
game_analyze_area(装机产能、耗电、物流设施、电网)、game_render_layout字符布局图 - 跨行星:
game_get_planets(按宇宙探索等级披露矿脉)、game_get_logistics(全银河物流塔供需) - 蓝图:
blueprint_search/blueprint_info/blueprint_save(在线检索、格式体检、直接存到游戏蓝图目录)、game_copy_blueprint(把现有建筑存成蓝图) - 知识:
kb_search/kb_get/kb_recipe_tree、中英wiki_search/wiki_page - 脚本:
run_script(QuickJS-WASM 只读沙箱,dsp.call复用同一工具注册表)
界面
- 工具卡支持图片缩略图;
kb_*/run_script也会显示工具卡(tool_activity) - 左栏提问索引:按存档列出历史提问,点击切换、删除; 删除会同步改写会话文件,重进存档不再出现
修复
- 产线统计为空时回退装机产能,不再误报“没有产线”
run_script中dsp.call被 try/catch 吞掉时明确报错,而不是返回假数据- 主菜单/演示场景不再弹出聊天窗
- 重进存档会回放历史对话
0.1.0
首个公开版本。
功能
- 游戏内聊天终端:
R开关,流式回复,可回车发送 /Ctrl+Enter换行 - 读取当前存档状态作为上下文,按存档绑定对话历史
- 在玩家确认之后执行游戏内操作
- 设置窗口注入「模型」页签:提供商 / 模型 / API Key / API 地址
- 输入工具条:游戏图标、复选框、文字颜色(复用游戏原生弹窗)
- 界面走游戏原生 prefab(AssetBundle),可回退到代码构建
构建
- 编译目标锁定 BepInEx 5.4.17(Thunderstore 社区包同款),避免 5.4.17 环境下 BepInEx 打印 "plugin targets a wrong version";5.4.23.5 运行时同样验证通过
修复
- 右上角
⚙按钮点击无效:它其实是原生窗口的「功能菜单」按钮, 真正收点击的是子节点menubtn的UIButton。改为接到该UIButton上, 并摘掉遗留的UIGenericMenuButton(它会把空菜单当成设置、并每帧覆盖提示文案) - 按钮悬停提示被聊天窗遮挡、只显示半截:把游戏原生提示层(按钮/物品/弹出菜单) 抬到聊天窗画布之上
- 「模型」页签关闭再打开后标题被本地化改回模板页(克隆体上的
Localizer所致) - 设置窗口销毁时
revertButtons可能越界(缺模板时也补齐数组长度)