微信扫码
添加专属顾问
OpenClaw 作为后台 Agent 引擎,通过 API 无缝集成现有平台,实现告警处理的自动化编排。 核心内容: 1. API调度模式的适用场景与优势 2. 在现有平台中直接调用OpenClaw API的实践 3. Supervisor-Worker模式与MCP工具注册机制的应用
OpenClaw 通常的用法是独立部署——在自己的机器上跑,通过对话框或 Cron 和 Agent 交互。但 OpenClaw 也可以换一种方式用:作为后台 Agent 引擎,由现有业务平台通过 HTTP API 调度它。
一套运维平台,Prometheus 采集指标、AlertManager 发告警、自研 CMDB 管设备,已经稳定运行多年。现在想让告警处理自动化——来了告警自动查设备、算影响、出建议。方案不是把整个平台迁到 OpenClaw,而是在现有平台的告警回调里加一段 HTTP 调用,让平台去调 OpenClaw 的 API。下面讲具体做法。
多步骤任务,步骤之间有依赖。告警处理分三步:先查设备信息,再算影响范围,最后出处理建议。计算之前必须拿到设备信息,建议之前必须拿到计算结果。这是典型的 DAG 任务——单次 LLM 调用的上下文装不下所有步骤的中间结果,需要拆任务、发任务、收结果。Supervisor-Worker 模式把这三个职责分给不同的 Agent。
需要调用多种外部工具。查设备要调 CMDB 的 REST API,算影响要调拓扑服务的 gRPC 接口,发通知要调企业微信的 Webhook。每个工具的认证方式、参数格式、返回结构都不一样。MCP 工具注册机制可以把这些异构工具统一包装成 Agent 能理解的标准接口。
平台已经在跑,不能停。告警采集不能断、工单系统不能关、CMDB 不能迁。API 调度模式不用动现有系统,只在上面加一层 HTTP 调用。
简单查询——"今天有几个 P1 告警"——不需要多 Agent 编排,一个 SQL 查询就够了。
延迟敏感——Supervisor 拆任务 + Worker 执行 + 汇总,至少要三四次 LLM 调用。如果告警必须在 500ms 内响应,这套链路太长。回退到规则引擎。
工具不超过三个且稳定不变——工具注册中心的解耦价值体现不出来,直接在 Agent 代码里硬编码更省事。
OpenClaw 启动后,Gateway 监听 18789 端口,提供 HTTP API。现有平台不需要中间层,直接 POST 过来:
import requestsOPENCLAW_GATEWAY = "http://localhost:18789"def on_alert(alert_msg: str): """告警回调。直接调 OpenClaw API""" # 创建一个 Session,OpenClaw 会返回 session_id,后续追问可以复用 resp = requests.post( f"{OPENCLAW_GATEWAY}/api/sessions", json={"label": f"告警-{alert_msg[:30]}"}, timeout=10, ) session_id = resp.json()["id"] # 向 Agent 发送消息,OpenClaw 内部走 ReAct Loop 处理 resp = requests.post( f"{OPENCLAW_GATEWAY}/api/sessions/{session_id}/messages", json={ "content": alert_msg, "tools": ["get_device_info", "calculate_impact", "get_topology", "send_wework"], }, timeout=60, ) data = resp.json() # data["reply"] → Agent 的最终回复 # data["tool_calls"] → Agent 调了哪些工具、各返回了什么 return data平台端不引入 OpenClaw 依赖,不引入 Agent 框架,就是标准 HTTP 调用。
OpenClaw 启动时加载配置文件,定义 Agent 的角色、可用工具和系统提示词:
# openclaw.config.yamlagents: supervisor: name: 告警调度员 model: claude-sonnet-4-6 system_prompt: | 你是一个告警处理调度器。收到告警后: 1. 分析告警内容,判断需要哪些信息 2. 调用 get_device_info 获取设备详情 3. 调用 get_topology + calculate_impact 评估影响范围 4. 综合以上信息,生成处理建议 5. 调用 send_wework 推送到运维群 工具调用顺序遵循:先查信息,再计算,最后发通知。 tools: - get_device_info - get_topology - calculate_impact - send_wework max_tool_rounds: 5
Agent 的行为全部由 system_prompt 和 tools 列表决定。工具注册在 OpenClaw 的工具目录中,启动时自动加载。
OpenClaw 的工具是 MCP 协议的标准实现。每个工具一个 Python 文件,放在 tools/目录下:
# tools/get_device_info.pyimport requestsdef run(device_id: str) -> dict: """根据设备ID查询设备详情、历史告警""" resp = requests.get( f"http://cmdb.internal/api/devices/{device_id}", headers={"Authorization": "Bearer {CMDB_TOKEN}"}, timeout=5, ) data = resp.json() return { "device_name": data["name"], "location": data["location"], "owner": data["owner"], "recent_alerts": data["alert_history"][:5], }# 工具元数据:Agent 通过 description 判断何时调用TOOL_META = { "name": "get_device_info", "description": "查询设备详情、机房位置、维护责任人、近期告警历史。" "当告警中包含设备名称或设备ID时调用此工具。", "parameters": { "type": "object", "properties": { "device_id": {"type": "string", "description": "设备唯一标识"} }, "required": ["device_id"], },}# tools/calculate_impact.pydef run(alert_level: str, device_id: str) -> dict: """计算告警影响范围""" # 1. 调拓扑服务拿下游依赖 topo = requests.get( f"http://topo.internal/api/devices/{device_id}/downstream", timeout=5, ).json() # 2. 根据告警级别 + 下游依赖查业务权重表 # ...计算逻辑 return { "affected_businesses": ["业务A", "业务B"], "estimated_users": 2000, "estimated_recovery_minutes": 15, }TOOL_META = { "name": "calculate_impact", "description": "计算告警影响范围,返回受影响的业务列表、预估用户数、预估恢复时间。" "等级为 P1 或影响核心设备时优先调用。", "parameters": { "type": "object", "properties": { "alert_level": {"type": "string", "description": "P1/P2/P3"}, "device_id": {"type": "string", "description": "告警设备ID"}, }, "required": ["alert_level", "device_id"], },}工具代码跑在 OpenClaw 进程内,底层 HTTP 调用打到现有平台的 CMDB、拓扑服务、企业微信接口。对 OpenClaw 来说是一个函数调用,对现有平台来说是一个普通的 API 请求。两层之间通过 HTTP 打通。
调度不是简单的"把消息发给 Agent,等回复"。OpenClaw 内部走的是 ReAct 循环:
第一步:Agent 读消息,判断需要什么信息。告警文本"核心交换机 S9300-12 端口 Down,级别 P1"进来后,Agent 根据 system_prompt 中的规则判断:需要先查设备信息。
第二步:Agent 决定调哪个工具。Agent 扫描可用工具列表,匹配 description。get_device_info的描述是"查询设备详情...当告警中包含设备名称时调用",匹配。Agent 输出工具调用请求,OpenClaw Gateway 拦截,调对应工具的 run()函数,拿到 CMDB 返回的数据后注入回 Agent 上下文。
第三步:Agent 基于工具返回的数据继续推理。拿到设备信息后,Agent 判断下一步需要评估影响范围。调 get_topology查下游依赖,再调 calculate_impact算影响面。每个工具调用都是一次完整的"分析→决策→执行→观察"循环。
第四步:生成最终回复。Agent 综合所有工具返回的数据,按 system_prompt 要求的格式输出处理建议。最后调 send_wework把结果推送到运维群。
整个过程平台端不参与——平台只发了第一条消息,后续的推理和工具调用全部由 OpenClaw 内部的 ReAct Loop 驱动。max_tool_rounds: 5限制了最多 5 轮工具调用,防止死循环。
检测到核心交换机端口异常 → AlertManager 触发告警 → 告警回调函数 on_alert被调用,拿到告警文本"核心交换机 S9300-12 端口 Down,级别 P1"。
on_alert调 OpenClaw Gateway 的 API,创建 Session,发送消息,附带四个可用工具的名称。
OpenClaw Agent 收到消息,执行 ReAct 循环:
第一轮推理——Agent 判断需要查设备信息,调 get_device_info(device_id="S9300-12")。工具函数内部 HTTP GET http://cmdb.internal/api/devices/S9300-12,返回设备型号、机房位置、维护责任人、近 7 天告警 3 次(上次为端口抖动)。结果注入 Agent 上下文。
第二轮推理——Agent 拿到设备信息后,判断需要评估影响。调 get_topology(device_id="S9300-12")拿到下游依赖列表,再调 calculate_impact(alert_level="P1", device_id="S9300-12"),工具内部调拓扑服务和业务权重表,返回:业务 A 和 B 受影响,预估用户 2000,预计恢复 15 分钟。
第三轮——Agent 综合前两轮数据,生成处理建议:立即派单、备用链路切换方案。
第四轮——Agent 调 send_wework推送到运维群。
Agent 返回最终回复给 Gateway,Gateway 返回给 on_alert。整个链路对平台端是一次 HTTP POST + 等待响应,内部推理和工具调用由 OpenClaw 自动完成。
OpenClaw Gateway 本身是一个常驻进程,用 systemd 守护:
[Service]ExecStart=/usr/local/bin/openclaw gateway --port 18789 --config /etc/openclaw/config.yamlRestart=alwaysRestartSec=5
生产部署关注三个点:
超时控制。OpenClaw 的 max_tool_rounds限制了工具调用轮数,Timeout 设置限制单次 Agent 执行的总时长。平台端 HTTP 调用的 timeout=60是第二道防线——超时后平台可以做降级处理。
Token 用量。OpenClaw 每次 Agent 执行返回 usage字段,包含 prompt_tokens 和 completion_tokens。平台端可以记录每次告警分析的 Token 消耗,用于成本追踪。
错误处理。工具调用失败(CMDB 接口挂了、超时),OpenClaw 将错误信息注入 Agent 上下文,Agent 可以据此调整回复——"无法查询设备信息,请人工确认 S9300-12 状态"。平台端 HTTP 超时或返回 5xx 时,告警回调做降级处理——走老的规则引擎或人工通知。
把 OpenClaw 当作后台 Agent 引擎、由现有平台通过 HTTP API 调度,适合平台已稳定运行不能迁移、需要多步骤推理和工具调用、工具类型多变需要灵活组合的场景。不适合简单查询、延迟敏感(毫秒级响应)、工具少且固定的场景。
平台端的改动:告警回调里加一个 HTTP POST 到 OpenClaw Gateway(18789 端口)。OpenClaw 端的配置:一个 YAML 文件定义 Agent 和工具列表,每个工具一个 Python 文件包装现有平台的接口。两层之间只有 HTTP,不共享进程、不共享文件系统。
核心判断不是用不用 OpenClaw,而是怎么用。独立部署、对话框、Cron 是一种用法。把 OpenClaw 变成后台引擎、让现有平台来调度,是另一种。
53AI,企业落地大模型首选服务商
产品:场景落地咨询+大模型应用平台+行业解决方案
承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业
2026-07-23
别把聊天记录全塞进知识库:AI 记忆到底怎样才省钱、找得准?
2026-07-13
网易智企AI Native实践:人人都会用AI之后,真正的难题才开始
2026-06-30
运维界的 OpenClaw 来了!
2026-06-30
刚刚,OpenClaw和Cursor杀入手机!Agent从此塞进口袋
2026-06-21
openclaw深度实践(四种场景:企业提效参考)
2026-06-18
OpenClaw MetaSKILLs 系统深度解析:AI Agent 正在学会「自己给自己写技能」
2026-06-17
OpenClaw 6.8 震撼发布:不堆噱头,彻底治愈 Agent 的“宕机失忆症”
2026-06-01
OpenClaw 5月28日更新:更加提升稳定性
2026-05-29
2026-05-24
2026-06-17
2026-06-01
2026-06-30
2026-05-31
2026-06-21
2026-06-18
2026-06-30
2026-07-23
2026-07-23
2026-04-09
2026-04-07
2026-04-02
2026-03-30
2026-03-30
2026-03-26
2026-03-24
欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。
在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。
一、 定义
本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。
会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。
知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。
二、 账号注册与登录
登录方式:本网站支持以下登录方式,您可根据实际情况选择:
微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。
手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。
账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。
实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。
未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。
三、 服务内容与规范
知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。
服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。
禁止行为:您在使用服务时不得实施以下行为:
利用技术手段批量爬取、下载、转存知识库内容;
将知识库内容用于商业目的或未经授权地向第三方传播;
干扰本网站正常运行或侵犯其他用户合法权益;
发布违法违规信息或从事违反公序良俗的活动。
四、 知识产权声明
权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。
有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。
侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。
五、 个人信息保护
我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。
您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。
您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。
六、 免责声明
内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。
不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。
第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。
七、 违约责任
如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。
如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。
八、 法律适用与争议解决
本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。
因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。
九、 其他
本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。
本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。
我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。