Agent Skillsongridio/ongrid › host_restart_service

host_restart_service

GitHub

用于重启白名单内的systemd服务,属变更操作需经审核。强制校验设备ID、服务名及原因,支持nginx等8种服务。拦截器自动触发二审流程,拒绝后不重试并转告用户,一期为mock实现以跑通流程。

skills/restart-service/SKILL.md ongridio/ongrid

触发场景

用户明确要求重启特定服务 需要执行受控的服务重启操作

安装

npx skills add ongridio/ongrid --skill host_restart_service -g -y
更多选项

不安装直接使用

npx skills use ongridio/ongrid@host_restart_service

指定 Agent (Claude Code)

npx skills add ongridio/ongrid --skill host_restart_service -a claude-code -g -y

安装 repo 全部 skill

npx skills add ongridio/ongrid --all -g -y

预览 repo 内 skill

npx skills add ongridio/ongrid --list

SKILL.md

Frontmatter
{
    "name": "host_restart_service",
    "metadata": {
        "os": [
            "linux"
        ],
        "ongrid": {
            "scope": "edge",
            "activation": {
                "mode": "keyword",
                "keywords": [
                    "重启",
                    "重起",
                    "restart",
                    "systemctl"
                ]
            },
            "edge_runtime": "subprocess",
            "edge_capabilities": [
                {
                    "process.exec": [
                        "systemctl"
                    ]
                }
            ],
            "min_ongrid_version": ">=0.7.30"
        },
        "requires": {
            "bins": [
                "systemctl"
            ]
        }
    },
    "description": "重启允许列表内的 systemd service(mutating,触发 reviewer 二审)",
    "when_to_use": "用户**明确**要求重启某个允许列表内的服务时使用。\n\n**本工具是 mutating,会触发 reviewer 二审(agents\/reviewer.md),等待 approve 后才执行**。\n调用前 reviewer 会去查 SOP \/ 设备状态 \/ 并行操作,任一不满足即 reject — 你(coordinator)\n收到 reject 时**直接告知用户原因,不要重试**。\n\n不要主动建议重启 — 让用户先要求。常见的\"我猜重启就好了\"是诊断不深入的信号,\n应该先用 query_logql \/ query_promql \/ get_edge_summary 把根因摸清楚再让用户决定。\n\n允许列表(白名单):nginx \/ redis \/ prometheus \/ loki \/ tempo \/ grafana \/ mysql \/ ongrid\n其他 service 直接拒绝(也不走 reviewer)。\n"
}

[能力: host_restart_service]

本工具重启目标设备上的 systemd 服务。属于 mutating class,调用前自动经过 reviewer 二审:

调用规则

host_restart_service(device_id=<num>, service="nginx", reason="...")
  • device_id 必填:与 @-mention chip 和 Prom device_id label 一致
  • service 必填:systemd 短名(不带 .service 后缀)
  • reason 强烈建议填:写入审计行,事后复盘看得到为什么重启的

白名单

调用前自动检查 service ∈ 下列之一:

  • nginx / redis / prometheus / loki / tempo / grafana / mysql / ongrid

其他 service 直接拒绝(不走 reviewer,省一次 LLM 调用)。

二审流程(HLD-003 SOP)

你 (coordinator) 发出 host_restart_service tool_call
      ↓
ReviewGate 装饰器拦截
      ↓ class="write"|"destructive"
      ↓ spawn reviewer worker (agents/reviewer.md)
      ↓ 等 reviewer 输出 "Decision: approve" 或 "Decision: reject"
      ↓
approve → 真正调用边端 systemctl restart
reject  → 返回 reject 理由给你,**不要重试,转告用户**

reviewer 自己会用 get_edge_summary / query_logql / get_incident_detail 看 SOP / 并行操作 / 上次 mutating 时间 / 关联告警再决议;你不需要重复这些查询。

不要做的事

  • 不要在用户没明说"重启 X"时调用 — 主动建议重启是反模式
  • 不要 reject 后立刻重试 — reviewer 已经给了理由,转告用户让他决定
  • 不要试图绕过白名单 — 边端会再校验一次,绕不过
  • 不要传 reason="" — 审计行会一片空白,post-mortem 会骂

一期实现 (PR-7)

  • 边端 handler 是 mockMocked: true),不会真跑 systemctl restart
  • 真实 shell-out 留 follow-up;本期目标是把 reviewer 二审端到端跑通

版本历史

  • 51be933 当前 2026-07-05 15:43

同 Skill 集合

skills/host-files/SKILL.md
skills/bash/SKILL.md

元信息

文件数
0
版本
51be933
Hash
12dec76b
收录时间
2026-07-05 15:43

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-07-14 13:56
浙ICP备14020137号-1 $访客地图$