SuperAPI AI 工具集

glean-cli

办公与效率

查看项目

更新于 10-16 04:39

技能介绍

Glean CLI

glean 是一个本地 CLI,用于认证到公司的 Glean 实例并暴露其 REST API。它可以搜索企业索引、与 Glean Assistant 对话、查询人员、获取并总结文档,以及管理 Glean 侧资源(集合、置顶、go-links、公告、精选答案、智能体、验证工作流)。

输出以 JSON 写入 stdout,错误写入 stderr,退出码反映成功与否。这使该 CLI 非常适合通过管道传给 jq。

前置检查

在使用本技能中的任何内容之前,请确保二进制文件位于 $PATH 中:

command -v glean

glean CLI 命令由 brew install gleanwork/tap/glean-cli 提供。

如果未找到该命令,你应询问用户是否希望你为其安装。

如果未认证(在认证错误时运行 glean auth status),且用户位于终端:glean auth login(浏览器 OAuth)。对于 CI 或脚本,改为设置 GLEAN_API_TOKEN 和 GLEAN_HOST 环境变量——凭据解析顺序为:环境变量 -> 系统密钥环 -> ~/.glean/config.json。

始终先自省

glean schema 是命令和标志的权威来源——Glean 会发布更新,schema 反映本地安装的版本。在调用本会话中尚未使用过的命令之前,运行:

glean schema <command> # 单个命令的完整机器可读 schema glean schema | jq '.commands' # 列出所有可用命令

本技能中的参考文件(references/commands.md)是快速查找,但如果 glean schema 与之不一致,以 schema 为准。

调用模式

glean <command> [subcommand] [flags]

有三个全局标志值得提前了解:

标志 用途

--output <json|ndjson|text> 默认 json。在将结果流式传输到管道时使用 ndjson。

--json '<payload>' 发送完整的 JSON 请求体。覆盖所有其他标志——对任何非平凡请求都使用它,schema 记录了请求体结构。

--dry-run 打印将要发送的请求,不发送任何内容。在任何创建/更新/删除操作之前始终使用。

存在简短的位置标志用于便捷查询(glean search "vacation policy"、glean chat "what are the holidays?"),但超出单个字符串的任何内容都应通过 --json 传递。

命令一览

只读:

命令 用途

glean search 在所有企业来源中查找文档。

glean chat 向 Glean Assistant 提问;流式返回 AI 答案。

glean documents 获取文档的元数据、内容、权限或 AI 摘要。

glean entities 查询人员、团队或自定义实体。

glean messages 按 ID 读取特定的 Slack/Teams 消息。

glean insights 拉取搜索/使用分析。

glean agents 列出、检查并运行 Glean AI 智能体。

glean tools 列出并运行 Glean 平台工具。

glean answers 列出/获取精选问答对。

写入/管理:

命令 用途

glean collections 创建/更新/删除文档集合;添加/移除条目。

glean pins 将文档提升到给定查询结果的顶部。

glean shortcuts 管理 go-links(例如 go/wiki)。

glean announcements 创建/更新/删除有时间限制的公司公告。

glean answers 创建/更新精选答案。

glean verification 将文档标记为已验证;发送验证提醒。

glean activity 记录用户活动事件;提交相关性反馈。

glean api 对任何 Glean REST 端点进行原始认证 HTTP 调用(逃生舱)。

关于上述任何命令的标志级细节和示例,请阅读 references/commands.md——它按命令组织,顺序与上述表格相同。

常见工作流

搜索并通过管道传给 jq。搜索返回的 JSON 包含 results 数组;每个结果有一个 document,包含 title、url、id、snippets 等。

glean search "incident response runbook" | jq '.results[] | {title: .document.title, url: .document.url}'

先查找再总结。将 search 与 summarise 子命令结合:

DOC_ID=$(glean search "Q1 OKRs" | jq -r '.results[0].document.id') glean documents summarize --json "{"documentId":"$DOC_ID"}" | jq -r .summary

提问。对于任何“我们公司对 X 怎么说”的问题,优先使用 glean chat 而非 glean search——Glean Assistant 会在其回答中引用底层文档。

glean chat "How do I expense international travel?"

查询人员。

glean entities read-people --json '{"query":"Jane Smith"}' | jq '.[0] | {name, email, title, department}'

注意事项

不要回显令牌。GLEAN_API_TOKEN 是敏感的;切勿回显它、记录它、将其包含在错误消息中或将其提交到文件。仅通过环境变量使用它。

写入操作始终先 --dry-run。任何 create、update、delete、verify、remind、add-items、delete-item 或 report 操作都会将数据发送到客户的 Glean 租户。先打印请求体,如果不是用户的明确要求,先获得用户确认,然后再发送。

--json 覆盖一切。如果同时提供 --json 和单独标志,JSON 请求体会静默胜出。不要混用两者。

以 schema 为准,而非记忆。标志名称和 JSON 请求体结构在 Glean 版本之间会演变。如果你传递请求体而 API 拒绝它,运行 glean schema <command> 并检查当前结构,而不是猜测。

glean api 是逃生舱,不是默认选项。如果存在用于你所做事情的专用子命令(例如 glean search 而非 glean api search),优先使用它——专用命令具有更好的易用性和稳定的契约。

错误落在 stderr。当通过管道传给 jq 或其他消费者时,单独捕获 stderr,以便你能呈现真正的错误消息,而不是下游的“parse error: unexpected end of JSON”。

搜索结果不总是文档对象。results[] 可能包含提升的答案、人员或置顶项——在编程处理时,根据 .type 分支或用 .document? 进行防护。