@ultrathink-solutions/openclaw-logfire 0.1.0 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +17 -5
- package/SKILL.md +98 -0
- package/openclaw.plugin.json +1 -2
- package/package.json +2 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,21 @@ All notable changes to `@ultrathink-solutions/openclaw-logfire` will be document
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.1.1] - 2026-02-16
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- Removed JSON Schema `$schema` declaration (draft 2020-12) from `openclaw.plugin.json` — OpenClaw's bundled Ajv only supports draft-07 and crashes on any CLI command when an incompatible `$schema` is present
|
|
13
|
+
- Changed plugin manifest `id` from `"logfire"` to `"openclaw-logfire"` — OpenClaw resolves plugin config by manifest `id`, and the mismatch caused config entries to silently not pass through to the plugin
|
|
14
|
+
|
|
15
|
+
### Changed
|
|
16
|
+
|
|
17
|
+
- **Breaking:** Config entry key must now be `"openclaw-logfire"` (was `"logfire"`) to match the corrected manifest `id`
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- `SKILL.md` for ClawHub registry listing
|
|
22
|
+
|
|
8
23
|
## [0.1.0] - 2026-02-15
|
|
9
24
|
|
|
10
25
|
### Added
|
|
@@ -25,4 +40,5 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
25
40
|
- Batch and simple span processor modes
|
|
26
41
|
- Zero-config quickstart (just set `LOGFIRE_TOKEN`)
|
|
27
42
|
|
|
43
|
+
[0.1.1]: https://github.com/Ultrathink-Solutions/openclaw-logfire/compare/v0.1.0...v0.1.1
|
|
28
44
|
[0.1.0]: https://github.com/Ultrathink-Solutions/openclaw-logfire/releases/tag/v0.1.0
|
package/README.md
CHANGED
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
# @ultrathink/openclaw-logfire
|
|
1
|
+
# @ultrathink-solutions/openclaw-logfire
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@ultrathink-solutions/openclaw-logfire)
|
|
4
|
+
[](LICENSE)
|
|
2
5
|
|
|
3
6
|
Pydantic [Logfire](https://pydantic.dev/logfire) observability plugin for [OpenClaw](https://openclaw.ai).
|
|
4
7
|
|
|
5
8
|
Full agent lifecycle tracing aligned with [OTEL GenAI semantic conventions](https://opentelemetry.io/docs/specs/semconv/gen-ai/) — tool calls, token metrics, error stack traces, and optional distributed tracing across services.
|
|
6
9
|
|
|
10
|
+
> **Real-world context:** We built this plugin as part of deploying OpenClaw into production on the [Ultrathink Axon platform](https://ultrathinksolutions.com/the-signal/openclaw-to-production/). The architecture and design decisions are detailed in that post.
|
|
11
|
+
|
|
7
12
|
## Quickstart
|
|
8
13
|
|
|
9
14
|
```bash
|
|
10
|
-
npm install @ultrathink/openclaw-logfire
|
|
15
|
+
npm install @ultrathink-solutions/openclaw-logfire
|
|
11
16
|
```
|
|
12
17
|
|
|
13
18
|
Set your Logfire write token:
|
|
@@ -22,7 +27,7 @@ Add to `openclaw.json`:
|
|
|
22
27
|
{
|
|
23
28
|
"plugins": {
|
|
24
29
|
"entries": {
|
|
25
|
-
"logfire": {
|
|
30
|
+
"openclaw-logfire": {
|
|
26
31
|
"enabled": true,
|
|
27
32
|
"config": {}
|
|
28
33
|
}
|
|
@@ -88,7 +93,7 @@ All settings are optional. Sensible defaults work out of the box.
|
|
|
88
93
|
{
|
|
89
94
|
"plugins": {
|
|
90
95
|
"entries": {
|
|
91
|
-
"logfire": {
|
|
96
|
+
"openclaw-logfire": {
|
|
92
97
|
"enabled": true,
|
|
93
98
|
"config": {
|
|
94
99
|
// Logfire project (enables clickable trace links in logs)
|
|
@@ -229,9 +234,16 @@ ln -s $(pwd) ~/.openclaw/extensions/openclaw-logfire
|
|
|
229
234
|
|
|
230
235
|
export LOGFIRE_TOKEN="your-write-token"
|
|
231
236
|
openclaw restart
|
|
232
|
-
openclaw plugins list # Should show "logfire" as enabled
|
|
237
|
+
openclaw plugins list # Should show "openclaw-logfire" as enabled
|
|
233
238
|
```
|
|
234
239
|
|
|
240
|
+
## Built By
|
|
241
|
+
|
|
242
|
+
[Ultrathink Solutions](https://ultrathinksolutions.com) — production-grade AI agent infrastructure. We help teams close the gap between AI demos and production systems.
|
|
243
|
+
|
|
244
|
+
- [We Put OpenClaw Into Production in a Weekend](https://ultrathinksolutions.com/the-signal/openclaw-to-production/) — the architecture behind this plugin
|
|
245
|
+
- [The AI Execution Gap](https://ultrathinksolutions.com/the-signal/ai-execution-gap/) — why most AI projects stall between POC and production
|
|
246
|
+
|
|
235
247
|
## License
|
|
236
248
|
|
|
237
249
|
MIT
|
package/SKILL.md
ADDED
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: openclaw-logfire
|
|
3
|
+
description: Pydantic Logfire observability — OTEL GenAI traces, tool call spans, token metrics, distributed tracing
|
|
4
|
+
version: 0.1.1
|
|
5
|
+
homepage: https://github.com/Ultrathink-Solutions/openclaw-logfire
|
|
6
|
+
metadata:
|
|
7
|
+
openclaw:
|
|
8
|
+
primaryEnv: LOGFIRE_TOKEN
|
|
9
|
+
requires:
|
|
10
|
+
env:
|
|
11
|
+
- LOGFIRE_TOKEN
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# OpenClaw Logfire Plugin
|
|
15
|
+
|
|
16
|
+
Pydantic [Logfire](https://pydantic.dev/logfire) observability plugin for OpenClaw. Traces the full agent lifecycle with [OTEL GenAI semantic conventions](https://opentelemetry.io/docs/specs/semconv/gen-ai/) — tool calls, token usage, errors, and optional distributed tracing across services.
|
|
17
|
+
|
|
18
|
+
## Install
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
openclaw plugins install @ultrathink-solutions/openclaw-logfire
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Set your Logfire write token:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
export LOGFIRE_TOKEN="your-token"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Add to `openclaw.json`:
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"plugins": {
|
|
35
|
+
"entries": {
|
|
36
|
+
"openclaw-logfire": {
|
|
37
|
+
"enabled": true,
|
|
38
|
+
"config": {}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Restart OpenClaw. Traces appear in your Logfire dashboard.
|
|
46
|
+
|
|
47
|
+
## What It Traces
|
|
48
|
+
|
|
49
|
+
Every agent invocation produces a span tree:
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
invoke_agent chief-of-staff (root span)
|
|
53
|
+
|-- execute_tool Read (file read)
|
|
54
|
+
|-- execute_tool exec (shell command)
|
|
55
|
+
|-- execute_tool Write (file write)
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Spans follow OTEL GenAI semantic conventions: `gen_ai.agent.name`, `gen_ai.tool.name`, `gen_ai.usage.input_tokens`, `gen_ai.usage.output_tokens`, etc.
|
|
59
|
+
|
|
60
|
+
## Metrics
|
|
61
|
+
|
|
62
|
+
- `gen_ai.client.token.usage` — token count histogram (input/output)
|
|
63
|
+
- `gen_ai.client.operation.duration` — agent invocation latency
|
|
64
|
+
|
|
65
|
+
## Key Configuration
|
|
66
|
+
|
|
67
|
+
| Setting | Default | Description |
|
|
68
|
+
|---------|---------|-------------|
|
|
69
|
+
| `environment` | `development` | Deployment environment label |
|
|
70
|
+
| `serviceName` | `openclaw-agent` | OTEL service name |
|
|
71
|
+
| `providerName` | — | GenAI provider (e.g. `anthropic`) |
|
|
72
|
+
| `captureToolInput` | `true` | Record tool arguments |
|
|
73
|
+
| `redactSecrets` | `true` | Strip API keys and JWTs |
|
|
74
|
+
| `distributedTracing.enabled` | `false` | W3C traceparent propagation |
|
|
75
|
+
|
|
76
|
+
## Security & Privacy
|
|
77
|
+
|
|
78
|
+
- **Secret redaction** (on by default): Strips API keys, platform tokens, JWTs, and credentials from recorded tool arguments before export
|
|
79
|
+
- **Tool output** is not captured by default (`captureToolOutput: false`)
|
|
80
|
+
- **Message content** is not captured by default (`captureMessageContent: false`)
|
|
81
|
+
- **Data destination**: Traces are exported via OTLP HTTP to Pydantic Logfire (US or EU region). No other external endpoints are contacted.
|
|
82
|
+
- **No local persistence**: All data is streamed to Logfire; nothing is written to disk
|
|
83
|
+
|
|
84
|
+
## External Endpoints
|
|
85
|
+
|
|
86
|
+
| URL | Data Sent |
|
|
87
|
+
|-----|-----------|
|
|
88
|
+
| `https://logfire-api.pydantic.dev` (US) | OTLP traces + metrics |
|
|
89
|
+
| `https://logfire-api-eu.pydantic.dev` (EU) | OTLP traces + metrics |
|
|
90
|
+
|
|
91
|
+
By using this plugin, trace and metric data is sent to Pydantic Logfire. Only install if you trust this destination.
|
|
92
|
+
|
|
93
|
+
## Links
|
|
94
|
+
|
|
95
|
+
- [GitHub](https://github.com/Ultrathink-Solutions/openclaw-logfire)
|
|
96
|
+
- [npm](https://www.npmjs.com/package/@ultrathink-solutions/openclaw-logfire)
|
|
97
|
+
- [Logfire](https://pydantic.dev/logfire)
|
|
98
|
+
- [Blog: We Put OpenClaw Into Production](https://ultrathinksolutions.com/the-signal/openclaw-to-production/)
|
package/openclaw.plugin.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ultrathink-solutions/openclaw-logfire",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Pydantic Logfire observability plugin for OpenClaw — OTEL GenAI semantic conventions, distributed tracing, token metrics, trace links",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Ultrathink Solutions <engineering@ultrathink.dev>",
|
|
@@ -32,6 +32,7 @@
|
|
|
32
32
|
"files": [
|
|
33
33
|
"dist/",
|
|
34
34
|
"openclaw.plugin.json",
|
|
35
|
+
"SKILL.md",
|
|
35
36
|
"README.md",
|
|
36
37
|
"LICENSE",
|
|
37
38
|
"CHANGELOG.md"
|