OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  servicenow-agent:针对 ServiceNow 表格及附件的只读命令行访问工具

servicenow-agent:针对 ServiceNow 表格及附件的只读命令行访问工具

 
  postgresql ·  2026-02-15 18:37:16 · 3 次点击  · 0 条评论  

名称: servicenow-agent
描述: 提供对 ServiceNow 表、附件、聚合和服务目录 API 的只读 CLI 访问;包含模式检查和历史记录检索(只读)。
阅读时间:
- 需要读取 ServiceNow 表 API 记录
- 需要查询表或通过 sys_id 获取记录
- 需要下载附件内容或元数据
- 需要聚合统计信息或服务目录变量
元数据: {"clawdbot":{"emoji":"🧾","requires":{"bins":["node"]}}}


ServiceNow 表 API(只读)

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

配置

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

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

如果您的域名已包含 https://,请直接使用。否则,请求将发送至:

https://$SERVICENOW_DOMAIN

允许的操作(仅 GET)

仅使用以下文件中的 GET 端点。

  • openapi.yaml(表 API)
  • references/attachment.yaml(附件 API)
  • references/aggregate-api.yaml(聚合 API)
  • references/service-catalog-api.yaml(服务目录 API)

列出记录

  • GET /api/now/table/{tableName}

通过 sys_id 获取记录

  • GET /api/now/table/{tableName}/{sys_id}

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

表 API 常用查询参数

  • sysparm_query 编码的查询条件,例如 active=true^priority=1
  • sysparm_fields 要返回的字段,以逗号分隔
  • sysparm_limit 限制记录数量,为安全起见请保持较小值
  • sysparm_display_value truefalseall
  • 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 服务目录 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

附件 API 参数

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

聚合 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

服务目录参数

  • --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>

服务目录端点(仅 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

模式检查

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

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 避免大型负载。
  • 此技能设计为只读。

代理工具包功能摘要

  • listget 显示记录的当前状态。
  • 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.jsonincident 表的模式检查:

[
  {
    "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 仪表板、最近更改、升级记录)。

3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor