ClawSkills logoClawSkills

ServiceNow Agent

对 ServiceNow 表、附件、聚合和服务目录 API 的只读 CLI 访问;包括架构检查和历史记录检索(只读)。

介绍

# ServiceNow Table API Read Only

使用此技能通过 Table API 从 ServiceNow 读取数据。请勿创建、更新或删除记录。

## 配置

在此文件夹的 .env 文件中设置以下环境变量。

- SERVICENOW_DOMAIN 实例域名,例如 myinstance.service-now.com - SERVICENOW_USERNAME 基本身份验证的用户名 - SERVICENOW_PASSWORD 基本身份验证的密码

如果您的域名已经包含 https://,则请原样使用。否则,应向以下地址发出请求:

``` https://$SERVICENOW_DOMAIN ```

## 允许的操作 仅限 GET

仅使用这些文件中的 GET 端点。

- openapi.yaml 用于 Table API - references/attachment.yaml 用于 Attachment API - references/aggregate-api.yaml 用于 Aggregate API - references/service-catalog-api.yaml 用于 Service Catalog API

### 列出记录 - GET /api/now/table/{tableName}

### 通过 sys_id 获取记录 - GET /api/now/table/{tableName}/{sys_id}

切勿使用 POST、PUT、PATCH 或 DELETE。

## Table API 常用查询参数

- sysparm_query 编码查询,例如 active=true^priority=1 - sysparm_fields 逗号分隔的待返回字段 - sysparm_limit 限制记录数量以保持较小的数据量以确保安全 - sysparm_display_value true、false 或 all - sysparm_exclude_reference_link 设置为 true 以减少冗余信息

有关参数的完整列表,请参阅 openapi.yaml。

## CLI

使用捆绑的 CLI 进行所有读取操作。默认情况下,它从 .env 获取身份验证信息。您可以使用标志进行覆盖。

### 命令概览

- list table 列出表中的记录 - get table sys_id 通过 sys_id 获取单条记录 - batch file.json 在一次调用中运行多个读取请求 - attach 读取附件和文件内容 - stats table 聚合统计数据 - schema table 列出有效的字段名称和类型 - history table sys_id 读取完整的注释和工作笔记时间线 - sc endpoint Service Catalog GET 端点

### 身份验证标志

- --domain 实例域名 - --username 用户 - --password 密码

### 查询标志

将其中任何一个用作 --sysparm_* 标志。

- --sysparm_query - --sysparm_fields - --sysparm_limit - --sysparm_display_value - --sysparm_exclude_reference_link - --sysparm_suppress_pagination_header - --sysparm_view - --sysparm_query_category - --sysparm_query_no_domain - --sysparm_no_count

### Attachment API 参数

- --sysparm_query - --sysparm_suppress_pagination_header - --sysparm_limit - --sysparm_query_category

### Aggregate API 参数

- --sysparm_query - --sysparm_avg_fields - --sysparm_count - --sysparm_min_fields - --sysparm_max_fields - --sysparm_sum_fields - --sysparm_group_by - --sysparm_order_by - --sysparm_having - --sysparm_display_value - --sysparm_query_category

### Service Catalog 参数

- --sysparm_view - --sysparm_limit - --sysparm_text - --sysparm_offset - --sysparm_category - --sysparm_type - --sysparm_catalog - --sysparm_top_level_only - --record_id - --template_id - --mode

### 输出

- --pretty 美化打印 JSON 输出 - --out path 将二进制附件内容保存到文件

### 示例

列出最近的事件。

```bash node cli.mjs list incident --sysparm_limit 5 --sysparm_fields number,short_description,priority,sys_id ```

使用过滤器进行查询。

```bash node cli.mjs list cmdb_ci --sysparm_query "operational_status=1^install_status=1" --sysparm_limit 10 ```

获取单条记录。

```bash node cli.mjs get incident <sys_id> --sysparm_fields number,short_description,opened_at ```

即时覆盖身份验证。

```bash node cli.mjs list incident --domain myinstance.service-now.com --username admin --password "***" --sysparm_limit 3 ```

附件元数据和文件下载。

```bash node cli.mjs attach list --sysparm_query "table_name=incident" --sysparm_limit 5 node cli.mjs attach file <sys_id> --out /tmp/attachment.bin ```

聚合统计。

```bash node cli.mjs stats incident --sysparm_query "active=true^priority=1" --sysparm_count true ```

Service Catalog 只读 GET。

```bash node cli.mjs sc catalogs --sysparm_text "laptop" --sysparm_limit 5 node cli.mjs sc items --sysparm_text "mac" --sysparm_limit 5 node cli.mjs sc item <sys_id> node cli.mjs sc item-variables <sys_id> ```

### Service Catalog 端点 仅限 GET

- cart - delivery-address user_id - validate-categories - on-change-choices entity_id - catalogs - catalog sys_id - catalog-categories sys_id - category sys_id - items - item sys_id - item-variables sys_id - item-delegation item_sys_id user_sys_id - producer-record producer_id record_id - record-wizard record_id wizard_id - generate-stage-pool quantity - step-configs - wishlist - wishlist-item cart_item_id - wizard sys_id

### Schema 检查

如果您不确定字段名称,请使用此功能。

```bash node cli.mjs schema incident ```

### 读取工单历史记录

使用此功能读取完整的对话,而不仅仅是当前状态。

```bash node cli.mjs history incident <sys_id> ```

### 专家预设

在 specialists/ 下创建 JSON 批处理文件以一次运行多个读取。

- specialists/incidents.json

每个条目支持 sysparm_* 字段以及以下项目。

- name 批处理输出中的标签 - table 目标表 - sys_id 可选的单条记录获取

运行批处理预设。

```bash node cli.mjs batch specialists/incidents.json --pretty ```

## 输出

Table API 默认返回 JSON。结果出现在 result 下。

## 注意事项

- 使用 sysparm_limit 保持结果较小。 - 使用 sysparm_fields 避免较大的负载。 - 出于设计考虑,此技能为只读。

## 代理工具包摘要

- list 和 get 显示记录的当前状态。 - attach 显示文件和屏幕截图。 - stats 显示分析和聚合。 - sc 显示请求的项目变量。 - schema 显示数据库映射以纠正错误。 - history 显示人类对话的时间线。

## 观察与笔记(重要)

- Service Catalog 端点可能会根据目录内容和搜索文本返回空数组——请尝试更具体的 `--sysparm_text` 条目或增加 `--sysparm_limit`。 - 默认情况下,表读取启用了 `sysparm_display_value`,以返回人类友好的值(例如,用户名而不是 sys_ids)。如果您需要原始系统 ID,请传递 `--sysparm_display_value false`。 - 对于代理发起的查询,请保持 `--sysparm_limit` 较小,以避免大型负载和超时。对于计数或聚合,请优先使用 `stats`,而不是下载许多行。 - 附件:元数据可通过 `attach list`/`attach get` 获取;使用 `attach file <sys_id> --out <path>` 下载二进制内容以进行本地分析。 - Schema 检查(`schema`)避免猜测字段名称,是在读取未知表之前建议的第一步。 - 历史记录(`history`)从 `sys_journal_field` 获取日记条目(评论/work_notes),对于读取工单的完整对话线程非常有用。 - 使用 `--pretty` 使 JSON 输出易于人工阅读,并帮助代理总结较长的结果。

## 推荐的批处理预设

我建议使用 `specialists/` 下的这些专家 JSON 预设来加速常见的读取工作流程。它们是安全的(只读),并演示了如何组合相关的读取。

1) `specialists/inspect_incident_schema.json` — `incident` 的 schema 检查:

```json [ { "name": "schema-incident", "table": "sys_dictionary", "sysparm_query": "name=incident^elementISNOTEMPTY", "sysparm_fields": "element,column_label,internal_type,reference", "sysparm_limit": 500 } ] ```

2) `specialists/incident_history_template.json` — 历史记录模板(运行前将 `<SYS_ID>` 替换为目标 sys_id):

```json [ { "name": "incident-history", "table": "sys_journal_field", "sysparm_query": "name=incident^element_id=<SYS_ID>", "sysparm_fields": "value,element,sys_created_on,sys_created_by", "sysparm_order_by": "sys_created_on", "sysparm_limit": 500 } ] ```

3) `specialists/attachments_incident.json` — 事件表的最近附件:

```json [ { "name": "recent-incident-attachments", "table": "attachment", "sysparm_query": "table_name=incident", "sysparm_fields": "sys_id,file_name,content_type,table_sys_id,sys_created_on", "sysparm_limit": 20 } ] ```

如何使用这些: - 对于 schema:`node cli.mjs batch specialists/inspect_incident_schema.json --pretty` - 对于 history:替换 `<SYS_ID>`,然后运行 `node cli.mjs batch specialists/incident_history_template.json --pretty`(或运行 `node cli.mjs history incident <SYS_ID> --pretty`) - 对于 attachments:`node cli.mjs batch specialists/attachments_incident.json --pretty`,然后运行 `node cli.mjs attach file <sys_id> --out /tmp/file` 下载文件。

这些预设是有意的只读和保守的(限制设置得很小)。随时可以请求额外的预设(P1 仪表板、最近的更改、升级)。

更多产品