配置参考
配置模型连接、自定义端点与可选决策层,了解凭据、环境变量、偏好和网络代理的实际存储及生效范围。
配置文件位置与结构
主配置文件记录了工作区列表、模型连接和应用级默认值,放在配置目录下的 config.json。
多数设置可以直接在应用界面里修改;需要批量调整或排查问题时,再直接编辑这个文件。
- 退出工作台后再编辑文件,避免运行中的写入覆盖你的改动。
- 修改前先复制一份备份。
- 重新启动工作台,让配置生效。
| 字段 | 说明 |
|---|---|
llmConnections | 模型连接列表,每一项包含服务商、认证方式与默认模型 |
defaultLlmConnection | 新会话的默认连接 slug;工作区 defaults 可覆盖,已有会话不随之改变 |
| workspaces | 已配置的工作区,包含标识、名称与目录路径 |
activeWorkspaceId | 当前工作区标识,未选择时为空 |
activeSessionId | 当前会话标识,未选择时为空 |
notificationsEnabled | 是否在任务完成时发送桌面通知 |
colorTheme | 选中的预设主题标识 |
autoCompactWindow | 触发上下文压缩的大小 |
networkProxy | 网络代理设置 |
decisionLayer | 可选决策模型的总开关、服务商、超时与子功能;默认关闭 |
rtkEnabled / rtkExcludeCommands | RTK 输出优化开关及按命令首词匹配的排除列表;默认关闭 |
~/.zero-works/config.json模型连接与能力配置
llmConnections 保存连接对象;defaultLlmConnection 保存默认连接的 slug。工作区 defaults.defaultLlmConnection 可覆盖全局默认值,但已有会话仍保留自己的连接。
首条消息之后连接锁定。可以在同一连接内换模型;更换连接需新建会话。下面是合并到主配置的片段,保留原来的 workspaces、activeWorkspaceId 等字段。
providerType:pi_compat对应自定义兼容端点;customEndpoint.api仅接受openai-completions或anthropic-messages。- 有 Key 的兼容服务使用
authType:api_key_with_endpoint,Key 在界面的专用凭据字段保存;本地无认证服务才用none。 models[].contextWindow是上下文 token 数。图片支持按models[].supportsImages>customEndpoint.supportsImages>false解析,单模型false可以覆盖连接级true。customEndpoint.maxTokens是正整数输出上限,默认 8192,也约束压缩摘要;服务端允许时可提高来处理长会话摘要空间不足。midStreamBehavior为queue或steer;未指定时 anthropic 默认queue,pi /pi_compat默认steer。
{
"defaultLlmConnection": "ollama-local",
"llmConnections": [
{
"slug": "ollama-local",
"name": "Ollama local",
"providerType": "pi_compat",
"authType": "none",
"baseUrl": "http://localhost:11434/v1",
"models": [
{
"id": "gpt-oss:20b",
"name": "gpt-oss:20b",
"shortName": "gpt-oss:20b",
"contextWindow": 131072,
"supportsImages": false
}
],
"defaultModel": "gpt-oss:20b",
"customEndpoint": {
"api": "openai-completions",
"supportsImages": false,
"maxTokens": 8192
},
"midStreamBehavior": "steer",
"createdAt": 1793059200000
}
]
}独立配置并启用决策层
决策层使用独立的小模型处理分类、是非判断和风险提示,不会因为主对话模型已配置就自动开启。decisionLayer.enabled 默认为 false,没有用于替代总开关的环境变量。
在“设置 → AI → 决策模型”配置服务商、凭据与模型。以下是当前内置预设,不代表已经对你的账号或网络做过真实调用验收。
- 打开决策模型设置,先选择服务商,或选择可复用 Key 的 OpenRouter / Vercel AI Gateway 连接。
- 直接接入需 Key 的服务时,在决策模型专用字段填写并保存 Key。选择 Laya 时先启动服务;自定义服务填写实际基地址,必要时填模型覆盖值。
- 保持总开关关闭也可以点击 Test。它发送固定示例问题,成功会显示响应模型与延迟;这只验证连通性,不代表业务分类准确率。
- 测试成功后开启总开关,再展开 Advanced settings,逐项启用本次需要的功能;Guarded、自动化条件与自动选模都需要各自的子开关。
- 以一条可核对的小任务验证所选功能;需要停用时关闭对应子开关或总开关。
- Laya 预设的启动提示为
pip install "laya[serve]"后运行laya-serve;在 Agent 所在主机启动并通过设置中的 Recheck 检查服务,再运行 Test。 - 决策请求使用 System One 协议,请求地址由
baseUrl追加/v1/systemone;已经包含该路径时不会重复追加。 deadlineMs是后台调用预算,默认 1500 毫秒,范围 250–60000;设置页的 Test 使用独立的 10000 毫秒预算。测试通过但后台超时时,检查主机性能、模型与网络,按需在配置中调整预算。connectionSlug仅用于复用兼容的 OpenRouter / Vercel AI Gateway 连接,服务商随连接解析;普通聊天连接不能任意复用。- 更换服务商或 Key 来源会清除旧的
baseUrl与 model 覆盖,防止把新 Key 送往旧端点;切换后重新核对并测试。
| provider | 服务商与默认模型 | 凭据与端点 |
|---|---|---|
| typesafe | TypeSafe AI:jev-1.13.0 | 独立 Key;https://api.typesafe.ai |
| openrouter | OpenRouter:typesafe/jev-1.13 | 独立 Key 或复用对应 OpenRouter 连接;https://openrouter.ai/api |
| vercel-ai-gateway | Vercel AI Gateway:typesafe-ai/jev | 独立 Key 或复用对应网关连接;https://ai-gateway.vercel.sh/typesafe |
| laya | Laya:auto | 默认 http://127.0.0.1:8000;本地服务,Key 可选 |
| custom | Jev 兼容服务:默认 jev-1.13.0 | 必须填写 baseUrl;不是任意 Chat Completions 端点,Key 可选 |
{
"decisionLayer": {
"enabled": true,
"provider": "laya",
"baseUrl": "http://127.0.0.1:8000",
"model": "auto",
"deadlineMs": 1500,
"features": {
"decideTool": true,
"taskVerdicts": true,
"semanticLabels": true,
"guardedMode": false,
"automationConditions": false
}
}
}决策子功能与失败回退
总开关开启后仍按 features 逐项控制。默认只有 decideTool、taskVerdicts、semanticLabels 为 true,其他子功能为 false;它们都不会绕过已有权限或审批要求。
- 启用 Guarded 时,还需在会话权限选择器里选中该模式。活跃风险检查超时或无有效答案时会要求确认;它不能把原本需要确认的调用变成自动允许。
- 关闭决策层后不要继续把 Guarded 当成仍在进行模型风险检查;需要逐项确认时,把会话切回 Ask to Edit。
- 语义标签在层关闭、超时或回答不达阈值时不新增标签;正则规则仍可独立运行。
- 自动化语义条件属于可选筛选:关闭或判断失败时按原有路径运行,不会因决策服务不可用而自动跳过任务。需要硬性阻断时使用实际权限与调度规则。
- 自动标题、推理强度、子代理模型等可选优化在无法判断时保留原有路径。先核对总开关、对应子开关、Key 和 Test,再排查超时、额度与服务端协议。
features 键 | 用途 |
|---|---|
decideTool | 供 Agent 调用 decide 分类、路由与评分 |
taskVerdicts | 任务回复没有可解析 verdict 时辅助识别 |
semanticLabels | 标签里的 semantic 自动规则 |
turnOutcome | 判断完成、待输入或阻塞状态 |
guardedMode | 提供 Guarded 模式,把风险调用提升为确认 |
| riskBadges | 审批上的信息性风险标记 |
automationConditions | 判断自动化的 semanticCondition |
taskRepairs | 辅助定位需要修复的子任务 |
smartTitles | 避免为寒暄起标题、刷新偏离主题的自动标题 |
adaptiveThinking | 简单轮次可降低推理强度,不高于会话设置 |
midTurnMessages | 辅助选择 steer / queue 及合并续接消息 |
largeResults | 预览与文件足够时跳过大工具结果摘要 |
suggestions | 推荐相关技能或未启用来源 |
subagentModels | 为 Claude 内置子代理选更便宜模型,不高于会话模型 |
凭据管理
通过模型、来源和决策模型专用表单保存的 Key、OAuth 令牌等,通常写入本机加密凭据文件 credentials.enc,并按全局、连接或来源标识区分。
代理 URL 是明确例外:networkProxy 直接保存在普通 config.json,URL 中的用户名和密码不会进入加密凭据库。备份或反馈前也要检查这个字段。
- 在对应设置表单保存凭据,并用该连接的测试入口验证。
- 查看配置状态和连接标识即可确认归属;不要通过聊天或日志输出凭据内容。
- 停用不再使用的连接,在对应界面删除或替换其凭据;不要为处理一条过期 Key 删除整个凭据文件。
| 范围 | 凭据类型 | 存放位置 |
|---|---|---|
| 全局 | 模型服务的 API 密钥或订阅登录令牌 | 凭据文件中的全局条目 |
| 模型连接 | API 密钥、OAuth 令牌、云厂商临时凭据 | 按连接标识区分的条目 |
| 来源 | OAuth 令牌、Bearer 令牌、API 密钥、Basic 认证 | 按工作区与来源标识区分的条目 |
~/.zero-works/credentials.enc环境变量
环境变量由启动进程读取,各变量作用域不同;不会一律覆盖所有桌面连接凭据。下表区分配置根、调试、源码 CLI run、云 SDK 与子进程网络设置。
| 变量 | 用途 | 说明 |
|---|---|---|
CRAFT_CONFIG_DIR | 覆盖配置目录 | 默认为 ~/.zero-works |
CRAFT_DEBUG | 调试日志 | 设为 1 时输出诊断信息 |
LLM_API_KEY | 源码 craft-cli run 的模型凭据 | 不是桌面全部连接的统一 Key 覆盖 |
LLM_PROVIDER、LLM_MODEL、LLM_BASE_URL | 源码 craft-cli run 参数 | 指定该次 run 的服务商、模型 ID 与端点;不重写桌面 llmConnections |
AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN | 云厂商凭据 | 按标准凭据链生效 |
AWS_REGION、AWS_PROFILE | 云厂商区域与配置 | 与标准云工具链保持一致 |
CRAFT_LOCAL_MCP_ENABLED | 运行进程的本地 MCP 开关 | false 禁用本地 stdio;还需核对工作区本地 MCP 设置 |
HTTP_PROXY、HTTPS_PROXY、NO_PROXY | 代理环境变量 | 子进程会继承这些变量 |
NODE_EXTRA_CA_CERTS | 自定义 CA 证书 | 企业代理做 TLS 检查时使用 |
偏好设置
偏好文件记录个人偏好,例如称呼、时区、所在地和沟通风格。这些内容会进入 Agent 的上下文,帮助它给出更贴合你习惯的回答。
偏好文件放在配置目录下的 preferences.json。界面语言单独在设置里切换,切换后界面与回答语言会一起变化。
name:希望被如何称呼,会出现在问候与个性化回答里。timezone:IANA 时区,用于今天、本周这类时间表达和任务截止时间。location:城市、地区与国家,用于位置相关的信息。notes:自由描述的回答偏好,会作为上下文提供给 Agent。
{ "name": "Alex", "timezone": "Asia/Shanghai", "location": { "city": "上海", "region": "上海", "country": "中国" }, "notes": "偏好要点式回答,技术背景较强" }网络代理
在企业网络、需要通过代理访问外部服务的环境里,可以让工作台的出网请求走 HTTP 或 HTTPS 代理。代理设置写在设置的网络页面,并保存到配置文件的 networkProxy 字段。
networkProxy.httpProxy 与 httpsProxy 是普通配置字符串。包含认证信息的 URL 会把口令以明文写入 config.json 及其备份,不受 credentials.enc 保护;分享配置前先移除认证部分。
不要依赖本机地址自动绕过:未匹配 noProxy 时,Node 出网请求仍会走代理。要直连本机服务,明确填写 localhost,127.0.0.1,[::1];需要直连的内网域名也逐项加入。
| 配置项 | 说明 | 示例 |
|---|---|---|
| 启用代理 | 打开或关闭代理转发 | — |
| HTTP 代理 | HTTP 请求使用的代理地址 | http://proxy.example.com:8080 |
| HTTPS 代理 | HTTPS 请求使用的代理地址,未设置时沿用 HTTP 代理 | http://proxy.example.com:8080 |
| 不代理主机 | 逗号分隔的绕过主机列表 | localhost,127.0.0.1,.internal.example.com |
| 绕过规则 * | 匹配所有主机,相当于关闭代理 | * |
绕过规则 example.com | 匹配该主机与其子域 | example.com |
绕过规则 .example.com | 匹配该域及其子域;前导点会被移除 | .example.com |
绕过规则 example.com:8080 | 指定主机与端口 | example.com:8080 |
绕过规则 192.168.1.1 | 精确的 IP 地址 | 192.168.1.1 |
绕过规则 [::1] | IPv6 地址 | [::1] |
绕过规则 [::1]:8080 | 带端口的 IPv6 地址 | [::1]:8080 |
{
"networkProxy": {
"enabled": true,
"httpProxy": "http://proxy.example.com:8080",
"httpsProxy": "http://proxy.example.com:8080",
"noProxy": "localhost,127.0.0.1,[::1],.internal.example.com"
}
}配置校验与常见问题
- JSON 语法错误:启动或切换工作区时会提示某个文件解析失败,先用编辑器校验 JSON 结构。
- 修改后没有生效:确认改动写入了正确路径,并新建会话或重启工作台。
- 凭据无法解密:确认是否来自另一台机器;保留原文件,并在当前机器重新保存对应连接凭据。
- 文件权限错误:把凭据文件的权限收紧到仅当前用户可读写。
- 代理能浏览但登录失败:企业代理通常会做 TLS 检查,需要用
NODE_EXTRA_CA_CERTS指向企业 CA 证书后重试。 - 本地 MCP 连接异常:确认本地命令在运行 Agent 的机器上存在,并按需检查本地 MCP 开关。
- 决策功能没有生效:检查
decisionLayer.enabled、对应features开关、服务商 Key 与 Test 结果。Test 的 10 秒预算与后台deadlineMs不同。 - 本机端点被代理拦截:把
localhost、127.0.0.1和实际使用的 IPv6 主机加入noProxy,再发起新的请求。