An open, interoperable specification for describing agent composition
The Open Agent Format is a newly released specification. While we're working with major vendors to adopt this standard, most platforms haven't fully integrated OAF yet. We provide vendor-specific mapping guides below to help you convert between OAF and existing formats.
The directory structure and files define the agent - no hidden state or configuration
Works across Claude Code, Goose, Deep Agents, Letta, and other harnesses
Agents reference skills, packs, weblets, MCPs, and other agents
Built-in semantic versioning and version history support
Markdown for instructions, YAML for metadata - easy to read and edit
Core format is independent of any specific platform
AGENTS.md file with YAML frontmatter and Markdown instructionsActiveMCP.jsonA minimal OAF agent requires just one file:
my-agent/
└── AGENTS.md
The AGENTS.md file contains YAML frontmatter with metadata and Markdown instructions:
---
name: "My Assistant"
vendorKey: "acme"
agentKey: "assistant"
version: "1.0.0"
slug: "acme/assistant"
description: "A helpful AI assistant"
author: "@acme"
license: "MIT"
tags: ["assistant", "general"]
---
# Agent Purpose
I am a helpful AI assistant that can answer questions and help with tasks...
Since OAF is a new specification, we provide mapping guides to help you convert between OAF and existing vendor formats:
Convert to/from Claude Code skills format
Convert to/from Goose extensions format
Convert to/from Deep Agents format
Convert to/from Letta Agent File format
Note: These mapping pages are coming soon. We're working with each vendor to ensure accurate conversion procedures.
Ready to create your first OAF agent? Here's what you need to know:
my-vendor/my-agent/)For detailed specifications, examples, and best practices, see the full documentation.
The Open Agent Format is a living specification. We welcome feedback, proposals, and contributions from the community. If you'd like to contribute or suggest improvements: