📝 Agent Manifest Specification
Overview
The Traylinx Agent Manifest (traylinx-agent.yaml) is the standard format for describing an agent. It defines:
- Identity: Name, version, author
- Capabilities: What the agent can do
- Endpoints: How to interact with it
- Pricing: How usage is billed
- Requirements: Infrastructure needs
Manifest Standard v1.0
Full Example
# traylinx-agent.yaml
manifest_version: "1.0"
# ─────────────────────────────────────────────────────────────
# IDENTITY
# ─────────────────────────────────────────────────────────────
info:
name: "deep-research-agent"
display_name: "Deep Research Specialist"
version: "1.2.0"
description: |
An autonomous agent that performs comprehensive web research,
analyzes sources, and produces structured reports with citations.
icon_url: "https://assets.traylinx.com/agents/research.png"
author:
name: "Traylinx Labs"
email: "agents@traylinx.com"
url: "https://traylinx.com"
license: "MIT"
homepage: "https://github.com/traylinx/deep-research-agent"
tags:
- research
- analysis
- web-scraping
# ─────────────────────────────────────────────────────────────
# CAPABILITIES (for Registry Discovery)
# ─────────────────────────────────────────────────────────────
capabilities:
- key: domain
value: research
- key: op
value: analyze
description: "Analyze documents and web pages"
- key: op
value: summarize
description: "Generate summaries from content"
- key: input_format
value: text
- key: output_format
value: markdown
# ─────────────────────────────────────────────────────────────
# ENDPOINTS
# ─────────────────────────────────────────────────────────────
endpoints:
- path: "/a2a/research"
method: "POST"
description: "Start a research task"
schema:
input: "./schemas/research_input.json"
output: "./schemas/research_output.json"
timeout_seconds: 300
- path: "/a2a/summarize"
method: "POST"
description: "Summarize provided content"
schema:
input: "./schemas/summarize_input.json"
output: "./schemas/summarize_output.json"
timeout_seconds: 60
- path: "/health"
method: "GET"
description: "Health check"
auth_required: false
# ─────────────────────────────────────────────────────────────
# PRICING
# ─────────────────────────────────────────────────────────────
pricing:
model: "usage_based" # "usage_based" | "subscription" | "free"
currency: "CREDITS"
rates:
- metric: "request"
amount: 50
description: "50 credits per research request"
- metric: "compute_minute"
amount: 10
description: "10 credits per minute of compute"
# Optional: subscription tiers
subscription_tiers:
- name: "starter"
credits_per_month: 1000
price_usd: 9.99
- name: "pro"
credits_per_month: 10000
price_usd: 49.99
# ─────────────────────────────────────────────────────────────
# INFRASTRUCTURE
# ─────────────────────────────────────────────────────────────
infrastructure:
min_memory: "1GB"
min_cpu: "0.5"
network_access: true
environment:
- OPENAI_API_KEY # Required
- SERPER_API_KEY # Optional
dependencies:
- external_api: "openai"
required: true
- external_api: "serper"
required: false
Field Reference
info (Required)
| Field |
Type |
Required |
Description |
name |
string |
✅ |
Unique identifier (lowercase, hyphens) |
display_name |
string |
✅ |
Human-readable name |
version |
semver |
✅ |
Semantic version |
description |
string |
✅ |
What the agent does |
icon_url |
url |
❌ |
512x512 PNG icon |
author |
object |
✅ |
Author information |
license |
string |
❌ |
SPDX license identifier |
tags |
string[] |
❌ |
Discovery tags |
capabilities (Required)
Array of key-value pairs for Registry discovery:
| Key |
Common Values |
Purpose |
domain |
research, weather, travel, ecommerce |
Service domain |
op |
search, analyze, generate, translate |
Operation type |
input_format |
text, json, image, audio |
Input types |
output_format |
text, json, markdown, image |
Output types |
scope |
public, private |
Data scope |
endpoints (Required)
| Field |
Type |
Required |
Description |
path |
string |
✅ |
URL path (use /a2a/ prefix) |
method |
string |
✅ |
HTTP method |
description |
string |
✅ |
What endpoint does |
schema.input |
path |
❌ |
JSON Schema for input |
schema.output |
path |
❌ |
JSON Schema for output |
timeout_seconds |
int |
❌ |
Max execution time |
auth_required |
bool |
❌ |
Default: true |
pricing (Required for non-free agents)
| Field |
Type |
Description |
model |
enum |
usage_based, subscription, free |
currency |
string |
Always CREDITS for Traylinx |
rates |
array |
Pricing per metric |
subscription_tiers |
array |
Optional subscription plans |
Validation Rules
name must be unique across the platform
version must follow semantic versioning
- Endpoints must start with
/a2a/ for A2A compatibility
- At least one capability must be defined
- Pricing required unless
model: free
CLI Validation
# Validate manifest before publishing
$ traylinx validate
Validating traylinx-agent.yaml...
✅ Schema valid
✅ Endpoints reachable
✅ Pricing configured
✅ Ready to publish!
# Publish to Traylinx
$ traylinx publish
Comparison to Other Standards
| Feature |
Traylinx |
OpenAI Plugin |
AGENTS.md |
| Format |
YAML |
JSON |
Markdown+YAML |
| Capabilities |
✅ Key-value |
❌ |
⚠️ Limited |
| Pricing |
✅ Built-in |
❌ |
❌ |
| Versioning |
✅ Semver |
⚠️ |
❌ |
| Schema Validation |
✅ Pydantic |
❌ |
❌ |
| Portable |
✅ File-based |
❌ Hosted |
✅ File-based |