OpenClaw Agent
本文介绍如何将OpenClaw Agent接入华为云AgentArts观测服务,实现调用链追踪和业务指标监控。
快速入门:
前提:本地已安装OpenClaw(版本>= 2026.7.1)。
- 在AgentArts平台创建OpenClaw智能体,获取接入参数。
- 在OpenClaw所在机器执行安装命令。
- 触发OpenClaw会话,在AgentArts观测页面查看数据。
详细步骤见下方接入步骤。
前提条件
- Node.js 版本 >= 20
- OpenClaw 版本 >= 2026.7.1
工作原理
OpenClaw是一款开源的AI Agent,提供工具调用、模型调用、多轮对话等能力。
OpenClaw可观测扩展插件(huawei-otel)是华为云AgentArts基于OpenTelemetry标准为OpenClaw开发的可观测采集插件。插件以Node.js扩展的形式安装到OpenClaw的扩展目录中,通过OpenClaw的运行时事件Hook机制采集数据,无需修改业务代码。
数据流转过程:
OpenClaw Agent运行时
├── gateway加载huawei-otel插件
│ └── 注册事件Hook
│ ├── before_agent_run / agent_end Agent回合
│ ├── model_call_started / model_call_ended 模型调用
│ ├── llm_input / llm_output 输入输出
│ ├── before_tool_call / after_tool_call 工具调用
│ └── before_message_write 消息写入
│
├── Trace数据 ──OTLP gRPC──→ APM(调用链)
└── Metrics数据 ──OTLP gRPC──→ AOM(指标)
│
▼
AgentArts观测平台展示 接入后,以下能力将被自动监控:
- Agent执行链路(invoke_agent):Agent回合的完整生命周期。
- 推理步骤(react step):每轮“模型推理 + 工具调用”的详细过程。
- LLM调用(chat):模型名称、Token用量、输入/输出内容、首Token时延。
- 工具调用(execute_tool):工具名称、输入参数、返回结果、执行耗时。
- 技能调用(Skill):技能名称、调用次数、耗时、错误数等指标。
步骤一:获取接入参数
- 登录AgentArts 智能体平台。
- 在左侧导航栏选择“观测与优化 > 观测”。
- 在“智能体列表”页面,单击“接入智能体”,按照页面指引填写名称、智能体类型,创建一个“OpenClaw”智能体,并获取各配置参数。 图1 获取配置参数
步骤二:安装探针
下载OpenClaw探针。
| 平台 | 产物包 |
|---|---|
| Linux / macOS | |
| Windows |
打开终端,执行以下命令,进行探针包的解压,及安装操作。
Linux / macOS
- 将下载的探针包解压到一个独立目录。
# 1. 解压到一个独立目录(包内无顶层目录,解压后即为插件包和脚本) mkdir -p openclaw-otel tar -xzf huawei-openclaw-otel-plugin-1.0.0.tgz -C openclaw-otel cd openclaw-otel
- 执行以下命令安装探针,命令中的参数按实际替换。参数获取方法参考步骤一:获取接入参数,参数说明参考表2。
# 2. 安装(安装脚本自动发现同目录下的插件包及其 .sha256) ./install.sh \ --agent-id <your-agent-id> \ --domain-id <your-domain-id> \ --project-id <your-project-id> \ --apm-endpoint <apm-endpoint:port> \ --apm-token <your-apm-token> \ --aom-endpoint <aom-endpoint:port> \ --aom-access-code <your-aom-access-code> \ --aom-prometheus-id <your-prometheus-id> \ --agent-name <your-agent-name>
- 重启gateway,安装完成后请手动重启使其生效。
openclaw gateway restart
Windows(PowerShell)
- 将下载的探针包解压到一个独立目录。
# 1. 解压到一个独立目录 Expand-Archive .\huawei-openclaw-otel-plugin-1.0.0.zip -DestinationPath .\openclaw-otel Set-Location .\openclaw-otel
- 临时放开脚本执行权限。
仅对当前窗口生效,不影响系统全局策略,关闭窗口后自动失效。
# 2. 允许当前窗口执行脚本 Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
- 执行以下命令安装探针,命令中的参数按实际替换。参数获取方法参考步骤一:获取接入参数,参数说明参考表2。
# 3. 安装(自动发现同目录下的 .zip 插件包) .\install.ps1 ` --agent-id <your-agent-id> ` --domain-id <your-domain-id> ` --project-id <your-project-id> ` --apm-endpoint <apm-endpoint:port> ` --apm-token <your-apm-token> ` --aom-endpoint <aom-endpoint:port> ` --aom-access-code <your-aom-access-code> ` --aom-prometheus-id <your-prometheus-id> ` --agent-name <your-agent-name>
安装脚本只写入%USERPROFILE%\.openclaw\目录,无需管理员权限。
- 重启gateway,安装完成后请手动重启使其生效。
openclaw gateway restart
参数说明
- 必填:--agent-id、--apm-endpoint、--apm-token
- 启用AOM指标时还需:--project-id、--aom-endpoint、--aom-access-code、--aom-prometheus-id
| 参数 | 是否必填 | 说明 |
|---|---|---|
| --agent-name | 否 | 智能体名称。 |
| --agent-id | 是 | 智能体ID。 |
| --domain-id | 否 | 账号domain ID。 |
| --project-id | 否 | 华为云项目ID。 |
| --apm-endpoint | 是 | APM数据上报地址。 |
| --apm-token | 是 | APM接入凭证Token。 |
| --aom-endpoint | 否 | AOM数据上报地址。 |
| --aom-access-code | 否 | AOM接入凭证Access Code。 |
| --aom-prometheus-id | 否 | AOM Prometheus实例ID。 |
| --apm-enable | 否 | 是否启用调用链上报,取值true、false,默认true。 |
| --aom-enable | 否 | 是否启用指标上报,取值true、false,默认true。 |
| --resource-type | 否 | 智能体类型:agent(单智能体)、multiagents(多智能体)、workflow(工作流)。 |
| --content-capture | 否 | 是否采集LLM输入/输出文本内容,取值true、false,默认true。 |
步骤三:验证数据上报
安装完成后,可通过以下步骤验证插件是否正常工作。
- 安装完成后,查看 OpenClaw gateway 日志确认插件已加载。
日志文件位置:
# Linux / macOS /tmp/openclaw/openclaw-YYYY-MM-DD.log # Windows %TEMP%\openclaw\openclaw-YYYY-MM-DD.log
如果看到以下日志,说明插件已经成功加载并开始工作:
[huawei-otel] APM OTLP traces — exporting to <apm-endpoint> [huawei-otel] AOM OTLP metrics — exporting to <aom-endpoint> [huawei-otel] APM=on, AOM=on, content_capture=on [huawei-otel] registered 9 hooks: before_agent_run, agent_end, model_call_started, model_call_ended, llm_input, llm_output, before_tool_call, after_tool_call, before_message_write
也可以用命令直接查看:
openclaw logs --follow
- 触发OpenClaw会话,进入AgentArts平台观测功能中查看数据上报。
查看监控数据
数据上报成功后,可在AgentArts智能体平台的观测功能中查看监控数据。
- 登录AgentArts 智能体平台。
- 在左侧导航栏选择“观测与优化 > 观测”。
- 在“智能体列表”页面,找到已接入的智能体,单击智能体名称进入详情页面。
查看业务指标
在“指标分析”页签中,可以查看关键业务指标:
- Tokens消耗:Input Tokens和Output Tokens的消耗总量
- 模型调用次数:应用调用大模型的累计次数
- 模型调用平均耗时:模型调用的平均响应时间
- 模型调用成功率:大模型调用成功的比例
- 会话数:应用产生的会话总数
- 响应成功率:服务响应的成功率
查看调用链信息
在“调用链分析”页签中,可以查看完整的Trace调用链路:
- 查看各Span类型的层级关系及各节点耗时
- 单击具体Span查看详细信息
查看会话分析
在“会话分析”页签中,可以查看智能体与用户对话的历史数据:
- 追踪对话上下文
- 分析模型响应耗时
- 统计Token消耗
- 快速定位对话异常问题
常见问题
插件未加载(日志中无huawei-otel)
依次检查以下项目:
- 检查~/.openclaw/openclaw.json文件中plugins.allow配置项是否包含huawei-otel。
- 检查openclaw.json中plugins.load.paths是否包含扩展目录路径。
- 检查~/.openclaw/extensions/huawei-otel/dist/index.js文件是否存在。
- 检查~/.openclaw/extensions/huawei-otel/node_modules/目录下的依赖是否安装完整。
如以上检查均正常但仍无插件日志,建议重新执行安装脚本。
安装脚本提示校验和不匹配
日志出现Checksum mismatch:
- 插件包在下载或传输过程中可能已损坏,请重新解压产物包。
- 确认插件包与同名.sha256来自同一次发布(都在产物包内,正常情况不会错配)。
- 如果.sha256缺失,安装只会告警并继续;此时无法确认包完整性,建议重新下载产物包。
Windows提示无法加载文件,因为在此系统上禁止运行脚本
执行install.ps1时报UnauthorizedAccess:
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
在当前窗口重新执行即可,无需修改系统级策略。
调用链无数据
- 确认apm_enable=true,且apm_exporter_endpoint和apm_token已正确配置。
- 确认目标节点能够访问APM端点,可通过curl <endpoint>命令验证网络连通性。
- 确认已通过OpenClaw发起实际的Agent对话活动(发送消息触发LLM调用)。
- 查看gateway日志中是否出现export result: code=0, error=none。
指标无数据
- 确认aom_enable=true(安装时默认已开启)。
- 确认已配置aom_access_code、aom_exporter_endpoint、aom_prometheus_id三个参数。
- 确认agentarts_project_id已正确配置。
- 指标上报存在15秒周期延迟,请等待后再查询。
AOM认证失败
日志出现UNAUTHENTICATED: accesscode_does_not_match_the_projectId错误:
- 确认aom_access_code与agentarts_project_id是同一账号下的一对凭证。
- 确认aom_prometheus_id属于同一AOM实例。
- 登录AgentArts平台,重新创建“OpenClaw”智能体,获取最新凭证参数,并重新执行安装脚本。
调用链中看不到LLM输入/输出内容
- 确认content_capture_enable=true(默认已开启)。
- 确认openclaw.json中已配置hooks.allowConversationAccess: true。
- 中间推理步骤的内容由插件自动补全,无需额外配置。
技能指标始终为0
技能指标仅在检测到Skill相关的工具调用时触发,普通工具调用(如exec、calculator等)不会产生技能指标。满足以下条件之一时才会触发技能指标采集:
- 工具调用参数中包含skills/<name>/路径模式(如~/.openclaw/skills/hatch-pet/...)。
- 工具调用参数中包含<name>/SKILL.md文件路径模式(如~/.openclaw/hatch-pet/SKILL.md)。
- 工具名匹配技能名单(如Skill、load_skill、read_skill、skill_view、skill_manage等)。
全局Provider冲突警告
日志中出现以下WARN日志属于正常行为,不影响数据上报:
[huawei-otel] a global OTel TracerProvider/MeterProvider is already registered by another component.
插件使用独立的Provider实例,业务属性注入和指标记录不受影响。
重启gateway
openclaw gateway restart
卸载探针
卸载脚本就在安装时解压出的产物包目录里(与 install.sh / install.ps1 同级),在该目录下执行:
# Linux / macOS ./uninstall.sh # Windows .\uninstall.ps1
卸载脚本会移除插件目录、清理 openclaw.json 中的插件配置、删除环境变量文件。加 --yes(或 -y)可跳过确认。
与安装一致,卸载脚本不会重启 gateway(避免中断正在运行的 agent 任务)。卸载完成后请手动重启使其生效:
openclaw gateway restart
