伽马

伽马

居住在游戏中的AI助手——了解你的农场、任务、物品栏和模组,并搜索维基和网络来解答一切。

链接至 GitHub

Gamma

居住于星露谷物语内的 AI 助手。在游戏中按下一个按键,即可与一个能够看到你的农场、能够搜索星露谷物语 Wiki 及整个互联网的 AI 聊天,回答你的任何问题。

它了解你的游戏,而不仅仅是 Wiki。

功能

  • 了解你的游戏状态 — AI 获取实时快照,并能按需获取详细信息:
    • 你的金钱、体力、生命值、技能、日期、天气、每日运气以及当前地点
    • 背包中的所有物品(堆叠数量 + 物品品质)
    • 你拥有的每个宝箱的内容,按地点分类(包括农舍冰箱)
    • 进行中的任务、目标及进度(已击杀的怪物、已交付的物品、剩余天数)
    • 与每位村民的友谊/好感度等级,你今天与谁交谈过/送过礼物,他们的生日
    • 农场概览:建筑、动物(幸福度、友谊度)、已种植/可收获的作物、正在加工的机器
    • 世界进度:已访问的地点、已解锁的区域、矿井/骷髅洞穴最深层级、社区中心完成度、已触发的剧情事件
    • 你安装的每一个 SMAPI 模组(名称、版本、描述)— 因此它知道你是否在玩 SVE、Automation 等
    • 你当前周围的环境:该区域的 NPC 及其位置
  • 搜索外部世界:
    • 完整的星露谷物语 Wiki 搜索 + 页面阅读器(价格、日程、礼物、收集包、机制...)
    • 通用网络搜索和网页阅读器(用于模组帮助、新闻等)
  • 附加功能:
    • 聊天记录按存档记忆,跨越多个游戏会话
    • 当窗口关闭时收到回复,HUD 上会显示未读消息徽章
    • 控制台命令(见下文),让你无需打开界面即可使用

该模组绝不会自行发送任何内容——只有当您发送消息(聊天窗口或控制台中的 gamma ask)时,请求才会发出。

要求

  • SMAPI 4.0+ (星露谷物语 1.6)
  • 能够访问 AI 提供商 — 云 API 密钥,免费的本地模型(见下文)
  • (可选)网络搜索 API 密钥(Wiki 搜索无需任何密钥即可使用)

设置

  1. 安装模组:从最新版本(或 Nexus 页面)下载 Gamma-1.0.0.zip,解压到游戏的 Mods/ 文件夹中 — 最终你的 Mods/Gamma/ 文件夹中应包含 Gamma.dllmanifest.json。(或者,从源代码构建 — 见下文 构建;这也会自动安装到 Mods/ 文件夹中。)
  2. 在游戏中,按 O — 如果尚未设置 API 密钥,Gamma 设置 界面会自动打开。选择一个提供商(Google AI Studio、OpenRouter、OpenAI、Groq、Ollama、LM Studio、Anthropic...),粘贴你的 API 密钥,然后点击 保存。你也可以随时通过聊天窗口中的 设置 按钮或 SMAPI 控制台中的 gamma settings 打开该界面。
  3. 如果你更倾向于手动编辑文件,请先运行一次游戏,让 SMAPI 创建 Mods/Gamma/config.json,编辑它,然后重新启动。

获取 API 密钥

Gamma 需要来自任何受支持提供商的一个 API 密钥。两个不错的免费选项:

选项 1 — Google AI Studio (免费,推荐)

  1. 前往 aistudio.google.com 并使用 Google 帐户登录。
  2. 在侧边栏点击 获取 API 密钥(或直接打开 aistudio.google.com/apikey)。
  3. 点击 创建 API 密钥,选择或创建一个项目,然后复制密钥(以 AIza 开头)。
  4. 在 Gamma 的设置界面(游戏内按 O)中,选择 Google AI Studio 预设,粘贴密钥并点击 保存。模型将预填为 gemini-flash-lite-latest

推荐模型:gemini-flash-lite-latest — 速度快,每天免费请求 500 次,对于日常问题的工具调用能力足够好。如果你需要更强的推理能力来应对更困难的问题,gemini-flash-latestgemini-3.5-flash(需要设置计费,付费)是直接升级选项(密钥相同,只需更改模型字段)。

选项 2 — OpenRouter(提供免费层级)

  1. 前往 openrouter.ai 并注册(支持邮箱或 Google/GitHub 登录)。
  2. 打开 openrouter.ai/settings/keys(个人资料 → 密钥)。
  3. 点击 创建密钥,随意命名,然后复制它(以 sk-or-v1- 开头,仅显示一次 — 请妥善保存)。
  4. 免费模型开箱即用;除非你选择付费模型,否则无需添加积分。
  5. 在 Gamma 的设置界面中,选择 OpenRouter 预设,粘贴密钥并点击 保存。模型将预填为 minimax/minimax-m3:free

推荐模型:minimax/minimax-m3:free — 一个大型免费模型,拥有 100 万 token 的上下文窗口。请注意,OpenRouter 免费模型有每日限制,在高峰时段可能会繁忙;如果请求因速率限制错误而失败,请稍后重试,或添加几美元积分并去掉 :free 后缀以使用付费版本(minimax/minimax-m3)。

手动设置 — 如果你更愿意编辑配置文件而不是使用游戏内界面,请先运行一次游戏,让 SMAPI 创建 Mods/Gamma/config.json,然后按照下面的示例设置 ProviderApiKeyModel,最后重启游戏。

AI 提供商配置示例

OpenAI

{
  "Provider": "openai",
  "ApiKey": "sk-...",
  "Model": "gpt-4o-mini"
}

Google AI Studio(免费密钥 — 见上文 获取 API 密钥

{
  "Provider": "openai",
  "ApiBaseUrl": "https://generativelanguage.googleapis.com/v1beta/openai/",
  "ApiKey": "AIza...",
  "Model": "gemini-flash-lite-latest"
}

Anthropic (Claude)

{
  "Provider": "anthropic",
  "ApiKey": "sk-ant-...",
  "Model": "claude-sonnet-4-20250514"
}

OpenRouter / Groq / DeepSeek / 等(任何兼容 OpenAI 的 API)

{
  "Provider": "openai",
  "ApiBaseUrl": "https://openrouter.ai/api/v1",
  "ApiKey": "sk-or-...",
  "Model": "minimax/minimax-m3:free"
}

使用 Ollama 实现 100% 免费与本地运行(无需 API 密钥,无需互联网)

ollama pull llama3.1:8b
{
  "Provider": "openai",
  "ApiBaseUrl": "http://localhost:11434/v1",
  "ApiKey": "ollama",
  "Model": "llama3.1:8b"
}

LM Studio 使用 http://localhost:1234/v1 的工作方式相同。本地模型在工具调用方面比云模型更慢且更弱 — 建议使用中型指令模型或更大。

网络搜索(可选)

Wiki 搜索始终可用,无需任何设置。对于通用网络搜索,请设置以下之一:

{
  "SearchProvider": "tavily",      // 在 tavily.com 有免费层级
  "SearchApiKey": "tvly-..."
}

或使用 "SearchProvider": "brave"(brave.com/search/api),或使用 "SearchProvider": "searxng" 并配合 "SearxngUrl": "http://localhost:8080" 以使用自托管实例(无需密钥)。SearXNG 默认禁用其 JSON API;请在实例的 settings.yml 中启用:

search:
  formats:
    - html
    - json

然后重启实例,否则模组会报告“拒绝 JSON API”。在游戏内设置中,选择 searxng,搜索行将变为实例 URL 字段。

使用方法

  • O(可通过 OpenChatKey 配置)打开聊天窗口。回车发送,Esc 关闭,滚动鼠标滚轮查看历史记录。
  • 当窗口关闭时收到回复,HUD 上会出现一个徽章。
  • 通用模组配置菜单 — 如果你安装了 GMCM,所有选项(提供商、密钥、模型、网络搜索、聊天按键绑定及聊天机器人显示名称)都可以在标题画面或游戏内选项齿轮图标下的界面中编辑。那里的“重置为默认值”会特意保留你的 API 密钥。
  • SMAPI 控制台命令:
    • gamma menu — 打开聊天窗口
    • gamma ask <文本> — 无需界面即可提问(回复打印到控制台)
    • gamma wiki <查询> — 快速 Wiki 搜索
    • gamma state — 转储 AI 所见的状态摘要
    • gamma mods — 列出已安装的模组
    • gamma reset — 清除聊天历史

隐私

当你发送消息时,模组会将你的游戏状态摘要(“快照”以及 AI 选择调用的任何工具 — 库存、宝箱、任务、模组列表等)发送给你配置的 AI 提供商。在你提问之前,不会发送任何内容。如果你希望所有内容都保留在你的机器上,请通过 Ollama/LM Studio 使用本地模型。

构建

需要 .NET SDK(任何近期版本)以及已安装的星露谷物语 1.6 + SMAPI。

cd Gamma
dotnet build

构建过程会针对你本地的游戏 DLL 进行编译,并自动将 Gamma.dll + manifest.json 复制到 Mods/Gamma/ 文件夹中。如果游戏不在默认的 Steam 位置,请指定它:

dotnet build -p:GamePath="C:\Program Files (x86)\Steam\steamapps\common\Stardew Valley"

故障排除

  • “我尚未设置完成” — 配置中没有可用的提供商。填写 ApiKey(对于本地模型则为 ApiBaseUrl),然后重新启动游戏。
  • API 密钥错误 — 检查密钥,并确保 Model 与提供商的模型名称匹配。
  • 网络搜索提示未配置 — 设置 SearchProvider + SearchApiKey
  • 其他任何问题 — 查看 SMAPI 控制台/日志(ErrorLogs/SMAPI-latest.txt)中带有 [Gamma] 前缀的行。

测试

该模组可以自行测试 — 无需手动游玩:

  • 在游戏中:在 SMAPI 控制台中运行 gamma testui。它会注入一个示例对话,打开聊天窗口,发送一个真实的聊天请求,打开设置界面,并将每一步的截图保存到 Mods/Gamma/ui-tests/ 文件夹。
  • 完全无头模式(无窗口、无音频,完成后退出):
./run-headless-test.sh                      # 默认使用一个已知可用的模型
GAMMA_AUTO_TEST_MODEL=gpt-4o-mini ./run-headless-test.sh

这会在虚拟显示器下以静音方式(SDL dummy 驱动 + OpenAL null 后端)启动真实游戏,运行相同的自动化测试流程,并输出日志和截图。注意:无头运行时的渲染比例与真实窗口略有不同,因此请使用截图检查内容/颜色,而不是精确的像素布局。

工作原理(供好奇者参考)

该模组是一个状态桥:SMAPI 事件和游戏 API(Game1.*)被读取为紧凑的文本摘要;AI 将摘要作为上下文,并获得一组约 13 个工具(get_chestssearch_wikiweb_search...),这些工具以只读工具调用循环的形式实现,针对 OpenAI 兼容或 Anthropic 端点。工具主体被编组到游戏线程上,因此读取操作永远不会与游戏的 tick 循环竞争。界面复用了原版菜单框纹理、聊天文本字段、字体和声音。