第二章 设置与外观

本章覆盖第 6–10 章:设置面板逐项速查、助手人设与模型 Provider 字段,以及主题外观与系统集成。


第六节 设置面板

[!ref] 详解见用户手册「全局设置」节。

设置面板共 22 个 tab,按 6 个分组组织。下表按界面顺序逐一列出,并标注作用粒度(G 全局 / W 工作区 / M 模式)与默认值。

6.0 设置面板分组

6 个分组,每组最多 6 项,互斥领域 + 使用频率自上而下:

分组 包含的 tab 作用
账号 账号 · 反馈 登录 / 用量 / 点数余额、意见反馈
常规 通用 · 最近访问 · 数据 · 例行程序 主题、项目工作区与会话布局(侧边栏 / 顶部标签页)、消息密度、托盘、开机自启、语言、字体、配置目录、检查更新;最近工作区;存储空间 / 备份 / 清理 / 同步;例行程序
模型 服务提供方 · 参数配置 LLM Provider 列表 / 凭证 / 头;默认模型、温度、最大 token、超时
智能体 Agents · 自省 · 技能 · 工具 · Hooks · 上下文 · 记忆宫殿 五种模式人设;自省页:复述意图 / 自动反省 / 任务自动恢复;技能加载与签名;工具开关;调用前确认与自动批准;上下文与折叠;长期记忆
安全 安全 · 技能/插件签名 · 测试与自检 · 数据脱敏 · 供应链 / SBOM 危险护栏;签名验证策略与信任库;自检门禁;外发脱敏;SBOM 漏洞库数据源与离线同步
扩展 插件 · 随行通讯 插件市场 / 安装 / 启停 / 权限;微信等 IM 通道与绑定码

6.1 设置 → 账号

项 粒度 默认 说明
登录方式 G 手机号验证码 手机号验证码(默认;无账号自动注册;60s 倒计时;风控时切图形验证码)/ 用户名密码 / SSO
套餐额度 G 自动 登录后自动下发;无需手动配置
点数余额提醒阈值 G 1 小时 离过期不到该时长,状态点变琥珀;面板前缀 §(点)
用量周期 G 24h / 7d / 30d 每分钟刷新
退出登录 G — 点击执行;保留本地数据
兑换码 G — 输入兑换码 → 就地反馈(成功 / 失效 / 已用过等 12 种本地化提示)
我的用量点券 G — 列出全部用量点券:面额、有效期、永久券标注
可用点数口径 G — 直接取服务端展示字段(/me.voucher_balance),客户端不对券列表求和,与网页端一致
购买点券(账号卡) G — 账号卡内入口(旧名「快速购买」)。余额行固定单行显示
购买点券 / 升级 · 订阅套餐 G — 用量区与「可用点数已耗尽」横幅的两个按钮
购买流程 G — 先在 App 内弹选档框(「选一档,在浏览器里确认并付款」),选档后在系统浏览器打开确认购买页:点券 /quick-buy/?sku_id=<档位>&quantity=1;可自助套餐 /quick-buy/?plan_id=<套餐>&months=1;「联系销售」类套餐 → /dashboard/;框底「去服务页面」→ 点券 /recharge/、套餐 /dashboard/。落点跟随所配账号服务地址
低余额行内预警 G 阈值 < 50 已登录、消息由 AVL-Zero 产出、余额已知且严格小于 50 时,在本会话最新一条助手消息下显示「AVL Zero 可用点数仅剩 §xx.xx,即将用尽」+「购买点券」「升级 · 订阅套餐」;流式中 / 已有用量不足红条 / 历史消息不重复
首启向导 G 无可用模型时自动弹 每次启动检查;三步:登录 → 创建项目(有历史时为「打开项目」)→ 发起首次会话。账号页底部「首启向导 → 重新运行向导」或命令面板「运行首启向导」可手动打开

6.2 设置 → 通用

项 粒度 默认 说明
语言 G 跟随系统 简体中文 / 繁體中文 / English。落盘 language;Header 快捷菜单「语言」滑块同步此项
主题 G system system / light / dark
项目工作区与会话布局 G 侧边栏 sidebar(左侧边栏)/ tabs(顶部标签页,内容区贴边;打开的标签持久记忆、重启恢复;登录后标签条右端显示当前用户名,定宽、过长省略)。落盘 workspace_display_mode;Header 快捷菜单「布局」滑块同步此项
最小化到托盘 G 关 关窗后驻留托盘
开机自启 G 关 启动时静默到托盘
字体大小 G 中 小 / 中 / 大
消息密度 G 正常 detailed(正常,带卡片 / 参数预览) / compact(极简,无卡片灰阶细行 + 过程内容归并计数)。落盘 message_density;只压缩过程渲染、不动正文;旧 collapsed 自动迁到 compact;正常模式下,折叠思考随生成向左滚动,结束后显示开头摘要;极简模式仅显示「思考」
记住窗口状态 G 开 关闭后启动用屏幕自适应默认尺寸并居中、退出不回写
显示不可见字符 G 关 把回复中的零宽 / 变体等不可见字符在渲染时可视化标出。检出时另有提示(「思考 N 处 / 正文 N 处」+ 具体字符)。判定按可疑字符白名单口径 —— CJK 语境下合法的零宽 / 变体字符默认放行。开关翻转会清渲染缓存
配置目录 G — 一键打开
检查更新 G 启用 手动 / 自动

6.3 设置 → 最近访问(独立 Tab)

项 粒度 默认 说明
搜索 — — 命中词高亮;始终显示
置顶区 / 其他区 — — 各自独立滚动;置顶项不随下方滚动消失
多选 — — 支持顶部批量操作栏(删除 / 打开所选)
批量打开 — 打开所选 由「打开全部」改为「打开所选」;超过同时活跃上限按前 N 项截断并告知
删除 — inline 倒计时 武装 → 3 秒倒计时 → 确认;不弹 confirm

6.4 设置 → 数据

项 粒度 默认 说明
存储占用视图 G — 14 备份类别 + 6 非备份项,按 du 字节级对齐
单项 / 批量清理 G — 含敏感数据的类别自动落 auto-clean-<ts> 快照
全量重置 G — 深度清 14 类 + 重置默认配置 + 落 auto-fullreset-<ts> 快照
创建备份 G — .zbk 加密文件(SM4-GCM,PBKDF2-SM3 密钥派生,国密;旧版 AES-256-GCM 备份仍可解密导入),14 类应用数据
恢复备份 G — 选 .zbk → 输入密码 → 预览 → 确认
历史快照 G — 列出所有自动 / 手动快照,深链可跳定位
附件 / 样本上限 G 300 MiB 范围 1–4096 MiB;有「恢复默认」按钮
数据目录 G — 一键打开备份 / 迁移用
同步(实验性) G 关 多设备共享

6.5 设置 → 上下文

项 粒度 默认 说明
会话自动重命名 G 开 未手动改名的会话首条 AI 回复后自动起标题
自动命名豁免 — 自动 手动改名过的会话永久豁免
历史折叠(Compact)阈值 G 由模型决定 接近 context 上限时触发
自动压缩 · 触发阈值 G 85% 占用达上下文窗口的该比例时触发;范围 50–99
自动压缩 · 保留最近消息数 G — 压缩时保留末尾若干条原文不摘要
自动压缩 · 绝对触发上限 G 372000 与百分比取先到者。仅对声明的上下文窗口超过约 437K 的模型改变行为(部分模型窗口声明极大,只按百分比会迟迟触发不了)。0 = 关闭,只按百分比触发。落盘 auto_compact.max_prompt_tokens;env ZAGENT_AUTO_COMPACT_MAX_PROMPT_TOKENS
自动压缩 · 单进程最大触发次数 G — 同一进程内的压缩次数上限

6.6 设置 → 记忆宫殿

项 粒度 默认 说明
启用记忆宫殿 G 开 记忆子系统总开关。关闭后不抽取候选、不注入记忆、消息菜单「写入记忆宫殿」不打开抽屉(给出提示)。零重启生效(当场注销 / 注册后端)。落盘 memory_palace_enabled
记忆条目 G 空 长期记忆库的增删改查
旅程设计 G — 把一组记忆组合成"旅程"
回顾面板 G — 按主题查看历史回忆
单次提取上限 G 7 1–10 为固定上限;填 0 或 >10 则不设上限、由模型自主决定。自动 / 手动 / 重新提取三条路径统一生效
待审草稿盒 G — HookStop 抽取 → {宫殿}/_pending/{时戳}-{slug}.md → MemoryReviewPanel 批准 / 编辑 / 驳回。批准前不进 in-memory index / 不参与检索
健康看板 G — 总数 / 已过期 / 从未召回 / 房间分布 / 热度 Top 10 / 冷门 ≤20 / 低效 ≤20(R≥5 且 SR≤0.2)/ 疑似重复簇 ≤20 / 待审 dup·conflict 计数;可一键剪枝 / 合并
召回加权 G 开 RecallCount × SuccessCount;老被翻出却没用的自动沉底
罕见词加权 G 开 冷门 / 特征强词的命中分更高,相关条更易翻出
无关时少塞 G 开 与当前提问相关性弱的记忆不注入;仅保留 Pinned 条
冲突放待审 G 开 同 S+P 但 O 不同 → 写 ConflictHint = 旧 ID;批准时取代旧条;与 MergeHint(三元组重合 ≥ 2/3)互补
judge 教训沉淀 G 开 自检门禁 judge 发现的问题自动落到草稿盒

宫殿为空(零条记录)时,读取路径不调用 LLM 抽取检索三元组;首轮注入只抽一次并进缓存,同一 prompt 不重复计算。

6.7 设置 → 模型 → 服务提供方

项 粒度 默认 说明
Provider 列表 G AVL-Zero(共享,Delta) 可加自定义 Provider
类型 G AVL-Zero 默认 AVL Delta 兼容,其它默认 OpenAI AVL Delta 兼容 / OpenAI(兼容)/ Anthropic(x-api-key + anthropic-version)
Delta 协议开关 G 开(AVL-Zero) 每轮只传增量;404/405/501 本会话一次性回退 chat/completions,401/403 不降级
添加 / 编辑 G — 名称 / 接入地址 / 凭证
API Key 管理 G 自动下发 自行接入时填写
高级 → 自定义请求头 G — 仅自定义 Provider;多组 key/value,在内置头之后应用,可覆盖 Authorization / User-Agent 等;空 key 与含 CR/LF 自动跳过;Host 头不生效
模型刷新 G — 立即按所选类型拉取模型列表

6.8 设置 → 模型 → 参数配置

项 粒度 默认 说明
未开启模型折叠 G 折叠 每个服务提供方分组默认只显示已开启的;底部「展开 N 个」一键展开,按服务提供方各自记忆;搜索自动绕过折叠
默认模型 W 由 Provider 决定 工作区粒度覆盖
Temperature W·M 0.7(澜砥 N2.6 / N2.7:1.0) 0–1。内置 AVL-Zero 的澜砥 N2.6 / N2.7 一次性重置为推荐值 1.0(每模型一次,记账于 provider yaml settings.builtin_sampling_reset_v1),之后手改不再覆盖;「重置为默认」统一给 0.7
Top-P W·M 0.95 0–1。未设置时按 0.95;澜砥 N2.6 / N2.7 同样一次性重置为推荐值 0.95;「重置为默认」给 0.95
上下文窗口 W·M 跟随模型配置 模型可容纳的上下文 token 总量;自动压缩与软阈值告警的依据
最大输出 token W·M 跟随模型配置 无硬性上限,超出模型标称时以上游实际限制为准
标称最大输出 W·M 跟随模型配置 模型规格声明的输出上限;未显式配置「最大输出 token」时的默认值,并参与窗口结构校验(上下文窗口须大于它)
调用超时 G 30 秒 LLM 单次调用超时;填 0 = 跟随 Provider API 设置
最大执行步数 W·M 0(不限) 一次 LLM 响应或一批工具结果计 1 步;长任务建议保持 0
流式 G 开 关闭后整段输出
思考强度 按模型 高(未设置) 仅内置 AVL-Zero 的澜砥 N2.7 系列;落盘 params.reasoning_effort,对该模型全部会话生效。档位见 §19.8
支持图片输入 M 跟随模型配置 勾选后该模型可随消息接收图片(粘贴 / 拖入 / 「+」菜单)。内置标注:qwen-3.8-27b、澜砥 N2.7 系列;未勾选时输入框拒绝附图并提示切换模型

图片输入限制:单条消息最多 6 张;单张处理后 ≤ 1536 KB,合计 ≤ 3 MB;允许 PNG / JPEG / GIF / WebP;超尺寸按长边 1568 px 等比缩放;PNG 原图 ≤ 400 KB 且尺寸合规则原样保留,否则转 JPEG(质量 0.85)。运行中不可附图发送。图片仅随发送它的那一轮出站(判定:该轮已正常答复且用户有新输入即退役;易变的上下文记录不参与判定)。

参数编辑唯一入口:以上模型参数统一在「参数配置」抽屉里编辑(「参数配置」页与「服务提供方」对话框进入同一面板)。保存校验:输出上限 ≥ 上下文窗口拒绝保存;输出上限超窗口一半给出提示(建议上下文窗口 ≥ 4 × 最大输出);两处同时修改按乐观锁校验,冲突就近提示。

6.8.1 设置 → 模型 → 路由策略

场景 粒度 可选策略 默认 说明
主会话 G 全局一致 / 跟随会话 全局一致 跟随会话:每会话记住模型,新建快照当前选择,失效自动回落;会话自动改名同主会话
子任务 G 跟随主会话 / 跟随人设 / 优先指定模型 跟随主会话 优先指定模型另选「不可用时」回退:跟随主会话 / 跟随人设;委派参数 model 仅在跟随人设下生效
例行程序 G 跟随主会话 / 自由选择 / 优先指定模型 跟随主会话 自由选择 = 任务自带模型(仅此策略下对话框显示模型选择);未选或不可用时跟随主会话
Hook G 跟随主会话 / 优先指定模型 跟随主会话 Hook 条目写了 model 时以条目为准
sec.decompile G 随机选择 / 成本优先 / 效果优先 效果优先 仅启用且有 API Key 的澜砥系列;无则用会话模型
code.ask G 同上 效果优先 同上
记忆自动提炼 G 同上 效果优先 同上
自动修复 G 关闭 / 询问后切换 / 自动切换 询问后切换 选中的模型不可用(provider 不存在 / 停用 / 无此模型 / 模型禁用或下线)或上游故障时,是否改用启用了同名模型、未下线且有可用 Key 的另一 provider(按文件名顺序取第一个,绝不换模型)
切换后保持 G 开 / 关 关 策略不为「关闭」时显示;开启后切到的 provider 写入会话(跟随会话)或全局(全局一致)的模型选择
  • 「优先指定模型」候选:启用、未下线、服务提供方有可用 API Key($VAR 形式须为 ZAGENT_ / OPENROUTER_ / OPENAI_ / ANTHROPIC_ / ZMCP_ 前缀)的模型;已选模型失效时标「(不可用)」并按回退走。
  • 成本 / 效果排序:全部候选配了价格时成本按价格;否则按命名 —— 档位 Flash < Mid < 标准、版本号越新越好、Preview / -P2 等预览变体排在同版本正式版之后。
  • 生效时机:下一次调用即生效;sec.decompile / code.ask 在 zWorkspace 子进程内每次现读设置,无需重启。
  • 自动修复的确认条:仅 GUI 中用户发起的发送 / 继续生成 / 从这里重新开始 / 有如神助可弹「切换备用模型?」确认条(「切换并发送」/「不用」;上游故障时为「切换并重试」);新一轮起跑时未答复的确认条作废。
  • 弹不了确认条的场景(自动续跑、IM、例行程序、子任务、Hook、上下文压缩、SBOM、检查项、复述意图、经验反省、会话命名、超长消息摘要、记忆提炼、TUI、恢复中断任务):「询问后切换」下不切换、直接报错,toast 说明场景 / 模型 / 原因 / 策略(同场景同模型 5 分钟内只提示一次);会话本轮已切换过的,这些调用跟随备选。本地模式下「自动切换」降为「询问后切换」。
  • 「这一轮用哪个模型」判定顺序:本地模式只认会话明确选的 / 会话自身的模型 → 跟随会话且会话记的是替用户挑的默认 → 用当前默认模型 → 跟随会话的会话选择或全局一致的全局选择 → 后端调用在无选择时沿用该会话本进程最近一次的模型 → 当前默认模型(AVL-Zero /「澜砥 N2.6」)。用户选的模型即使不可用也原样返回,交给自动修复。App 自动发起的回合(压缩续跑 / 目标续转 / 待办核对 / 自愈 / 测试门禁 / 任务恢复 / 「继续」)一律按此判定。
  • 本地模式覆盖:会话处于本地模式时不看上述策略 —— code.ask / sec.decompile / 记忆提炼只用会话模型;子任务用主会话模型;Hook 用触发会话的模型(确定不了则跳过该次 Hook 模型调用);发往该会话的例行程序用该会话模型。

[!warning] code.ask 的检索片段、sec.decompile 的样本字节、记忆提炼的会话内容会发给路由选中的澜砥模型(通常为内置 AVL-Zero 云端),不一定是当前会话的模型;返回结果中的 provider / model 标明实际去向。

6.9 设置 → 插件

项 粒度 默认 说明
视图切换 G 已装视图 已装 ↔ 市场,两层面包屑导航
已安装列表 G 空 启用 / 禁用 / 卸载(行内二次确认)
浏览市场 G 默认市场 可加 / 切换市场源;按分类、按已披露能力筛选
CC 插件适配 G 开 兼容 Claude Code 插件:github@<org>、owner/repo、git 远程都识别
安装前确认 G 开 摊开来源 / 命令行 / 能力 / 签名,确认后才装
工作区默认激活 W 开 全局插件在每个工作区默认启用;市场装完即在当前工作区激活
权限设置 G 询问 插件可调用的工具范围
自动更新 G 询问 启动时检查
市场回源刷新 G — 重新拉取已添加市场源(git 重拉 / 本地重解析);视图露出已装版本 + 「可升级」标记,可从市场行 / 卡片直接升级
检查更新(已装) G — 列表头「检查更新」反查已装插件可升级项;有更新的卡片显示「有更新」徽章 + 升级按钮
升级机制 G — 版本比对 semver 为主 + 差异兜底;升级前清空插件目录防旧组件残留;市场缓存原子换盘、失败可回退
行内进度 G — 安装 / 升级 / 预览 / 更新 / 添加显示行内进度条(解析 git clone 真实进度);更新 / 检查更新按钮为原地旋转刷新图标
来源可信盾牌 G — 插件卡片作者旁标示来源可信状态(与 zMarket 商店同款);服务提供方条目复用所属插件图标,「插件」徽标为中性描边
导入身份 G — zip 导入的插件名取自签名 manifest 而非文件名;与既有插件同名的 zip 不再静默复用旧目录

典型插件目录:官方插件市场提供 22 个典型插件(源码随仓库维护) — 15 家服务提供方(DeepSeek / OpenRouter / OpenCode Zen / OpenCode Go / MiniMax / 小米 MiMo 按量+Token Plan / 智谱 / 月之暗面 / 通义千问 / 豆包 / Ollama / 硅基流动 / 阶跃星辰 / OpenAI 兼容模板)+ 知乎工具集 + 4 个原生能力示范(tools / hooks / channels / skills)+ 2 个 CC 兼容格式示范(agents+commands、mcp+hooks)。 对话内插件管理:PluginSearch / PluginList / PluginInstall / PluginUninstall 四个工具可在会话中完成插件生命周期,写入类走 dry_run → confirm 两步确认(见 §11.1 注)。

6.10 设置 → Hooks

项 粒度 默认 说明
工具调用前确认 W·M 见各工具 三态:启用 / 询问 / 禁用
自动批准列表 W 空 「始终允许」写入此处
工具黑名单 W·M 空 强制禁用某些工具
错误抽屉 W — 自动保留最近 100 条
Hook 执行可见 — 开 每次钩子执行都在对话流出系统消息(折叠条,Markdown 渲染)
插件 hook 根目录 — 自动 CLAUDE_PLUGIN_ROOT 指向插件目录,SessionStart 等 hook 稳定触发

6.11 设置 → Agents

项 粒度 默认 说明
Agent 列表 G 5 个内置 + 用户自定义 来源标签:内置 / 全局 / 工作区
名称 G 内置名 显示用
个性 G 内置 短句风格
系统提示词 G 内置 可指向工作区下文件
模式绑定 W 默认对应 五种模式各自指派一位
编辑 / 复制 / 删除 G — 仅全局 / 工作区来源可编辑

6.11.1 设置 → 自省(智能体组新页)

把「自主与自省」相关的三个开关集中到一处(tab id reflection,图标 Brain,隶属智能体组)。

项 粒度 默认 说明
复述意图(开工前确认) G 开 落盘键 intent_confirm(schema v8,默认 true)。仅对亲手输入的首条消息、且短(≤30 字 shortFirstMsgRunes)或简单(非多行 / 非列表、分隔符 ≤3、≤80 字 simpleMaxRunes)时触发;多 Agent 模式给分阶段计划。确认条三选:确认开始 / 修改(目标+计划)/ 保留我的本意(intent.confirm.keepOriginal,用原消息继续)。消息菜单「分析意图并从这里重新开始」可强制触发(先隐藏重启点之后消息)。详见用户手册「会话」节 §5.4.1
意图复述选择统计 G — 独立 YAML 记录确认 / 修改 / 保留本意 / 超时自动开始 / 取消的次数与字数;在本页以表格展示(列:类别 / 次数 / 字数)
自动反省(复盘学习) G 关 落盘键 auto_reflect。多步任务收尾自动跑一次 GRAI+KISS 复盘(读轨迹 + 自愈统计),把 Keep/Improve/Stop/Start 教训沉淀到记忆待审;有 LLM 调用成本(见 §18.6)
自动恢复被中断的任务 G 关 落盘键 auto_resume_tasks。开启后重启自动续跑上次崩溃 / 被杀时未完成的后台任务(夜间无人值守),启动每次最多自动恢复 5 个、其余转手动;关闭时仍在会话状态条「中断任务」项里列出供手动恢复(见 §18.4)

这三项原在「通用」页,本版起迁入「自省」页。

6.12 设置 → 技能

项 粒度 默认 说明
技能列表 G + W 内置技能空 三层来源(全局 / 工作区 / 插件);内置技能(如 skill-creator)标「内置」徽标
加载策略 W 自动 启动时刷新;内置技能启动自动物化、漂移覆盖
安装 / 删除 G — 拖入文件夹或扫描目录

签名校验、签名验证策略与信任库已迁至独立的 设置 → 技能/插件签名 Tab(安全分组,见 §6.17.1)。

6.13 设置 → 例行程序

本页只管理工作区例行程序(每次运行生成新会话)。AI 在会话里用 RoutineCreate 挂的会话内例行程序不在此页显示,见 §18.7。

项 粒度 默认 说明
列表 G 空 按来源工作区分组
启停开关 G 开 与其它设置页同款 ui/Switch
立即运行 G — 不等计划,立刻跑一轮
最近运行痕迹 G — 行内展开,可逐条查看会话
跨工作区分组 G — 未打开工作区显示徽标 + 一键打开
搜索 G — 按例行程序名或工作区名

调度参数:

字段 类型 默认 说明
type enum manual hourly / daily / weekdays / weekly / manual
weekdays array — [1..7];预设「工作日」/「周末」一键
time (HH:MM) string — 时 / 分双列下拉(选中居中、选完分钟自动收起)。hourly 只看分钟,小时锁 00、触发器显 :MM;NextRun 取 after 之后最近该分钟点,撞上 / 已过则 +1h,跨日 / DST 用时间算术天然正确
command string — 触发时发给 AI 的指令内容
mode string auto 与正常会话同款五种模式
model string — 与正常会话同款选择器(搜索分组)

运行行为:

  • 每次运行在对应工作区生成正常会话,过程与结果可回看。
  • 同一条例行程序运行中自动跳过下一次触发,不会叠跑。
  • 手动模式(无计划)保存后立即触发一轮,按钮显示「运行一次」。

6.14 设置 → 随行通讯

项 粒度 默认 说明
通道 G 微信 同时支持微信 / 飞书 / 钉钉
扫码登录 G — 各通道独立扫码
绑定码 W 6 位数字 10 分钟 TTL
工作区路由 W 默认会话 见 §4.2
节流 G min 200 / idle 3s / max 3800 字数控制
解绑 W — 立即失效

6.15 设置 → 数据脱敏

落盘 ~/.config/avlcode/redaction.yaml;主程序与子进程共用 pkg/redact 引擎。

项 粒度 默认 说明
总开关 enabled G 关 opt-in;关闭时所有场景一律放行
场景 scopes.export_html G 开(总开关后) 会话导出 HTML 时套用;规则对解码后的 JSON 文本值生效并递归下钻嵌套 JSON(覆盖工具调用参数与结果),修了代码块行首 IP 与深层字段漏脱敏
场景 scopes.export_session G 开(总开关后) .zsession 导出时套用(同上,覆盖代码块行首 IP)
场景 scopes.write_md G 关 AI 写 .md 等文档类落盘脱敏(Phase 2)
内置 presets.secrets G 关 内置密钥规则包(见下)
自定义规则 rules[] G 空 用户规则 + presets 并集为最终编译输入

Rule 字段:

字段 类型 说明
type enum keyword / regex / ipv4_mask / domain_mask
pattern string keyword 自动转义;regex RE2
replacement string keyword 字面量;regex 支持 $1 / ${name} 捕获模板
octets int[] ipv4_mask 要遮的段(1-based,1..4,任意段含中间)
segments int ipv4_mask 兼容旧配置:掩前 N 段
keepLast int domain_mask 保留末尾几段(默认 1)
maskChar string ipv4 / domain 掩码字符(默认 *)
enabled bool 启停单条
label string 命中审计用

内置 secrets 预设清单:AWS Access Key(AKIA…)/ GitHub PAT (ghp_…) / GitHub Token (gh[osu]_…) / Slack Token (xox[baprs]-…) / Stripe Live Key (sk_live_…) / GCP API Key (AIza…) / OpenAI Key (sk-…) / PEM 私钥整块(含头尾与中间 base64,跨行)。

命中反馈:每次脱敏完成时弹一条 toast — 命中条数 + 命中规则 label 列表。

6.16 设置 → 供应链 / SBOM

为 sbom.audit / sbom.vex 配置漏洞库数据源与本地离线库:

  • 落盘 <config>/sbom.json;字段留空 = 内置默认(直连公网);坏 / 缺 JSON 安全回退默认,绝不阻塞审计。
  • 保存按钮为「测试并保存」:先校验合法性(URL 须 http/https、代理 http/https/socks5、路径无空字节),再按 default_mode 探测可用性(本地库路径可写性始终阻断式,离线模式跳过联网探测);任一阻断项不可用拒绝保存并列出原因。
  • 本地漏洞库路径等离线字段归入「离线漏洞库」区;相对路径测试时规范为绝对路径回写。
  • 「重置为默认」仅改表单、不落盘,需再点「测试并保存」才生效。
  • 后端绑定:SBOMGetSettings / SBOMSetSettings / SBOMSyncDB / SBOMOpenVulnDBDir / SBOMTestSettings。

数据源(Data sources):

项 落盘键 默认 说明
OSV 在线查询 API osv_api_base_url https://api.osv.dev 在线审计的查询端点
OSV 离线 dump 源 osv_bucket_url https://osv-vulnerabilities.storage.googleapis.com dbsync sync 拉取按生态 dump 的存储桶
KEV 名录源 kev_url CISA KEV feed 已知被利用漏洞名录地址
本地漏洞库路径 vulndb_path <config>/vulndb 离线库目录,可指向只读挂载;附「打开文件夹」
HTTP 代理 http_proxy 空 留空回落 HTTPS_PROXY / NO_PROXY 环境变量
默认审计来源 default_mode auto auto(本地有库则离线、否则在线)/ online / offline

离线库(Offline DB): 按生态表格展示「生态 / 记录数 / 新鲜度(unknown / today / Nd ago)/ 来源」,并列出 KEV 条目数;提供按生态多选下拉(含筛选、全选 / 清空)驱动 同步(每生态独立进度条)与 同步 KEV 按钮。可同步的生态来自后端 SyncableEcosystems(13 个有 OSV 离线 dump 覆盖的生态)。

air-gap 提示:把上面各源指向内部镜像(必要时配代理),再用 sbom.dbsync sync 或离线 import 填好本地库,audit / vex 即可全程离线。

6.17 设置 → 安全(威胁检测 · 哨兵 · VT/GTI)

VirusTotal / GTI 云端威胁情报的配置页(tab id security)。落盘 <config>/vtai.yaml;密钥本机加密存储。检测能力与哨兵拦截解耦——配好后端 / YARA 即可让 Agent 调用扫描工具,无需开拦截。四段:

① 威胁检测

项 落盘键 默认 说明
云端检测服务(单选) mode 空(不启用) vtai=VirusTotal AI·免费托管(哈希 / 可疑文件上传公开分析、别名上榜);user_key=Google Threat Intelligence·自带 Key(结果不公开,需下方填 Key,无可用 Key 时置灰);""=不使用云端。旧 local 迁移为 ""+yara_enabled
上传文件到云端扫描 auto_scan 关 开=允许上传做完整扫描(密钥 / .env 等敏感文件始终不传);关=只查哈希
本地 YARA 规则 yara_enabled 关 独立开关,纯离线;可与云端同开;改规则目录后工作区重启才重载(不热加载)
恢复默认 — — 非破坏:mode="" + auto_scan=false,保留 Key / 注册 / api_base / full_tools
重新获取 Key(VirusTotal AI) — — RefreshVTAIKey:用现有身份重注册取新 token(换机 / 轮换时用)

② 自动扫描拦截 · 哨兵(Sentinel):单开关(合并 enabled+monitor),开启后 Agent 读 / 写 / 执行文件自动扫描、命中即阻断;未配置任一检测方式时置灰(capable = mode≠"" 或 yara_enabled)。

③ Google Threat Intelligence 密钥:API Key(本机加密,user_key 云端与 vt.* 共用;单填不启用任何功能)+ 自定义服务地址(默认 https://www.virustotal.com/api/v3,对接企业 / 内网镜像)。VirusTotal AI 免费托管后端也支持各自独立的自定义接入点(与 GTI 的地址相互独立)。显示名统一为全称 VirusTotal AI / Google Threat Intelligence。

④ vt. 全量情报工具*:主开关(无可用 Key 置灰)+ 子开关 仅查询模式(默认开)/ 启用收费功能(默认关)/ 上传样本前确认(默认开,仅「仅查询」关时出现);启用后显示「当前有效:仅查询|读写 · 含收费|仅免费 · 自定义端点」摘要。

面板文案为硬编码简体,无 i18n;后端 Wails:GetVTAIState / SetVTAIMode / SetVTAIYaraEnabled / RefreshVTAIKey / GetVTAILeaderboard、GetVTFullToolsState / SetVTFullToolsPolicy / SetVTFullToolsAPIKey / SetVTFullToolsAPIBase;HasAPIKey 用 KeyUsable。

6.17.1 设置 → 技能/插件签名(独立 Tab)

签名验证策略与信任库从「安全」「技能」两页集中迁到此独立 Tab(安全分组,tab id signatures),一份策略同时管住技能与插件:

① 签名验证策略(三档,切换时自愈历史遗留的不一致状态):

档位 语义
strict · 严格 未签名或验证失败的技能 / 插件不加载、不安装
warn · 警告 验证失败仍可放行,但在 UI 上标记;「来源不可证实」的包改为弹确认、由用户决定是否放行,存在篡改证据的包仍硬性拦截
skip · 跳过 不执行密码学校验,仅读取 manifest 元数据

② 信任库:

项 说明
信任库路径 默认路径 / 自定义路径均可;signer_roots/ 放签名根 CA PEM、tsa_roots/ 放 TSA 根 CA(完整验证时间戳)
重新加载 手动重载按钮 + 自动重载;投放证书后即时生效,无需重启
导入根证书(PEM) 文件选择器导入,写入信任库并立即计入签名者锚 / TSA 锚计数
锚点计数 面板显示「🔑 签名者锚 N · 🕒 TSA 锚 N」,可一键打开信任库目录

拒绝 / 导入失败时透出具体原因(签名链、时间戳、篡改点),不是笼统报错。