跳到主要内容

配置项参考

本文档列出 Elftia 中所有可配置项,按功能域分组。


环境变量

前端 (Vite / VITE_*)

前端环境变量以 VITE_ 前缀暴露,可在 React 代码中通过 import.meta.env 访问。

变量类型默认值说明
VITE_APP_TITLEstring'Elftia'应用标题
VITE_DEV_PORTnumber5375Vite Dev Server 端口

后端 (Main Process)

变量类型默认值说明
LOG_LEVELstring'info'日志级别 (debug / info / warn / error)
NODE_ENVstring'development'运行环境
ELECTRON_IS_DEVstring'1'是否开发模式

应用偏好 (AppPreferences)

通过 window.api.appPreferences 读写。存储于 SQLite 数据库。

字段类型默认值说明
sendByCtrlEnterbooleanfalse是否通过 Ctrl+Enter 发送消息
autoScrollToBottombooleantrue新消息时自动滚动到底部
showThinkingbooleantrue显示模型思考过程
autoExpandToolsbooleanfalse自动展开工具调用详情
showRawParametersbooleanfalse显示工具调用的原始参数

主题配置 (Theme)

通过 window.api.theme 读写。完整状态结构:

模式

字段类型默认值说明
mode'light' | 'dark' | 'system''system'主题模式

用户自定义主题 (UserTheme)

字段类型说明
colorsRecord<string, string>自定义颜色 Token 覆盖
fonts{ ui?: string; code?: string; display?: string }自定义字体

自定义 CSS

字段类型默认值说明
customCssstring''用户自定义 CSS 注入

壁纸 (Wallpaper)

壁纸相关字段全部位于 ThemePreferencesSchemapackages/desktop/app/main/services/platform/config/store/configSchema.ts),存储路径 config.theme,通过 IPC theme:setWallpaperPreferences 部分更新。源码定义见 packages/desktop/app/shared/contracts/settings-types.ts → ThemePreferences

壁纸来源(图片 / 渐变)

字段类型默认值说明
wallpaper{ light?: string; dark?: string }{}图片壁纸来源;支持 file://wallpaper:// 协议、data: URL 或白名单内 https://
wallpaperGradient{ stops: string[1..4]; angle?: number 0..360 }null1–4 色线性渐变;优先于 wallpaper,启用后图片暂时隐藏
disableWallpaperInCompactWindowsbooleanfalse紧凑窗口(Mini/Selection)下关闭壁纸
wallpaperOverlayEnabledbooleanfalse启用半透明表面(更适合壁纸模式)

毛玻璃与遮罩

字段类型范围默认值说明
wallpaperBlurIntensitynumber0–306毛玻璃模糊 px
wallpaperDimmingnumber0–10070遮罩整体不透明度 %
wallpaperDimmingHuenumber0–3600遮罩 HSL 色相(取色盘解码自 hex)
wallpaperDimmingSaturationnumber0–1000遮罩 HSL 饱和度 %
wallpaperDimmingLightnessnumber-1–100-1遮罩 HSL 亮度 %;-1 = 自动(浅色模式白、深色模式黑),0–100 = 手动
wallpaperDimmingGradientWallpaperGradient | nullnull渐变遮罩;启用后覆盖上述 HSL,但 wallpaperDimming 仍控制整体透明度

元素背景着色(侧边栏 / 卡片 / 标签等半透明表面)

字段类型默认值说明
wallpaperElementTintstring (#RRGGBB'')''元素表面着色;空字符串 = 使用主题默认(暖奶油 / 暖炭)
wallpaperElementGradientWallpaperGradient | nullnull元素渐变;优先于纯色 tint,每层保留独立 alpha

消息气泡(用户 / 助手独立)

字段类型默认值说明
wallpaperBubbleOverridebooleanfalse主开关:true=气泡使用下方独立字段;false=气泡跟随元素背景设置(颜色 + 默认透明度)
wallpaperBubbleTintUserstring (#RRGGBB'')''用户气泡纯色;override 开启时生效
wallpaperBubbleTintAssistantstring (#RRGGBB'')''助手气泡纯色;override 开启时生效
wallpaperBubbleGradientUserWallpaperGradient | nullnull用户气泡渐变;覆盖该侧纯色
wallpaperBubbleGradientAssistantWallpaperGradient | nullnull助手气泡渐变;覆盖该侧纯色
wallpaperBubbleOpacitynumber 0–10035气泡 fill alpha;仅 override 开启时生效

元素整体不透明度

字段类型范围默认值说明
wallpaperElementOpacitynumber0–1000实验性:将半透明 UI 整体推向不透明
wallpaperTransparencynumber0–100100表面着色强度系数(0 = 表面完全透明,100 = 默认 alpha)

Hex / 渐变验证

  • Hex 字段(wallpaperElementTint / wallpaperBubbleTint*)的 Zod 正则:/^(#[0-9a-fA-F]{6})?$/(空字符串或 #RRGGBB)。
  • WallpaperGradient.stops 强制 1–4 个字符串;后端 ThemeService.setWallpaperPreferences 还会丢弃空字符串 stop 并把数组截到 4 个。
  • 渐变字段的 IPC payload 中 null = 清空;省略 key = 保持原值。后端通过 'wallpaperDimmingGradient' in patch 区分两者。

优先级(实际渲染时的覆盖关系)

wallpaperGradient > wallpaper.{light,dark} // 主壁纸图源
wallpaperDimmingGradient > wallpaperDimming{Hue,Saturation,Lightness} // 遮罩颜色
wallpaperElementGradient > wallpaperElementTint // 元素着色
wallpaperBubbleGradient{User,Assistant} > wallpaperBubbleTint{User,Assistant} // 气泡颜色(仅 override 开启时)

wallpaperBubbleOverride=false 时,下游 data-wp-bubble-override 属性不写入 body,CSS 走"气泡继承元素 tint"的 fallback 规则。


LLM 配置

提供商 (ProviderConfig)

每个 LLM 提供商的配置结构:

字段类型说明
idstring唯一标识符
namestring显示名称
typestring提供商类型 (openai / anthropic / google / deepseek 等)
apiKeystringAPI 密钥(后端存储,不通过 IPC 传输)
baseUrlstring?自定义 API 端点
modelsModel[]可用模型列表
enabledboolean是否启用

全局模型参数 (GlobalModelParameters)

字段类型范围默认值说明
temperaturenumber0 - 2提供商默认生成温度
maxTokensnumber1 - 模型上限提供商默认最大输出 Token 数
topPnumber0 - 1提供商默认Top-P 采样
topKnumber1 - 100提供商默认Top-K 采样(部分提供商)
frequencyPenaltynumber-2 - 20频率惩罚
presencePenaltynumber-2 - 20存在惩罚

API 密钥池 (ApiKeyEntry)

每个密钥条目的配置:

字段类型默认值说明
idstring自动生成密钥唯一标识
providerIdstring-所属提供商 ID
labelstring?-密钥标签
apiKeystring-密钥值(加密存储)
weightnumber1权重 (1-100),影响轮询分配概率
enabledbooleantrue是否启用

密钥池行为

  • 使用加权轮询 (Weighted Round-Robin) 分配密钥
  • 会话亲和性:同一会话优先使用同一密钥
  • 429/529 响应自动切换到下一个密钥
  • 冷却时间指数退避:60 秒 → 2 分钟 → 5 分钟 → 15 分钟

Agent 配置

TinyElf 引擎默认值

字段类型默认值说明
maxIterationsnumber40最大迭代次数
temperaturenumber0.1生成温度
maxTokensnumber8192最大输出 Token 数
toolResultMaxCharsnumber50000工具结果最大字符数

Claude SDK 引擎

字段类型说明
permissionModestring权限模式 (ask / auto-approve / deny)
maxTurnsnumber最大对话轮次
systemPromptAppendstring?附加到系统提示词的内容

安全配置

GuardianAgent

字段类型说明
mode'off' | 'monitor' | 'enforce'运行模式
allowedCommandsstring[]允许执行的命令白名单
blockedPathsstring[]禁止访问的路径模式

PromptGuardian

字段类型说明
mode'off' | 'warn' | 'block'运行模式

RateLimiter

字段类型默认值说明
maxRequestsPerMinutenumber60每分钟最大请求数
maxTokensPerMinutenumber100000每分钟最大 Token 数

MCP 配置 (McpServerConfig)

每个 MCP 服务器的配置结构:

字段类型说明
idstring唯一标识符
namestring显示名称
transport'stdio' | 'sse' | 'streamable-http'传输协议
commandstring?启动命令(stdio 模式)
argsstring[]?命令参数(stdio 模式)
envRecord<string, string>?环境变量(stdio 模式)
urlstring?服务器 URL(sse / streamable-http 模式)
enabledboolean是否启用
autoConnectboolean应用启动时自动连接

Cron 定时任务

调度配置

字段类型说明
schedulestringCron 表达式 (5/6 字段格式)
timezonestring?时区标识 (Asia/Tokyo 等)
enabledboolean是否启用

动作类型

类型说明
agent-run运行指定 Agent
channel-check检查 Channel 消息
custom-script运行自定义脚本

Channel 配置

触发模式

模式说明
mention仅在被 @ 提及时响应
keyword包含关键词时响应
all响应所有消息

平台消息长度限制

平台最大字符数
Discord2000
Telegram4096
Slack40000
自定义 Webhook无限制

CSS 变量 (Tailwind Token)

定义在 packages/renderer/src/app/index.css 中,通过 Tailwind 配置映射为实用类。

颜色 Token

CSS 变量Tailwind 类说明
--backgroundbg-background页面主背景
--foregroundtext-foreground主文本色
--surface-0bg-surface-0L0 层背景
--surface-1bg-surface-1L1 层背景(卡片/侧边栏)
--surface-2bg-surface-2L2 层背景(输入框/次级容器)
--surface-3bg-surface-3L3 层背景(弹出层)
--text-strongtext-foreground主标题、正文 (93% 亮度)
--text-mutedtext-muted-foreground次要文本 (65% 亮度)
--text-subtletext-text-subtle辅助提示 (50% 亮度)
--primarybg-primary / text-primary主题色
--secondarybg-secondary次要色
--destructivetext-destructive错误/删除色
--successtext-success成功色
--warningtext-warning警告色
--borderborder-border边框色
--ringring-ring焦点环色
--mutedbg-muted静音背景
--accentbg-accent强调背景
--popoverbg-popover弹出层背景
--cardbg-card卡片背景

字体

CSS 变量Tailwind 类字体
--font-sansfont-sansInter, system-ui
--font-monofont-monoJetBrains Mono, monospace
--font-displayfont-displayNoto Serif, Georgia, serif
--font-uifont-ui用户自定义 UI 字体
--font-codefont-code用户自定义代码字体

圆角

CSS 变量Tailwind 类
--radiusrounded-lg0.5rem (8px)
-rounded-md0.375rem (6px)
-rounded-sm0.25rem (4px)
-rounded-xl0.75rem (12px)

文件配置 (ConfigStore)

通过 window.api.config 读写,存储在 JSON 文件中,支持热重载。

当配置变更时,主进程通过 config:changed 通道通知前端。

常用配置键

类型说明
magiMagiConfigMagi/Claw Agent 配置
magi.promptVersion'v1' | 'v2' | 'v3' | 'v4'Prompt 构建版本
cronCronConfigCron 定时任务配置
channelChannelConfigChannel 消息渠道配置
securitySecurityConfig安全管控配置
提示

完整的配置文件路径可通过 window.api.config.getPath() 获取。