OPS-1.0 · Open Standard

Portfolio Format Specification

A Portfolio is a downloadable, versioned, tested AI agent configuration package. It is the atomic product unit of the AgentFolio marketplace.

Version 1.0 · Published 2026-04-10 · Open standard — no IP claims

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"
}
Field Type Required Notes
format_versionstringMust be "1.0"
portfolio_idstringkebab-case, unique across marketplace
versionsemver"major.minor.patch"
titlestringMax 80 chars
taglinestringMax 120 chars
descriptionstring200–800 chars
platformenumopenclaw, n8n, make, zapier, langchain
platform_versionsemver rangeMinimum platform version
categoryenumSee category list below
subcategorystringFree-form sub-category
tagsstring[]3–8 tags
price_centsintegerPrice in cents (USD)
licenseenumsingle-buyer, team (up to 5), enterprise
languageISO 639-1Primary language
min_required_user_skillenumbeginner, intermediate, advanced
requires_api_keysstring[]List of required API keys
created_atISO 8601UTC timestamp
updated_atISO 8601UTC timestamp
test_cases_versionsemverMust match test file version

system-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"]
    }
  ]
}
Field Type Required Notes
test_suite_versionsemverVersion of this test suite
test_cases[].idstringUnique test case ID
test_cases[].namestringHuman-readable test name
test_cases[].descriptionstringWhat this test validates
test_cases[].inputobjectTest input parameters
test_cases[].expected_outputobjectExpected output structure
test_cases[].pass_criteriastring[]Validation criteria strings

deployment/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

Category Subcategory Examples
customer-supporttickets-and-escalation, faq, refunds, returns
lead-generationqualification, routing, enrichment, outreach
content-creationblog-posts, social-media, email-campaigns, product-descriptions
data-processingextraction, classification, summarization, enrichment
hr-and-recruitingresume-screening, interview-scheduling, candidate-outreach
financeinvoice-processing, expense-reporting, financial-summary
operationstask-management, project-tracking, status-updates
developer-toolscode-review, bug-triage, documentation, test-generation

Platform Identifiers

Platform ID Notes
OpenClawopenclawPrimary target for MVP
n8nn8nSelf-hosted workflow automation
MakemakeVisual automation platform
ZapierzapierAutomated workflows
LangChainlangchainProgrammatic AI agent framework

Quality Bar

A portfolio listing on the marketplace must pass ALL of the following before going live:

manifest.json validates against this spec
system-prompt.md exists and is non-empty
workflows/workflow.md exists and covers all decision paths
test-cases/cases.json has ≥3 test cases
deployment/README.md exists with ≥4 steps
All test cases pass on the target platform (creator self-reports; spot-checked)
Creator bio is complete (name, photo, previous work)
Description is unique — no copy-pasted AI tool documentation

Versioning

When updating a portfolio to a new version:

1 Increment manifest.json version (semver)
2 Add entries to changelog.md
3 Update test-cases/cases.json if test logic changed
4 Publish as a new release on the marketplace
5 Notify existing buyers via email with upgrade link