名称: servicenow-agent
描述: 提供对 ServiceNow 表、附件、聚合和服务目录 API 的只读 CLI 访问;包含模式检查和历史记录检索(只读)。
阅读时间:
- 需要读取 ServiceNow 表 API 记录
- 需要查询表或通过 sys_id 获取记录
- 需要下载附件内容或元数据
- 需要聚合统计信息或服务目录变量
元数据: {"clawdbot":{"emoji":"🧾","requires":{"bins":["node"]}}}
使用此技能通过 ServiceNow 表 API 读取数据。请勿创建、更新或删除记录。
在本文件夹的 .env 文件中设置以下环境变量。
SERVICENOW_DOMAIN 实例域名,例如 myinstance.service-now.comSERVICENOW_USERNAME 基本身份验证的用户名SERVICENOW_PASSWORD 基本身份验证的密码如果您的域名已包含 https://,请直接使用。否则,请求将发送至:
https://$SERVICENOW_DOMAIN
仅使用以下文件中的 GET 端点。
openapi.yaml(表 API)references/attachment.yaml(附件 API)references/aggregate-api.yaml(聚合 API)references/service-catalog-api.yaml(服务目录 API)GET /api/now/table/{tableName}GET /api/now/table/{tableName}/{sys_id}切勿使用 POST、PUT、PATCH 或 DELETE。
sysparm_query 编码的查询条件,例如 active=true^priority=1sysparm_fields 要返回的字段,以逗号分隔sysparm_limit 限制记录数量,为安全起见请保持较小值sysparm_display_value true、false 或 allsysparm_exclude_reference_link 设为 true 以减少冗余信息完整参数列表请参见 openapi.yaml。
所有读取操作均使用捆绑的 CLI。默认情况下,它会从 .env 文件获取身份验证信息。您可以使用标志覆盖。
list table 列出表中的记录get table sys_id 通过 sys_id 获取单个记录batch file.json 在一次调用中运行多个读取请求attach 读取附件和文件内容stats table 聚合统计信息schema table 列出有效的字段名和类型history table sys_id 读取完整的评论和工作记录时间线sc endpoint 服务目录 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--sysparm_query--sysparm_suppress_pagination_header--sysparm_limit--sysparm_query_category--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--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 将二进制附件内容保存到文件列出最近的事件。
node cli.mjs list incident --sysparm_limit 5 --sysparm_fields number,short_description,priority,sys_id
使用过滤器查询。
node cli.mjs list cmdb_ci --sysparm_query "operational_status=1^install_status=1" --sysparm_limit 10
获取单个记录。
node cli.mjs get incident <sys_id> --sysparm_fields number,short_description,opened_at
动态覆盖身份验证。
node cli.mjs list incident --domain myinstance.service-now.com --username admin --password "***" --sysparm_limit 3
附件元数据和文件下载。
node cli.mjs attach list --sysparm_query "table_name=incident" --sysparm_limit 5
node cli.mjs attach file <sys_id> --out /tmp/attachment.bin
聚合统计。
node cli.mjs stats incident --sysparm_query "active=true^priority=1" --sysparm_count true
服务目录只读 GET 操作。
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>
cartdelivery-address user_idvalidate-categorieson-change-choices entity_idcatalogscatalog sys_idcatalog-categories sys_idcategory sys_iditemsitem sys_iditem-variables sys_iditem-delegation item_sys_id user_sys_idproducer-record producer_id record_idrecord-wizard record_id wizard_idgenerate-stage-pool quantitystep-configswishlistwishlist-item cart_item_idwizard sys_id如果不确定字段名称,请使用此功能。
node cli.mjs schema incident
使用此功能读取完整的对话记录,而不仅仅是当前状态。
node cli.mjs history incident <sys_id>
在 specialists/ 目录下创建 JSON 批处理文件,以便一次性运行多个读取操作。
specialists/incidents.json每个条目都支持 sysparm_* 字段以及以下项目。
name 批处理输出中的标签table 目标表sys_id 可选的单记录获取运行批处理预设。
node cli.mjs batch specialists/incidents.json --pretty
表 API 默认返回 JSON。结果出现在 result 下。
sysparm_limit 保持结果集较小。sysparm_fields 避免大型负载。list 和 get 显示记录的当前状态。attach 显示文件和截图。stats 显示分析和聚合数据。sc 显示请求的项目变量。schema 显示数据库映射以纠正错误。history 显示人工对话的时间线。--sysparm_text 术语或增加 --sysparm_limit。sysparm_display_value,以返回人类可读的值(例如,用户名而非 sys_id)。如果需要原始系统 ID,请传递 --sysparm_display_value false。--sysparm_limit 较小,以避免大型负载和超时。对于计数或聚合,优先使用 stats 而非下载多行数据。attach list/attach get 获取元数据;使用 attach file <sys_id> --out <path> 下载二进制内容以供本地分析。schema)可避免猜测字段名称,是在读取未知表之前推荐的第一步。history)从 sys_journal_field 获取日志条目(评论/工作记录),对于读取工单的完整对话线程非常有用。--pretty 使 JSON 输出更易于人类阅读,并帮助代理总结长结果。建议在 specialists/ 目录下使用以下专家 JSON 预设,以加速常见的读取工作流。它们是安全的(只读)并演示了如何组合相关的读取操作。
1) specialists/inspect_incident_schema.json — incident 表的模式检查:
[
{
"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):
[
{
"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 — 事件表的最近附件:
[
{
"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
}
]
如何使用这些预设:
- 对于模式检查:node cli.mjs batch specialists/inspect_incident_schema.json --pretty
- 对于历史记录:替换 <SYS_ID> 后运行 node cli.mjs batch specialists/incident_history_template.json --pretty(或运行 node cli.mjs history incident <SYS_ID> --pretty)
- 对于附件:node cli.mjs batch specialists/attachments_incident.json --pretty,然后 node cli.mjs attach file <sys_id> --out /tmp/file 下载文件。
这些预设设计为只读且保守(限制设置较小)。如有需要,可请求其他预设(如 P1 仪表板、最近更改、升级记录)。