Dokugent Plugin Specification (v0.1)¶
β οΈ This specification is a preview and subject to change as plugin support evolves toward public beta.
This document defines the structure for Dokugent-compatible plugins using plugin.json. These plugins can extend agent capabilities via local code or remote APIs and must be certifiable, dryrunnable, and traceable.
π plugin.json Overview¶
Each plugin must contain a plugin.json file with the following top-level structure:
{
"plugin_id": "summarizer@v0.1",
"name": "Summarizer",
"description": "Summarizes long text into bullet points.",
"entrypoint": "plugins/summarizer/index.ts",
"version": "0.1.0",
"author": "yourname",
"tags": ["summarization", "llm-tool", "agent-extension"],
"interfaces": {
"input": { ... },
"output": { ... }
},
"runtime": {
"type": "typescript",
"callable": true
},
"security": {
"requires_signature": true,
"sandboxed": true,
"trust_level": "plugin"
},
"certification": {
"certified_by": "dokugent",
"cert_level": "plugin/v0.1",
"signed_at": null,
"hash": null,
"signature": null
}
}
π§© Field Reference¶
plugin_id (string, required)¶
Unique identifier and version slug. Example: "summarizer@v0.1"
name (string, required)¶
Human-readable plugin name.
description (string)¶
Short description of the pluginβs function.
entrypoint (string, required)¶
File path or URL to the executable logic.
version (string)¶
Semantic versioning format. Optional if embedded in plugin_id.
author (string)¶
Plugin creator or maintainer.
tags (array of strings)¶
Keywords to assist search, classification, and filtering.
π Interfaces¶
interfaces.input / interfaces.output¶
Describe the expected input and output schemas, aligned with JSON Schema conventions. Example:
"interfaces": {
"input": {
"type": "object",
"properties": {
"text": { "type": "string" }
},
"required": ["text"]
},
"output": {
"type": "object",
"properties": {
"summary": { "type": "string" },
"bullets": {
"type": "array",
"items": { "type": "string" }
}
}
}
}
βοΈ Runtime Options¶
runtime.type¶
Must be one of: "typescript", "python", or "api".
runtime.callable¶
Indicates if this plugin can be called as a tool by agents.
runtime.url, runtime.method, runtime.headers¶
Used only if runtime.type is "api". These define the endpoint, method, and headers to be used.
π Security and Certification¶
security block¶
Defines safety policies and trust level:
requires_signature: Plugin must be signed to run.sandboxed: Runs in an isolated context.trust_level:"internal","plugin", or"external".
certification block¶
Signed metadata generated by dokugent plugin certify.
π Related Files¶
plugin.schema.v0.1.json- Plugin registry TBD
π Future Additions¶
Planned extensions include:
- Dryrun sample definitions (
dryrun.json) - Trace metadata for inspection (
trace.json) - Registry publishing metadata