Skip to main content
The Agent Manifest describes essential properties of an agent, including its identity, capabilities, metadata, and runtime status. It also plays an important role in discoverability and how the ACP server advertises agents to clients.
During implementation, if the agent name and description are not provided, the agent’s function name and docstring will be used as defaults (as they are required).

Example SDK Implementation

The @server.agent decorator is used to configure an agent’s metadata when registering it with an ACP server:
agent.py
@server.agent(
    name="data-analyzer",
    description="Analyzes datasets and generates insights")
async def DataAnalyzerAgent():
    """String that is used as default description if not explicitly provided in the @server.agent """
    # Agent implementation here
    yield str(response.object)

Parameters

Content Types

The input_content_types and output_content_types fields specify the MIME types that an agent can handle. Wildcards are supported.

Common Content Types

  • */*: Any content
  • image/*: Any image
  • text/plain: Plain text content
  • application/json: JSON structured data
  • image/png: PNG image files
  • image/jpeg: JPEG image files
  • application/pdf: PDF documents

Example Usage

@server.agent(
    name="image-analyzer",
    description="Analyzes images and provides text descriptions",
    input_content_types=["image/png", "image/jpeg"],
    output_content_types=["text/plain", "application/json"]
)
async def ImageAnalyzerAgent(input: list[Message], context: Context):
    # Process image inputs and return text/json outputs
    pass

Default Values

If input_content_types and output_content_types are not specified in the decorator, they default to ["*/*"]:
@server.agent()  # Uses default ["*/*"] for both input and output
async def SimpleTextAgent(input: list[Message], context: Context):
    # Agent implementation
    pass
name
string
required

A unique identifier for the agent following the RFC 1123 DNS label naming convention.

Required string length: 1 - 63
Example:

"chat"

description
string
required

Human-readable description of the agent.

Example:

"Conversational agent with memory, supporting real-time search, Wikipedia lookups, and weather updates through integrated tools"

input_content_types
string[]
required

List of supported MIME content types for input Messages. Defines what formats of content the agent can consume.

Minimum length: 1
output_content_types
string[]
required

List of supported MIME content types for output Messages. Defines what formats of content the agent can produce.

Minimum length: 1
metadata
object

Static details about the agent, for discovery, classification, and cataloging.

status
object

Real-time dynamic metrics and state provided by the system managing the agent.