AVL Code 参考手册
适用版本:AVL Code v0.7.28-alpha 及以上
适用平台:Windows · macOS · Linux(含银河麒麟 Kylin / 统信 UOS)
文档定位:以查询为目的、表格密集型的参考手册。每章按主题组织,按字段或键名罗列细节,便于在使用过程中按需翻查。
与配套手册的关系:日常使用请阅《AVL Code 用户手册》;初次安装请阅《AVL Code 快速上手指南》;本手册为前两者提供穷举式补充。
目录
- 总览
- 工作模式参考
- 设置面板参考
- 键盘快捷键参考
- 输入框 Slash 命令参考
- 随行通讯命令参考
- 智能编程工具参考
- 安全分析工具参考
- 外部工具服务接入参考
- 工具权限策略参考
- 计划与待办状态参考
- 技能(SKILL.md)格式参考
- 助手人设参考
- 模型 Provider 参考
- 历史折叠(Compact)参考
- 子任务与后台执行参考
- 命令行入口参考
- 主题与外观参考
- 系统集成参考
- 状态指示与提示参考
- 错误信息参考
- 数据与备份参考
- 文件命名约定
- 网络访问清单
- 隐私与遥测参考
- 升级与版本号参考
- 附录 A:术语表
- 附录 B:参数取值速查
- 附录 C:常见正则与通配符语法
- 附录 D:键值清单导出格式
1. 总览
本章给出"哪些东西可被查询"的总图,便于跳转到具体章节。
1.1 查询入口对照
| 你想查 |
章节 |
| 某个工作模式做什么 / 不做什么 |
第 2 章 工作模式 |
| 某个设置项在哪 / 默认值 |
第 3 章 设置面板 |
| 某个键盘快捷键 |
第 4 章 键盘快捷键 |
某个 /-开头命令的语义 |
第 5 / 6 章 Slash 命令 |
| 某个工具的参数 |
第 7 / 8 / 9 章 工具 |
| 全库 RAG 检索 / 问答(code.search/ask) |
第 7.12.3 节 |
| SBOM / 供应链漏洞排查工具参数 |
第 8.13 节 |
| VirusTotal / GTI 情报工具(vt / sec.vtai 工具组) |
第 8.14 节 |
内置技能 / market.check 发布契约校验 |
第 12.6 / 12.7 节 |
| 威胁检测 / 哨兵 / VT-GTI 设置 |
第 3.17 节 |
| 技能 / 插件签名策略与信任库 |
第 3.17.1 节 |
| 工作区与会话布局(侧边栏 / 顶部标签页) |
第 3.2 节 |
| 对话内插件管理(PluginSearch / Install / …) |
第 7.1 节 |
| 并行 fan-out(AgentParallel)参数 |
第 16.3.1 节 |
| 自修复 / 自愈 / 经验学习闭环 |
第 16.5 / 16.6 节 |
| 复述意图 / 自省页设置 |
第 3.11.1 节 |
| 某个权限策略生效顺序 |
第 10 章 权限 |
| 计划 / 待办的状态机 |
第 11 章 |
| SKILL.md 的字段 |
第 12 章 |
| 助手人设字段 |
第 13 章 |
| 模型 / Provider 配置字段 |
第 14 章 |
| 一段命令行能做什么 |
第 17 章 CLI |
| 应用主题色 / 间距 |
第 18 章 |
| 自启 / 托盘 / 通知 |
第 19 章 |
| 一个状态点 / 颜色含义 |
第 20 章 |
| 一段错误信息含义 |
第 21 章 |
| 备份 / 数据目录结构 |
第 22 章 |
| 文件命名规则 |
第 23 章 |
| 应用会访问哪些网络资源 |
第 24 章 |
| 隐私 / 遥测 |
第 25 章 |
| 升级源 / 版本号语义 |
第 26 章 |
1.2 阅读约定
- 表格中
— 表示"无 / 不适用"。
- 表格中
… 表示"省略,可参阅展开章节"。
- 单元格里的
code 等宽内容代表字面字符串(命令、字段名、文件名、正则、shell 等)。
- 「占位 ID」用
<…> 表示,例如 <workspace-id>。
- 「模式」列出现
— 表示该项不受工作模式影响。
2. 工作模式参考
2.1 模式一览
| 模式 |
图标 |
中文名 |
默认助手 |
写文件 |
编辑 |
终端执行 |
联网 |
| auto |
|
自动 |
内置 · 自动 |
启用 |
启用 |
启用 |
启用 |
| plan |
|
筹划 |
内置 · 筹划 |
禁用 |
禁用 |
禁用 |
启用 |
| prepare |
|
准备 |
内置 · 准备 |
启用 |
启用 |
启用 |
启用 |
| execute |
|
执行 |
内置 · 执行 |
启用 |
启用 |
启用 |
启用 |
| assess |
|
评估 |
内置 · 评估 |
禁用 |
禁用 |
启用 |
启用 |
plan(筹划)是严格只读:只放行读取类工具(读文件 / 读代码 / 读 git / 安全分析 / 联网 / 技能 / 待办与规划本身),不含任何 fs.exec.*(fs.exec.tail、fs.exec.list 在筹划模式下同样不可用)。该限制与所绑定助手声明的工具取交集,助手只能更严、不能更松,配置面板无法放宽。
assess(评估)不写业务代码,但可以执行命令:放行读取类工具之外,还包括终端执行(fs.exec.*)、测试 / lint / SAST(verify.*)、SBOM 生成(sbom.*)、安全分析与威胁情报(sec.* / vt.*),以便真正完成验收与复盘。它禁用的是写文件与编辑(fs.write / fs.patch)。与筹划模式不同,评估模式的这一约束来自其绑定助手的工具声明 —— 若把评估模式改绑到别的助手,约束随之改变。
2.2 模式切换的副作用
| 切换发生时 |
行为 |
| 加载该模式绑定的助手 |
助手 SOUL 注入到下一回合 |
| 切换工具开关集合 |
工具列表立即重算可见性 |
| 在会话流中插入分隔标记 |
一条「模式切换」事件卡片 |
| 计划与待办 |
不重置;继承自上一模式 |
| 模型与参数 |
切到该模式记录的覆盖项;无覆盖时沿用工作区默认 |
2.3 推荐工作流
plan → prepare → execute → assess
各模式间的"退出"按钮显示在会话顶端横幅;点击会自动加载下一模式并把已确认产物(计划 / 准备清单 / 执行变更)注入新一回合。
3. 设置面板参考
设置面板共 22 个 tab,按 6 个分组组织(由旧的「账号 / 桌面 / 服务」3 组重组而来)。下表按界面顺序逐一列出,并标注作用粒度(G 全局 / W 工作区 / M 模式)与默认值。
3.0 设置面板分组
旧的「账号 / 桌面 / 服务」3 组(服务 12 项过载)重组为 6 组,每组最多 6 项,互斥领域 + 使用频率自上而下:
| 分组 |
包含的 tab |
| 账号 |
账号 · 反馈 |
| 常规 |
通用 · 最近工作区 · 数据 · 例行程序 |
| 模型 |
提供商 · 模型 |
| 智能体 |
Agents · 自省 · 技能 · 工具 · Hooks · 上下文 · 记忆宫殿 |
| 安全 |
安全 · 技能/插件签名 · 测试与自检 · 数据脱敏 · 供应链 / SBOM |
| 扩展 |
插件 · 随行通讯 |
3.1 设置 → 账号
| 项 |
粒度 |
默认 |
说明 |
| 登录方式 |
G |
手机号验证码 |
手机号验证码(默认;无账号自动注册;60s 倒计时;风控时切图形验证码)/ 用户名密码 / SSO |
| 共享额度 |
G |
自动 |
登录后自动下发;无需手动配置 |
| 点数余额提醒阈值 |
G |
1 小时 |
离过期不到该时长,状态点变琥珀;面板前缀 §(点) |
| 用量周期 |
G |
24h / 7d / 30d |
每分钟刷新 |
| 退出登录 |
G |
— |
点击执行;保留本地数据 |
| 兑换码 |
G |
— |
输入兑换码 → 就地反馈(成功 / 失效 / 已用过等 12 种本地化提示) |
| 我的用量点券 |
G |
— |
列出全部代金券:面额、有效期、永久券标注 |
3.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 |
— |
一键打开 |
| 检查更新 |
G |
启用 |
手动 / 自动 |
3.3 设置 → 最近工作区(独立 Tab)
| 项 |
粒度 |
默认 |
说明 |
| 搜索 |
— |
— |
命中词高亮;始终显示 |
| 置顶区 / 其他区 |
— |
— |
各自独立滚动;置顶项不随下方滚动消失 |
| 多选 |
— |
— |
支持顶部批量操作栏(删除 / 打开所选) |
| 批量打开 |
— |
打开所选 |
由「打开全部」改为「打开所选」;超过同时活跃上限按前 N 项截断并告知 |
| 删除 |
— |
inline 倒计时 |
武装 → 3 秒倒计时 → 确认;不弹 confirm |
3.4 设置 → 数据
| 项 |
粒度 |
默认 |
说明 |
| 存储占用视图 |
G |
— |
14 备份类别 + 6 非备份项,按 du 字节级对齐 |
| 单项 / 批量清理 |
G |
— |
含敏感数据的类别自动落 auto-clean-<ts> 快照 |
| 全量重置 |
G |
— |
深度清 14 类 + 重置默认配置 + 落 auto-fullreset-<ts> 快照 |
| 创建备份 |
G |
— |
.zbk 加密文件(AES-GCM),14 类应用数据 |
| 恢复备份 |
G |
— |
选 .zbk → 输入密码 → 预览 → 确认 |
| 历史快照 |
G |
— |
列出所有自动 / 手动快照,深链可跳定位 |
| 附件 / 样本上限 |
G |
300 MiB |
范围 1–4096 MiB;有「恢复默认」按钮 |
| 数据目录 |
G |
— |
一键打开备份 / 迁移用 |
| 同步(实验性) |
G |
关 |
多设备共享 |
3.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 |
— |
同一进程内的压缩次数上限 |
3.6 设置 → 记忆宫殿
| 项 |
粒度 |
默认 |
说明 |
| 记忆条目 |
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 发现的问题自动落到草稿盒 |
3.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 |
— |
立即按所选类型拉取模型列表 |
3.8 设置 → 模型
| 项 |
粒度 |
默认 |
说明 |
| 模型作用域 |
G |
全局一致 |
全局一致(共用) / 跟随会话(独立,新建快照当前选择,失效自动回落) |
| 未开启模型折叠 |
G |
折叠 |
每个供应商分组默认只显示已开启的;底部「展开 N 个」一键展开,按供应商各自记忆;搜索自动绕过折叠 |
| 默认模型 |
W |
由 Provider 决定 |
工作区粒度覆盖 |
| Temperature |
W·M |
0.7 |
0–1 |
| Top-P |
W·M |
1.0 |
0–1 |
| 上下文窗口 |
W·M |
跟随模型配置 |
模型可容纳的上下文 token 总量;自动压缩与软阈值告警的依据 |
| 最大输出 token |
W·M |
跟随模型配置 |
无硬性上限,超出模型标称时以上游实际限制为准 |
| 标称最大输出 |
W·M |
跟随模型配置 |
模型规格声明的输出上限;未显式配置「最大输出 token」时的默认值,并参与窗口结构校验(上下文窗口须大于它) |
| 调用超时 |
G |
30 秒 |
LLM 单次调用超时;填 0 = 跟随 Provider API 设置 |
| 最大执行步数 |
W·M |
0(不限) |
一次 LLM 响应或一批工具结果计 1 步;长任务建议保持 0 |
| 流式 |
G |
开 |
关闭后整段输出 |
参数编辑收敛到唯一入口:以上模型参数统一在「参数配置」抽屉里编辑(从「模型」页或「模型提供方」对话框进入的是同一个面板),避免此前两处编辑面各存一份、互相覆盖导致设置被静默抹掉。保存时做窗口结构校验:输出上限 ≥ 上下文窗口会拒绝保存;输出上限超过窗口一半会给出提示(建议上下文窗口 ≥ 4 × 最大输出)。两处同时修改时以乐观锁校验,冲突会就近提示而不是无声覆盖。
3.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 两步确认(见 §7.1 注)。
3.10 设置 → Hooks
| 项 |
粒度 |
默认 |
说明 |
| 工具调用前确认 |
W·M |
见各工具 |
三态:启用 / 询问 / 禁用 |
| 自动批准列表 |
W |
空 |
「始终允许」写入此处 |
| 工具黑名单 |
W·M |
空 |
强制禁用某些工具 |
| 错误抽屉 |
W |
— |
自动保留最近 100 条 |
| Hook 执行可见 |
— |
开 |
每次钩子执行都在对话流出系统消息(折叠条,Markdown 渲染) |
| 插件 hook 根目录 |
— |
自动 |
CLAUDE_PLUGIN_ROOT 指向插件目录,SessionStart 等 hook 稳定触发 |
3.11 设置 → Agents
| 项 |
粒度 |
默认 |
说明 |
| Agent 列表 |
G |
5 个内置 + 用户自定义 |
来源标签:内置 / 全局 / 工作区 |
| 名称 |
G |
内置名 |
显示用 |
| 个性 |
G |
内置 |
短句风格 |
| 系统提示词 |
G |
内置 |
可指向工作区下文件 |
| 模式绑定 |
W |
默认对应 |
五种模式各自指派一位 |
| 编辑 / 复制 / 删除 |
G |
— |
仅全局 / 工作区来源可编辑 |
3.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 调用成本(见 §16.6) |
| 自动恢复被中断的任务 |
G |
关 |
落盘键 auto_resume_tasks。开启后重启自动续跑上次崩溃 / 被杀时未完成的后台任务(夜间无人值守),启动每次最多自动恢复 5 个、其余转手动;关闭时仍在顶部横幅列出供手动恢复(见 §16.4) |
这三项原在「通用」页,本版起迁入「自省」页。
3.12 设置 → 技能
| 项 |
粒度 |
默认 |
说明 |
| 技能列表 |
G + W |
内置技能空 |
三层来源(全局 / 工作区 / 插件);内置技能(如 skill-creator)标「内置」徽标 |
| 加载策略 |
W |
自动 |
启动时刷新;内置技能启动自动物化、漂移覆盖 |
| 安装 / 删除 |
G |
— |
拖入文件夹或扫描目录 |
签名校验、签名验证策略与信任库已迁至独立的 设置 → 技能/插件签名 Tab(安全分组,见 §3.17.1)。
3.13 设置 → 例行程序
| 项 |
粒度 |
默认 |
说明 |
| 列表 |
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 |
— |
与正常会话同款选择器(搜索分组) |
运行行为:
- 每次运行在对应工作区生成正常会话,过程与结果可回看。
- 同一条例行程序运行中自动跳过下一次触发,不会叠跑。
- 手动模式(无计划)保存后立即触发一轮,按钮显示「运行一次」。
3.14 设置 → 随行通讯
| 项 |
粒度 |
默认 |
说明 |
| 通道 |
G |
微信 |
同时支持微信 / 飞书 / 钉钉 |
| 扫码登录 |
G |
— |
各通道独立扫码 |
| 配对码 |
W |
6 位数字 |
10 分钟 TTL |
| 工作区路由 |
W |
默认会话 |
见 §6.2 |
| 节流 |
G |
min 200 / idle 3s / max 3800 |
字数控制 |
| 解绑 |
W |
— |
立即失效 |
3.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 列表。
3.16 设置 → 供应链 / SBOM
为 sbom.audit / sbom.vex 配置漏洞库数据源与本地离线库。落盘 <config>/sbom.json;所有字段可留空,留空即回退到内置默认(直连公网),坏 / 缺 JSON 安全回退默认、绝不阻塞审计。后端绑定:SBOMGetSettings / SBOMSetSettings / SBOMSyncDB / SBOMOpenVulnDBDir / SBOMTestSettings。
保存按钮为「测试并保存」:先校验地址 / 路径合法性(URL 须 http/https、代理 http/https/socks5、路径无空字节),再经 SBOMTestSettings 按 default_mode 探测可用性(本地库路径可写性始终阻断式,离线模式跳过联网探测);任一阻断项不可用则拒绝保存并列出原因。本地漏洞库路径等离线字段归入「离线漏洞库」区,测试时把相对路径规范为绝对路径回写。另有「重置为默认」按钮把各字段清回内置默认(仅改表单,不落盘,需再点「测试并保存」才生效)。
数据源(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 即可全程离线。
3.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。
3.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」,可一键打开信任库目录 |
拒绝 / 导入失败时透出具体原因(签名链、时间戳、篡改点),不是笼统报错。
4. 键盘快捷键参考
当前版本只列已绑定到键盘的快捷键。其它操作均通过界面按钮 / 右键菜单 / 命令面板(输入 /)触发。
4.1 全局
| 操作 |
macOS |
Windows / Linux |
| 新建会话 |
⌘N |
Ctrl+N |
| 打开命令面板(Header 搜索) |
⌘K |
Ctrl+K |
| 关闭设置 / 弹窗 / 命令面板 |
Esc |
Esc |
4.2 会话输入框
| 操作 |
macOS |
Windows / Linux |
| 发送消息 |
⏎ |
Enter |
| 换行 |
⇧⏎ |
Shift+Enter |
| 入队补充(运行中) |
⏎ |
Enter |
| 弹出命令面板 |
输入 / |
输入 / |
4.3 命令面板(输入 / 后)
| 操作 |
macOS |
Windows / Linux |
| 上 / 下选择 |
↑ / ↓ |
↑ / ↓ |
| 执行 |
↵ |
Enter |
| 关闭 |
Esc |
Esc |
5. 输入框 Slash 命令参考
5.1 通用命令
| 命令 |
参数 |
说明 |
/new |
[name] |
新建会话;可附名称 |
/clear |
无 |
清空当前会话所有消息 |
/copy |
无 |
复制最后一条 AI 回复 |
/fork |
[继续指示] |
复制当前会话为副本并切换过去,自动在副本中继续当前任务;可附文本指定继续方向(原会话原样保留;运行中需先停止) |
/compact |
[keep <N>] |
触发历史折叠;可保留最近 N 条原文 |
/memorize |
<text> |
写入一条长期记忆 |
/memory |
无 |
打开记忆宫殿面板 |
/goal |
[<目标> | pause | resume | complete | clear | budget <N>] |
设定 / 暂停 / 恢复 / 完成 / 清除会话目标;budget <N> 设最大步数预算;新建会话直接生效 |
/unrestricted |
无 |
切换当前会话的无限制模式(开启走 5 秒冷静期风险确认弹窗,关闭即时生效) |
/无限 |
无 |
/unrestricted 中文别名;菜单 / /help 隐藏(visible:false,免重复行),键入回车仍可执行 |
/help |
无 |
列出当前可用命令 |
命令面板的两类命令行为分流:
- 无参命令(
/clear、/help、/memory 等)— 选中即时执行。
- 带参命令(
/goal、/compact、/memorize、/skill:<name> 等)— 选中后把 /命令 回填到输入框,等你补完参数再回车发送(与主流补全工具一致;避免之前"选中就立刻报『必须带参数』"的尴尬)。
5.2 触发技能
| 命令 |
参数 |
说明 |
/skill:<name> |
取决于技能 |
渲染该技能模板并注入下一回合 |
/skill:<name> <arg1> <arg2> … |
位置参数 |
替换技能模板中的 $1 $2 … |
5.3 行为细节
- 命令行首必须以
/ 开头,命令名忽略大小写。
- 命令与参数之间用空格分隔;含空格的参数请用
"双引号" 包裹。
- 命令面板(输入
/ 弹出)支持 ↑ / ↓ 选择、↵ 执行、Esc 关闭。
- 已加载的技能会以
/skill:<name> 形式动态出现在命令面板里。
6. 随行通讯命令参考
6.1 命令清单
| 命令 |
参数 |
作用域 |
说明 |
/bind |
<6 位配对码> |
单聊 / 群 |
绑定该 IM 对端到工作区 |
/ws |
<工作区名> |
单聊 / 群 |
持久切换本对端绑定的工作区(落盘,重启后仍生效);切换后下一条消息在新工作区开启新会话;名字未命中时回执可用工作区名单。单条消息临时切换用 [ws:<工作区名>] 前缀 |
/sessions |
无 |
单聊 / 群 |
列出最近会话(含短 id) |
/new |
[文本] |
单聊 / 群 |
新建会话;可附首条消息 |
/s |
<短 id> |
单聊 / 群 |
切到指定会话(≥4 字符前缀) |
/approve |
<审批号> |
单聊 / 群 |
允许本次 |
/always |
<审批号> |
单聊 / 群 |
始终允许(写白名单) |
/deny |
<审批号> |
单聊 / 群 |
拒绝 |
/stop |
无 |
单聊 / 群 |
暂停本对端的 Agent 响应并终止在跑任务;后续消息不再转给 Agent。暂停态持久化,重启仍生效 |
/resume |
无 |
单聊 / 群 |
解除 /stop 的暂停(未暂停时也回同一句,幂等) |
/help |
无 |
单聊 / 群 |
列出所有命令 |
单条临时覆盖(前缀标签)
| 前缀 |
作用 |
[ws:<工作区名>] 消息正文 |
该条消息单次切换工作区,下条恢复 |
[s:<短 id>] 消息正文 |
该条消息单次切到指定会话,下条恢复 |
6.2 入站路由优先级
会话选择(按以下顺序匹配,前者命中即停):
- 明确的
/new [文本] 新建
- 明确的
/s <短id> 切换(行内前缀 [s:<短id>] 等价)
- 当前对端绑定的最近活跃会话
- 首次入站兜底:按绑定 / 工作区 + 发送人稳定生成
工作区选择:[ws:<工作区名>] 行内覆盖 > 对端绑定的工作区 > 全局默认工作区;三者皆无时回执提示先 /bind。
6.3 出站节流
| 参数 |
默认 |
说明 |
| 最小批量 |
200 字 |
累积到该长度才发出 |
| 空闲触发 |
3 秒 |
无新增字符即立即发出 |
| 最大单段 |
3800 字 |
避免触达 IM 单条上限 |
| Markdown 过滤 |
开 |
自动转纯文本,避免 IM 渲染错乱 |
| Typing 指示 |
开 |
处理中显示「输入中」 |
6.4 出站工具
下列工具可被助手主动调用,把信息推到 IM。
| 工具 |
参数 |
用途 |
channels.notify |
workspace_id, text |
广播到该工作区所有绑定 |
channels.reply |
session_id, text |
回到触发该会话的原对端 |
channels.send_to |
binding_id(或 account+peer), text |
精确直发到指定对端 |
channels.list_bindings |
无 |
列出该工作区所有绑定 |
channels.list_sessions |
workspace_id |
列出该工作区可投递的会话 |
7. 智能编程工具参考
7.1 工具一览
| 工具 |
用途 |
默认权限 |
fs.read |
读文件(按行 / 按字节) |
启用 |
fs.write |
覆盖写整个文件 |
询问 |
fs.patch |
基于行号 + 校验哈希做精确替换 |
询问 |
fs.list |
列目录 |
启用 |
fs.glob |
通配符匹配文件名 |
启用 |
fs.grep |
内容正则搜索 |
启用 |
fs.exec |
同步执行命令 |
询问 |
fs.exec.start |
启动后台命令,返回 session_id |
询问 |
fs.exec.tail |
拉取后台命令实时输出 |
启用 |
fs.exec.kill |
终止后台命令 |
启用 |
fs.exec.list |
列出当前后台命令 |
启用 |
time.now |
获取当前时间(带时区) |
启用 |
git.status |
仓库状态 |
启用 |
git.branch |
创建 / 切换分支 |
询问 |
git.init |
初始化仓库 |
询问 |
web.bing |
Bing 搜索(RSS 端点) |
启用 |
web.fetch |
抓取指定 URL 并清洗为可阅读文本 |
启用 |
skill.list |
列出当前可用技能 |
启用 |
skill.invoke |
渲染并调用某个技能 |
启用 |
TodoWrite |
写入 / 更新待办列表(最多 50 条) |
启用 |
TaskWait |
阻塞等待后台任务 / 子代理(默认 5min,最长 30min;支持 all / any) |
启用 |
SuggestTask |
AI 主动建议一个分外任务(卡片形式挂在消息流,不打断当前正事) |
启用 |
DismissTask |
AI 撤回已过时的建议任务 |
启用 |
mcp.list_servers |
列出所有 MCP server |
启用 |
mcp.describe_server |
查看某 server 详情(密钥脱敏) |
启用 |
mcp.list_tools |
查看某 server 暴露的工具 |
启用 |
mcp.test_server |
真握手探活(30s 预算,含 4 阶段) |
启用 |
mcp.add_server |
新增 server(写类,两步制 confirm=true) |
询问 |
mcp.remove_server |
删除 server(写类,两步制);默认 MCP 后端现在也可删(网关此前会拒删默认后端,已修复) |
询问 |
mcp.toggle_server |
启停 server(写类,两步制) |
询问 |
mcp.import_config |
批量导入;支持 Claude Desktop schema(写类,两步制) |
询问 |
mcp.export_config |
导出当前配置(密钥脱敏) |
启用 |
PluginSearch |
搜索插件市场目录(全局只读,无需工作区上下文) |
启用 |
PluginList |
列出已装 / 可装插件清单 |
启用 |
PluginInstall |
安装插件并在当前工作区激活(写类,两步制:先返回 dry_run 预览 — 能力清单 / MCP 真实命令行 / 签名状态 / 来源溯源,confirm=true 才落地;签名校验沿用产品策略) |
询问 |
PluginUninstall |
卸载插件并同步清理工具配置残留(写类,两步制) |
询问 |
7.2 通用返回字段
读取 / 搜索类工具的返回都包含:
| 字段 |
类型 |
说明 |
truncated |
bool |
是否被软上限 / 硬上限截断 |
next_offset |
int |
下次按行读的起始行号 |
next_byte_offset |
int |
下次按字节读的起始字节 |
content_hash |
string |
整文件内容指纹(写入校验用) |
line_hashes |
array |
行级指纹(patch 校验用);已去重,仅在需要时输出 |
结果瘦身(省 token / 额度):工作区工具的返回路径一律相对工作区根(relPath),错误串出口剥除根路径前缀(不外泄绝对根),去除重复 line_hashes,分页记账(next_offset 等)仅在 truncated=true 时才输出。
7.3 read
| 参数 |
类型 |
默认 |
说明 |
path |
string |
— |
相对工作区根;必填 |
mode |
enum |
lines |
lines / bytes |
offset |
int |
0 |
起始行号 / 字节偏移 |
limit |
int |
软上限 4096 |
字节上限;硬上限 256 KiB |
7.4 write
| 参数 |
类型 |
默认 |
说明 |
path |
string |
— |
必填 |
content |
string |
— |
必填 |
expected_hash |
string |
— |
上次 read 返回的 content_hash;用于并发覆写校验(CAS) |
7.5 patch
| 参数 |
类型 |
默认 |
说明 |
path |
string |
— |
必填 |
start_line |
int |
— |
1-based |
end_line |
int |
— |
1-based,含 |
replacement |
string |
— |
新内容 |
verify_hashes |
array |
— |
该行号区间的 line_hashes;不匹配则拒绝 |
7.6 list
| 参数 |
类型 |
默认 |
说明 |
path |
string |
. |
相对工作区根 |
pattern |
string |
* |
shell 风格通配 |
include_hidden |
bool |
false |
是否包含隐藏文件 |
sort |
enum |
name |
name / mtime / size |
limit |
int |
4096 字节 |
单次返回总长度上限 |
7.7 glob
| 参数 |
类型 |
默认 |
说明 |
pattern |
string |
— |
通配符表达式 |
path |
string |
. |
相对工作区根 |
sort |
enum |
mtime |
mtime / name |
| 自动跳过 |
— |
.git/ node_modules/ dist/ |
不可解除 |
7.8 grep
| 参数 |
类型 |
默认 |
说明 |
pattern |
string |
— |
RE2 正则 |
path |
string |
. |
相对工作区根 |
path_glob |
string |
**/* |
文件名过滤 |
case |
enum |
smart |
sensitive / insensitive / smart |
context |
int |
0 |
上下文行数 |
include_binary |
bool |
false |
默认启发式跳过二进制 |
7.9 fs.exec / fs.exec.start
| 参数 |
类型 |
默认 |
说明 |
cmd |
string |
— |
必填 |
cwd |
string |
工作区根 |
相对路径 |
timeout_seconds |
int |
120 |
超过即终止 |
env |
object |
— |
追加环境变量 |
stdin |
string |
— |
选填 |
output_byte_limit |
int |
4096 / 256 KiB |
软上限 / 硬上限(stdout、stderr 各自) |
7.10 fs.exec.tail / fs.exec.kill / fs.exec.list
| 工具 |
参数 |
说明 |
fs.exec.tail |
session_id, stream(stdout 默认 / stderr), byte_offset(opt), byte_limit(opt,默认 4096,硬上限 256 KiB) |
按字节偏移续读输出;返回 status / exit_code / buffer_truncated / next_byte_offset |
fs.exec.kill |
session_id, grace_seconds(opt) |
终止会话;grace_seconds 先发 SIGTERM 等 N 秒再 SIGKILL,0 = 直接 SIGKILL(Windows 忽略)。Unix 整组终止,Windows 单杀头进程 |
fs.exec.list |
无 |
当前所有后台会话列表 |
本地后台会话上限:最多 16 个并发;单会话磁盘日志 256 MiB(溢出丢尾);进程退出后日志可继续拉取,1 小时后 GC 回收;会话随 Interpreter 生命周期结束。
SSH 远端后台会话不受上述限制:状态与日志落在远端 <root>/.avlcode/sessions/,日志为完整文件(无 256 MiB 环形丢尾),且跨断线重连与应用重启存活(见 §22.6.1)。
7.11 web.bing / web.fetch
| 工具 |
参数 |
说明 |
web.bing |
query, top_k(默认 5) |
Bing RSS 搜索;返回标题 / 摘要 / URL |
web.fetch |
url, format(md/txt/html) |
抓取并清洗 |
7.12 code.* — 代码智能工具组(基于 LSP)
| 工具 |
参数 |
说明 |
code.definition |
path, symbol 或 line/character |
跳转到符号定义 |
code.references |
path, symbol 或 line/character, include_declaration(默认 false) |
查找符号的全部引用 / 调用点 |
code.hover |
path, line, character |
查看符号的类型 / 签名 / 文档 |
code.symbols |
path |
列出文件的符号大纲 |
code.workspace_symbols |
query |
全仓按名搜索符号 |
code.diagnostics |
path(可空) |
报告编译错误 / 警告;空 path 返回工作区聚合 |
code.call_hierarchy |
path, symbol 或 line/character, direction(incoming/outgoing) |
调用图 |
code.repo_map |
— |
项目骨架(文件树 + 各文件顶层符号),token 友好 |
code.rename |
path, symbol 或 line/character, new_name |
跨文件安全重命名(写盘) |
code.code_action |
path, line, character, apply_title(可空) |
不传 = 列出动作;传 = 应用对应快速修复(写盘) |
code.lsp_status |
— |
LSP server 池实时状态:运行中的 server / 工程 root / 存活 / 在线·空闲秒数 / 支持语言 |
code.search |
query(必填), limit(默认 20), path, refresh(默认 false), expand(默认 false) |
非向量全库 RAG 检索(见 §7.12.3) |
code.ask |
question(必填), limit(默认 12), path |
全库 RAG 问答,复用会话模型(见 §7.12.3) |
code.implementation |
path, symbol 或 line/character |
跳到接口 / 抽象方法的实现(LSP implementation) |
code.type_definition |
path, symbol 或 line/character |
跳到变量 / 表达式的类型定义(LSP typeDefinition) |
code.document_highlight |
path, symbol 或 line/character |
本文件内该符号的全部读 / 写 / 引用点,比全仓 references 轻量 |
code.completion |
path, line, character |
该光标位置的补全候选 |
code.signature_help |
path, line, character |
函数调用的形参签名 + 当前高亮参数(光标置于调用括号内) |
code.formatting |
path, tab_size(默认 4), use_tabs(默认 false) |
按 LSP 格式化整篇并写盘;无改动则不写 |
位置参数对外 1-based(对齐 fs.read 行模式 / cat -n);进 LSP 前由 interpret 层转 0-based。
能力降级:可选能力(implementation / type_definition / document_highlight / completion / signature_help / formatting 等)并非每个语言服务器都实现。是否支持按真实响应判定而非按 server 声明预判(避免声明缺失导致的误拒);判定为不支持后跨会话缓存,同一 server 不再重复试探。
7.12.1 内置语言(22 门,按 ID)
go · ts · py · c(cpp) · rust · java · deno · eslint(js 增强) · lua · bash · yaml · php · ruby · vue · zig · dart · kotlin · clojure · elixir · haskell · fsharp · csharp · gleam · astro
每门语言绑定一个 LSP 命令(gopls / typescript-language-server / pyright-langserver / clangd / rust-analyzer / jdtls / …);缺哪个按需自动下载(go install / npm 等),并显示安装进度。
7.12.2 用户配置文件 lsp.yaml / lsp.json
工作区根目录 .avlcode/ 或 ~/.avlcode/,按 lsp.yaml > lsp.yml > lsp.json 顺序取第一个存在的:
lsp:
rust:
disabled: true # 禁用
go:
cmd: gopls # 覆盖启动命令
args: ["-rpc.trace"]
root_markers: ["go.mod", "go.work"]
custom_lang: # 增加自定义 server
extensions: [".myx"]
cmd: my-langserver
install_via: npm
install_pkgs: [my-langserver]
热重载:文件 mtime/size 变更自动重读,不必重启工作区。服务器进程崩了 / SSH 掉线自动重启。
7.12.3 全库 RAG 检索与问答(code.search / code.ask)
非向量(零 embedding)符号级全库检索:BM25 + 标识符切分(驼峰 / 下划线 / 连字符)+ 中日韩二元切分(中文注释 / 中文提问同样能命中),纯本地、可离线。索引落 <base>/.avlcode/rag/symbols.jsonl(远程工作区仅内存),首建后按文件 mtime 增量同步(改 / 增 / 删)。仅索引定义类符号(函数 / 方法 / 类型 / 接口 / 常量等)。
索引文件数上限 4000(不可配)。超限时如实回报而非静默截断:结果里带 index_covers_all_files=false、files_not_indexed(未纳入索引的文件数)与 truncated_hint 可读提示,便于判断"没搜到"是真不存在还是没覆盖到。
code.search 参数
| 参数 |
类型 |
默认 |
说明 |
query |
string |
— |
必填,自然语言 / 关键词 / 符号名 |
limit |
int |
20 |
返回命中数上限 |
path |
string |
工作区根 |
限定子目录 |
refresh |
bool |
false |
强制全量重建索引 |
expand |
bool |
false |
结构重排:对头部命中跑 LSP 调用层级,被调用更多 = 更核心、排更前(更准但慢) |
返回 hits[](file / start_line / end_line / name / kind / score / why[](命中的关键词)/ 可选 container·signature)、count、indexed_symbols、indexed_files;空结果给 hint。
code.ask 参数
| 参数 |
类型 |
默认 |
说明 |
question |
string |
— |
必填,自然语言问题 |
limit |
int |
12 |
喂给合成的检索片段数 |
path |
string |
工作区根 |
限定子目录 |
复用当前会话的 provider / model(隐式注入,未取到则回落 AVL-Zero)。返回 answer + citations[](file / start_line / end_line / name)+ hit_count + model;检索不到会直说、不编造。code.ask 现在默认对扩展检索结果做结构感知智能重排(无需显式 expand),回答更聚焦。
上限:索引文件数 ≤ 4000、全量构建超时 120s、每文件 ≤ 400 符号 / ≤ 4 MiB;结构重排取头部 8 条。增量刷新的作用域已修正(文件变更后不多刷、不漏刷)。
7.13 test.run — 测试运行 + 失败回灌
| 字段 |
类型 |
说明 |
framework |
string |
可选;go / pytest / cargo / node(vitest / jest);留空 = 自动探测 |
path |
string |
可选;限定范围(Go 包模式 ./pkg/... / pytest 目录或文件 / cargo 包名) |
command |
string |
可选;完整测试命令覆盖(如 go test -run TestFoo ./pkg) |
timeout_sec |
int |
默认 300 秒 |
返回:failures[](最多 50 条 {test, file, line, message}) + 一小段原始 tail;未知框架退回到退出码 + tail 兜底。plan(筹划)模式禁用(执行测试会产生写副作用);assess(评估)模式可用,以便验收阶段实际跑测试。
7.13.1 自检门禁(opt-in,泛化的多检查器)
| 项 |
粒度 |
默认 |
说明 |
| 自检门禁 |
G |
— |
设置 → 代码测试与自检 tab 配全局默认(~/.config/avlcode/checkgate-default.yaml) |
| 自检门禁 |
W |
关 |
工作区 .avlcode/testgate.yaml;新会话默认值 |
| 自检门禁 |
S |
继承 W |
会话菜单的检查项勾选清单逐条覆盖;显示实际生效态 |
| 仅在有编辑后跑 |
— |
是 |
没改动文件的轮次跳过 |
| 连续注入上限 |
— |
3 |
撞到即停门禁 |
testgate.yaml 结构:
enabled: true
checks: # 检查器列表(可单选 / 组合)
- name: test # test | diagnostics | lint | sast
mode: block # block | report
submode: changed # test: changed | full
scope: changed # changed | workspace
- name: lint
mode: block
submode: strict # lint: strict | lenient
linters: [errcheck, govet] # 子集(可选)
- name: sast
mode: report
submode: quick # sast: quick | deep
config: .semgrep.yml # 离线规则(可选)
modes: # 按工作模式分别覆盖
plan: { enabled: false }
prepare: { enabled: false }
7.13.2 CheckSpec 字段
| 字段 |
类型 |
说明 |
name |
enum |
test / diagnostics / lint / sast / testgen / judge |
mode |
enum |
block(默认,注入强制修) / report(只通报不拦) |
submode |
string |
test: changed / full;lint: strict / lenient;sast: quick / deep |
scope |
enum |
changed(默认,改动文件) / workspace(全库) |
path |
string |
限定范围(可选) |
linters |
array |
lint 子集(可选) |
config |
string |
自定义配置路径(sast .semgrep.yml 等) |
timeout_sec |
int |
单检查器超时 |
7.13.2a testgen — 改动缺测试自动补(opt-in)
- 不在默认集:要显式把
testgen 加进 checks 才生效。
- 覆盖语言:Go / Python / JavaScript / TypeScript;其它扩展名(
.c / .java 等)不判定。
- 测试文件本身与生成物跳过:避免「给测试写测试」「给
.pb.go 写测试」。
- 存在性查询:经 zMCP 网关
fs.glob 查测试文件存在性(SSH 远端也正确)。
- 3 次注入硬上限:复用
MaxTestGateRetries,误报最多纠缠 3 轮即停门禁。
7.13.2b judge — LLM 收尾自审(opt-in,默认 report)
- 独立 fresh-context 模型调用:复用
agentFacade.CompactSummaryStream;不带 agent 自己的对话历史 — 消除自我合理化偏见(这是 LLM-as-judge 区别于「让 agent 自我反思」的核心)。
- 看什么:本轮目标 + diff,挑出机检抓不到的逻辑 / 语义 / 安全意图错。
- few-shot 提示 + 当轮诊断背景注入到 prompt,判断更准、误报更少。
- 门控:
judge 在所有便宜检查器之后、且仅当 block 检查器全绿时才跑(省一次模型调用,也不在客观失败上堆主观意见)。
- 模型乱报 / JSON 脏 / 超时 → 非权威放行,绝不误拦。
- 返回结构:
{ok: bool, issues: [{file, line, severity, confidence, message}]} — severity ∈ error / warning / info,confidence ∈ 0..1。block 模式下的 confidence / severity 阈值过滤为 Phase 2 计划。
7.13.3 lint.run — 静态检查(只读分析)
| 字段 |
类型 |
说明 |
linter |
string |
golangci-lint / eslint / ruff;留空 = 自动探测(go.mod → golangci-lint / .eslintrc·eslint.config → eslint / pyproject.toml·ruff.toml → ruff) |
path |
string |
范围(目录 / 文件 / Go 包模式 ./...) |
linters |
array |
子集(如 golangci 的 errcheck / govet) |
submode |
string |
strict(警告也算失败) / lenient |
config |
string |
自定义配置文件路径 |
command |
string |
完整命令覆盖 |
timeout_sec |
int |
默认 180 |
返回:findings[]({file, line, rule, severity, message}),与 test.run 同形。golangci-lint v1 / v2 JSON 输出参数已自适应。只读分析,plan / assess 模式可用。
7.13.4 sast.run — 安全静态分析(只读分析)
| 字段 |
类型 |
说明 |
path |
string |
范围 |
submode |
string |
quick(限大文件加速) / deep(完整) |
config |
string |
规则配置;空 = --config auto(联网拉规则);离线请用本地 .semgrep.yml |
command |
string |
完整命令覆盖 |
timeout_sec |
int |
默认 240 |
返回:findings[] 同形。后端:semgrep。只读分析,plan / assess 模式可用。
| 工具 |
参数 |
说明 |
tools.list |
prefix(可选) |
列本会话可调用的工具(名 + 描述);可按命名空间过滤 |
tools.describe |
name(必填) |
返回指定工具的完整 schema(描述 + 参数定义) |
tools.load |
分类名 |
按分类加载工具;不传时返回分类目录(每类一句话能力说明 + 工具名清单) |
自省结果按本会话的实际可用性裁剪(受工具三态与分类延迟加载影响),返回的说明中会提示"表里看不见 ≠ 不存在,可先 tools.load"。这两个自省工具本身穿透子代理白名单恒可用,但输出仍按名单裁剪,且压不过用户设置的禁用清单。
7.14.1 工具分类延迟加载
默认开启(Settings.ToolLazyLoad,schema v9 起)。开关在智能体管理器 →「配置工具」Tab →「工具分类延迟加载」,不在设置页。
- 常驻分类:
fs(读写 / glob / grep / exec)、tools(list / describe / load)、agent(委派 + EnterPlanMode / ExitPlanMode / TodoWrite)。
- 16 个可延迟分类:
code / git / sec / vt / sbom / mcp / web / skill / test / lint / sast / market / plugin / gh / sys / time。
- 加载路径:① 隐式 —— 按新增 user 消息中的关键词预加载对应分类(中英关键词表);② 显式 ——
tools.load 点名加载。会话中途新连的 MCP 后端分类自动放行。
- 旁路:可见候选 ≤ 32 个时整表放行(子代理白名单模式通常走这条)。
- 开启时系统提示词会注入一段说明,告知助手工具表是有意精简的、可按需加载。
- 每个 MCP 服务可单独设置是否延迟(
Settings.MCPLazyLoad,缺省跟随全局)—— 见 §9.1。
7.15 Python venv 自动感知
fs.exec / fs.exec.start 在工作区里跑 Python 相关命令时自动遵循工作区 venv:
| 来源 |
探测路径 |
| 标准 venv |
<工作区>/.venv / <工作区>/venv |
| conda |
env 目录下的 bin/python(含 Windows Scripts/python.exe) |
| poetry |
poetry env info -p(项目外环境也支持) |
| pipenv |
pipenv --venv |
机制:把首命令改写成 venv 里的绝对路径 + 注入 VIRTUAL_ENV / PATH。项目外发现缓存 5 分钟 / 探测超时 15 秒。全局关闭:AVLCODE_DISABLE_VENV_AUTODETECT=1。
pyright 语言服务(code.*)也接入 venv 感知,本地 + SSH 远端一致。
例外:SSH 远端的后台命令(fs.exec.start)不做 venv 感知 —— venv 探测靠本机目录结构,在远端会探到错误的本地路径。远端跑 Python 后台任务请显式指定解释器。
8. 安全分析工具参考
8.1 适用约束
- 全部工具仅在当前工作区下名为
samples/ 的子目录中可用。
- 该子目录下
exec 类工具被强制禁用,且不可解除。
- 分析工具不修改样本本体;
samples/ 目录本身可写入(样本投放、sec.pcap_stream_extract 的提取产物都会落盘)。
8.1.1 样本投放入口
| 入口 |
行为 |
| 输入框左下角「+」按钮 |
系统多文件对话框 → 落到 <workspace>/samples/ |
| 用户取消选择 |
静默忽略,不报错 |
| 重名 |
自动附加时间戳后缀,不覆盖 |
| 无活动工作区 |
按钮置灰;点击提示「没有活动工作区」 |
后端透明支持本地与远程工作区。
8.2 工具一览(共 16 个)
| 工具 |
用途 |
sec.hash |
多算法哈希(md5 / sha1 / sha256 / sha512 等) |
sec.entropy |
Shannon 熵(总 + 分块) |
sec.hexdump |
xxd 风格十六进制 + ASCII 视图 |
sec.strings |
提取 ASCII + UTF-16LE 字符串 |
sec.ioc_extract |
提取 IOC(IP / URL / 域名 / 邮箱 / 哈希含 SHA-512 / BTC·ETH·XMR / CVE / MAC / 注册表 / 路径);先还原 defang,分页返回(见 §8.6) |
sec.pe_parse |
PE / PE+ 结构(节、导入、导出、入口、子系统) |
sec.elf_parse |
ELF 结构(节、动态依赖、符号、build-id) |
sec.macho_parse |
Mach-O 结构(含 FAT / universal) |
sec.imphash |
Mandiant-style PE 导入哈希 |
sec.disasm |
线性反汇编(架构自动嗅探) |
sec.decompile |
LLM 辅助反编译为 C / Java 伪代码 |
sec.pcap_info |
pcap 元信息 + Top-N 流聚合 |
sec.pcap_stream_list |
列出 pcap 中所有 TCP/UDP/ICMP 流并赋稳定 id |
sec.pcap_stream_extract |
把指定流的 L7 载荷 dump 到工作区路径 |
sec.pcap_extract |
DNS / HTTP / TLS ClientHello SNI 字段抽取 |
sec.yara_scan |
YARA 规则扫描(默认 build 为 stub) |
8.3 sec.hash
| 参数 |
类型 |
默认 |
说明 |
path |
string |
— |
必填 |
algorithms |
array |
[md5, sha1, sha256] |
可选:md5, sha1, sha256, sha384, sha512, sm3 |
8.4 sec.entropy
| 参数 |
类型 |
默认 |
说明 |
path |
string |
— |
必填 |
block_size |
int |
4096 |
0 表示不分块 |
8.5 sec.strings
| 参数 |
类型 |
默认 |
说明 |
path |
string |
— |
必填 |
min_len |
int |
6 |
最小长度 |
encodings |
array |
[ascii, utf16le] |
|
limit |
int |
软 4096 / 硬 256 KiB |
|
先自动还原 defang(hxxp://、1.2.3[.]4、evil[.]com、foo(dot)bar)再在可打印字符串上匹配(减二进制噪声)。IP 走 net.ParseIP 校验并打标(private/loopback/link_local/multicast/cgnat/unspecified),MAC 不再误判为 IPv6,域名按公共后缀校验(丢弃 kernel32.dll 之类)。按值去重、附 count 与 tags(含 defanged)。分页同 sec.strings(limit 与 byte_limit 取更紧者;truncated=true 时读 next_offset / per_kind_capped / hint 续取)。
| 参数 |
类型 |
默认 |
说明 |
path |
string |
— |
必填 |
kinds |
array |
全部 |
见下表;空 = 全部 |
max_per_kind |
int |
200(上限 5000) |
每类唯一命中上限;打满的类列入 per_kind_capped |
max_bytes |
int |
128 MiB |
扫描字节上限 |
offset |
int |
0 |
全集 0-based 续读起点(填上次 next_offset) |
limit |
int |
500(上限 5000) |
单次返回条数上限 |
byte_limit |
int |
4096(硬上限 262144) |
单次返回字节上限,整条粒度 |
defang_output |
bool |
false |
以 defang 形式渲染值(evil[.]com / hxxp://…)便于安全展示 |
exclude_private |
bool |
false |
丢弃非公网 IP(默认保留并打标) |
context |
bool |
false |
每条附一小段命中上下文 |
可选 kinds:
| 类别 |
含义 |
ipv4 / ipv6 |
IP 地址(带分类标签) |
url / domain / email |
链接 / 域名(公共后缀校验)/ 邮箱 |
md5 / sha1 / sha256 / sha512 |
哈希 |
btc / eth / xmr |
比特币 / 以太坊 / 门罗币等加密货币地址 |
cve |
CVE 编号 |
mac |
MAC 地址 |
registry |
Windows 注册表路径 |
path_win / path_unix |
路径式字符串 |
提取是候选指标、非判黑结论,用前请二次核实。
8.7 sec.pe_parse / sec.elf_parse / sec.macho_parse
| 参数 |
类型 |
默认 |
说明 |
path |
string |
— |
必填 |
sections |
bool |
true |
节列表 |
imports |
bool |
true |
导入表(PE)/ 动态依赖(ELF) |
exports |
bool |
true |
导出表 |
signatures |
bool |
false |
签名 / 证书链 |
8.8 sec.disasm
| 参数 |
类型 |
默认 |
说明 |
path |
string |
— |
必填 |
arch |
enum |
auto |
auto / x86 / x86_64 / arm / arm64 / ppc64 |
start |
int / hex |
文件入口 |
起始虚拟地址 / 偏移 |
length |
int |
4096 |
反汇编字节长度 |
8.9 sec.decompile
| 参数 |
类型 |
默认 |
说明 |
path |
string |
— |
必填 |
target |
enum |
c |
c / java |
function |
string |
入口 |
函数名或起始地址 |
隐私提示:sec.decompile 会把反汇编片段送往反编译模型;只在样本可外送的前提下使用。
| 工具 |
参数 |
说明 |
sec.pcap_info |
path |
总包数 / 起止时间 / 协议占比 / TopN 流 |
sec.pcap_stream_list |
path, limit(默认 200,最多 2000), offset, sort_by(first_ts(默认) / packets / bytes) |
分页列出全部 TCP/UDP/ICMP 流;id 始终是全局时间序编号,跨页跨排序都不变,可直接传给 sec.pcap_stream_extract |
sec.pcap_stream_extract |
path, stream_id, out_path(相对工作区根,可写到 samples/ 之外) |
dump 该流 L7 载荷为文件 |
sec.pcap_extract |
path, protocol(dns/http/tls_sni), limit |
协议感知字段抽取,返回 IOC(IP 等) |
v1 仅做单包检视,不做 TCP 重组。
8.11 sec.yara_scan
| 参数 |
类型 |
默认 |
说明 |
path |
string |
— |
必填 |
rules |
string |
内置规则集 |
规则文件相对路径或内置集合名 |
timeout_ms |
int |
60_000 |
超时即终止 |
8.12 sec.ontology.* — 安全领域事实层(v1 本地工作区)
| 工具 |
参数 |
说明 |
sec.ontology.record |
facts: [{s, p, o, source?}] |
写入 SPO 三元组;单值谓词(version / license / severity / auth)取代写入,多值谓词(depends_on / has_cve / exposes / listens / affects)累加写入 |
sec.ontology.query |
s?, p?, o?(空字段 = 通配) |
按模式查询;如 {p:"has_cve"} 列所有 CVE,{s:"pkg:lodash"} 列关于 lodash 的全部 |
sec.ontology.reachable |
start, predicate |
沿可传递谓词从 start 多跳遍历,得可达实体集;用于传递依赖 / 攻击面爆炸半径 |
实体命名约定:建议带类型前缀(pkg:lodash / svc:api / cve:CVE-2021-23337),便于跨类查询。SSOT 持久化:事实落到工作区,对话折叠不影响。
8.13 软件物料清单(SBOM)工具 — 供应链漏洞排查
sbom.* 是工作区工具(作用于项目的依赖清单,不限于 samples/),共 5 个。结果文件默认落到工作区 .avlcode/ 目录。配套设置见 §3.16。
| 工具 |
用途 |
sbom.generate |
扫描依赖清单生成 SBOM(默认 CycloneDX 1.5 JSON) |
sbom.convert |
在 CycloneDX / SPDX / DSDX / SWID 之间任意互转 |
sbom.audit |
对照 OSV 排查已知漏洞,标注 CVE / KEV / CVSS 严重度 |
sbom.vex |
符号级可达性收敛漏洞,输出 OpenVEX |
sbom.dbsync |
维护本地离线 OSV 漏洞库(air-gap) |
8.13.1 sbom.generate
| 参数 |
类型 |
默认 |
说明 |
path |
string |
工作区根 |
扫描根(相对工作区) |
format |
string |
cyclonedx |
cyclonedx / spdx / dsdx / swid;加 -xml 出 XML(如 cyclonedx-xml),dsdx-tag 出 DSDX 原生 tag-value |
output |
string |
.avlcode/sbom.<format>.<ext> |
输出路径(相对扫描根) |
识别的生态(Ecosystem 常量):go · npm(含 yarn Berry / pnpm v5)· cargo · pypi · maven · gem · composer · nuget · swift · pub · conan · conda · hex · cocoapods · cran · hackage · julia(本版新增;另新增 Deno 清单支持)。清单文件同前(npm/pypi/conan 多锁首个命中为准,maven 三种全读)。本版增强:清单扫描递归子目录、缺锁回退清单文件解析;剔除首方误报、正确处理 Go replace/exclude、版本比对保真;审计逐生态回退 + Maven/Gradle/pip/Conda/Conan/npm 精度提示 + 未审生态明示 + 可利用性描述。缺清单跳过该生态,全缺得 0 组件空清单(非错误)。输出确定性可复现(无时间戳 / 随机序列号、组件定序)。返回字段:format / encoding / component_count / ecosystems / bom_path / components(预览,最多 50)/ truncated。
8.13.2 sbom.convert
| 参数 |
类型 |
默认 |
说明 |
input |
string |
— |
必填,待转 SBOM 文件(相对工作区) |
to |
string |
— |
必填,目标格式(同 format 取值语法) |
from |
string |
自动嗅探 |
源格式覆盖 |
output |
string |
<input>.<to>.json |
输出路径 |
经规范化中间模型转换(N 读 + N 写);保留组件 / purl / 许可 / 哈希 / 依赖关系,目标不支持的字段按规则丢弃(DSDX 无哈希、SWID 哈希不映射)。格式与编码矩阵:CycloneDX(1.5) JSON+XML、SPDX(2.3) JSON+RDF/XML、DSDX JSON+XML+native、SWID JSON+XML,均可读可写。
8.13.3 sbom.audit
| 参数 |
类型 |
默认 |
说明 |
path |
string |
工作区根 |
扫描根 |
mode |
enum |
auto |
auto(本地有库则离线、否则在线)/ online(api.osv.dev) / offline(本地快照) |
output |
string |
.avlcode/sbom.audit.json |
报告路径 |
对照 OSV 匹配;CVE 取首个 CVE-… 别名;KEV 取自 <config>/kev.json。严重度按 CVSS 向量计算:v2(AV:/AC:/Au:) / v3(CVSS:3) / v4(CVSS:4.0,官方 MacroVector 查表);定级 critical ≥9 / high ≥7 / medium ≥4 / low >0;记录自带 GHSA 定性等级时以其为准。结果最严重优先、KEV 置顶。返回字段:source / components_scanned / vulnerable / total_vulns / by_severity / kev_count / report_path / findings(预览,最多 30)/ truncated。
8.13.4 sbom.vex
| 参数 |
类型 |
默认 |
说明 |
path |
string |
工作区根 |
扫描根 |
mode |
enum |
auto |
同 audit 来源 |
output |
string |
.avlcode/sbom.vex.json |
OpenVEX 输出 |
lsp_confirm |
bool |
false |
用语言服务器确认每包至少一处真实引用(需装对应 server,会拉起进程);默认纯离线导入扫描,air-gap 友好 |
detail |
bool |
false |
附 findings_detail(供 App 端 LLM 收敛用) |
先跑 audit,再做确定性符号级可达性分析。状态:affected / not_affected / under_investigation / fixed;not_affected 带机读理由(vulnerable_code_not_present / vulnerable_code_not_in_execute_path / component_not_present / inline_mitigations_already_exist)。可达性扫描上限:≤4000 文件、≤256 KiB/文件,跳过 .git/node_modules/vendor/target/dist/build 等目录。Go 凭 OSV 受影响符号可直接收敛 not_affected;其它生态默认「用到即 affected、没用到即 under_investigation」(不擅自判 not_affected),可经 lsp_confirm 或 App 端符号比对进一步收敛。结论按 affected > under_investigation > fixed > not_affected 排序。
8.13.5 sbom.dbsync
| 参数 |
类型 |
默认 |
说明 |
action |
enum |
status |
status(纯本地,看记录数 / 新鲜度)/ sync(联网拉 OSV dump)/ import(离线导入)/ kev(刷新 KEV) |
ecosystems |
string[] |
自动检测 |
sync 指定生态;空则按工作区清单自动检测 |
path |
string |
工作区根 |
sync 自动检测的扫描根 |
zip_path |
string |
— |
import 必填:本地 OSV 生态 zip(相对工作区) |
osv_eco |
string |
— |
import 必填:该 zip 对应的 OSV 生态名(如 npm / PyPI / Go) |
13 个生态有 OSV 离线 dump 覆盖(SyncableEcosystems);conan / conda / CocoaPods 暂无离线库(可在线审计)。import 缺 zip_path 或 osv_eco 报错。
8.14 云端威胁情报工具(VirusTotal / GTI)
两组工具、独立门控,均在 设置 → 安全 配置(见 §3.17)。
哨兵哈希扫描 sec.vtai_*(绑定「自动扫描拦截·哨兵」配置,用 vtGuard):
| 工具 |
参数 |
说明 |
sec.vtai_check_hash |
hash(必填,MD5/SHA1/SHA256) |
哈希查情报、不上传;返回 verdict/malicious/total/label/source/link;未配后端报错 |
sec.vtai_scan |
path(必填), force(bool) |
上传高危文件全量扫描;RegisterUploadRequired——仅开「上传扫描」或本地 YARA 时对 LLM 可见,否则退化为哈希查询 |
sec.vtai_register |
display_name? / human_alias? / bio? / contact_email? |
触发 VirusTotal AI 注册;实际在设置面板同意流程完成(RegisterVTAI) |
sec.vtai_status |
— |
返回 enabled/monitor/auto_scan/mode/source/public_handle/cache_size 等 |
全量情报 vt.*(full_tools 策略门控,与哨兵并存):
| 工具 |
关键参数 |
门控 |
vt.lookup |
indicators[] / indicator, type?(file/url/domain/ip), relationship? |
免费只读(仅主开关) |
vt.api |
resource? / id? / relationship? / action? / path? / method(默认 GET) / query{} / body{} / raw? |
读默认可用;写受 query_only、Premium/GTI 端点受 enable_paid_features |
vt.submit |
url? / file? / rescan? / wait? / confirm? |
写;query_only 拦;file 上传 ≤ 32 MB、confirm_sample_upload 开时需 confirm=true;wait 轮询上限 180s |
vt.download |
hash(必填), save_to(必填) |
Premium(enable_paid_features) |
vt.feeds |
type, time(YYYYMMDDhhmm/hh,UTC), save_to(均必填) |
Premium;T-60 分钟延迟 |
vt.hunt |
op(retrohunt_*/notifications/rulesets), id? / rules? / corpus? / limit? / cursor? |
Premium;异步 |
full_tools 策略字段:enabled / query_only(默认开)/ enable_paid_features(默认关)/ confirm_sample_upload(默认开)/ api_base。Check() 顺序:未启用 → ErrDisabled;写 + 仅查询 → ErrQueryOnly;非 public 档 + 未开收费 → ErrPaidDisabled。档位(public/premium/gti)由 VT 远端 403 兜底。启用需 KeyUsable(密文可解密且非空),否则启用环节即报错。响应默认经 Summarize() 紧凑摘要(names cap 8、tags cap 12),raw=true 取原始。超时:api/lookup/hunt/submit 30s,download/feeds 5 分钟。
9. 外部工具服务接入参考
9.1 服务条目字段
每个外部服务条目包含:
| 字段 |
类型 |
说明 |
name |
string |
名字(也作为工具前缀,例如 notion.*) |
protocol |
enum |
http(Streamable HTTP,手动添加时的默认)/ sse(旧式)/ stdio。填错时连接会自动协商回退:若服务端可达但握手被拒(如 405 / Bad Request),自动改试另一种 HTTP 传输并把实际生效的方式写回配置;连不上(拒绝 / 超时 / EOF)则不回退 |
lazy_load |
bool |
是否延迟加载该服务的工具。缺省跟随全局「工具分类延迟加载」;显式关闭则该服务工具常驻。落盘 mcp_lazy_load(按后端名) |
endpoint |
string |
HTTP / SSE 通道的 URL;stdio 通道不用 |
command |
string |
stdio 通道要启动的命令行(如 npx -y @some/mcp-server) |
args |
array |
stdio 通道的命令行参数 |
env |
map |
stdio 子进程的环境变量(凭证、token 等) |
credential |
string |
HTTP / SSE 的 Bearer Token 或 API Key |
oauth |
object |
OAuth 2.1 + PKCE 配置(authorizationEndpoint / tokenEndpoint / clientId / scope / clientSecret?);endpoint 可通过 .well-known 自动发现 |
enabled |
bool |
是否启用 |
timeout_ms |
int |
请求超时 |
retry |
object |
max=3, base=500ms, jitter=0.3 |
凭据存储(VAULT):credential / env / oauth.refresh_token 与续期元数据不入主配置文件、不入日志,统一进国密加密的凭据库(SM4-GCM + HKDF-SM3,machineID 绑定);存量明文凭据下次使用时被动迁移。
9.1.1 OAuth 流程字段
| 字段 |
说明 |
authorizationEndpoint |
OAuth 授权端点 |
tokenEndpoint |
OAuth token 端点 |
clientId |
客户端 ID |
clientSecret |
可选;缺省即 public client(仅依赖 PKCE) |
scope |
申请的权限范围 |
redirectUri |
本机回环:http://127.0.0.1:<port>/cb |
pkce.codeVerifier / pkce.codeChallenge |
S256 |
accessTokenExpiresAt |
启动 / 后台到期前用 refresh_token 自动换新 |
9.1.2 健康看板字段
MCP 配置 → 健康看板 来源是 zMCP gateway 的 /admin/metrics 环形缓冲:
| 字段 |
说明 |
backend |
MCP 后端名 |
calls |
调用次数(窗口内) |
failRate |
失败率 |
p50Ms / p95Ms |
响应耗时分位(毫秒) |
lastError / lastErrorAt |
最近一次失败错误信息 + 时间 |
9.2 工具命名规则
| 来源 |
命名 |
| 内置工具 |
不加前缀(例如 read, git.status) |
| 安全分析 |
sec.* 前缀 |
| 外部服务 |
<服务 name>.* 前缀(例如 notion.search) |
| 通讯出站 |
channels.* 前缀 |
| 技能调用 |
skill.invoke |
9.3 错误抽屉条目
| 字段 |
说明 |
| 时间 |
触发时间 |
| 工具 |
工具名 |
| 状态码 / 错误类 |
HTTP 状态 / 异常类 |
| 摘要 |
单行简述 |
| 详情 |
服务端原始返回(最多 4 KB) |
| 重试次数 |
自动重试已尝试次数 |
后端缺席兜底:某后端一时缺席 / 未就绪时,tools/call 过去会返回「unknown tool」协议错误;现对未知工具做兜底处理并按需重连自愈,后端就绪后自动恢复,不再因此整体不可用。
10. 工具权限策略参考
10.1 三态语义
| 状态 |
图标 |
行为 |
| 启用 |
|
直接放行,不弹窗 |
| 询问 |
|
每次调用前弹窗审批(接入实际确认流程,批准前调用暂停) |
| 禁用 |
|
直接拒绝,记录到错误抽屉 |
三态对子代理同样生效:「禁用」在主代理与子代理两侧一并生效(子代理侧 fail-closed,工具直接不可见);卸载插件 / 移除 MCP 后端时自动清理残留的工具配置键,盘上配置与实际可用工具保持一致。
10.2 决策聚合与多端应答
Hook 决策聚合:同一次评估中多个 Hook 返回的权限决策按下列优先级合并(前者胜):
deny > defer > ask > allow
多端应答:审批弹窗与远程通道(微信等)同时收到同一请求时,首个应答生效;其余端的后续回复会被提示已应答。
10.3 白名单匹配粒度
| 粒度 |
覆盖范围 |
适用场景 |
| 仅本次 |
单次调用 |
谨慎评估 |
| 同工具同参数 |
一组完全相同的入参 |
推荐默认 |
| 同工具任何参数 |
该工具任意调用 |
内部脚本 |
| 整工作区放行 |
该工作区所有工具 |
仅限隔离环境 |
10.4 远程审批回写
| 命令 |
等价桌面操作 |
/approve <审批号> |
允许(仅本次) |
/always <审批号> |
始终允许 |
/deny <审批号> |
拒绝 |
| 不回复 |
30 秒倒计时结束即超时拒绝 |
10.4.1 无限制模式(高级)
输入区模式滑块右侧盾牌开关;按会话独立、纯内存、重启即清。开启前有 5 秒冷静期。
| 解除 |
开启后行为 |
| 工具批准 |
跳过批准弹窗,直接执行 |
| 命令白名单 |
fs.exec 不限命令 |
| 网络过滤 |
web.fetch / web.bing 不过滤内网 / 环回 / 链路本地 |
始终保留的硬底线(不受开关影响):
| 硬底线 |
说明 |
samples/ 沙箱 |
不可解除 |
rm -rf 参数校验 |
仍校验 |
| 危险注入黑名单 |
fork 炸弹 / 写 /etc / curl|sh / eval |
| 协议白名单 |
仅 http(s) 放行 |
消息标识:模式期间产生的连续消息以浅色边框整体圈出(起止界标),关闭后当场收口;模式未结束不打「结束」界标。子代理可按需递归继承该模式,继承产生的消息同样带标识。
10.5 审批请求字段与留痕
审批弹窗(hook:ask 事件)携带的字段:
| 字段 |
说明 |
request_id |
审批号 |
event |
触发的 Hook 事件名 |
fingerprint |
授权指纹,「始终允许」按它匹配 |
handler_type / handler_label |
处理器类型与显示名 |
matcher / match_target |
命中的匹配器与匹配目标 |
source_scope / source_id |
来源作用域(plugin / user / workspace)及其 ID |
session_id |
会话 ID |
timeout_sec |
倒计时秒数(30) |
决策取值:deny(拒绝)/ allow_once(仅本次允许)/ always_allow(始终允许)。
留痕:仅「始终允许」会持久化 — 写入工作区级授权文件 hook-approvals.yaml(记录授权指纹与决策时间),可在 设置 → Hooks 查看与撤销;「仅本次允许」「拒绝」与超时只作用于当次调用,不落盘。
11. 计划与待办状态参考
11.1 计划(Plan)状态机
| 状态 |
触发 |
下一态 |
| 起草中 |
助手开始写计划 |
草稿就绪 |
| 草稿就绪 |
助手发出完整计划 |
已接受 / 已修改 / 已拒绝 |
| 已修改 |
用户编辑后回交 |
起草中(再补完善) |
| 已接受 |
用户点击「接受」 |
进入执行 |
| 已拒绝 |
用户点击「拒绝」 |
助手重写 |
11.2 待办(Todo)状态
| 状态 |
图标 |
说明 |
| 待办 |
|
尚未开始 |
| 进行中 |
|
助手当前正在做 |
| 完成 |
|
已完成 |
| 失败 |
|
已失败或被跳过 |
11.3 跨折叠保留
历史折叠发生时,下列字段始终原样保留在新摘要中:
- 计划当前状态(起草中 / 草稿就绪 / …)
- 计划的最新版本号与差异概要
- 待办列表的全部条目与其状态
- 用户已确认的关键决策("接受了 v3 计划")
- 上下文必需事实(路径、版本号)
12. 技能(SKILL.md)格式参考
12.1 文件结构
<skill-root>/
├── SKILL.md # 必需。前置元数据 + 模板正文
├── README.md # 可选。给人看的说明
├── examples/ # 可选。示例输入输出
└── … # 可选附加资源
12.2 前置元数据字段
SKILL.md 顶部使用 --- 分隔的 YAML 前置元数据,所有可识别字段:
| 字段 |
类型 |
必填 |
说明 |
name |
string |
✓ |
用作 slash 名(建议小写连字符) |
description |
string |
✓ |
一句话说明,列在 /help 中 |
argument-hint |
string |
|
<arg1> <arg2> 提示 |
allowed-tools |
array |
|
限制本技能可用的工具白名单 |
denied-tools |
array |
|
黑名单(与白名单二选一) |
work-modes |
array |
|
适用工作模式 [plan, execute, …] |
model |
string |
|
强制使用的模型;缺省继承当前 |
temperature |
number |
|
强制温度;缺省继承当前 |
version |
string |
|
语义化版本号 |
license |
string |
|
SPDX 标识 |
author |
string |
|
作者 / 团队 |
tags |
array |
|
用于市场过滤 |
signature |
string |
|
国密签名块(由签名工具自动写入) |
12.3 正文模板
正文为标准 Markdown,支持下列扩展:
| 语法 |
含义 |
$1 $2 $N |
第 N 个位置参数 |
$ARGUMENTS |
全部参数原样拼接 |
!`<shell>` |
Shell 预处理;输出替换该位置 |
{{include:path}} |
内联另一个 Markdown 文件(相对 skill-root) |
12.4 三层加载优先级
| 层级 |
路径 |
优先级 |
| 全局 |
应用数据目录的全局技能区 |
最低 |
| 工作区 |
<workspace>/.config/skills/<name>/ |
中 |
| 插件 |
插件包内提供 |
高 |
12.5 调用方式
| 方式 |
触发点 |
行为 |
| 用户 slash |
/<name> <args> |
渲染后注入下一回合 system prompt |
| 助手主动 |
skill.invoke 工具 |
渲染后作为工具响应回到对话流 |
12.6 内置技能
应用内置一批技能(如 skill-creator),启动时自动物化、内容漂移自动覆盖;通过构建期签名 + 内置签名锚点(trust ExtraSignerRoots),在严格签名策略下也放行。设置 → 技能 面板以「内置」徽标区分内置 / 自建 / 第三方。兼容 Agent Skills(agentskills.io):跨客户端发现 / 解析容错 + 工具名翻译映射。
12.7 market.check(发布契约校验)
内置只读、确定性、离线工具,按 zMarket 发布契约校验本地技能 / 插件目录:
| 参数 |
类型 |
默认 |
说明 |
path |
string |
— |
必填,待校验目录相对路径(如 .avlcode/skills/my-skill) |
kind |
string |
自动探测 |
skill / plugin / mcp / provider |
version |
string |
目录推断 |
覆盖 / 补充严格 semver |
source |
string |
./<name> |
覆盖 source 形态 |
manifest |
string |
从目录派生 |
直接给 manifest JSON |
报告过 / 不过 + 原因 + 缺什么(name slug、严格 semver、source 形态、能力声明、归档安全等)。不联网、不提交。注:.skill-sign 签名 ≠ zMarket 认可;只查发布契约形态,非运行时安全审计。
13. 助手人设参考
13.1 人设字段
| 字段 |
类型 |
必填 |
说明 |
id |
string |
✓ |
内部 ID;系统消息携带 |
name |
string |
✓ |
显示名 |
personality |
string |
|
短句个性 |
soul |
string |
✓ |
完整核心提示词 |
soul_path |
string |
|
引用 Markdown 文件作为 SOUL(与 soul 二选一) |
default_model |
string |
|
默认模型 |
default_temperature |
number |
|
默认温度 |
13.2 内置人设
| ID |
名称 |
默认模式 |
builtin/auto |
自动 |
auto |
builtin/plan |
筹划 |
plan |
builtin/prepare |
准备 |
prepare |
builtin/execute |
执行 |
execute |
builtin/assess |
评估 |
assess |
13.3 模式 → 助手绑定
每个工作区维护一份 5 项映射(mode → persona id):
mode_persona:
auto: builtin/auto
plan: builtin/plan
prepare: builtin/prepare
execute: builtin/execute
assess: builtin/assess
14. 模型 Provider 参考
14.1 Provider 字段
| 字段 |
类型 |
必填 |
说明 |
name |
string |
✓ |
Provider 标识 |
display_name |
string |
|
显示名 |
base_url |
string |
✓ |
API 基础地址 |
api_key |
string |
|
凭证(共享额度走系统下发,无需填写) |
protocol |
enum |
✓ |
openai-compat / anthropic / gemini / custom |
models |
array |
|
模型列表;空时启动后异步拉取 |
priority |
int |
100 |
兜底排序 |
enabled |
bool |
true |
是否启用 |
api.headers |
map[string]string |
|
自定义请求头(仅自定义 Provider 可编辑;逐条 Header.Set,可覆盖内置;空 key 与含 CR/LF 的条目自动跳过;Host 头不生效) |
14.2 内置 Provider 占位
| name |
说明 |
AVL-Zero |
共享额度入口;登录后自动下发 key |
OpenAI |
标准 OpenAI 协议 |
Anthropic |
Claude 系列 |
Aliyun |
阿里云通义系列 |
Volcengine |
火山方舟 |
14.3 参数命名映射
| 通用名 |
OpenAI |
Anthropic |
Aliyun |
| temperature |
temperature |
temperature |
temperature |
| top_p |
top_p |
top_p |
top_p |
| max_output_tokens |
max_tokens |
max_tokens |
max_tokens |
| stream |
stream |
stream |
stream |
| stop |
stop |
stop_sequences |
stop |
15. 历史折叠(Compact)参考
15.1 触发方式
| 来源 |
时机 |
| 手动 |
用户 ⌘⇧K / 标签右键 / /compact |
| 自动 |
助手在自身 context 接近上限时反向触发 |
| 会话切换 |
切到长会话时按需 |
15.2 折叠摘要的字段
| 字段 |
说明 |
compacted_from_ids |
被折叠的原消息 id 列表 |
summary |
LLM 生成的摘要正文 |
plan |
当时计划的最新状态 |
todos |
当时待办的全部条目 |
decisions |
用户已确认的关键决策 |
facts |
必需事实(路径、版本号、配置项等) |
excluded_from_context |
被折叠的原消息是否对 LLM 隐藏 |
15.3 多次折叠
折叠是 append-only 的:每次折叠都新增一条节点而非替换;UI 上以"折叠摘要 →(展开)→ 原消息"层叠展示,可逐层展开到最早历史。
16. 子任务与后台执行参考
16.1 派发参数
| 参数 |
类型 |
默认 |
说明 |
prompt |
string |
— |
子任务提示词;必填 |
agent_id |
string |
当前助手 |
指派子助手人设 |
model |
string |
当前模型 |
子任务模型 |
run_in_background |
bool |
false |
true 走后台 |
timeout_ms |
int |
600_000 |
前台超时;后台不适用 |
16.2 BackgroundRegistry
| 字段 |
默认 |
说明 |
| 同时在跑上限 |
64 |
超出立即拒绝并提示稍后重试 |
| 终态保留 |
30 分钟 |
超过窗口被回收 |
| 优先级 |
killed > done |
外部 stop 与自然结束撞拍时 killed 胜 |
16.3 子任务工具
| 工具 |
参数 |
说明 |
Agent |
prompt, agent_id, run_in_background? |
派发单个子任务 |
AgentParallel |
legs[](2–16), timeout_seconds? |
一次拆多路并行 fan-out(见 §16.5) |
TaskOutput |
task_id, limit? |
拉取后台任务状态 / 输出片段 |
TaskStop |
task_id |
强制终止后台任务 |
StopAgentToolRun |
child_session_id |
单独停止某个正在跑的子代理(后台 / 并行腿);幂等,同步内联子代理需停整轮 |
TaskWait |
task_ids, mode=all|any, timeout_seconds(默认 300,最长 1800) |
阻塞等待后台任务 / 子代理;超时返回「还在跑」让模型决定继续 |
EnterPlanMode / ExitPlanMode |
无 |
进入 / 退出筹划 |
TodoWrite |
todos |
写入或更新待办列表 |
16.3.1 AgentParallel 参数
| 参数 |
类型 |
默认 |
说明 |
legs |
array |
— |
必填,2–16 条;每条独立 fresh-context 子 Agent,全部完成后聚合返回 |
legs[].subagent_type |
string |
— |
必填,目标子代理类型 |
legs[].prompt |
string |
— |
必填,自包含子任务提示词(腿看不到主对话历史) |
legs[].description |
string |
— |
可选,3–5 词,仅用于日志 / UI |
legs[].model |
string |
继承 |
可选,单腿模型覆盖 |
timeout_seconds |
int |
600 |
整体等待超时,上限 1800;到时未完成的腿返回 pending 并在后台继续 |
少于 2 条会报错(改用 Agent),多于 16 条静默截断到前 16。每条腿作为真实后台任务派发、内部统一 Wait(all) 聚合;单腿输出超 8000 runes 截断(提示用 TaskOutput 取全文)。腿为叶子层、不可再嵌套 Agent / AgentParallel。v1 仅 all 模式。返回 ParallelResult(completed / num_ok / num_failed / num_pending / legs[] 等,永不抛错)。
渲染:调用卡片执行期即显示并随实时 store 反映各腿运行状态(停止后不再转圈);极简密度下结果块不被工具组误折叠。
16.4 长程任务崩溃恢复
后台任务(run_in_background=true)的进度落盘到本机全局目录(每任务一份 JSON 快照);走到终态(done / error / killed)即删除快照。
| 项 |
默认 |
说明 |
| 落盘范围 |
仅后台任务 |
前台同步任务不落盘 |
| 启动扫描 |
异步、不阻塞 |
先做脏条目清理(父会话已删的条目自动剔除),再列出残留任务 |
| 自动恢复开关 |
关(auto_resume_tasks) |
设置 → 智能体 → 自省;开启后启动自动续跑(夜间无人值守) |
| 启动自动恢复上限 |
5 |
防「续跑消息风暴」;其余转手动横幅 |
| 恢复方式 |
注入父会话续跑 |
不直接重启子进程,而是向原父会话注入「继续 / 重新委派」消息(对用户可见) |
| 手动入口 |
顶部恢复横幅 |
每条可「恢复 / 忽略」,另有「全部忽略」 |
16.5 自修复循环参考
错误按来源(request / gateway / upstream)与类别分流后映射到 4 类修复策略,各有按会话计的尝试上限:
| 修复策略 |
适用错误 |
上限 |
transient_compact(压缩重试) |
上下文超限 |
2 |
transient_fallback(切换供应商,需确认) |
无可用通道 / 上游过载 / 上游认证失败 |
3 |
backoff(退避重试) |
限流 / 超时 / 网络 |
3 |
terminal(交还用户) |
余额不足 / 需重登 / 模型不存在 |
— |
特例:upstream 来源的 auth_error 重判为 transient_fallback(某通道 key 失效而非用户凭据);仍可重试的 terminal 救回为 backoff;5xx / 408 默认可重试,其它 4xx 终止。
网络抖动自愈:瞬断 / 临时离线时探测「离线 → 在线」再续跑,这段等待不计入重试预算;连接重置、DNS 暂时解析失败、握手中断等连接级瞬断细分为网络问题(而非笼统 llm_error),不误导你排查上游配置。
产出型自愈(MaxOutcomeHeal = 3):回复被长度截断自动续写(truncated_continue)、推理绕圈打断(reasoning_loop)、内容过滤换述(content_filter)。门禁升级:同一处检查 / 测试失败或待办无进展达上限(测试门禁 3 次、无进展待办 2 次)时升级提示换思路。供应商备选通过 App.RespondProviderFallback 回写确认,前端为 SelfRepairFallbackBanner;后端事件 self_repair:fallback_confirm / _applied / _declined / self_repair:outcome。
16.6 经验学习闭环参考
| 组成 |
说明 |
| 自愈历史学习(P1) |
每类自愈成败落盘 ~/.config/avlcode/self-heal-stats.json;平滑率 (succ+1)/(total+2)。样本 < 5 用默认上限 3;率 < 0.2 → 1、0.2–0.5 → 2、≥ 0.5 → 3;每类至少 1,仅下调不上调 |
| 自动反省(P2/P3) |
auto_reflect(默认关,设置 → 智能体 → 自省)开启后,多步任务收尾异步跑一次 GRAI+KISS 复盘;读轨迹摘要(最多 5 个错误步)+ 自愈统计,产出 ≤ 8 条 Keep/Improve/Stop/Start 教训 |
| 教训去向 |
沉淀到记忆宫殿 _pending 草稿盒(房间 scratch、类型 decision、不衰减),需人工审批后才入正式库;按标题去重;事件 reflection:done |
17. 命令行入口参考
命令行版本与桌面版共享同一份会话与配置,互相之间可以接力。
17.1 主子命令
| 命令 |
用途 |
avl tui |
在终端里启动 TUI 版本,与桌面版共享同一份会话 |
avl zagent-tui |
直接启动批处理对话 TUI,适合脚本化驱动 |
avl workspace |
工作区操作 |
avl agent |
一次性 LLM 对话(JSONL 批处理) |
avl skill |
技能管理与签名 |
avl channel |
随行通讯(独立运行 / dry-run / 主 App 回调) |
avl mcp |
外部工具服务连接调试 |
avl install |
在当前目录安装 5 个子命令的入口符号链接 |
tui / zagent-tui 由主二进制内置,无需额外安装 zBoxFull 发行包。
17.2 通用参数
| 参数 |
含义 |
| `--workspace <id |
path>` |
--config <path> |
显式指定配置目录 |
--log-level <level> |
error / warn / info / debug |
--no-color |
关闭彩色输出 |
-h / --help |
帮助 |
-V / --version |
版本号 |
17.3 退出码
| 码 |
含义 |
| 0 |
成功 |
| 1 |
通用错误 |
| 2 |
参数错误 |
| 64 |
配置错误 |
| 65 |
数据错误 |
| 69 |
服务不可用 |
| 70 |
软件错误(应反馈) |
18. 主题与外观参考
18.1 主题三档
| 模式 |
触发 |
表现 |
system |
跟随系统 |
自动切换 |
light |
浅色 |
纯灰阶 + 暖白底 |
dark |
深色 |
OKLCH 蓝调 + 高对比度 |
18.2 关键色(用户可感知)
| 角色 |
浅色 |
深色 |
| 主品牌 |
深蓝 |
浅蓝 |
| 强调 / 链接 |
蓝 |
浅蓝 |
| 状态 · 成功 |
绿 |
绿 |
| 状态 · 警告 |
琥珀 |
琥珀 |
| 状态 · 错误 |
红 |
红 |
18.3 字体
| 角色 |
默认 |
| 界面 |
系统 UI 字体 |
| 等宽 |
系统等宽(SF Mono / Consolas / JetBrains Mono …) |
| 字号档位 |
小 / 中 / 大(默认中) |
Header 右上快捷菜单集中四个外观滑块,与设置页同源同步:
| 滑块 |
档位 |
对应设置项 |
| 主题 |
system / light / dark |
设置 → 通用 → 主题 |
| 布局 |
侧边栏 / 顶部标签页 |
设置 → 通用 → 工作区与会话布局(workspace_display_mode) |
| 信息量 |
正常 / 极简 |
设置 → 通用 → 消息密度(message_density) |
| 语言 |
简 / 繁 / EN |
设置 → 通用 → 语言(language),切换即时生效并落盘 |
18.5 会话状态条(strip)布局
会话状态条纳管文件变更、记忆、待办、计划、目标、引导、结果草稿、附加资料、建议任务、自检门禁共 10 类条目,按窗口宽度在两种形态间自动切换:
| 形态 |
触发 |
呈现 |
row |
窄屏,或信息量 = 极简(full 档)时恒用 |
输入框上方横排,超宽换行;展开为向上弹出的浮层 |
rail |
宽屏(内容区上限 + 268px 起) |
消息区右上纵向状态栈,宽 236px |
- rail 形态下展开为右侧堆叠抽屉:固定定位、无遮罩、不挤压正文,宽 680px;以整个 rail 为锚,切换不同条目时抽屉位置稳定,并按两侧可用空间自动选择向左或向右展开。
- 超宽窗口下固定预留抽屉槽位,「内容 + rail + 抽屉」整体居中,开合抽屉不会移动主内容。
- 切换布局只改变位置,不改变内容宽度。
19. 系统集成参考
19.1 系统托盘
| 项 |
说明 |
| 启用条件 |
设置 → 通用 → 最小化到系统托盘 开启 |
| 托盘图标 |
平台原生图标,跟随主题切换 |
| 关窗行为 |
隐藏到托盘并保留后台进程 |
| 菜单项 |
显示窗口 / 设置 / 检查更新 / 退出 |
| macOS 限制 |
启停需重启应用生效 |
19.2 开机自启
| 平台 |
实现位置 |
| macOS |
~/Library/LaunchAgents/<AppID>.plist |
| Windows |
HKCU\Software\Microsoft\Windows\CurrentVersion\Run |
| Linux |
~/.config/autostart/<AppID>.desktop |
启动参数:--from-autostart,配合"最小化到托盘"走静默启动。
19.3 通知
| 事件 |
默认通知 |
| 后台任务完成 |
系统通知中心 |
| 待审批 |
系统通知中心(如桌面在前台则只弹 modal) |
| 点数到期 |
状态点 + 一次性 toast |
| 升级可用 |
一次性 toast;可推迟 |
19.4 在线文档入口
| 入口 |
行为 |
| 侧边栏「帮助」按钮 |
系统默认浏览器打开 https://avlcode.cn/docs.html |
| macOS 帮助菜单 → 在线文档 |
同上(紧跟在「命令列表」后) |
20. 状态指示与提示参考
20.1 左侧栏状态点
| 颜色 |
含义 |
| 绿 |
一切正常 |
| 琥珀 |
凭证 1 小时内到期 / 限流警告 / 通道重连中 |
| 红 |
离线 / 凭证已过期 / 严重错误 |
| 灰 |
未登录 |
20.1.1 上下文占用圆环
显示当前上下文窗口占用比例的圆环按占用分档变色:
| 占用 |
颜色 |
| < 75% |
常态色 |
| ≥ 75% |
黄 |
| ≥ 90% |
红(已接近上下文上限,宜续跑 / 折叠) |
20.2 会话标签徽章
| 徽章 |
含义 |
| 数字 |
该会话有 N 条新消息(仅当切换走时累计) |
|
该会话当前有助手在运行 |
| 🌙 |
该会话当前有后台子任务 |
| 红点 |
该会话有未处理的审批请求 |
20.3 输入框右侧按钮
| 形态 |
含义 |
| 发送(默认) |
助手空闲;点击发送当前输入 |
| 停止 |
助手运行中;点击同步终止主助手 + 所有子任务 |
| 置灰 |
输入框为空 |
21. 错误信息参考
下表收录用户最常见的提示文案及其含义与处置建议。
| 提示文案 |
含义 |
处置 |
| 服务未就绪 |
后台子进程仍在初始化 |
等待 30 秒;超时则查看错误抽屉 |
| 工具调用被拒绝 |
工具被设为禁用 / 被审批拒绝 / 路径越权 |
检查工具权限策略与路径范围 |
| 模型超时 |
LLM 长时间无响应 |
重发;或切到备用 Provider |
| 模型返回为空 |
LLM 输出长度为 0 |
多见于触发拦截;尝试改写 prompt |
| 上下文超长 |
接近模型 context 上限 |
触发折叠或开新会话 |
| 工作区已锁定 |
该工作区已有进程持有 |
等待或重启应用 |
| 凭证已过期 |
登录 token 失效 |
重新登录 |
| 点数不足(HTTP 402) |
账号点数耗尽 |
「前往购券」(购券口径,与账号用量 / 服务端计费一致,不用「充值 / 重置 / 余额」;不再当成可重试错误反复重试) |
| 套餐额度已用尽(HTTP 429) |
套餐配额耗尽 |
「等配额刷新或升级套餐」(不再误判成限流) |
| 鉴权失败(HTTP 401 / 403) |
需要登录 / Key 失效 |
「重新登录或重发 key」(不再让你去查配置) |
| 当前模型暂无可用通道(HTTP 503) |
通道全部不可用 |
稍后重试或切换模型 |
| 上游服务异常(HTTP 502 / 529 / overloaded) |
上游问题 |
如实说明是上游;上游鉴权失败时不再误导你去查自己的 key |
Provider 端点不存在(HTTP 404,endpoint_not_found_error) |
URL 路径写错 |
检查 Provider Base URL;与"API JSON 返回的 404 模型不存在"分流 |
| macOS App Translocation |
应用在只读临时镜像运行(未拖进"应用程序") |
「退出应用 → 拖进『应用程序』→ 重新打开 → 再检查更新」 |
| 通道断开 |
IM 通道掉线 |
自动重试;30 秒后仍失败请重新扫码 |
| 配对码无效 |
6 位码错误或过期(10 分钟) |
重新生成 |
| 升级签名无效 |
升级包签名校验失败 |
自动回滚;手动通过应用内升级再试 |
| 技能签名无效 |
技能包签名校验失败 |
拒绝执行;联系发布方 |
| 后台任务上限 |
在跑后台任务达到 64 |
等待回收或主动终止 |
22. 数据与备份参考
22.1 备份内容
| 项 |
说明 |
| 工作区列表 |
名称、路径、归档状态 |
| 会话历史 |
全量消息流,含工具调用、计划、待办、审批 |
| 助手人设 |
内置 + 自定义 |
| 技能 |
全局 + 工作区 + 插件提供 |
| 工具策略 |
三态权限 + 白名单 |
| 外部服务 |
凭证以加密形式存储 |
| 通道绑定 |
IM 对端 ↔ 工作区 |
| 设置项 |
通用 + 工作区 |
22.2 备份与恢复
| 操作 |
步骤 |
| 备份 |
关闭应用 → 设置 → 数据 → 数据目录 → 整目录打包 |
| 恢复 |
关闭应用 → 替换原数据目录 → 启动应用 |
| 跨设备迁移 |
备份后还原到新设备同名目录 |
| 同步(实验性) |
设置 → 数据 → 同步 开启后多设备共享 |
22.3 完整清理
关闭应用 → 删除应用本体 → 删除数据目录
数据目录包含登录凭证、会话历史、外部服务凭证;删除后不可恢复。
22.6.1 SSH 远程工作区协议
| 字段 |
类型 |
默认 |
说明 |
| 协议 |
enum |
zworkspace |
zworkspace / ssh |
| 主机 |
string |
— |
user@host[:port] |
| 认证 |
enum |
password |
password / private_key / private_key_with_passphrase |
| 私钥路径 |
string |
— |
文件选择器挑选;本机解析 |
| 远程根目录 |
string |
~ |
支持 ~ 自动展开为远端家目录。拒绝 /;.. 逃逸与 ~/..(含 ~//../)一层穿透均已封堵;展开并解析真实路径后再按同一口径二次校验 |
| 凭据加密 |
— |
SM4-GCM |
国密落盘 + 本机绑定;每次保存使用随机盐 |
| 凭据保留 |
bool |
记住 |
「记住密码 / 口令」复选框。未勾选则为临时凭据:连接期内保留(保重连),应用启动与退出时清除。工作区粒度,落盘为 ssh_secrets.yaml 的 remember 标记;存量无此字段视同已记住 |
| 主机指纹 |
— |
首连确认 |
首次连接展示 SHA256 指纹,由你核对确认后才钉住 known_hosts,确认前不发送密码;已知主机换钥硬拒(疑似中间人) |
SSH 工作区与本地工作区的差异:
| 能力 |
本地 |
SSH |
fs.* 文件操作 |
本地 |
走 SFTP / 远端 shell |
fs.grep |
Go RE2 |
远端系统 grep(提速) |
fs.exec 同步 |
本地 |
远端 shell |
fs.exec.start 后台长驻 |
启用(会话随 Interpreter 生命周期结束) |
启用(会话状态存远端 <root>/.avlcode/sessions/,跨断线重连与应用重启存活;setsid 自成进程组,kill 连子孙一并收;日志为完整文件、无本地版 256 MiB 环形丢尾;不做 venv 感知) |
| 文件变更面板 git |
本地 git |
远端 git(无 git 时隐藏面板) |
| Skills / Plugins / Hooks |
本地 .avlcode/ |
远端 .avlcode/ |
| 文件威胁扫描 |
本地字节 |
SFTP 取字节后扫描 |
sys.info 报告身份 |
本地 |
远端真实身份 |
| 「关闭并清除数据」菜单项 |
显示 |
不显示 + 后端拒绝(避免误删远端文件) |
| 「移除工作区」 |
删本地记录与凭据 |
删本地记录与凭据(不碰远端文件) |
| 跨 OS 客户端兼容 |
— |
远端命令不注入本机环境变量(用远端登录 shell 自带环境);远端路径一律按 POSIX 文法构造(Windows ↔ Linux 已彻底打通) |
22.6.2 会话附加目录
| 字段 |
类型 |
默认 |
说明 |
| 入口 |
— |
— |
输入框「+」菜单:附加目录(只读) / 附加目录(读写) |
| 权限 |
enum |
— |
ro(读 / 列举 / 搜索) / rw(额外允许写 / 删 / 创建) |
| 作用域 |
— |
会话 |
仅当前会话;其它会话不受影响 |
| 持久化 |
— |
会话内 |
随会话保存;重启后台自动重新生效 |
| 显示 |
— |
输入框上方「附加路径」条 |
可随时移除 |
| 路径标注 |
— |
绝对路径 |
搜索 / 列举结果标绝对路径,来源一目了然 |
| 会话身份注入 |
— |
系统在调用链注入 _session_id |
AI 不可伪造身份冒用别会话的附加权限 |
22.7 项目指令(AGENTS.md)
工作区根目录放 AGENT.md / AGENTS.md / CLAUDE.md(按优先级取一份),自动作为系统提示里的「# 项目指令」块。
| 字段 |
行为 |
| 文件名优先级 |
AGENT.md > AGENTS.md > CLAUDE.md(取第一个存在的) |
| 注入位置 |
系统提示词独立「# 项目指令」块 |
| 重新读取 |
每轮重新读,改了立即生效 |
| 子目录注入 |
AI 读写某子目录下文件时,自动把路径上各级 AGENT.md 一并注入(每会话每子目录一次,去重不刷屏) |
| 截断策略 |
UTF-8 字符边界安全截断 + 截断标记 |
| 软链护栏 |
EvalSymlinks 真实路径校验,不在工作区内则拒绝 |
| 内置编辑器 |
会话菜单 / 工作区菜单「编辑 AGENTS.md」;Cmd/Ctrl+S 保存、Tab / Shift+Tab 缩进、未保存保护、空状态模板 |
22.8 消息内链接与文件路径点击行为
| 类别 |
识别 |
点击行为 |
| 工作区内文件路径 |
带常见扩展名(如 src/main.go / README.md) |
系统文件管理器定位并选中 |
| 外部链接 |
http(s) URL |
默认浏览器打开 |
| 反引号内联代码里的路径 |
带扩展名 |
与普通链接同等识别 |
工具结果 / 回答里的 文件:行 |
path:line(:col)? |
带行号的工作区文件 → 「查看」打开源码预览并滚到该行 |
代码块里单条 .md / .mdx 路径 |
文件存在(异步校验后升级为可点) |
打开 Markdown 预览抽屉 |
| 普通内联代码 |
— |
不识别为链接 |
| 危险协议 |
非 http(s) |
拦截 |
| 纯目录 / 无扩展名片段 |
如 a/b、/etc/hosts |
不可点 |
点击后弹出非模态浮动工具条(主动作「查看 / 打开」+「复制」),用 Popover API 渲染在顶层,弹窗内点击同样不被遮挡。「查看」对带行号的源码走 PreviewSourceFile(target, line) 在代码视图定位到该行,让 code.search / code.ask 给出的 文件:行 证据可核对。
23. 文件命名约定
下表为用户可见的文件命名规则,方便手工脚本化处理(不要修改这些文件,除非显式说明可以)。
| 类别 |
命名格式 |
说明 |
| 会话文件 |
<sid>.jsonl |
sid 为 8 字符随机;前 4 位为短 id |
| 计划快照 |
<sid>.plan.json |
与 jsonl 同名 |
| 待办快照 |
<sid>.todos.json |
|
| 工作区配置 |
agents.yaml tools.yaml channels.yaml 等 |
各功能独立文件 |
| 技能 |
<skill-name>/SKILL.md |
技能根目录名建议小写连字符 |
| 助手人设 |
<persona-id>.yaml |
路径斜杠以 __ 编码 |
| 日志 |
avlcode-YYYYMMDD.log |
按日轮转 |
24. 网络访问清单
下表收录应用可能发起的网络请求,便于在受限网络环境中加白。
| 用途 |
协议 |
说明 |
| 登录 / 共享额度 / 用量 |
HTTPS |
账号管理后台 |
| 模型调用(共享) |
HTTPS |
共享额度走的模型供应商 |
| 模型调用(自有 Key) |
HTTPS |
你配置的模型供应商 |
| 升级检查 |
HTTPS |
内部升级源 |
| 网页检索(可选) |
HTTPS |
仅启用 web.search 时 |
| 通道(微信 iLink) |
HTTPS / WebSocket |
仅启用随行通讯时 |
| 外部工具服务 |
HTTPS / SSE |
仅启用 MCP 服务时 |
| SBOM 在线审计 |
HTTPS |
仅 sbom.audit / sbom.vex 在线模式:api.osv.dev |
| SBOM 离线库同步 |
HTTPS |
仅 sbom.dbsync sync / kev:OSV dump 存储桶、CISA KEV feed(可改指内部镜像) |
应用不会:
- 主动联网做行为埋点。
- 把样本本体上传到任何第三方(仅反编译会按需发反汇编片段)。
- 自动同步本地会话到云(除非显式启用同步开关)。
25. 隐私与遥测参考
25.1 默认行为
| 项 |
默认 |
说明 |
| 行为埋点 |
关 |
不主动上报 |
| 崩溃栈 |
询问 |
崩溃时弹窗询问是否上报 |
| 模型对话 |
走你选择的 Provider |
相应隐私协议适用 |
| 反编译片段 |
调用时即送 |
由你显式触发 |
| 样本本体 |
永不上传 |
仅本地分析 |
25.2 加密存储项
下列条目以受保护方式存储在本机:
- 登录凭证
- 模型 Provider API Key
- 外部工具服务 Bearer Token / 凭证
- 通道(微信 iLink)会话状态
25.3 会话内容
会话内容仅在本机持久化;只有你主动调用模型时才把对应消息按 Provider 协议发出。
26. 升级与版本号参考
26.0 配置目录品牌迁移(zcode → avlcode)
自 v0.6.30-alpha 起,内部标识统一由 zcode 迁移为 avlcode,启动 / 打开工作区时自动完成、有 toast 提示、保留旧名双读回退:
| 旧 |
新 |
全局配置目录 ~/.config/zcode/ |
~/.config/avlcode/ |
工作区内 .zcode/(含 rag/、sbom.* 等) |
.avlcode/ |
环境变量 ZCODE_…(如 ZCODE_DISABLE_VENV_AUTODETECT) |
AVLCODE_… |
配置 YAML 与 frontmatter 字段(x-zcode-… 等) |
对应 avlcode / x-avlcode-… |
UA 尾部令牌 zCode/<ver> |
avlcode/<ver> |
SSH 远端 ~/.zcode、远程工作区 .zcode |
~/.avlcode、.avlcode |
界面与对外输出里残留的「zCode」统一为「AVL Code」。脚本里写死过旧路径 / 旧变量的,建议改用新名。
26.1 版本号格式
MAJOR.MINOR.PATCH[-PRERELEASE][+BUILD]
| 段 |
含义 |
| MAJOR |
不兼容更改(数据迁移 / 配置不兼容) |
| MINOR |
新功能(向后兼容) |
| PATCH |
修复 / 优化(向后兼容) |
| PRERELEASE |
alpha.<n> / beta.<n> / rc.<n> |
| BUILD |
构建元数据,不参与版本比较 |
26.2 升级路径
官网下载页按平台提供构建(Windows x64 / macOS 通用版·Apple 芯片版 / Linux x64·AppImage·Snap·WebKit4.1 / 银河麒麟 V10 SP1 / 统信 UOS V20),走 alpha 渠道、恒为最新构建。
26.3 升级签名
| 步骤 |
说明 |
| 下载 |
从内部升级源拉到本地缓存 |
| 验签 |
国密签名 + 嵌入公钥校验 |
| 替换 |
验签通过后原子替换主二进制 |
| 回滚 |
验签失败 / 启动失败时自动回滚到上一版本 |
27. 附录 A:术语表
| 术语 |
定义 |
| 工作区(Workspace) |
绑定一个本地目录与一组配置的执行单位 |
| 会话(Session) |
一次连贯的对话上下文,本地持久化 |
| 工作模式 |
五种之一(auto / plan / prepare / execute / assess) |
| 助手 / 人设(Persona) |
决定 AI 风格与边界的提示词集合 |
| 工具(Tool) |
AI 可调用的能力 |
| 技能(Skill) |
提示词模板包 |
| 子任务(Subtask) |
助手派发给独立子助手执行的子工作 |
| 计划(Plan) |
结构化任务规划 |
| 待办(Todo) |
结构化任务清单 |
| 历史折叠(Compact) |
把早期消息压缩为摘要,原消息仍保留 |
| 审批(Approval) |
工具调用前的决策:拒绝 / 仅本次允许 / 始终允许 |
| 随行通讯(Messaging) |
把 AI 助手接入 IM 通道 |
| 共享额度 |
由组织统一管理 / 计费的模型调用额度 |
| 错误抽屉 |
把最近的工具与服务错误集中展示的面板 |
| 配对码 |
6 位数字、10 分钟有效,用于 IM 绑定 |
| SBOM |
软件物料清单,列出项目用到的第三方组件(CycloneDX / SPDX / DSDX / SWID) |
| VEX |
漏洞可利用性说明(OpenVEX),标注漏洞在本项目是否真正受影响 |
| OSV / KEV |
OSV:开源漏洞库;KEV:CISA「已知被利用漏洞」名录 |
| CVSS |
通用漏洞评分系统,本工具支持 v2 / v3 / v4 向量定级 |
| 哨兵(Sentinel) |
读 / 写 / 执行文件时自动扫描并阻断恶意的拦截层,与检测能力解耦 |
| VirusTotal AI / GTI |
云端威胁情报后端:VirusTotal AI(免费托管)/ Google Threat Intelligence(自带 Key) |
| 自修复循环 |
遇错按类自动选修复策略(压缩 / 切换 / 退避 / 终止)的机制(§16.5) |
| AgentParallel |
一次拆 2–16 路并行 fan-out 的子任务工具(§16.3.1) |
| GRAI+KISS |
自动反省框架:GRAI 归因 + KISS(Keep/Improve/Stop/Start)教训分类(§16.6) |
| 复述意图 |
会话首条消息开工前 AI 复述目标 / 计划请你确认(intent_confirm,默认开) |
| 全库 RAG |
code.search / code.ask:非向量(BM25 + 标识符切分 + 中日韩二元切分,零 embedding)符号级全库检索 / 问答(§7.12.3) |
28. 附录 B:参数取值速查
28.1 默认上限
| 项 |
默认 |
上限 |
| 单次工具返回 |
4096 字节 |
256 KiB |
| 单次出站消息 |
3800 字 |
取决于 IM |
| 终端命令超时 |
60_000 ms |
可调 |
| 后台任务并发 |
64 |
不可调 |
| 后台任务终态保留 |
30 分钟 |
不可调 |
| 启动自动恢复任务数 |
5 |
不可调;其余转手动恢复 |
| AgentParallel 腿数 |
2–16 |
< 2 报错、> 16 截断 |
| AgentParallel 整体超时 |
600 秒 |
上限 1800;超时未完成腿转 pending |
| AgentParallel 单腿输出 |
8000 runes |
超出截断,提示取全文 |
| 自愈尝试上限(压缩/切换/退避/产出) |
2 / 3 / 3 / 3 |
自愈历史可下调,每类至少 1 |
| RAG 索引文件数 / 构建超时 |
4000 / 120s |
每文件 ≤ 400 符号·≤ 4 MiB;code.search 默认 20 命中、code.ask 默认 12 |
| SBOM 组件预览 / audit 预览 / vex 语句预览 |
50 / 30 / 40 |
完整结果在落盘文件 |
| SBOM 可达性扫描 |
≤4000 文件 · ≤256 KiB/文件 |
vex 可达性分析上限 |
| 配对码 TTL |
10 分钟 |
不可调 |
| 登录凭证 TTL |
23h45m |
不可调 |
28.2 文件大小硬上限(工具读取)
| 工具 |
上限 |
read (lines) |
256 KiB |
read (bytes) |
256 KiB |
list |
4 KiB |
glob |
256 KiB |
grep |
256 KiB |
exec |
256 KiB |
28.3 退出码语义
| 码 |
含义 |
来源 |
| 0 |
成功 |
CLI / 工具 |
| 1 |
通用错误 |
CLI / 工具 |
| 2 |
参数错误 |
CLI |
| 64–78 |
sysexits 系列 |
CLI |
| 124 |
超时 |
exec |
| 137 |
被 kill |
exec |
29. 附录 C:常见正则与通配符语法
29.1 文件名通配(glob)
| 字面 |
含义 |
* |
匹配任意字符(不跨 /) |
** |
匹配任意目录层级 |
? |
匹配单字符 |
[abc] |
字符集 |
[!abc] |
否定字符集 |
{a,b,c} |
集合分支 |
示例:
| 表达式 |
意图 |
**/*.go |
所有 Go 文件 |
src/**/*test*.{ts,tsx} |
src 下含 test 的 TS/TSX |
[Mm]akefile |
Makefile / makefile |
29.2 内容搜索(RE2)
| 元字符 |
含义 |
. |
单字符(不含换行) |
\d \w \s |
数字 / 词字符 / 空白 |
^ $ |
行首 / 行尾 |
\b |
词边界 |
(?i) |
行内忽略大小写 |
(...) |
捕获组 |
(?:...) |
非捕获组 |
+ * ? |
量词 |
{n,m} |
重复 n–m 次 |
不支持反向引用 \1、回溯前瞻 (?<=…) 等 PCRE 扩展。
30. 附录 D:键值清单导出格式
设置面板支持把当前所有设置导出为单一 YAML 文件,便于版本管理与团队同步。
30.1 顶层结构
version: 1
exported_at: 2026-07-28T08:00:00Z
exported_by: AVL Code v0.7.28-alpha
sections:
account: { … }
models: { … }
personas: { … }
tools: { … }
skills: { … }
messaging: { … }
plugins: { … }
general: { … }
workspaces: [ … ]
30.2 节字段速查
| 节 |
主要字段 |
account |
provider_priority |
models |
providers[](不含明文 key) |
personas |
[].id name personality soul_path |
tools |
defaults policies[].mode policies[].overrides |
skills |
signature_required extra_search_paths[] |
messaging |
channel route_strategy throttle |
plugins |
installed[].id installed[].version installed[].enabled |
general |
theme language tray_enabled autostart_enabled font_size |
workspaces |
[].id path name archived default_mode mode_persona{} |
30.3 注意
- 凭证类字段在导出时不会写入;目标设备需重新登录或填写。
- 同步开关单独维护,不在导出范围内。
License:AVL Code Proprietary Software License — Copyright © 2024–2026 Antiy. All Rights Reserved.
文档版本:2026-07-28,对应应用版本 v0.7.28-alpha。