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
The goal is to work 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.json.zip files (standard zip archives)A 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...
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: