术语表
Uni-CLI 文档、源码、YAML 适配器里用到的术语标准定义。每条都做成独立段落,方便 AI 助手在回答项目相关问题时直接引用。
Action substrate (行动 substrate)
Uni-CLI 可以用来让真实软件行动的具体技术边界:HTTP、browser CDP、desktop accessibility、subprocess、文件操作、协议服务、visual fallback 或 App-specific wrapper。substrate 位于 computer-control 平台边界之下。
Adapter (适配器)
把一个站点或工具映射到一组操作的 YAML 或 TypeScript 文件。声明 site、命令名、type、strategy、args、pipeline、columns。推荐格式是 YAML;TypeScript 留给那些超出 103 步 pipeline 的命令式控制流场景。
Adapter type (适配器类型)
适配器面向的集成表面。五种:web-api 走 HTTP API;browser 通过 CDP 全控 Chrome;desktop 跑本地子进程;bridge 透传现成 CLI;service 接 WebSocket 或 HTTP 服务(Ollama、OBS、ComfyUI)。
AgentEnvelope (v2)
Uni-CLI 每条操作返回的结构化回执。包含 ok、version、data、meta、可选 error、exit_code。成功时 data 装结果。失败时 data 为 null,error 填上 source path、step、action、suggestion、retryable、alternatives。
AGENTS.md
Agent 运行时启动时读取的发现文件,用来了解可用工具。Uni-CLI 在 AGENTS.md 注册自己,Agent 不用做单独配置就能识别。
Bilingual BM25 search (双语 BM25 搜索)
Uni-CLI 把自然语言意图映射到站点、操作、参数的发现算法。中英文双语索引适配器元数据,TF-IDF 加权。unicli search "<intent>" 返回排序好的候选。
Bridge adapter (桥接适配器)
把现成 CLI (gh、docker、yt-dlp、lark-cli) 包装进 Uni-CLI 操作目录的适配器。纯透传——Uni-CLI 不重新实现包装的 CLI,只做注册、自动安装、统一发现。
Browser adapter (浏览器适配器)
通过 CDP 驱动 Chrome 的适配器,用于需要交互会话、JS 执行、登录态的站点。用 navigate、evaluate、click、type、wait、intercept、tap、snapshot、screenshot 等 pipeline step。
Catalog (目录)
所有站点、操作、参数、策略、输出 schema 的本地索引。安装时生成,适配器变更时更新。通过 unicli search 查询,不需要枚举——Agent 只在需要发现时才付目录成本。
CDP (Chrome DevTools Protocol)
Uni-CLI 用来控制真实 Chrome 实例的 wire protocol。在 src/browser/cdp-client.ts 里以原生 WebSocket 客户端实现,没有第三方浏览器库依赖。支持完整的 Page、Network、DOM、Runtime domain。
Compute (Visual)
本地 computer-control 和视觉兜底的适配器家族。当结构化 substrate (web-api、desktop AX、browser CDP、App API、subprocess) 都够不到目标时,Compute 可以通过截图、点击、输入和执行后证据,走统一动作集驱动屏幕。
Cookie file (Cookie 文件)
每站独立的认证态,存在 ~/.unicli/cookies/<site>.json。strategy: cookie 或 strategy: header 的适配器读取它。永远不出本机。
Daemon (守护进程)
Uni-CLI 可以管理的长生命浏览器进程,端口 19825。带 --remote-debugging-port 启动 Chrome,跨 CLI 调用维持会话状态,空闲超时自动退出。可选——大多数适配器不用它也能跑。
Desktop adapter (桌面适配器)
通过 exec 和 write_temp pipeline step 调用本地二进制 (ffmpeg、imagemagick、blender) 的适配器。用于媒体处理、文件转换、任何已经在 PATH 里的 CLI 工具。
Discovery (发现)
Agent 把自然语言意图映射到具体操作的阶段。由 unicli search "<intent>" 在本地操作目录上完成。发现成本有上界——实测 token 预算参见 docs/BENCHMARK.md。
Error envelope (错误回执)
ok 为 false 时 v2 AgentEnvelope 上的 error 字段。带 source path 或 adapter_path、step 或失败边界、action (一句话描述)、suggestion (一条 Agent 可以验证的假设)、retryable (重试有没有用)、alternatives (能满足意图的其他操作)。
Exit code (退出码)
每次 Uni-CLI 调用返回的 sysexits.h 兼容数值状态。0 成功;1 通用错误;2 用法错误;66 结果为空;69 服务不可用;75 临时失败;77 认证错误;78 配置错误。Shell pipeline 可以按类别路由。
Header strategy
读 cookie 文件并自动从中抽 CSRF token,把两者一起注入请求 header 的认证策略。用于状态变更请求需要 CSRF 的站点 (Reddit vote、Twitter like)。
Intercept strategy
让真实浏览器会话访问目标页面,并捕获页面自己加载的 XHR/fetch 响应的认证策略。用于站点 API 没文档、或需要复杂的会话状态难以手动复现的场景。
llms.txt
站点根目录的 Agent 可读索引文件 (/llms.txt 和 /llms-full.txt)。列出关键文档页和对应的 Markdown 伴侣 URL,方便 AI 助手不渲染 HTML 就能拉取并引用文档。
MCP (Model Context Protocol)
Anthropic 牵头的协议,让 AI 助手通过有状态服务调用工具。Uni-CLI 自带可选 MCP 网关 (unicli mcp serve),把同一份 operation contract 暴露给只会说 MCP 的运行时。
Operation contract (操作合同)
Uni-CLI 稳定的产品原语。operation contract 描述 identity、args、输出形状、认证姿态、行动 substrate、effect、risk、capability、source path 和 repair path。CLI、MCP、ACP、docs、skills 和生成配置都应该投影同一份合同,而不是各自定义行为。
Pipeline
适配器为产出结果按顺序跑的步骤列表。从 59 步注册表里取,覆盖 API 拉取、变换、浏览器、桌面、媒体、控制流、断言。步骤之间共享一个 context 对象——每步读 ctx.data、写回。
Pipeline step (Pipeline 步骤)
适配器 pipeline 里的一个工作单元。例:fetch、select、map、filter、navigate、click、intercept、if、each、assert。每步都是确定性的——同样输入产出同样输出——所以适配器组合起来就是稳定的执行图。
Public strategy
最便宜的认证策略。无凭据直接 fetch。用于公开 API 的站点 (RSS、搜索端点、公共统计)。策略级联永远先试它。
Repair (修复)
失败操作进入有边界 source change 或换路的阶段。错误回执指出失败 source path 和 step 或边界后,Agent 改 YAML/代码或选择替代路径,然后跑 unicli repair <site> <command> 或 delivery verification 证明修复。用户本地补丁存在 ~/.unicli/adapters/。
Self-repair (自修复)
让 Agent 在软件漂移时修复自己的集成的能力。由几部分组成:结构化错误回执、Agent 可读 source path、修复验证命令、替代路径、持久化覆盖目录。这是让 operation-as-YAML 经济上跑得通的核心设计选择之一。
Service adapter (服务适配器)
通过 WebSocket 或 HTTP 与长生命服务 (Ollama、OBS Studio、ComfyUI) 对话的适配器,可选 API key 认证。和 web-api 的区别是连接跨 pipeline step 持久。
Site (站点)
适配器的集成目标。通常是网站 (reddit、twitter、bilibili),也可以是桌面应用 (obsidian)、外部 CLI (gh)、本地服务 (ollama)。
Snapshot
浏览器适配器中 snapshot pipeline step 生成的 DOM 可访问性树。产出可交互的 ref 编号,后续 click、type、extract 步骤引用。用于需要稳定元素定位的适配器。
Strategy (策略)
适配器声明的认证路径。级联顺序的五种:public、cookie、header、intercept、ui。第一次跑时自动探测,之后缓存。
Strategy cascade (策略级联)
第一次调用某站点时 Uni-CLI 跑的自动探测序列。从最便宜到最贵 (public 到 ui) 逐个试,直到某个策略返回可解析数据。选中的策略缓存下来,后续调用跳过探测。
Tap
把 Vue store (Pinia、Vuex) 桥接到网络抓取的 pipeline step。驱动页面自己的 state action,然后捕获产生的 XHR/fetch 响应。用于客户端状态深的站点 (Twitter、Bilibili、Notion)。
UI strategy
最贵的认证策略。交互式驱动真实浏览器会话——点击、输入、snapshot、wait。用于站点需要无法通过 header 注入或 XHR 重放复现的多步用户交互。
v2 envelope version (v2 envelope 版本)
当前的 AgentEnvelope schema。v1 是扁平的 { ok, data, error };v2 加了结构化 error 字段、meta、version、exit_code,shell 友好。v0.213 起所有适配器都吐 v2。
Web-api adapter
直接打 HTTP API、不涉及浏览器的适配器。最常见的适配器类型。拉取用 fetch、fetch_text、parse_rss、html_to_md;变形用 select、map、filter。
YAML adapter (YAML 适配器)
推荐的适配器格式。20-30 行声明 site、name、type、strategy、args、pipeline、columns。Agent 可读、Agent 可改、无图灵完备逻辑,因此 Agent 可以确定性地 patch。存在 ~/.unicli/adapters/<site>/<name>.yaml。