@zleap-ai/sag-cli 是 SAG 知识库的官方命令行客户端。从终端里你可以:
- 登录并验证一个正在运行的 SAG 实例;
- 查看信源、文档处理状态,直接检索知识内容;
- 验证本机 Docker SAG 的知识库 MCP,并把它一键接入 Codex 和 Claude Code。
- 你手上已经有一个 SAG 实例(本机 Docker 或远程 HTTP),想在终端里查它、调它、把它接给编码 Agent。
- 你在开发或运维 SAG,需要
doctor、mcp test这类诊断能力。 - 你只是想在 Codex 或 Claude Code 里用 SAG 做知识检索,又不想手写 MCP 配置。
| 你想做的事 | 需要准备 |
|---|---|
| 安装并运行 CLI | Node.js ≥ 20.19 |
| 用 HTTP API 登录、搜索 | 一个可访问的 SAG Origin(如 http://localhost:8000) |
| 用本机 Docker 免 Token 路径 | Docker CLI,且本机运行着含 sag_api.mcp.server 的 SAG 容器 |
| 接入 Codex | 已安装 Codex CLI(≥ 0.145) |
| 接入 Claude Code | 已安装 Claude Code(≥ 2.1) |
登录方式:执行 sag auth login --name "你的名字",或省略 --name 后在终端输入名字。CLI 调用 SAG 现有登录接口,并优先把凭据保存到系统凭据存储(macOS Keychain、Windows Credential Manager、Linux Secret Service)。自动化环境也可以使用 SAG_TOKEN 环境变量。
npm install --global @zleap-ai/sag-cli
sag --help
sag versionCLI 提供两条互相独立的路径,按你的场景选。
前提是本机 Docker 已经在跑 SAG API 容器。CLI 会自动发现容器,通过 docker exec 走 stdio MCP,全程不需要 JWT。
# 1. 验证本机 Docker SAG MCP 可以工作
sag mcp test
# 2. 把它接入你的 Agent(选一个或两个都接)
sag agent connect codex
sag agent connect claude-code
# 3. 随时看接入状态
sag agent status只想验证 / 接入某一个信源时加 --source-id:
sag mcp test --source-id <source-id>
sag agent connect codex --source-id <source-id>不放心可以先 --dry-run 看计划:
sag agent connect codex --dry-run想撤掉接入:
sag agent disconnect codex用 SAG 的 HTTP API 做认证、查询、检索。
# 1. 记录一个 SAG 实例
sag profile add local http://localhost:8000
sag profile use local
# 2. 登录(直接调用 SAG 登录接口)
sag auth login --name "你的名字"
sag auth status
# 3. 体检 + 看信源
sag doctor
sag source list
sag document status --source <source-id>
# 4. 检索
sag search "MCP 如何接入" --source <source-id> --top-k 5Profile URL 只保存 scheme://host[:port]。API 前缀 /api/v1 由 CLI 自动补齐,不要自己写。
sag version
sag auth login | status | logout
sag profile add | list | use | show | remove
sag doctor
sag source list | get | status
sag document list | get | status
sag search <query>
sag outline <document-id>
sag grep <pattern>
sag read <document-id>
sag get-entity <name>
sag mcp test
sag agent list
sag agent connect <codex | claude-code>
sag agent status [codex | claude-code]
sag agent disconnect <codex | claude-code>
常用示例:
sag profile list --json
sag source get <source-id>
sag document list --source <source-id>
sag search "MCP 如何接入" --source <source-id> --strategy multi
sag mcp test --container sag-api-1 --timeout 15000
sag agent connect claude-code --name sag-knowledge-local--profile <name> 选择 Profile
--url <origin> 临时指定 SAG Origin
--json 输出稳定 JSON(schema: sag.cli.v1)
--quiet 只输出核心值
--yes 确认安全的本地配置操作
优先级:命令行参数 > 环境变量 > 当前 Profile > 本地默认探测。
SAG_URL=http://localhost:8000
SAG_TOKEN=<jwt>
SAG_PROFILE=localProfile 配置存放位置:
| 平台 | 路径 |
|---|---|
| macOS | ~/Library/Application Support/sag-cli/config.yaml |
| Linux | $XDG_CONFIG_HOME/sag-cli/config.yaml 或 ~/.config/sag-cli/config.yaml |
| Windows | %APPDATA%\sag-cli\config.yaml |
Agent 接入的受管状态另存于 managed-connections.yaml(权限 0600),不要手工编辑。
- SAG CLI 不会 把 JWT 写入 Agent 配置。本机 Docker 路径无需 Token。
- 默认 MCP 名称为
sag-knowledge-<profile>,无 Profile 时为sag-knowledge-local。 - 只删除自己创建、指纹未变化的 MCP 条目;检测到同名用户配置或外部改动会拒绝覆盖。
--dry-run只展示计划;--yes跳过确认但不跳过冲突检查。
--json 下成功与失败使用固定 Schema:
{ "schema": "sag.cli.v1", "ok": true, "data": {} }{
"schema": "sag.cli.v1",
"ok": false,
"error": { "code": "AUTH_REQUIRED", "message": "No SAG token is configured" }
}Token 不会出现在 JSON、日志或错误输出里。完整错误码与退出码见 CLI 架构文档。