Jan 0.8.7 配置参数详解

Jan 0.8.7 全量配置解析:应用设置、llama.cpp 引擎 42 项参数默认值、助手与模型参数、MCP 配置及 Jan Agent 配置,含推荐配置模板。

Jan人工智能Jan2026/10/23

Jan 0.8.7 配置参数详解

目标:系统梳理 Jan 0.8.7 的全部配置入口与参数——应用级设置、llama.cpp 本地引擎的 42 项参数、助手与模型对话参数、MCP 服务器配置,以及终端代理 Jan Agent 的全局/项目两级配置。文中所有默认值均在 Ubuntu 22.04 全新安装后直接读取配置文件取得,未做任何人工改动,可直接作为基线对照。

一、环境信息

  • 操作系统:Ubuntu 22.04(x86_64,jammy)
  • 软件版本:Jan Desktop 0.8.7(deb 安装)、Jan Agent 0.8.7-66(agent-nightly 通道,官方脚本安装)
  • 配置基线采集时间:2026-10-22(全新安装、首次启动初始化完成后读取,未修改任何参数)
  • 测试机硬件(应用自动检测并记录):Intel Core i7-14700KF(12 核)、32050MB 内存、无独立显卡——因此下文引擎参数均为 CPU 形态下的默认值
  • 数据目录:~/.local/share/Jan/(桌面应用);~/.jan/(终端代理)

二、前置条件

确认配置文件已生成:

find ~/.local/share/Jan -maxdepth 3 -type f | sort

实测输出(全新安装、初始化完成后):

/root/.local/share/Jan/data/assistants/jan/assistant.json
/root/.local/share/Jan/data/db/...(会话与消息数据库文件,随使用增长)
/root/.local/share/Jan/data/logs/app.log
/root/.local/share/Jan/data/mcp_config.json
/root/.local/share/Jan/data/settings.json
/root/.local/share/Jan/data/store.json
/root/.local/share/Jan/settings.json

⚠️ 注意:直接编辑配置文件前先完全退出应用(托盘图标右键 Quit)。Jan 在退出时会把界面上的设置写回文件,应用运行期间手工编辑会被覆盖。

三、配置体系总览与查看修改方式

Jan 0.8.7 的配置分两条产品线、共四个层次:

层次位置修改方式作用范围
应用数据目录~/.local/share/Jan/settings.json直接编辑指定数据区位置
应用设置键值表~/.local/share/Jan/data/settings.json界面 Settings 面板(推荐)界面主题、语言、硬件、Provider 注册表
引擎/助手/MCP 配置data/llamacpp/、data/assistants/、data/mcp_config.json界面对应面板,或直接编辑推理引擎、助手人设、工具服务器
终端代理配置~/.jan/config.toml(全局)、~/.jan/projects/<slug>/agent.toml(项目)jan config set 命令或直接编辑Provider 凭据、代理行为

查看与修改的三种方式:

  1. 图形界面:Settings 面板(General/Hardware/Local AI Engine 等分区)与模型齿轮图标(Model Settings)。界面修改实时写回对应文件;
  2. 直接读文件:所有配置均为 JSON/TOML 纯文本,例如:
cat ~/.local/share/Jan/settings.json

实测输出:

{"data_folder":"/root/.local/share/Jan/data"}
  1. 终端代理专用命令:jan config path(显示配置路径)、jan config list(JSON 形式列出已配置 Provider)、jan config set(写入凭据,详见第八章)。

四、应用级配置参数

4.1 数据目录指针:~/.local/share/Jan/settings.json

顶层 settings.json 只有一个键:

键默认值说明
data_folder/root/.local/share/Jan/data(当前用户家目录下)应用数据区位置。界面路径:Settings > General > Jan Data Folder,修改要求目标目录为空且重启应用生效

4.2 数据区版本标记:data/store.json

{"version":"0.8.7","mcp_version":5}
  • version:数据区最后一次被哪个桌面版本写入,升级后由应用自动迁移;
  • mcp_version:MCP 配置的 schema 版本(当前为 5,首次启动日志会出现 Migrating MCP schema version 1..5)。

4.3 应用设置键值表:data/settings.json

该文件是所有界面设置的持久化键值表。实测全新安装后包含以下 11 个顶层键:

键实测值(要点)说明
__settings_migrated_to_backend__"true"设置已迁移到后端存储的标记位
latest-jan-model{"state":{"model":null,"lastFetchedAt":null},"version":0}官方推荐模型列表的最近拉取状态
llamacpp_fit_off_v1"1"迁移标记:引擎 fit 参数处理方式
llamacpp_model_yaml_backfill_v2"1"迁移标记:模型 yaml 回填
llamacpp_models_max_migrated_v1"1"迁移标记:并发加载数上限
llamacpp_parallel_default_v1"1"迁移标记:并行序列默认值
model-providerJSON 状态块(version:19)核心:全部 Provider 注册表,见 4.4
paused-downloads{"state":{"downloads":{},"resumeParams":{}},"version":0}暂停中的模型下载任务
setting-general{"state":{"currentLanguage":"en"}}界面语言(Settings > General > Language)
setting-hardwareCPU/内存/GPU 检测结果快照Hardware 面板数据,应用自动刷新
theme{"state":{"activeTheme":"auto","isDark":false},"version":0}主题:auto/light/dark

日常调整建议走界面(Settings > Appearance 改主题、General 改语言),避免手工改键值表造成 JSON 结构损坏。

4.4 Provider 注册表:model-provider 键

model-provider 是一个较大的 JSON 状态块,包含三部分:

  • state.providers[]:每个可用 Provider 一个条目(实测含 llamacpp、openai、azure、anthropic、openrouter、mistral、groq、xai、gemini、minimax、huggingface、nvidia 共 12 个),每个条目带 base_url(实测例如 openai 为 https://api.openai.com/v1、anthropic 为 https://api.anthropic.com/v1)、settings[](该 Provider 的界面设置项及当前值)、models[](内置模型清单);
  • state.selectedProvider:实测默认 "llamacpp"(本地引擎);
  • state.selectedModel:实测默认 null(未选择模型)。

API Key 在界面中填写后保存进系统钥匙串(keyring);无桌面钥匙串环境(如纯文本会话)应用自动降级为加密文件存储,并在日志中提示 Keyring unavailable ... using encrypted file fallback。

五、llama.cpp 本地引擎参数详解

引擎参数的修改入口:Settings > Local AI Engine(llamacpp Provider 的设置页),持久化在 data/llamacpp/settings.json(数组结构,每项含 key/title/description/controllerType/controllerProps)。下表为实测默认值全集(42 项,按文件顺序):

#参数键默认值含义与取值说明
1llamacpp_env空引擎环境变量,KEY=VALUE 用分号分隔(如 GGML_VK_VISIBLE_DEVICES=0,1)
2models_max1路由器同时保持加载的模型数上限,0 = 不限
3timeout600引擎连接与加载超时(秒)
4fitfalse自动按显存/内存调整未显式设置的参数(对应环境变量 LLAMA_ARG_FIT)
5fit_target"1024"fit 的每设备目标余量(MiB),可写逗号列表
6fit_ctx4096fit 自动调整时上下文长度下限(token)
7threads-1生成阶段线程数,-1 = 逻辑核数
8threads_batch-1批处理/prompt 处理线程数,-1 = 与 threads 相同
9ctx_shiftfalse允许截断上下文开头以容纳新文本
10n_predict-1最大生成 token 数,-1 = 不限制
11batch_size2048逻辑批大小(prompt 处理上限)
12ubatch_size512物理批大小
13n_cpu_moe0前 N 层的 MoE 权重留在内存(让大 MoE 模型装进有限显存),0 = 关闭
14n_cpu_ffn0前 N 层的稠密 FFN 权重留在内存,0 = 关闭
15no_kv_offloadfalseKV cache 保留在内存而非加速卡(省显存、降速度)
16device空卸载到的加速设备列表(逗号分隔,如 CUDA0),空 = 全部可用设备,none = 完全禁用卸载
17split_modelayer多卡切分方式:none/layer/row/tensor(实验)
18main_gpu0主卡索引(split-mode=none)或中间结果卡(split-mode=row)
19tensor_split空多卡张量切分比例(如 "3,1"),空 = 均分
20no_op_offloadfalse宿主张量运算留在 CPU
21flash_attnautoFlash Attention:auto/on/off
22parallel0并行解码序列数(0 = llama.cpp 默认)。Jan 自身不保留独立槽位,聊天与后台请求共享槽 0
23cont_batchingtrue连续批处理(并发请求动态合批)
24no_mmapfalse禁用内存映射加载模型(加载更慢,可能减少缺页)
25lazy_modeauto大张量按需读盘:auto(4GiB 以上自动启用)/on/off,依赖 mmap
26mlockfalse将模型锁进内存防止换出
27cache_type_kf16KV cache 键类型:f32/f16/bf16/q8_0/q4_0/q4_1/iq4_nl/q5_0/q5_1
28cache_type_vf16KV cache 值类型,取值同上
29rope_scalingautoRoPE 缩放方法:auto(跟随模型)/none/linear/yarn
30rope_freq_base0RoPE 基频,0 = 从模型读取
31rope_freq_scale0RoPE 缩放因子,0 = 从模型读取,1 = 强制不缩放
32cache_ram8192prompt cache 内存上限(MiB),-1 不限,0 关闭
33persist_thread_cachetrue对话缓存落盘,重开会话不重读全文(模型与设置不变时才能复用)
34thread_cache_size8192会话缓存磁盘预算(MiB),超限先删最旧
35cache_reuse0前缀缓存复用的最小匹配块(token),0 = 关闭
36ctx_checkpoints32每槽位保留的上下文检查点数量
37checkpoint_min_step8192两个检查点之间的最小 token 间隔
38swa_fullfalse滑窗注意力模型(如 Gemma)使用全量 KV cache,更耗内存
39kv_unifiedauto多槽位共享统一 KV 缓冲:auto/on/off
40kv_unified_per_slot0统一 KV 缓存下单槽位 token 上限,0 = 不限
41reasoning_preservetrue保留每轮历史推理内容进 prompt(仅对聊天模板支持的模型生效,消耗 prompt token)
42keep0上下文截断时保留开头 N 个 token,-1 = 全保留

5.1 路由预设:data/llamacpp/router.preset.ini

引擎路由器的启动预设,实测内容:

[*]
fit = off
ctx-size = 8192
slot-save-path = /root/.local/share/Jan/data/llamacpp/thread-cache
  • fit = off:与引擎参数 fit=false 对应;
  • ctx-size = 8192:路由器默认上下文 8192 token;
  • slot-save-path:会话 KV cache 的落盘目录(配合 persist_thread_cache)。

六、助手与模型对话参数

6.1 默认助手:data/assistants/jan/assistant.json

首次启动生成唯一内置助手 jan,实测关键字段:

字段默认值说明
nameJan助手名称
model*接受任意模型
instructions多语言跟随 + 强制工具调用前逻辑分析的长 prompt,尾部带 {{current_date}} 变量系统提示词,可整体改写
parameters.temperature0.7采样温度
parameters.top_k20Top-K 采样
parameters.top_p0.8Top-P 采样
parameters.repeat_penalty1.12重复惩罚
tools[0].typeretrieval(enabled: false)知识库检索工具,默认关闭
tools[0].settings.top_k2检索返回片段数
tools[0].settings.chunk_size1024文档切块大小(token)
tools[0].settings.chunk_overlap64相邻切块重叠量
tools[0].settings.retrieval_templateCONTEXT: {CONTEXT} / QUESTION: {QUESTION} 模板检索结果注入 prompt 的格式

修改入口:界面左侧助手面板编辑,或直接编辑该 JSON(修改前退出应用)。

6.2 模型级参数(Model Settings)

对话界面点击模型旁的齿轮图标打开,作用于当前模型。官方文档给出的参数全集(查询日期 2026-10-22):

参数作用使用建议
Context Size模型一次能记住的文本量(工作记忆)越大越耗内存;开启 Fit 时由应用按硬件自动封顶
GPU Layers多少层放进显卡有独显尽量拉满,报显存不足再逐级调低
Temperature创造性 vs 稳定性通用 0.7;事实性问答 0.1–0.3;创作 0.8–1.0
Top K每步候选词数量20–40 收敛,80–100 多样
Top P另一种候选截断方式0.9 附近常用
Min P过滤概率过低的词默认即可
Repeat Last N向前回看多少 token 判重默认即可
Repeat Penalty重复惩罚强度1.1–1.3;过高语句会不通顺
Presence Penalty鼓励谈新话题仅远程 Provider 生效,对本地 llama.cpp 模型无效
Frequency Penalty按词频降权同上,仅远程 Provider 生效

Reasoning Mode(仅 llama.cpp 本地模型):对支持扩展思考的模型(如 DeepSeek-R1、QwQ),输入框工具栏出现大脑图标,可设 Auto(模型自行决定)/On(总是先推理)/Off(直接回答),设置按模型持久化。

Mirostat 采样(仅本地模型):Mirostat Mode(Off/V1/V2,V2 更稳)、Mirostat Learning Rate(0.05 稳定 ~ 0.2 激进)、Mirostat Target Entropy(越高越多变)。

输出约束(仅本地模型):Grammar File(GBNF 语法文件路径,强制输出匹配语法)与 JSON Schema File(JSON Schema 文件路径,强制输出合法 JSON),可用于结构化抽取场景。

七、MCP 配置参数:data/mcp_config.json

MCP(Model Context Protocol)服务器配置持久化在 data/mcp_config.json,界面入口 Settings > MCP Servers;桌面端与终端代理共用此文件。实测全新安装后内置 6 个服务器(全部默认 active: false,即未启用):

服务器名启动命令用途
Jan Browser MCPnpx -y search-mcp-server@latest(BRIDGE_HOST=127.0.0.1、BRIDGE_PORT=17389,official: true)官方浏览器桥接
browsermcpnpx @browsermcp/mcp浏览器扩展桥接
fetchuvx mcp-server-fetch网页抓取
serpernpx -y serper-search-scrape-mcp-server(需 SERPER_API_KEY)搜索
filesystemnpx -y @modelcontextprotocol/server-filesystem /path/to/other/allowed/dir文件访问(路径需改成实际目录)
sequential-thinkingnpx -y @modelcontextprotocol/server-sequential-thinking分步思考

mcpSettings 全局键(实测默认值):

键默认值说明
toolCallTimeoutSeconds30单次工具调用超时(秒)
baseRestartDelayMs1000服务器崩溃重启基础退避(毫秒)
maxRestartDelayMs30000重启退避上限(毫秒)
backoffMultiplier2.0退避倍率
enableSmartToolRoutingtrue智能工具路由
useLightweightRouterModelfalse工具路由是否使用轻量模型
routerModelProvider / routerModelId空轻量路由模型的 Provider 与 ID
maxToolOutputChars40000工具输出注入上下文的最大字符数

八、Jan Agent(终端代理)配置参数

8.1 全局配置:~/.jan/config.toml

查看路径与当前内容:

jan config path
jan config list

实测输出(未配置任何凭据时):

/root/.jan/config.toml
{
  "config_path": "/root/.jan/config.toml",
  "providers": []
}

写入凭据(--provider 必填;演示密钥仅用于展示格式):

jan config set --provider openai --api-key sk-demo-q1w2e3r4

实测输出:

Updated provider 'openai' in /root/.jan/config.toml

写入后的文件内容:

[providers.openai]
api_key = "sk-demo-q1w2e3r4"

jan config set 支持的完整参数(官方文档,查询日期 2026-10-22):

参数说明
--provider <ID>Provider ID(如 openai、anthropic、groq),必填
--api-key <KEY>API 密钥
--base-url <URL>端点地址(自建网关时使用)
--model <ID>暴露的模型,可重复传参;会替换已有列表
--api-type <TYPE>线协议:openai 或 anthropic,默认 OpenAI 兼容

删除凭据用 jan config unset --provider openai。凭据删除后 jan config list 中该 Provider 的 has_api_key 变回 false。

8.2 项目配置:~/.jan/projects/<slug>/agent.toml

在项目目录内首次运行 jan(或 jan cli agent run)时自动生成项目配置,目录名为 项目名-8位哈希(实测 demo 项目生成 demo-2d64be35):

find ~/.jan -type f | sort

实测输出:

/root/.jan/cli_telemetry.json
/root/.jan/config.toml
/root/.jan/projects/demo-2d64be35/agent.toml
/root/.jan/projects/demo-2d64be35/project.json

项目解析结果(含全部生效默认值)可一键导出:

jan cli agent status --project /root/demo

实测输出(节选,关键字段):

{
  "project": "/root/demo",
  "data_folder": "/root/.local/share/Jan/data",
  "model": null,
  "max_session_tokens": 128000,
  "max_session_tokens_source": "default",
  "max_budget_usd": null,
  "tools": {
    "default": "read-only",
    "allow": [],
    "deny": [],
    "allow_write": [],
    "allow_network": null,
    "allow_home_read": null,
    "sandbox": null
  },
  "sandbox": { "enabled": false, "backend": "none" },
  "hooks": [],
  "plugin_tools": []
}

由此得到的默认行为基线:会话 token 上限 128000(默认来源)、工具权限默认 read-only(只读,写文件与执行命令需放行)、沙箱未启用、预算上限未设置、无 hooks。这些值都可通过编辑 agent.toml 的 [agent]、[tools]、[sandbox] 等小节调整。

8.3 模型解析顺序(重要)

未指定模型时执行 jan cli agent run 的实测报错:

Error: no model specified: run `jan login` to sign in to Tokamak, or pass --model, set [agent].model in agent.toml, set default_model in ~/.jan/config.toml, or select a model in the desktop app

即模型按以下优先级解析:命令行 --model > 项目 agent.toml 的 [agent].model > 全局 ~/.jan/config.toml 的 default_model > 桌面应用中选择的模型 > jan login 登录 Tokamak 后的默认。排障时用 jan cli agent status 看 "model" 字段是否为 null。

8.4 相关环境变量

变量作用
JAN_CLI_NO_UPDATE_CHECK同时关闭更新检查与匿名使用统计上报
JAN_API_KEY / <PROVIDER>_API_KEY未传 --api-key 时的密钥兜底来源
JAN_BASE_URL未传 --base-url 时的端点兜底来源

九、推荐配置模板

9.1 纯 CPU 服务器(无独立显卡)

Settings > Local AI Engine 中调整:threads 保持 -1(用满逻辑核)、flash_attn 设为 off(无 GPU 时 auto 无收益)、cont_batching 保持 true、ctx_shift 设为 true(长对话不中断)、cache_type_k/cache_type_v 改 q8_0(KV cache 减半,质量损失很小)、models_max 保持 1。

9.2 大显存跑 MoE 模型

models_max 按显存设 1–2、n_cpu_moe 适当调大把专家权重留在内存、device 指定 CUDA0、split_mode 保持 layer、flash_attn 设 on、cache_ram 视并发调大。

9.3 长对话多会话场景

persist_thread_cache 保持 true、thread_cache_size 按磁盘余量调大(长会话单个可达数百 MiB)、ctx_checkpoints 保持 32、checkpoint_min_step 保持 8192。

9.4 Jan Agent 只读助手(安全优先)

项目 agent.toml 保持 tools.default = "read-only" 默认不动,[sandbox] 段按官方文档启用系统沙箱;需要写权限时只在 [tools] 的 allow_write 里列具体路径,避免全量放开。

十、常见问题

Q1:改了配置文件为什么不生效?

应用运行期间会以内存中的设置为准并在退出时写回文件,手工修改会被覆盖。正确顺序:完全退出应用 → 编辑文件 → 再启动。

Q2:data/settings.json 里出现大量 _v1/_v2 结尾的键是什么?

版本迁移标记位(如 llamacpp_fit_off_v1),应用用来记录"旧版设置已迁移到新结构",正常升级会自动写入,无需手工管理。

Q3:API Key 填在哪里,为什么配置文件里搜不到明文?

桌面端 API Key 存系统钥匙串(keyring),不写入 JSON;无钥匙串环境降级为加密文件并在日志提示 Keyring unavailable ... using encrypted file fallback。终端代理的凭据则明文存于 ~/.jan/config.toml(该文件权限应保持仅当前用户可读)。

Q4:jan cli agent run 报 no model specified?

模型解析链全空所致。按 8.3 节顺序任选一处配置:临时用 --model,或长期在 agent.toml/config.toml 设置默认模型,并先用 jan config set 配好 Provider 凭据、用 jan cli models list 确认目标模型在列。

Q5:MCP 服务器加了却不连接?

检查 mcp_config.json 中该服务器 active 是否为 true(终端代理可用 jan cli mcp enable <名称> 置位);filesystem 这类服务器还要确认 args 里的目录已改成实际存在的路径。

十一、参考链接

  1. 官方 Desktop 文档 - Jan Data Folder(数据目录结构):https://docs.jan.ai/desktop/data-folder (查询日期 2026-10-22)
  2. 官方 Desktop 文档 - App Settings(应用设置):https://docs.jan.ai/desktop/settings (查询日期 2026-10-22)
  3. 官方 Desktop 文档 - Model Parameters(模型参数):https://docs.jan.ai/desktop/model-parameters (查询日期 2026-10-22)
  4. 官方 Desktop 文档 - Local API Server:https://docs.jan.ai/desktop/api-server (查询日期 2026-10-22)
  5. 官方 Agent 文档 - Configuration(config.toml/agent.toml):https://docs.jan.ai/agent/project-config (查询日期 2026-10-22)
  6. 官方 Agent 文档 - CLI 参考:https://docs.jan.ai/agent/cli (查询日期 2026-10-22)

站内相关:《Jan 介绍与选型指南》、《Jan 0.8.7 配置参数详解》