Hi Muni — I'm new to Phoenix and looking for some research challenges (I don't use OpenClaw). I deleted my last response because it needed some corrections.
.
After taking a look at the OpenClaw repo, here is what I suspect is happening:
.
Two questions first:
How did you connect Phoenix? Are you using @arizeai/phoenix-otel, the diagnostics-otel plugin, or something else? (I'm assuming you used diagnostics-otel)
Click into one of those spans — what do you see in the Attributes tab?
.
The problem:
Looking at service.ts on main, the diagnostics-otel plugin doesn't emit the data Phoenix needs.
.
Two reasons:
- 1.
No content capture. The plugin does not include prompt or response text in traces. There should be a captureContent option but it doesn't exist on main yet. Input/output will always show --.
- 2.
Wrong semantic conventions. The plugin emits openclaw.* attributes. Phoenix expects OpenInference (input.value, output.value, openinference.span.kind). That should be why kind shows "unknown" and cost reads $0.
.
PR #21290 addresses both — adds captureContent and aligns with GenAI semantic conventions — but even after it merges, you'd still need a translation step to get from gen_ai.* to OpenInference. Arize's @arizeai/openinference-genai package handles that conversion at export time. Phoenix docs here.
.
Mitigation
.
I did notice a community plugin for Phoenix.
It doesn't appear to be managed by Arize - for that reason I'd rather not include links.
.
I hope that this provides a good starting point 🙂