用途
lkr-code-mode 是一个 Looker Code Mode 智能体技能,目标是教会 AI 智能体如何以非交互方式,针对已连接的 Looker 实例执行 Python 代码、脚本或 Looker SDK 操作。其核心思路是:与其向智能体暴露数百个独立工具定义(会膨胀上下文窗口),不如让它在 Monty 沙箱中运行 Python 代码,并在代码中直接调用全部 Looker SDK 方法。
主要能力
- 免实例化、免导入:Looker SDK 方法已作为全局函数预先绑定,可直接调用,例如
me()、folder(id)、run_inline_query()、all_dashboards(),或通过sdk.<method>()形式访问。无需编写import looker_sdk。 - 结构化返回:返回值是普通 Python 字典和列表,需用字典键访问(如
user["id"]),而非属性点号(如user.id)。规范要求始终返回最终结果、避免使用print(),以便输出干净的结构化 JSON。 - 三种执行方式:内联代码(
--code/-c)、脚本文件(--file/-f)、以及注入字符串变量(--var/-v,变量在脚本中作为顶层全局标识符直接可用)。 - 开发模式:通过
--dev-mode在 Looker Development Mode 下运行操作,适用于修改 LookML 文件或个人开发分支。 - SDK 探索内置函数:
dir()列出全部 SDK 方法;help(pattern)按模式搜索方法;lookup(method_name)获取方法完整文档字符串与签名;search_with_lookups(pattern)获取匹配方法的文档;lookup_type(type_name)查看 Looker 模型类型字段;examples()返回内置代码配方;readme()返回完整参考文档。 - 内置辅助脚本:
scripts/personal_folder_dashboards.py(检查me()、提取个人文件夹 ID 并返回其中仪表板)、scripts/order_items_query.py(在 thelook / order_items 上运行内联查询)、scripts/traverse_folders.py(递归收集所有子文件夹中的仪表板与 Look)、scripts/readme.py、scripts/examples.py。
使用方式
安装:
npx skills add lkrdev/cli --skill lkr-code-mode
命令发现可使用 uvx --from "lkr-dev-cli[codemode]" lkr-dev-cli --help 或 uv run lkr --help,并可分别查看 auth --help、code-mode --help、code-mode sandbox --help。
执行示例:
uv run lkr code-mode sandbox --code="return me()"
uv run lkr code-mode sandbox --file=./script.py --var project=my_project --var folder_id=123
uv run lkr code-mode sandbox --dev-mode --code="return all_projects()"
认证流程:每轮对话建立连接时执行一次预检。先让用户选择 OAuth 或 API Key;再用 auth list 查看已配置的 OAuth 账户、用 auth whoami 验证当前认证。若选 OAuth 且无活动账户,需用户提供实例 URL,先对 https://<instance_url>/auth?... 做预检 GET;若返回 HTML 含 "The OAuth client was not found",说明 lkr-cli 未在该实例注册,应引导用户查看配置指南;若检测到客户端(返回 "redirect_uri mismatch"),再运行 auth login。凭据可保持在版本控制之外:使用 --oauth-account 指定命名 OAuth 配置、--env-file 指定环境文件、--force-oauth 强制 OAuth 流程。
标准环境变量:LOOKERSDK_BASE_URL、LOOKERSDK_CLIENT_ID、LOOKERSDK_CLIENT_SECRET、LOOKERSDK_VERIFY_SSL(默认 true)。
适用场景
技能文档给出的内容包括:检查当前用户与个人文件夹仪表板、递归遍历文件夹收集仪表板与 Look、在 thelook 上运行内联 Explore 查询(可带过滤、排序、限制)、检查 LookML 模型与 Explore 字段(维度与度量)、列出 LookML 项目并查看 Git 分支状态,以及在大型实例上使用 fields 限定字段的仪表板搜索。
限制与规范
- 需先运行一次
me()验证认证,再执行多项操作。 - 查询大型实例的集合时应始终用
fields过滤返回属性,以防超时。 - 对 LookML 文件或个人开发分支做修改时应在 CLI 上传入
--dev-mode。 - 输出应为结构化对象(字典、列表、字符串),不要使用
print()。
资料的介绍中未说明该技能的收费模式、平台兼容性细节或性能指标,相关内容暂未提供。