Skip to content

可选功能 ​

示例配置只有一个 Discord 角色。下面的功能都是在 jingmei.config.json 里按需加,每段写明需要的环境变量(写进 .env,格式 key: value)。字段含义见配置参考。

Telegram:需要 .env 里的 TELEGRAM_LUNA_TOKEN(BotFather 给的 token)。顶层加 telegram 段,并在角色里加 telegram 账号;设置步骤见 Telegram 设置。

json
"telegram": { "chatIds": ["-1001234567890"] }
json
"telegram": { "tokenEnv": "TELEGRAM_LUNA_TOKEN" }

第二段加在 personas[] 里对应角色对象中,与 discord 并列。

语音(Fish Audio):需要 FISH_AUDIO_API_KEY。referenceId 是 32 位十六进制音色 ID;角色默认使用语音,可用 voiceEnabled: false 关闭。

json
"voice": {
	"apiKeyEnv": "FISH_AUDIO_API_KEY",
	"referenceId": "00000000000000000000000000000000",
	"model": "s2.1-pro-free"
}

画图:不需要环境变量,而是 Antigravity 的 OAuth 登录,步骤见画图。模型默认 gemini-3.1-flash-image,只有要换模型时才需要写:

json
"imageGeneration": { "model": "gemini-3.1-flash-image" }

看图模型:角色的主模型不能看图时,用另一个模型描述图片。需要该 provider 的凭据(bun run jingmei login <provider> 或它的 API key 环境变量)。

json
"visionModel": "openrouter/google/gemini-2.5-flash"

K 线图与长文转图:不需要环境变量,默认关闭,见 K 线图、长文转图。

json
"kline": { "enabled": true },
"textImage": { "enabled": true, "thresholdChars": 300 }

功能开关(features):默认全部开启。下面几项可以单独关掉,工具和提示词随之去掉,用不到的依赖也不再加载。

json
"features": { "history": false, "memory": false, "soul": false, "search": false, "audit": false }
开关关闭后
history不建消息索引,没有 related_messages / search_history,上下文行不再带“(相关 N 条)”;不下载约 96 MB 的 embedding 模型,不加载 fastembed 与 sqlite-vec。与 events 同时配置会报配置错误
memory没有 remember_member_fact / recall_member_memory,也不再被动收集成员档案、偏好、关系和聊天里自述的生日。保留:/memory、/forget 仍可查看和删除已有数据,/birthday 仍可手动登记生日(celebrations 的生日祝福靠它)
soul没有 update_soul,不再把已存的私人 soul 备忘注入 system prompt;已存数据保留在数据库中
search没有 search_web,也不预取搜索结果;DEEPSEEK_API_KEY 仍是默认模型的凭据
audit不再对最终文字做自然度审查(泄漏标记检查仍在);接话判断由 jev.replyDecision 单独控制

run_js 始终启用。修改配置后会自动优雅重载,当前对话完成后应用新开关。

Jev(秒回表情、记忆排序,接话判断也会使用):远程 Jev 需要 TYPESAFE_API_KEY;省略 apiKeyEnv 则只用进程内包装器,此时必须有 DEEPSEEK_API_KEY(或写 localJev),否则启动报配置错误。详见 Jev。

json
"jev": {
	"apiKeyEnv": "TYPESAFE_API_KEY",
	"quickReactions": true,
	"memoryScoring": true
}

话题(events):需要能解析出决策客户端,即上面的 Jev 配置,或 DEEPSEEK_API_KEY;summaryModel 的 provider 需要凭据。首次启动会下载 embedding 模型。

json
"events": { "summaryModel": "deepseek/deepseek-flash" }

节日与生日祝福:不需要环境变量。space 与 channelId 必须是上面已配置的服务器/频道,personaId 是发祝福的角色。

json
"celebrations": [
	{
		"space": "discord:000000000000000000",
		"channelId": "000000000000000001",
		"personaId": "luna",
		"timeZone": "Australia/Sydney",
		"calendar": "both"
	}
]

BSD 2-Clause 许可