第二章 设置与外观
本章覆盖第 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」,可一键打开信任库目录 |
拒绝 / 导入失败时透出具体原因(签名链、时间戳、篡改点),不是笼统报错。
