GamesAI

This plugin allows you to use AI in the game

tool

Installation command

!!MCDR plugin install games_ai

Author

Synced at

...

Last update

...

Latest version

Total downloads

1247

Back to catalogue

GamesAI-v0.7.1.mcdr

Version

0.7.1

Date

2026年9月11日

Size

158.52 KiB

Downloads

12

MD5

2250386f8ec1f8dfe24619b3f68db082

SHA256

d6b50d6c4d29b4cf3b5ec6e7fb8865606e148190bab81ffcf19a0553efec6226

MCDR Plugin Dependencies

Plugin IDRequirement
mcdreforged>=2.15.0

Python Package Requirements

Python PackageRequirement
openai
requests
websockets

Python Package Installation Command

pip install openai requests websockets

GamesAI v0.7.1

本次更新围绕「上下文」做了一次系统性重构:不再有固定历史条数,模型窗口自动解析、按真实用量触发压缩;切换模型改为摘要转接;新增 !!ask stop 立即中止对话;全部内置工具文本英文化。

🧮 上下文自动管理(不再需要 max_history

  • 窗口自动解析:单模型 context_window 覆盖 → 远程窗口表 → 版本内置表 → 保守默认值 32768
  • 触发条件(每次请求前后都检查):上下文达到窗口 80%,或单次请求达到 20%(捕捉超大工具结果这类突发);
  • 压缩方式:最近 10 轮始终原样保留,更早的轮次合并为一条中性事实摘要(由当前模型生成、不带工具);仍不足时先截断超长消息、再丢弃最旧轮次,保证请求一定装得下;
  • 用量校准:以服务商返回的 usage 为准,按 base_url|model 校准本地估算,几轮内收敛;
  • max_history 配置已移除(旧配置文件仍可用,该键被忽略)。

📊 远程窗口表 + 内置兜底表

  • 仓库维护 data/context_windows.json249 条,覆盖 19 家厂商与各托管平台,核验日期 2026-09-11,来源见 data/context_windows.sources.md);
  • 启动时随 24 小时更新检查一起拉取,缓存在 config/games_ai/cache/context_windows.json(24h TTL);!!gamesai check 会无视 TTL 强制刷新;离线时静默回退到内置表;
  • 内置表移入生成式模块 games_ai/context_table_data.py(每条一行,维护脚本 tools/build_context_table.py 可一键重生成并校验)。

🔀 !!ask switch 改为摘要转接(社区投票方案 B1)

  • 切换时立即清空原历史并保存快照,不发任何 API 请求,指令瞬间返回;
  • 在你下次提问前(与自动上下文压缩同一时机)由旧模型把快照压缩成一段中性事实摘要,作为新会话的第一条 system 消息注入,并提示新模型保持自己的风格;
  • 摘要失败时本轮仍正常回答,只是新对话不带旧上下文,并会告知你;
  • 切换到当前模型不做任何改动;无历史时不产生额外请求;连续切换只总结一次。

🛑 新增 !!ask stop

  • 一次停止你名下所有进行中的内容:运行中的对话轮(含工具调用)、!!ask -n 提问、以及你委派给自治 Bot 的任务;
  • 未完成的一步会被删除:末尾是工具调用组则整组删除(不留孤立 tool 消息),否则删除该轮追加的全部消息(含 -f 合并进来的),停在最后一条已完成的回答之前;
  • 进行中的 HTTP 请求无法真正中断,因此轮次会在下一个检查点停止(最多延迟一次请求);停止后可以立刻继续提问;
  • 无需任何权限,只作用于你自己的对话。

🪶 !!ask -n 无状态路径

  • 单次提问不再创建(然后丢弃)一个完整的对话对象:新类 NonHistoryChatParam 不保留历史、队列与上下文记账,也不产生摘要请求;
  • 与常规路径回答完全一致(相同的 system 消息、按权限过滤的工具、同轮工具回环、错误上报格式);
  • 新增单轮超窗保险(超过窗口 80% 时截断最新消息);HTTP 客户端按 base_url + API Key 复用,连续提问不再重复 TLS 握手。

🧰 工具

  • 全部 26 个内置工具的文本英文化:schema(名称/说明/参数)与返回值(执行结果、错误、权限提示)均为英文,函数调用提示词不再中英混用;发给玩家的进度提示仍保持本地化;
  • modify_skills / modify_custom_tools 改为编辑式:传入 old_string(Python 正则)与 new_string(支持 \1\g<name>),替换所有匹配而不是覆写整个文件;正则无法编译或匹配不到时退回字面替换;完全匹配不到则不写盘并明确报错;modify_skillssummary 变为可选;
  • custom_tools_management 技能新增强制 Step 0:AI 必须先向你确认需求、参数、权限等级与期望返回值,才能开始写代码。

🔧 其他改进与修复

  • 未映射的 HTTP 错误码改用翻译键 games_ai.error_code_map.error_unknown,跟随玩家语言;
  • 窗口表刷新与启动/24h 更新检查合并为同一条链路(少一个线程,且并发不再重复下载);
  • !!ask switch 的确认文案按"下一次提问前压缩"重写,并修掉了模型名后悬挂标点的问题;
  • 三语 README 全面更新:请求链路流程图、无历史路径、摘要转接、停止对话等章节。

⚠️ 升级提示

  • max_history 被忽略,可保留在旧配置里;如需限制上下文规模,请用 all_ai.<id>.context_window
  • 0.7.0 的"切换模型保留全部历史"已改为摘要转接;!!ask -m/--model 仍为移除状态,请用 !!ask switch
  • 新文件 data/games_ai/context_table.pygames_ai/context_table_data.pytools/ 需随插件一起分发。

完整对比https://github.com/PengZixuan30/Games_AI/compare/v0.7.0...v0.7.1