Portfolio Format Specification
A Portfolio is a downloadable, versioned, tested AI agent configuration package. It is the atomic product unit of the AgentFolio marketplace.
Design Goals
Complete
Everything needed to deploy and run the agent is included in one package
Verifiable
Test cases prove the agent works before purchase
Portable
Clear platform targeting with migration guides to other platforms
Versioned
Each release has a changelog so buyers can update
Portfolio Package Structure
Every portfolio is delivered as a ZIP archive with the following structure:
{slug}/
├── manifest.json # Required: Metadata, version, platform
├── system-prompt.md # Required: The core system prompt
├── tools/
│ └── *.md # Optional: Per-tool configuration docs
├── workflows/
│ └── workflow.md # Required: Sequential workflow definition
├── test-cases/
│ └── cases.json # Required: Test input/output pairs
├── deployment/
│ ├── README.md # Required: Step-by-step deployment guide
│ └── platform/
│ └── *.md # Platform-specific import files
├── examples/
│ └── *.md # Optional: Sample inputs and expected outputs
└── changelog.md # Required for v1.1+: What changed since last release manifest.json Required
Metadata file with all required portfolio information.
{
"format_version": "1.0",
"portfolio_id": "customer-support-agent-openclaw",
"version": "1.0.0",
"title": "Customer Support Agent",
"tagline": "Handles Tier-1 customer inquiries with escalation logic",
"description": "A production-tested customer support agent that handles FAQ responses, ticket routing, and escalation to human agents. Built on OpenClaw with GPT-4o.",
"platform": "openclaw",
"platform_version": ">= 1.4.0",
"category": "customer-support",
"subcategory": "tickets-and-escalation",
"tags": ["support", "tickets", "escalation", "faq"],
"price_cents": 4900,
"license": "single-buyer",
"language": "en",
"min_required_user_skill": "intermediate",
"requires_api_keys": ["openai"],
"created_at": "2026-03-15T00:00:00Z",
"updated_at": "2026-03-15T00:00:00Z",
"test_cases_version": "1.0.0"
} format_versionstring✅Must be "1.0"portfolio_idstring✅kebab-case, unique across marketplaceversionsemver✅"major.minor.patch"titlestring✅Max 80 charstaglinestring✅Max 120 charsdescriptionstring✅200–800 charsplatformenum✅openclaw, n8n, make, zapier, langchainplatform_versionsemver range✅Minimum platform versioncategoryenum✅See category list belowsubcategorystring✅Free-form sub-categorytagsstring[]✅3–8 tagsprice_centsinteger✅Price in cents (USD)licenseenum✅single-buyer, team (up to 5), enterpriselanguageISO 639-1✅Primary languagemin_required_user_skillenum✅beginner, intermediate, advancedrequires_api_keysstring[]✅List of required API keyscreated_atISO 8601✅UTC timestampupdated_atISO 8601✅UTC timestamptest_cases_versionsemver✅Must match test file versionsystem-prompt.md Required
The core system prompt that defines the agent's behavior, personality, guardrails, and output format.
# System Prompt: {Title}
## Role Definition
[Who the agent is, its authority level, what it can and cannot do]
## Behavioral Rules
[3–8 specific rules the agent must follow in every interaction]
## Output Format
[Structured output format — JSON schema or markdown template]
## Guardrails
[What the agent must refuse to do, sensitive topics, content limits]
## Escalation Triggers
[Conditions under which the agent must escalate to human]
## Tone and Style
[Writing style, formality level, example phrases]
workflows/workflow.md Required
Sequential workflow definition showing the agent's decision tree and action sequence.
# Workflow: {Title}
## Trigger Conditions
[What starts this workflow — user message, webhook, scheduled time, etc.]
## Step 1: [Name]
- Action: [What the agent does]
- Tool used: [Tool name]
- Decision point: [If X, go to Step 2a; if Y, go to Step 2b]
## Step 2: [Name]
[... continue for all steps]
## Fallback Path
[What happens if something goes wrong]
## Success Criteria
[How to know the workflow completed successfully]
test-cases/cases.json Required
Test input/output pairs that prove the agent works correctly.
{
"test_suite_version": "1.0.0",
"test_cases": [
{
"id": "tc-001",
"name": "Handles FAQ response",
"description": "Given a common FAQ question, the agent returns an accurate response",
"input": {
"user_message": "How do I reset my password?",
"context": {}
},
"expected_output_type": "structured",
"expected_output": {
"response_type": "faq_answer",
"confidence": "high",
"answer": "To reset your password, go to Settings > Security > Reset Password...",
"escalate": false
},
"pass_criteria": ["escalate === false", "answer contains password reset instructions"],
"platform": "openclaw",
"tags": ["faq", "password"]
}
]
} test_suite_versionsemver✅Version of this test suitetest_cases[].idstring✅Unique test case IDtest_cases[].namestring✅Human-readable test nametest_cases[].descriptionstring✅What this test validatestest_cases[].inputobject✅Test input parameterstest_cases[].expected_outputobject✅Expected output structuretest_cases[].pass_criteriastring[]✅Validation criteria stringsdeployment/README.md Required
Step-by-step deployment instructions for the target platform.
# Deployment Guide: {Title}
## Prerequisites
- OpenClaw account (free tier works)
- OpenAI API key with GPT-4o access
- [Any other required accounts or keys]
## Step 1: Create a new agent
[Screenshot or step description]
## Step 2: Import the system prompt
[Copy-paste from system-prompt.md — specific instructions]
## Step 3: Configure tools
[Tool configuration, including any required API keys]
## Step 4: Import test cases
[How to load test-cases/cases.json into the platform]
## Step 5: Test your agent
[How to run the test cases to verify it works]
## Expected Setup Time
[Estimated time for a complete setup]
## Troubleshooting
[Common issues and fixes]
Categories
customer-supporttickets-and-escalation, faq, refunds, returnslead-generationqualification, routing, enrichment, outreachcontent-creationblog-posts, social-media, email-campaigns, product-descriptionsdata-processingextraction, classification, summarization, enrichmenthr-and-recruitingresume-screening, interview-scheduling, candidate-outreachfinanceinvoice-processing, expense-reporting, financial-summaryoperationstask-management, project-tracking, status-updatesdeveloper-toolscode-review, bug-triage, documentation, test-generationPlatform Identifiers
openclawPrimary target for MVPn8nSelf-hosted workflow automationmakeVisual automation platformzapierAutomated workflowslangchainProgrammatic AI agent frameworkVersioning
When updating a portfolio to a new version:
manifest.json version (semver) changelog.md test-cases/cases.json if test logic changed