OSSA Specification
Complete authoritative OSSA specification document - single source of truth
OSSA Specification - Complete Reference
Single Source of Truth - This document consolidates all OSSA specification information, comparisons, and migration guides into one authoritative reference.
Overview
The Open Standard for Software Agents (OSSA) is a specification standard for defining AI agents, similar to how OpenAPI standardizes REST APIs. OSSA enables agent interoperability across frameworks, runtimes, and organizations.
Table of Contents
- Specification Versions
- Core Concepts
- Schema Reference
- Framework Comparison
- Migration Guides
- Version-Specific Information
Specification Versions
Current Version: v0.3.2
Status: Stable
Release Date: 2025-12-31
Schema: v0.3.2 JSON Schema
Previous Versions
- v0.3.1: Previous stable release
- v0.3.0: First v0.3.x stable release
- v0.2.9: Legacy version
Version Migration
See Migration Guides section for version-to-version migration instructions.
Core Concepts
What is OSSA?
OSSA is a specification standard (not a framework) that defines:
- A canonical folder structure (
agents/) that scales from one agent to thousands - Agent manifest format (
agent.ossa.yaml) as the single source of truth - Agent capabilities, roles, and taxonomy
- Context window strategies (sliding window + long-term memory)
- Agent-to-agent messaging (A2A protocol)
- Workflow composition
- Observability and governance
Key Principles
- Framework Agnostic: Works with any agent framework
- Language Independent: Not tied to any programming language
- Vendor Neutral: Open standard, no vendor lock-in
- Designed for Enterprise: Built-in governance, compliance, and observability features
- Versioned: Semantic versioning with migration paths
- Auditable Context: Agents declare deterministic context strategies for predictable behavior
Resource Kinds
OSSA v0.3.2 supports multiple resource kinds:
- Agent: Single agent definition
- Workflow: Multi-agent composition
- Task: Deterministic task definition
- MessageRouting: Message routing rules
Schema Reference
Canonical Folder Structure
OSSA defines a filesystem layout that scales from a single agent to thousands:
agents/
├── registry.yaml # Optional: local index (generated)
├── _shared/ # Optional: shared prompt/tool/policy assets
│ ├── policies/ # Org/team policy bundles (OPA, etc.)
│ ├── prompts/ # Reusable prompt fragments
│ └── tools/ # Shared tool schemas (OpenAPI/JSON Schema)
├── <agent-name>/
│ ├── agent.ossa.yaml # REQUIRED: single source of truth
│ ├── system-prompt.md # Optional: long prompt (referenced by manifest)
│ ├── tools/ # Optional: agent-specific tool schemas
│ ├── knowledge/ # Optional: RAG sources (docs) or pointers
│ └── tests/ # Optional: evals + conformance tests
agents-workspace/ # Derived outputs (gitignored)
├── exports/ # Generated target formats (LangGraph/CrewAI/etc.)
├── state/ # Runtime checkpoints
└── logs/ # Traces
See Project Structure for the complete guide.
What a Perfect Agent Must Declare
At minimum, the agent.ossa.yaml manifest must answer four questions:
- Who published this? - Identity + provenance (metadata, labels, annotations)
- What can it do? - Capabilities/skills + interfaces (role, domain, tools)
- What does it need? - Runtime + resources + dependencies (LLM config, sandbox, limits)
- What is it allowed to access? - Policy + secrets + data boundaries
Core Agent Fields
Agent Identification
- metadata.name: Human-readable name
- metadata.version: Semantic version (e.g., "1.2.0")
- metadata.labels: Key-value pairs for classification (team, tier, etc.)
- metadata.annotations: Extended metadata (owner, SLA, repo URL)
Agent Capabilities
- spec.role: Agent role classification (worker, supervisor, coordinator, specialist)
- spec.domain: Business/functional domain
- spec.capabilities: Array of capability names
- spec.tools: Available tools with source references
Agent Context Strategy
- spec.context.strategy: How to manage the context window (sliding_window, summarize, etc.)
- spec.context.max_tokens: Hard token limit
- spec.context.reserved_tokens: Token reservations for system prompt, tools, and output
- spec.context.long_term_memory: Vector store configuration for persistent recall
Agent Configuration
- spec.llm: LLM provider and model configuration with env var substitution
- spec.runtime: Execution sandbox and resource limits
- spec.policies: Policy references (OPA, custom)
- spec.data_boundaries: Allowed and denied data namespaces
Complete Schema Documentation
For detailed field-by-field documentation, see:
Validation
Validate agent manifests:
ossa validate agent.ossa.yaml
Framework Comparison
OSSA vs. Popular Frameworks
| Framework | Type | OSSA Compatibility | Enterprise Features |
|---|---|---|---|
| OSSA | Open Standard | Native | Built-in |
| LangChain | Development Framework | Via adapter | Limited |
| AutoGPT | Autonomous Agent | Via adapter | None |
| CrewAI | Multi-Agent Framework | Via adapter | None |
| Microsoft AutoGen | Conversational Framework | Via adapter | Limited |
Key Differentiators
OSSA Advantages
- Framework Agnostic: Not tied to any specific framework
- Multi-Language: Works with any programming language
- Enterprise Governance: Built-in compliance, audit, and policy enforcement
- Standardized Observability: OpenTelemetry integration
- Portability: Agents can move between runtimes
- Versioning: Semantic versioning with migration paths
Framework-Specific Strengths
- LangChain: Rich ecosystem, rapid prototyping
- AutoGPT: Full autonomy, self-directed tasks
- CrewAI: Role-based agent teams, simple orchestration
- AutoGen: Conversational AI, human-in-the-loop
Detailed Comparison
For comprehensive framework comparison, see:
Migration Guides
Framework Migrations
Migrate agents from popular frameworks to OSSA:
- LangChain to OSSA
- CrewAI to OSSA
- Drupal ECA to OSSA
- Anthropic MCP to OSSA
- OpenAI to OSSA
- Langflow to OSSA
Version Migrations
v0.3.1 -> v0.3.2
New Features:
- Unified LLM configuration with runtime-configurable models
- Environment variable substitution for LLM config
- Fallback models configuration
- Retry configuration with backoff strategies
- Cross-platform compatibility (GitLab Duo, Google A2A, MCP)
Migration Steps:
- Update
apiVersiontoossa/v0.3.2 - Optionally migrate hardcoded provider/model to env vars
- Add fallback_models for production resilience
- Configure retry_config for transient failures
- Validate with
ossa validate
Migration Tool:
ossa migrate agent.ossa.yaml --from v0.3.1 --to v0.3.2
v0.2.x -> v0.3.2
Breaking Changes:
- Agent messaging (A2A protocol) introduced
- Workflow composition enhanced
- Schema structure updated
- Unified LLM configuration
Migration Steps:
- Update
apiVersiontoossa/v0.3.2 - Review messaging configuration
- Update workflow definitions
- Migrate LLM config to new unified format
- Validate with
ossa validate
Migration Tool:
ossa migrate agent.ossa.yaml --from v0.2.9 --to v0.3.2
Version-Specific Information
OSSA v0.3.2
New Features
-
Unified LLM Configuration
- Runtime-configurable models (no hardcoded providers)
- Environment variable substitution:
${LLM_PROVIDER:-anthropic} - Fallback models for automatic failover
- Retry configuration with backoff strategies
- Cross-platform compatibility (OSSA, GitLab Duo, Google A2A, MCP)
-
Execution Profiles
- Task-specific optimization profiles
- Compatible with Google A2A
- Profiles:
fast,balanced,deep,safe
-
Enhanced Resilience
- Fallback conditions:
on_error,on_timeout,on_rate_limit,always - Backoff strategies:
exponential,linear,constant
- Fallback conditions:
-
Enterprise Governance
- Compliance metadata (SOC2, GDPR, HIPAA)
- Policy enforcement
- Audit logging
Schema Changes
- Added
fallback_modelsto LLM config - Added
retry_configto LLM config - Added
profilefield for execution profiles - Environment variable substitution support
Example Configuration
apiVersion: ossa/v0.4.9 kind: Agent metadata: name: production-agent version: 1.0.0 spec: llm: provider: ${LLM_PROVIDER:-anthropic} model: ${LLM_MODEL:-claude-sonnet-4} profile: balanced temperature: 0.3 maxTokens: 8192 fallback_models: - provider: openai model: gpt-4o condition: on_error retry_config: max_attempts: 3 backoff_strategy: exponential
OSSA v0.3.1
Features
-
Agent-to-Agent (A2A) Messaging
- Standardized message envelopes
- Message routing and delivery
- Authentication and encryption support
-
Enhanced Workflow Composition
- Multi-agent workflows
- Conditional execution
- Parallel and sequential patterns
-
Improved Observability
- OpenTelemetry integration
- Distributed tracing
- Structured logging
Agent Schema Comparison
GitLab Duo Agent vs. OSSA Agent
GitLab Duo Agent:
- Specialized for GitLab integration
- Project-scoped agents
- GitLab-specific triggers
OSSA Agent:
- Platform-agnostic design
- Universal trigger types
- Framework-independent
For detailed comparison, see:
Related Documentation
Getting Started
Technical Reference
Integration Guides
References
- OSSA Specification Repository: https://gitlab.com/blueflyio/openstandardagents
- npm Package: @bluefly/openstandardagents
- Website: https://openstandardagents.org
- JSON Schema: v0.3.2 Schema
Changelog
See Changelog for detailed version history and changes.
Last Updated: 2025-12-31
Specification Version: v0.3.2
Document Status: Complete and Authoritative