🦊 LingXiAgent / Docs 官方文档中心
Overview

LingXiAgent 核心技术概览

LingXiAgent 是一套纯 Swift 原生构建的终端 AI 编程智能体。上下文由 P-Core(驻留在模型请求中的推理上下文)与 E-Core(上下文对象存储与召回)分工承担,原生适配 macOS、Linux 与 Windows,并为 macOS arm64、Linux x86_64、Windows x86_64 发布预编译安装包。凭据与会话保存在本机数据目录,推理请求直连你所配置的 Provider 端点。

⚡ 原生编译,无脚本运行时
Swift 原生二进制 + Vendor/OpenTUI C ABI 终端渲染,不依赖 Node.js / Electron。启动耗时与内存占用随终端与宿主环境变化,本文档不给出未经复现的数值。
🧠 P-Core / E-Core 上下文分工
P-Core 决定什么留在模型请求上下文里,E-Core 保存被 page-out 的完整对象并可精确还原或语义召回。淘汰由 P 侧保留策略决定,E-Core heat 不参与 eviction。
🛡️ 宿主感知的请求画像
官方订阅渠道的 User-Agent 与伴随 Header 按真实宿主的 OS / 架构动态生成,见客户端请求画像。文档不承诺任何“绕过风控”的效果。
🔌 MCP · Skills · ACP 扩展生态
MCP 支持 stdio 与 streamableHTTP 双通道,OAuth 授权走 PKCE;Skills 以 SKILL.md 目录形式发现;ACP 供 Zed 等编辑器接入。
Installation

全平台一键原生安装

官方安装脚本会自动探测系统类型与 CPU 架构,从最新 GitHub Release 下载对应预编译包(macOS arm64、Linux x86_64、Windows x86_64)并配置环境变量。每个发布资产附带同名 .sha256。Intel Mac 与 AArch64 Linux 没有预编译包,在具备 Swift 工具链时脚本会自动浅克隆源码极速编译。

macOS / Linux (Bash / Zsh · 官方推荐) install.sh
$ curl -fsSL https://agent.lingxifox.cn/install.sh | bash
Windows (PowerShell) install.ps1
> irm https://agent.lingxifox.cn/install.ps1 | iex
安装产物与入口: 安装脚本会自动部署三个独立入口与扩展运行时:
  • lingxiagent:主程序入口(交互式 TUI、CLI 子命令、ACP 守护进程);
  • LingXiTUI:独立轻量终端 TUI 视图入口;
  • LingXiCoreHost:内核服务宿主进程(Stdio IPC 交互);
  • LingXiAgent_LingXiCore.bundle 与 Sidecars(浏览器自动化支持)。
推荐系统依赖: Agent 的 grep 与 glob 代码检索工具运行时依赖系统的 ripgrep (rg)。建议提前通过包管理器安装: macOS (brew install ripgrep) · Linux (apt install ripgrep 或 pacman -S ripgrep)。
Quickstart

首轮启动与会话管理

LingXiAgent 支持全交互式 TUI 模式与无头命令行执行模式:

# 1. 直接启动全屏双栏 TUI 终端
$ lingxiagent
# 2. 携带初始提示词秒级开启任务
$ lingxiagent "帮我审查当前 Git 仓库的未提交修改并给出优化建议"
# 3. 恢复历史会话 (交互式弹窗或恢复上一次)
$ lingxiagent-ops resume --last
Configuration

配置文件规范 (config.json)

LingXiAgent 的全局配置位于数据目录 ~/.lingxiagent/,按职责分成四个文档,各自带 JSON Schema($schema 指向 lingxiagent.lingxifox.cn/schema/*.json):config.json(行为与预算)、providers.json(自定义 Provider)、mcp.json(MCP 服务器)、plugins.json(插件)。四个文档均由单一数据根解析,不存在按项目目录覆盖的同名配置文件。

// ~/.lingxiagent/config.json(节选自随包默认值)
{
  "$schema": "https://lingxiagent.lingxifox.cn/schema/config.json",
  "version": 1,
  "core": { "locale": "system", "logLevel": "info" },
  "agent": {
    "executionProfile": "workspace",
    "permissionPolicy": "ask",
    "codeIntelligenceEnabled": false,
    "pCoreProjectMaxCharacters": 32768,
    "eCoreRecallMaxCharacters": 262144,
    "maxConcurrentSubagents": 4,
    "maxSubagentDepth": 3,
    "maxTotalRunsPerRootRun": 32
  },
  "runtime": {
    "commandTimeoutSeconds": 60,
    "interactive": false,
    "execution": {
      "foregroundShellSeconds": 60,
      "agentRunSeconds": 1800,
      "providerSeconds": 120,
      "maximumSeconds": 3600
    }
  },
  "context": {
    "addressableBudget": 1048576,
    "reserve": 22000,
    "economicThreshold": 272000,
    "pCore": { "target": 220000, "softLimit": 235000, "hardLimit": 250000 },
    "eCore": {
      "storageBudget": 456576,
      "recallBudget": 350000,
      "pressureThreshold": 0.85,
      "useRemainingBudget": true
    },
    "fabric": {
      "objectizationThreshold": 32768,
      "fullSendCount": 4,
      "placeholderExcerpt": 1024,
      "recallMaxBytes": 16384,
      "recallMaxLines": 400,
      "heatTrackingEnabled": true,
      "heatDecayHalfLifeSeconds": 3600
    }
  }
}

旧键 l1ProjectMaxCharacters / l2MaxCharacters 与 context.l1/l2/l3、ecoreStorageEnabled 仍可读,用于向后兼容;读取优先级为「新 P/E 键 → 旧键 → 默认值」,写入只落新键。这些旧名不代表三级缓存架构,当前架构只有 P-Core 与 E-Core。

Security

权限模型 (Permission Engine)

内置三层权限拦截引擎,杜绝任何未授权的静默危险操作:

allow
自动放行: 无需人工确认直接执行。常用于只读类工具(如 read_file、grep_search)。
ask
交互确认(默认): 在 TUI 中弹出精确 Diff 或命令预览弹窗,支持 y 放行单次、a 本次会话全部放行、n 拦截。
deny
彻底阻断: 智能体将直接收到权限被管理员显式拒绝的反馈,严禁执行。
Credentials

凭据保险箱 (credentials.vault)

所有 Provider 凭据、MCP 环境变量与 OAuth token 统一存放在数据目录下的 credentials.vault,由 UniversalCredentialStore 读写。配置文件里不允许出现明文凭据:providers.json 与 mcp.json 的凭据字段只接受 {env:VAR_NAME} 或 {vault:...} 引用,Schema 用正则强制。

加密与完整性

AES-256-GCM 认证加密,AAD 绑定 "LingXiAgent credentials.vault v2";密文结构自带版本号,版本不符直接拒绝读取而不是猜。

两级密钥来源

Tier 1:提供口令(LINGXI_CREDENTIALS_PASSPHRASE)时用 PBKDF2-HMAC-SHA256 派生,迭代次数不低于 100,000。
Tier 2:无口令时使用机器绑定的保护性密钥——本机生成的 32 字节随机熵,经 HKDF 派生,密钥文件每次读取都重新收紧为 0600。

Keychain 迁移回退

macOS 系统 Keychain 中的历史条目只做一次只读迁移:命中后立刻写入保险箱,之后不再查询 Keychain。写入 Keychain 的旧路径已停用。这解释了「保险箱 + Keychain 回退」的双重读取顺序。

Architecture

P-Core 与 E-Core:上下文双核职责

一次工具调用可能返回上万行测试日志或整份文件。如果这些内容全部留在模型请求里,上下文窗口会被低价值数据填满,既推高成本,也让模型注意力被稀释。LingXiAgent 因此把「留在请求里的内容」与「完整内容的存放与取回」拆成两个核心。

P-Core · Prompt-resident reasoning context PCoreContextEngine

组装真正发给模型的请求内容,并决定什么可以留在窗口内。
组成:Stable Prefix(稳定前缀,配合上游 Prompt Cache)、Growing Context(本轮增量与会话轨迹)、E-Core Index Projection(只投影引用与摘要,不含完整对象)。

E-Core · Context object store / recall ECoreObjectStore · ECoreReference

保存被 page-out 的完整对象:写入时得到稳定的 ContextObjectID,向 P-Core 只提交引用与摘要;需要时按 ID exact restore,或经检索层做 semantic recall。

职责边界(易被误解处):P-Core 的淘汰由 P 侧保留策略决定;E-Core heat 只服务于召回排序、缓存与可观测性,不驱动 P-Core eviction。历史文档中的「三级缓存 L1/L2/L3」语义已废弃,当前架构只有上述两个核心。
Context Flow

上下文预算、page-out 与召回

下列阈值均为 config.json 中 context 分段(ContextCacheConfiguration)的默认值,可按模型窗口调整;表内键名相对 context 书写,语义以 Sources/LingXiCore/Configuration/ConfigurationTypes.swift 为准。

配置键 默认值 作用
fabric.objectizationThreshold32768工具输出超过该字节数即对象化写入 E-Core
fabric.fullSendCount4同一对象前 N 次仍可完整送回上下文
fabric.placeholderExcerpt1024留在 P-Core 的占位摘录长度
fabric.recallMaxBytes / recallMaxLines16384 / 400单次召回返回的上限
pCore.target / softLimit / hardLimit220000 / 235000 / 250000P-Core 驻留预算;超限时按 P 侧保留策略淘汰
eCore.recallBudget / storageBudget350000 / 456576召回窗口与对象存储预算
eCore.pressureThreshold0.85存储压力水位(观测与治理阈值)
fabric.heatDecayHalfLifeSeconds3600heat 衰减半衰期,仅用于召回排序与观测
读写路径:工具输出 → 超阈值则 objectize(得到稳定 ID)→ P-Core 仅持有引用与摘要 → 模型需要时按 ID exact restore,或经 context_recall 语义召回 → 取回内容仍受 recall 上限约束。E-Core 是 P/E 架构的必选逻辑核心,不存在「关掉 E-Core 还能正常 compaction」的状态;eCorePersistenceEnabled 切换的是载荷是否持久化。
Frontend Contract

多前端共用同一套 Core 投影

LingXiTUI、LingXiWebUI、macOS GUI 与 ACP 接入的编辑器都不自行维护真值。它们通过 LingXiClient 连接 CoreHost,由 LingXiApplication 做状态投影与 reducer:Goal、Todo、分支预测、P/E 上下文、Subagent 生命周期、Permission / Question 交互、Git 与 Workspace 状态全部来自 Core 的同一份投影。

  • ▸ 传输:Stdio IPC(TUI / CLI)与 HTTP + SSE(lingxiagent serve)
  • ▸ 契约:Wire 协议与前端契约由 ContractTests 跨平台校验
  • ▸ 后果:新增前端不需要重复实现会话、权限或上下文逻辑
Built-in Tools

shell:跨平台终端执行与沙箱

执行宿主命令并捕获标准输出与错误。深度集成了跨平台沙箱引擎与超时看门狗(Watchdog):

参数名 类型 说明
command string 要在 shell 中执行的命令字符串
cwd string? 工作目录,必须在工作区边界内
timeoutSeconds integer? 超时保护时间(默认 300 秒),超时后级联清理进程树
跨平台清理机制: POSIX 平台(macOS/Linux)分配独立进程组并通过 kill(-pgid, SIGKILL) 深度灭活;Windows 平台自动通过 taskkill /F /T /PID 递归斩断子进程树,杜绝孤儿进程占用端口。
Built-in Tools

后台异步任务与模型休眠联动

针对长时间编译、测试套件运行或持续服务探活,LingXiAgent 原生提供了后台命令异步执行引擎与智能休眠挂起唤醒机制:

  • run_background_command:启动异步后台任务(必须显式配置有效超时时间 timeout_seconds),秒级返回分配的任务 ID(如 bg-xxxx)。
  • 智能休眠挂起 (Zero Token Idle):模型在启动后台任务后,前台回合不终结而是自动挂起休眠,彻底避免盲目轮询造成的 Token 巨额浪费。
  • 看门狗自动唤醒与结果收尾:任务正常退出、超时终止或报错时,底层事件总线立即自动唤醒模型,并将任务最新的标准输出(stdout/stderr)作为系统上下文无缝注入,驱动模型直接向用户汇报收尾成果。
  • /tasks 交互管理:用户可在终端中随时输入 /tasks 呼出任务弹窗面板,查看活动任务日志或使用 /tasks kill <id> 实施定向强杀。
Built-in Tools

read_file / write_file:版本乐观锁与安全写入

文件读写严格遵循安全路径包含(Path Containment),禁止符号链接逃逸与越界读取:

  • read_file:自动过滤隐藏凭证哨兵(如 .env、id_rsa),支持行号切片展示。
  • write_file:写入前自动比对目标文件版本哈希(Optimistic Concurrency Control),覆盖前自动于工作区进行备份隔离。
Built-in Tools

edit_file / patch:精准局部修补

坚决杜绝大文件“全量重写”带来的 Token 浪费与偶发幻觉断行。智能体使用精确字符串替换块:

{
  "targetFile": "/path/to/source.swift",
  "startLine": 42,
  "endLine": 48,
  "targetContent": "func oldImplementation() {\n    ...\n}",
  "replacementContent": "func newOptimizedImplementation() {\n    ...\n}"
}
Built-in Tools

ask_question:交互式问答与决策上浮

当需求存在歧义或有多个架构方案需要用户定夺时,Agent 会主动调用此工具,在终端界面以精美的方向键导航浮层供用户勾选(单选/多选/自定义输入),彻底告别大模型臆想。

Language Server Protocol

code_intelligence:多语言 LSP 语义能力矩阵

LingXiAgent 内置强大的多语言 LSP 编排器(LSPCoordinator),通过标准的 Language Server Protocol(Stdio JSON-RPC)与系统安装的代码语言服务器进行异步通信,为 Agent 提供精准的代码定义、引用跳转、符号表查询、编译期诊断、Hover 文档与智能补全能力。

Swift
sourcekit-lsp (Xcode / Linux toolchain)
Python
pyright-langserver / basedpyright / pylsp
TypeScript / JS
vtsls / typescript-language-server
Rust
rust-analyzer (Cargo ecosystem)
Go
gopls (Go tools)
C / C++
clangd (LLVM tooling)

支持的六大精确语义 Action

Action LSP 规范方法 入参规格 能力描述与容灾机制
definition textDocument/definition path, line, character 获取目标符号在全工程的精确定义位置与源码切片
references textDocument/references path, line, character 跨文件查找引用调用方,用于安全重构与影响面分析
document_symbols textDocument/documentSymbol path 返回单文件符号语法树(Class, Struct, Function, Enum 等)
diagnostics textDocument/publishDiagnostics path 获取编译器即时语法/类型报错与警告提示
hover textDocument/hover path, line, character 获取符号的类型签名、DocString 及 Markdown 文档
completion textDocument/completion path, line, character 获取当前上下文的代码补全候选项与方法补全建议
🛡️
优雅平滑降级保障:当目标语言的 LSP Server 未在宿主机安装或偶发崩溃退出时,LSPCoordinator 会静默自动降级至基于 AST 正则与 Project Index 缓存分析,绝不中断 Agent 正常任务执行流程。
Code Formatter

format_file:多语言代码格式化引擎

对标 OpenCode 标准的高性能多语言格式化编排器(FormatCoordinator)。支持在代码写入后自动触发格式化,亦支持 Agent 显式调用 format_file 对单个文件或全工作区批量排版。

支持的语言矩阵与工具链优先级

语言 / 生态 文件扩展名 首选格式化器 平滑降级备选 本地优先探测机制
Swift .swift swift-format - Xcode Toolchain / 系统 PATH
Python .py, .pyi ruff format black .venv/bin/, venv/bin/, PATH
TS / JS / Web .ts, .tsx, .js, .jsx, .json, .md prettier --write biome format node_modules/.bin/, npx
Rust .rs rustfmt - ~/.cargo/bin/, PATH
Go .go gofmt -w goimports -w $GOPATH/bin, PATH
C / C++ .c, .cpp, .h, .hpp clang-format -i - 系统 PATH
✨
写盘即美观 (Auto-format on Save):在 write_file、edit_file 或 apply_patch 写入成功后,系统自动后置调用对应语言格式化器,并带有 15 秒看门狗保护。若工具未就绪,仅记录静默警告,绝不破坏生成结果。
Knowledge Graph

codebase_graph:代码图谱与拓扑分析

对标 codebase-memory-mcp 架构的高性能原生代码知识图谱引擎(CodebaseGraphEngine)。提取 AST 结构实体与多维调用关系,为 Agent 提供宏观架构认知与微观调用拓扑深度追溯。

支持的四大核心动作 (Actions)

动作 (action) 核心参数 功能与返回说明
architecture - 提取系统分层(api / core / infra / test)、模块间依赖边统计与 Top 15 核心热点函数(扇入 Fan-in 排序)
trace target, direction, depth 沿 calls 有向边进行 BFS 拓扑遍历:inbound 追查调用方,outbound 追查下游被调用方(深度 1-5 层)
search target, kind 图节点快速拓扑检索,可按 class、struct、function、interface 进行类别过滤
refresh - 基于文件修改时间戳(mtime)进行增量极速刷新或全量重建图谱缓存(落盘于 ~/.lingxiagent/cache/graph/)
🗺️
零依赖本地持久化:图谱数据完全落盘于本地紧凑缓存,无需额外部署 Neo4j 等外部数据库,秒级完成大型工程的符号与调用关系水合。
Models & Auth

官方订阅直连 (ChatGPT Plus / Claude Code)

无需购买第三方转接 API,使用您现有的官方账号直接登录:

# 登录 OpenAI ChatGPT Plus/Pro (Codex OAuth 浏览器授权)
$ lingxiagent-ops auth login openai-codex
# 登录 Anthropic Claude Code 官方订阅
$ lingxiagent-ops auth login anthropic-claude-subscription
# 查看当前所有提供商状态与配额
$ lingxiagent-ops auth status
Custom Providers

通用模型接入与 Prompt Cache

自定义渠道写在 ~/.lingxiagent/providers.json(Schema:lingxiagent.lingxifox.cn/schema/providers.json)。providers 是以渠道 id 为键的对象;adapter 只接受三种协议契约:openai-compatible、openai-responses、anthropic-messages;options.baseURL 必填,apiKey 若出现则必须是引用形式。

// ~/.lingxiagent/providers.json
{
  "$schema": "https://lingxiagent.lingxifox.cn/schema/providers.json",
  "version": 1,
  "providers": {
    "deepseek": {
      "name": "DeepSeek 官方",
      "adapter": "openai-compatible",
      "options": {
        "baseURL": "https://api.deepseek.com/v1",
        "apiKey": "{env:DEEPSEEK_API_KEY}"
      },
      "models": {
        "deepseek-chat": { "name": "DeepSeek V3" },
        "deepseek-reasoner": { "name": "DeepSeek R1" }
      }
    }
  }
}
  • ▸ 凭据不可写死:apiKey 的 Schema 正则只接受 {env:VAR} 与 {vault:...},明文 key 会被校验拒绝。
  • ▸ 目录与运行时分离:模型元数据来自 models.lingxifox.cn/models.json;能否选用还取决于本机运行时契约与账号可用性,两者取交集。
  • ▸ Prompt Cache:Anthropic 渠道使用 cache_control 断点,OpenAI 兼容渠道读取 prompt_cache_hit_tokens 等回传字段计入观测;P-Core 的稳定前缀就是为命中缓存设计的。
  • ▸ 命令入口:lingxiagent-ops auth status <product>、lingxiagent-ops models sync <product>;TUI 内用 /providers、/connect、/model。
Agent Client Protocol

ACP 协议支持与 Zed / IDE 集成

LingXiAgent 完整支持Agent Client Protocol (ACP)——现代编辑器(如 Zed IDE、JetBrains、Neovim 等)与自主编程智能体通信的开放行业标准协议。

启动 ACP 服务端模式

# 启动标准 ACP 服务端(基于 Stdio 的 JSON-RPC 2.0 双工通信)
$ lingxiagent-ops acp

在 Zed IDE 中配置 LingXiAgent

打开 Zed 编辑器设置文件(~/.config/zed/settings.json),在 assistant 字段中配置外部 ACP 提供商:

{
  "assistant": {
    "version": "2",
    "default_model": {
      "provider": "acp",
      "model": "LingXiAgent"
    },
    "providers": {
      "acp": {
        "command": "lingxiagent-ops",
        "args": ["acp"]
      }
    }
  }
}

支持的 ACP 标准指令集

  • initialize:握手协商协议版本(2024-11-05)与特性声明(streaming, modes, loadSession)。
  • session/new:在指定工作目录(cwd)创建全新的会话上下文。
  • session/prompt:向 Agent 提交 Prompt 任务;后台自动通过 session/update 实时流式推送思考块(thoughtChunk)、文本增量(textDelta)与工具调用。
  • session/cancel:响应用户取消操作,秒级中断正在执行的模型推理与底层进程树。
Extensions

MCP 运行时 (stdio / streamableHTTP)

MCP 服务器写在 ~/.lingxiagent/mcp.json 的 servers 数组里(Schema 同名路径)。两种传输:stdio 用 command + arguments 拉起子进程;streamableHTTP 用 endpoint 连接远端。凭据同样只能是引用形式,配置文件里不出现 token。

// ~/.lingxiagent/mcp.json
{
  "$schema": "https://lingxiagent.lingxifox.cn/schema/mcp.json",
  "version": 1,
  "servers": [
    {
      "id": "filesystem",
      "transport": "stdio",
      "command": "npx",
      "arguments": ["-y", "@modelcontextprotocol/server-filesystem", "/absolute/path"],
      "enabled": true,
      "timeoutSeconds": 60
    },
    {
      "id": "remote-example",
      "transport": "streamableHTTP",
      "endpoint": "https://example.com/mcp",
      "protocolPreference": "auto",
      "enabled": true,
      "authentication": { "kind": "bearer", "credential": "{env:EXAMPLE_MCP_TOKEN}" },
      "environment": [ { "name": "EXAMPLE_MCP_TOKEN", "credential": "{env:EXAMPLE_MCP_TOKEN}" } ]
    }
  ]
}
  • ▸ 命令入口:lingxiagent-ops mcp list | status | enable | disable | add | login | auth | remove;TUI 内 /mcp 打开状态面板。
  • ▸ 授权:远端服务器支持 OAuth 授权码流程 + PKCE,本地回环端口接收回调(实现见 MCPOAuthClient 与 MCPCLI 的 login / auth 子命令)。mcp.json 的凭据字段写引用,不写明文。
  • ▸ 超时:timeoutSeconds 覆盖默认值;Runtime 侧 MCP 类调用默认预算为 60 秒(config.json 的 runtime.execution.mcpSeconds)。
Extensions

Skills 技能体系 (SKILL.md)

Skill 是「一个目录 + 一份 SKILL.md」的提示词包,被当作可发现扩展注入 Agent,而不是插件二进制。发现路径固定为三处:

  • ▸ ~/.lingxiagent/skills/<name>/SKILL.md
  • ▸ ~/.lingxiagent/.lingxi/skills/<name>/SKILL.md
  • ▸ <project>/.lingxi/skills/<name>/SKILL.md

命令入口:lingxiagent-ops skills list | info | enable | disable;TUI 内 /skills 查看与切换。技能内容属于提示词层:它改变模型的行为倾向,不改变权限判定——写操作仍要过 Permission Engine。

Terminal TUI

终端快捷键速查指南

呼出 24-bit TrueColor 主题选择器 Ctrl + T
全局熔断中断 / 关闭当前模态浮层 Esc
切换智能体模式 (Normal/Plan/Boost) Tab / Shift+Tab
输入框字符级光标移动 / 行首行尾 ← / → / Home / End
呼出历史输入指令 ↑ / ↓ 方向键
展开 / 折叠思考流 (Thinking) Enter / 鼠标点击
清屏并重置视口 Ctrl + L
退出当前程序 Ctrl + C / Ctrl + D

全套弹出式选择器与模态浮层 (Pickers & Modals)

/theme — 唤起 24-bit TrueColor 主题选择器,支持实时打字过滤与热重载。
/mode — 弹出 Agent 模式选择器 (Build 全能 / Plan 规划 / Explore 探索,上下键直选)。
/permissions — 弹出安全策略选择器 (Ask 逐次询问 / Auto 沙箱放行 / YOLO 自由模式)。
/reasoning — 弹出思考等级选择器 (Auto / Off / Low / Med / High / Max 直选)。
/keybindings — 弹出快捷键速查模态卡片,支持滚动浏览,Esc 优雅退出。
/diff — 弹出工作区 Git 变更审查模态框,长篇 Diff 平滑滚动,零污染会话。
/tasks — 弹出后台任务监控面板,支持实时监控、输出查看与定向终止强杀。
/status · /context · /perf · /skills · /mcp — 瞬态指标全面模态化,查完即走。
TUI

斜杠命令大全

以下清单来自 LingXiTUI 的命令描述符与前端命令表,不是设想稿。输入 /help 可在运行时看到同一份列表。

/model 切换模型
/providers 渠道列表
/connect 登录渠道
/mode 运行模式
/permissions 权限档
/reasoning 思考等级
/status 会话状态
/context 上下文占用
/compact 主动压缩
/perf 性能指标
/diff 工作区 diff
/tasks · /ps 后台任务
/stop 终止任务
/subagents 子代理树
/mcp MCP 状态
/skills 技能列表
/plugins 插件列表
/hooks 钩子
/resume 恢复会话
/history 历史
/new 新会话
/rename 重命名
/undo 撤销
/clear 清屏
/theme 主题
/keybindings 快捷键
/help 命令表
/quit 退出

别名:/theme ⇄ /themes,/keybindings ⇄ /keys ⇄ /shortcuts。自定义命令与插件命令会合并进同一张表(见 Plugin SDK 文档)。

CLI

CLI 子命令与两个可执行入口

安装包内有两个不同职责的可执行入口(同源 SwiftPM products):

入口 职责 子命令
lingxiagent 面向用户的前端进程:无参数即进入 TUI (默认 TUI) · serve · help · version
lingxiagent-ops 运维与批处理入口(链接 Core 做后端管理) auth · models · mcp · skills · exec · review · doctor · resume · acp · task · completion
# 交互与 WebUI
lingxiagent                          # 进入 TUI
lingxiagent serve --port 8080        # HTTP + SSE 前端

# 渠道与模型
lingxiagent-ops auth login openai-codex
lingxiagent-ops auth status
lingxiagent-ops models sync openai-codex

# 批量与诊断
lingxiagent-ops review
lingxiagent-ops doctor
git diff | lingxiagent-ops exec "为本批变更写英文 commit message"
lingxiagent-ops resume --last
入口分工与历史坑(如实说明):lingxiagent 不实现 ops 动词:直接执行 auth / review 等时,它只打印指向 lingxiagent-ops 的提示并以状态码 1 退出。发布压缩包一直包含 lingxiagent-ops,但早期版本的官方安装脚本没有把它从压缩包里拷进 ~/.lingxiagent/bin,于是装完的用户看不到这个命令。安装脚本已修复;若你用的是修复前装的版本,重新执行一次安装脚本(或从解压目录手工拷贝该二进制)即可补齐。
Platform

跨平台原生架构与适配规范

LingXiAgent 拒绝在业务逻辑中散落条件编译宏,采用纯契约协议层与物理目录隔离架构:

🍎 macOS (Darwin) 原生

调用 _NSGetExecutablePath 定位可执行路径,POSIX 进程组优雅退出,Seatbelt 沙箱隔离保护,SecRandomCopyBytes 安全强随机数。

🐧 Linux (Ubuntu / Debian / Arch) 原生

通过 /proc/self/exe 解析自身路径,集成 Bubblewrap (bwrap) 容器命名空间沙箱,自动对接 Wayland/X11 剪贴板工具与 XDG 目录标准。

🪟 Windows (x86_64 预编译包已发布)

完整 Win32 平台抽象:GetModuleFileNameW 定位模块,SetConsoleMode 开启控制台 VT100 虚拟终端,taskkill /T(必要时加 /F)级联终止进程树,原生解析 %PATHEXT%。自 v1.1.0 起发布 lingxiagent-windows-x86_64.zip,包内附带 sqlite3.dll 与资源目录。

发布形态与能力差异(不要混为一谈):
  • 预编译发布:macOS arm64、Linux x86_64、Windows x86_64;版本与资产清单以 GitHub Releases 为准。
  • 源码构建:Intel Mac、AArch64 Linux 及其它平台需要本机 Swift 工具链,官方不出二进制。
  • 能力差异:Linux 不开放桌面视觉 Computer Use(缺少辅助功能/截屏后端,能力按不可用如实申报);grep / glob 依赖外部 ripgrep;macOS 原生 GUI 仅面向 Apple Silicon。存在二进制不等于三端功能完全一致。
Client Identity

客户端请求画像 (Client Fingerprint)

官方订阅端点期望看到与自身生态一致的客户端标识。ClientFingerprint(Sources/LingXiCore/Configuration/ClientFingerprint.swift)负责按渠道生成出站 User-Agent 与伴随 Header。其中平台字段来自 currentPlatform() 对真实宿主的读取:osName(darwin / linux / windows)、arch(arm64 / x86_64)、TERM。

渠道 productID User-Agent 形态 伴随请求头
openai-codexcodex-cli/<ver> (<os>; <arch>)originator · OpenAI-Beta: responses=v1 · chatgpt-account-id(从 token 解析)
anthropic-claude-subscriptionclaude-cli/<ver> (external, cli)anthropic-version · anthropic-beta · anthropic-client
antigravityantigravity/<ver> <os>/<arch>X-Goog-Api-Client
gemini-code-assistGeminiCLI/<ver> (<OS>; <arch>)X-Goog-Api-Client: gl-swift/5.x gccl/<ver>
xai-grok-subscriptionxai-grok-workspace/<ver>按渠道 profile 注入
其它(自定义 API)LingXiAgent/1.0 (<os>; <arch>)标准 Authorization / API Key 头,不冒充他方 CLI
  • ▸ 版本默认值与覆盖:0.154.0 / 2.1.258 / 2.9.1 / 0.1.5 / 0.2.120,分别可用 CODEX_CLI_VERSION、CLAUDE_CLI_VERSION、ANTIGRAVITY_VERSION、GEMINI_CLI_VERSION、XAI_GROK_CLI_VERSION 覆盖;Codex 还支持 CODEX_CLIENT_FLAVOR(codex-cli / codex-tui)。平台字段不可覆盖,始终实测。
  • ▸ 能力边界:本机制只影响应用层 HTTP 头部。它不改变传输层 TLS/TCP 栈,因此不存在、也不宣称「TLS/JA3/JA4 指纹伪装」;同理不承诺任何「免封」「反检测」效果——上游如何判定由其自身策略决定。
  • ▸ 用途定位:让官方 CLI 生态的渠道识别、灰度与故障归因落到正确客户端上,同时保证本地排障时看到的 OS/架构与真实宿主一致。
SDKs

LingXiModelSDK 与 LingXiPluginSDK

两个公共 SDK 是独立 GitHub 仓库、独立 MIT 许可、独立 SemVer 的 Swift Package,与 LingXiAgent 的版本号互不绑定;LingXiAgent 自己也通过公开 SwiftPM 入口消费它们,与第三方拿到的是同一份产物。

LingXiModelSDK

模型目录消费者:解码、缓存、检索 models.lingxifox.cn/models.json。仅 Foundation 依赖,不含推理能力。

.package(url: "https://github.com/LingXiFox/LingXiModelSDK.git", from: "0.1.0")
LingXiPluginSDK

插件作者:Tool / Command / Hook 与 stdio JSON Lines IPC。仅 Foundation 依赖。

.package(url: "https://github.com/LingXiFox/LingXiPluginSDK.git", from: "0.1.0")

职责区分:ModelSDK 面向模型目录消费者,PluginSDK 面向插件作者,LingXiAgent 是 Agent 产品与运行时(LCSAL-1.1 / PolyForm Noncommercial,见仓库 LICENSE-MATRIX)。完整插件文档在 /sdk.html,模型数据在 Models Hub。