Skip to content

Commit a421ad0

Browse files
authored
Merge pull request #953 from mnfst/skill-mnfst
Rewrite bundled manifest skill
2 parents 78c960d + bf26917 commit a421ad0

File tree

2 files changed

+126
-49
lines changed

2 files changed

+126
-49
lines changed

.changeset/update-bundled-skill.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"manifest": patch
3+
---
4+
5+
Rewrite bundled agent skill with complete setup guide, routing docs, and dashboard reference

skills/manifest/SKILL.md

Lines changed: 121 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,165 @@
11
---
22
name: manifest
3-
description: Install and configure the Manifest observability plugin for OpenClaw agents. Use when the user wants to set up Manifest telemetry, connect an agent to Manifest, configure an API key or endpoint, troubleshoot plugin connection issues, or check if the Manifest plugin is running.
4-
metadata: {"openclaw":{"requires":{"bins":["openclaw"]}}}
3+
description: Set up and use Manifest — the open-source LLM router and observability plugin for OpenClaw. Use when the user asks to install Manifest, set up cost tracking, configure LLM routing, monitor agent costs/tokens, understand what Manifest does, check Manifest status, troubleshoot the plugin, or wants to reduce OpenClaw costs. Also triggers on "manifest setup", "install manifest", "how much am I spending", "track my costs", "route to cheaper models", "manifest dashboard", "manifest help".
54
---
65

7-
# Manifest Setup
6+
# Manifest — LLM Router & Observability for OpenClaw
87

9-
Follow these steps **in order**. Do not skip ahead.
8+
Manifest is an OpenClaw plugin that:
109

11-
## Step 1 — Stop the gateway
10+
- **Routes every request** to the most cost-effective model via a 23-dimension scoring algorithm (<2ms latency)
11+
- **Tracks costs and tokens** in a real-time dashboard
12+
- **Sets limits** with email alerts and hard spending caps
1213

13-
Stop the gateway first to avoid hot-reload issues during configuration.
14+
## Setup (Cloud — default)
1415

15-
Show the user the command below and ask for confirmation before running it.
16+
Three commands, no coding:
1617

1718
```bash
18-
openclaw gateway stop
19+
openclaw plugins install manifest
20+
openclaw config set plugins.entries.manifest.config.apiKey "mnfst_YOUR_KEY"
21+
openclaw gateway restart
1922
```
2023

21-
## Step 2 — Install the plugin
24+
Get the API key at [app.manifest.build](https://app.manifest.build) → create an account → create an agent → copy the `mnfst_*` key.
25+
26+
After restart, the plugin auto-configures:
27+
28+
- Registers `manifest/auto` as the default model
29+
- Injects the `manifest` provider into `~/.openclaw/openclaw.json`
30+
- Starts exporting OTLP telemetry to `app.manifest.build`
31+
- Exposes three agent tools: `manifest_usage`, `manifest_costs`, `manifest_health`
32+
33+
Dashboard at [app.manifest.build](https://app.manifest.build). Telemetry arrives within 10-30 seconds (batched OTLP export).
2234

23-
Show the user the command below and ask for confirmation before running it.
35+
### Verify connection
36+
37+
```bash
38+
openclaw manifest
39+
```
40+
41+
Shows: mode, endpoint reachability, auth validity, agent name.
42+
43+
## Setup (Local — offline alternative)
44+
45+
Use local mode only when data must never leave the machine.
2446

2547
```bash
2648
openclaw plugins install manifest
49+
openclaw config set plugins.entries.manifest.config.mode local
50+
openclaw gateway restart
2751
```
2852

29-
If it fails, check that OpenClaw is installed and the CLI is available in the PATH.
53+
Dashboard opens at **http://127.0.0.1:2099**. Data stored locally in `~/.openclaw/manifest/manifest.db`. No account or API key needed.
3054

31-
## Step 3 — Get an API key
55+
To expose over Tailscale: `tailscale serve --bg 2099`
3256

33-
Ask the user:
57+
## What Manifest Answers
3458

35-
> To connect your agent, you need a Manifest API key. Here's how to get one:
36-
>
37-
> 1. Go to **https://app.manifest.build** and create an account (or sign in)
38-
> 2. Once logged in, click **"Connect Agent"** to create a new agent
39-
> 3. Copy the API key that starts with `mnfst_`
40-
> 4. Paste it here
59+
Manifest answers these questions about your OpenClaw agents — via the dashboard or directly in-conversation via agent tools:
4160

42-
Wait for a key starting with `mnfst_`. If the key doesn't match, tell the user the format looks incorrect and ask them to try again.
61+
**Spending & budget**
4362

44-
> **Note:** Your API key will be stored in `~/.openclaw/openclaw.json` under `plugins.entries.manifest.config.apiKey`. It persists on disk until you remove it.
63+
- How much have I spent today / this week / this month?
64+
- What's my cost breakdown by model?
65+
- Which model consumes the biggest share of my budget?
66+
- Am I approaching my spending limit?
4567

46-
## Step 4 — Configure the plugin
68+
**Token consumption**
4769

48-
Show the user the command below and ask for confirmation before running it.
70+
- How many tokens has my agent used (input vs. output)?
71+
- What's my token trend compared to the previous period?
72+
- How much cache am I reading vs. writing?
4973

50-
```bash
51-
openclaw config set plugins.entries.manifest.config.apiKey "USER_API_KEY"
52-
```
74+
**Activity & performance**
5375

54-
Replace `USER_API_KEY` with the actual key the user provided.
76+
- How many LLM calls has my agent made?
77+
- How long do LLM calls take (latency)?
78+
- Are there errors or rate limits occurring? What are the error messages?
79+
- Which skills/tools are running and how often?
5580

56-
Ask the user if they have a custom endpoint. If not, the default (`https://app.manifest.build/api/v1/otlp`) is used automatically. If they do:
81+
**Routing intelligence**
5782

58-
Show the user the command below and ask for confirmation before running it.
83+
- What routing tier (simple/standard/complex/reasoning) was each request assigned?
84+
- Why was a specific tier chosen?
85+
- What model pricing is available across all providers?
5986

60-
```bash
61-
openclaw config set plugins.entries.manifest.config.endpoint "USER_ENDPOINT"
62-
```
87+
**Connectivity**
88+
89+
- Is Manifest connected and healthy?
90+
- Is telemetry flowing correctly?
91+
92+
## Agent Tools
93+
94+
Three tools are available to the agent in-conversation:
6395

64-
## Step 5 — Start the gateway
96+
| Tool | Trigger phrases | What it returns |
97+
| ----------------- | ----------------------------------------------- | --------------------------------------------------------------------------- |
98+
| `manifest_usage` | "how many tokens", "token usage", "consumption" | Total, input, output, cache-read tokens + action count for today/week/month |
99+
| `manifest_costs` | "how much spent", "costs", "money burned" | Cost breakdown by model in USD for today/week/month |
100+
| `manifest_health` | "is monitoring working", "connectivity test" | Endpoint reachable, auth valid, agent name, status |
65101

66-
Show the user the command below and ask for confirmation before running it.
102+
Each accepts a `period` parameter: `"today"`, `"week"`, or `"month"`.
103+
104+
## LLM Routing
105+
106+
When the model is set to `manifest/auto`, the router scores each conversation across 23 dimensions and assigns one of 4 tiers:
107+
108+
| Tier | Use case | Examples |
109+
| ------------- | --------------------------------------- | ------------------------------------------------------- |
110+
| **Simple** | Greetings, confirmations, short lookups | "hi", "yes", "what time is it" |
111+
| **Standard** | General tasks, balanced quality/cost | "summarize this", "write a test" |
112+
| **Complex** | Multi-step reasoning, nuanced analysis | "compare these architectures", "debug this stack trace" |
113+
| **Reasoning** | Formal logic, proofs, critical planning | "prove this theorem", "design a migration strategy" |
114+
115+
Each tier maps to a model. Default models are auto-assigned per provider, but overridable in the dashboard under **Routing**.
116+
117+
Short-circuit rules:
118+
119+
- Messages <50 chars with no tools → **Simple**
120+
- Formal logic keywords → **Reasoning**
121+
- Tools present → floor at **Standard**
122+
- Context >50k tokens → floor at **Complex**
123+
124+
## Dashboard Pages
125+
126+
| Page | What it shows |
127+
| ---------------- | ----------------------------------------------------------------------------- |
128+
| **Workspace** | All connected agents as cards with sparkline activity charts |
129+
| **Overview** | Per-agent cost, tokens, messages with trend badges and time-series charts |
130+
| **Messages** | Full paginated message log with filters (status, model, cost range) |
131+
| **Routing** | 4-tier model config, provider connections, enable/disable routing |
132+
| **Limits** | Email alerts and hard spending caps (tokens or cost, per hour/day/week/month) |
133+
| **Settings** | Agent rename, delete, OTLP key management |
134+
| **Model Prices** | Sortable table of 300+ model prices across all providers |
135+
136+
## Supported Providers
137+
138+
Anthropic, OpenAI, Google Gemini, DeepSeek, xAI, Mistral AI, Qwen, MiniMax, Kimi, Amazon Nova, Z.ai, OpenRouter, Ollama. 300+ models total.
139+
140+
## Uninstall
67141

68142
```bash
143+
openclaw plugins uninstall manifest
69144
openclaw gateway restart
70145
```
71146

72-
## Step 6 — Verify
147+
This removes the plugin, provider config, and auth profiles. Set a new default model after uninstalling.
73148

74-
Wait 3 seconds for the gateway to fully start, then check the logs:
149+
## Troubleshooting
75150

76-
```bash
77-
grep "manifest" ~/.openclaw/logs/gateway.log | tail -5
78-
```
151+
**Telemetry not appearing**: The gateway batches OTLP data every 10-30 seconds. Wait, then check `openclaw manifest` for connection status.
79152

80-
Look for:
153+
**Auth errors in cloud mode**: Verify the API key starts with `mnfst_` and matches the key in the dashboard under Settings → Agent setup.
81154

82-
```
83-
[manifest] Observability pipeline active
84-
```
155+
**Port conflict in local mode**: If port 2099 is busy, the plugin checks if the existing process is Manifest and reuses it. To change the port: `openclaw config set plugins.entries.manifest.config.port <PORT>`.
85156

86-
If it appears, tell the user setup is complete. If not, check the error messages and troubleshoot.
157+
**Plugin conflicts**: Manifest conflicts with the built-in `diagnostics-otel` plugin. Disable it before enabling Manifest.
87158

88-
## Troubleshooting
159+
**After backend restart**: Always restart the gateway too (`openclaw gateway restart`) — the OTLP pipeline doesn't auto-reconnect.
160+
161+
## Privacy
89162

90-
- **"Missing apiKey"**: Re-run step 4.
91-
- **"Invalid apiKey format"**: The key must start with `mnfst_`.
92-
- **Connection refused**: The endpoint is unreachable. Check the URL or ask if they self-host.
93-
- **Duplicate OTel registration**: Disable the conflicting built-in plugin: `openclaw plugins disable diagnostics-otel`
163+
- **Cloud mode**: Only OpenTelemetry metadata (model, tokens, latency) is sent. Message content is never collected. The proxy physically cannot read prompts.
164+
- **Local mode**: All data stays on your machine.
165+
- **Product analytics**: Anonymous usage stats (opt out: `MANIFEST_TELEMETRY_OPTOUT=1` or `"telemetryOptOut": true` in `~/.openclaw/manifest/config.json`).

0 commit comments

Comments
 (0)