openclaw-plugin-jsonfirst
v1.0.0
Published
Governance layer for AI agents — transforms any natural language intent into structured, executable JSON with 12 governance modes.
Maintainers
Readme
openclaw-plugin-jsonfirst
JSONFIRST Protocol — Governance layer for AI agents
Transforms any natural language intent into a structured, executable JSON object with 12 governance modes.
Installation
Option A — SKILL.md (instant, no code)
curl -o skills/jsonfirst.skill.md https://jsonfirst.com/api/plugins/openclaw/skill
openclaw restartOption B — Native TypeScript Plugin
# In your OpenClaw project
mkdir -p plugins/jsonfirst
cd plugins/jsonfirst
# Download plugin files
curl -O https://jsonfirst.com/api/plugins/openclaw/plugin-json # openclaw.plugin.json
# Copy src/index.ts from https://jsonfirst.com/integrations/openclaw
npm install
npm run build
openclaw restartUsage
Your OpenClaw agent can now call:
const result = await jsonfirst_analyze({
text: "Réserve moi un vol pour New York",
mode: "STRICT_PROTOCOL" // default
});
// result.executable → false
// result.missing_params → ["origin", "departure_date", "passengers", "class"]
// result.next_required_fields.origin.ask_fr → "Quel est votre point de départ ?"
// After collecting missing params:
const complete = await jsonfirst_analyze({
text: "Réserve moi un vol pour New York depuis Paris le 15 mars, 2 passagers, économique",
mode: "STRICT_PROTOCOL"
});
// complete.executable → true ✅Governance Modes
| Mode | Description | Latency |
|------|-------------|---------|
| STRICT_PROTOCOL | Semantic AI analysis (GPT-4o-mini NLU) | 2-4s |
| ANTI_CREDIT_WASTE_V2 | Zero LLM cost, instant parse | <12ms |
| EXPRESS_ROUTE | Lightning speed mode | <12ms |
| GUARDIAN_MODE | HR / GDPR — human confirmation required | 2-4s |
| FINANCE_ALGO | MiFID II / SOX financial compliance | 2-4s |
| ETHICAL_LOCK | Medical / legal ethical constraints | 2-4s |
SOUL.md Integration
Add to your agent's SOUL.md:
## JSONFIRST Behavior
Before executing any multi-parameter action:
1. Call jsonfirst_analyze with the raw user message
2. If executable: false → ask for each field in missing_params (use next_required_fields[key].ask_fr)
3. If executable: true → proceed with execution
4. Never invent values. null = not provided by user.Live Demo
Try the protocol live at: https://jsonfirst.com/demo
Links
License
MIT © JSONFIRST
