Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,15 @@ For a roadmap including expected timeline, please refer to [ROADMAP.md](./ROADMA

## [unreleased]

### Added

- Added capability type `ord:agent-skill:v1` for describing discrete, reusable agent skills that can be invoked by orchestrator agents or other systems.
- Added capability definition type `ord:agent-skill-zip:v1` for ZIP archive definitions of agent skills (mediaType `application/zip`).

### Changed

- Clarified that `ord` is a reserved vendor namespace owned by the ORD specification itself, used to register well-known, cross-vendor [Specification IDs](docs/spec-v1/index.md#specification-id).

## [1.14.2]

### Added
Expand Down
64 changes: 60 additions & 4 deletions docs/spec-v1/concepts/ai-agents-and-protocols.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,8 +231,64 @@ Given the rapidly evolving AI ecosystem, ORD takes a conservative approach to ad
This allows for experimentation without committing to a stable schema.
- **Tags:** Free-form tags for folksonomy-style categorization (e.g., `["finance", "billing", "ai-agent"]`).

### Examples
### Agent Skills as Capabilities

Example implementations are available in the ORD specification repository:
- `examples/documents/document-agents.json` — Complete ORD document with agent definitions
- `examples/definitions/DisputeResolutionAgentcard.json` — A2A Agent Card example
[Agent skills](https://agentskills.io/home) are discrete, reusable capabilities that agents can perform—packaged as folders of instructions, scripts, and resources.
In ORD, these are modeled using the **[Capability](../interfaces/Document#capability)** resource type with `type: "ord:agent-skill:v1"`.

This enables:
- **Discovery:** Agents can discover and load skills on-demand through the catalog
- **Reusability:** Skills can be shared across multiple agents and systems
- **Dependency Management:** Agents can declare dependencies on external skills

**Example agent skill:**

```json
{
"capabilities": [
{
"ordId": "sap.foo:capability:disputeSummarization:v1",
"title": "Dispute Summarization Skill",
"shortDescription": "Summarizes dispute cases and their resolution history",
"version": "1.0.0",
"type": "ord:agent-skill:v1",
"definitions": [
{
"type": "ord:agent-skill-zip:v1",
"mediaType": "application/zip",
"url": "/capabilities/disputeSummarization/skill.zip",
"accessStrategies": [{ "type": "open" }]
}
]
}
]
}
```

**Consuming agent skills:**

Agents can depend on external skills through Integration Dependency aspects:

```json
{
"integrationDependencies": [
{
"ordId": "sap.foo:integrationDependency:DisputeCaseManagement:v1",
"aspects": [
{
"title": "Document Processing Skill Access",
"description": "Uses an external agent skill for processing documents",
"mandatory": false,
"capabilities": [
{ "ordId": "sap.bar:capability:documentProcessing:v1" }
]
}
]
}
]
}
```

## Example

A complete example with agent and capability definitions is available at [document-agents.json](../examples/document-agents).
2 changes: 2 additions & 0 deletions docs/spec-v1/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -694,6 +694,8 @@ A vendor namespace MUST be constructed according to the following rules:

**Examples**: For SAP, we chose and registered `sap`.

> ℹ The `ord` vendor namespace is reserved by the ORD specification itself and is used to register well-known, cross-vendor [Specification IDs](#specification-id) (such as capability types and definition formats) that are part of the core standard. Only the ORD specification project may register identifiers under it.

> 🚧 There is currently no global namespace registry where we can ensure that there are no conflicts across different vendors.

#### System Namespace
Expand Down
32 changes: 32 additions & 0 deletions examples/documents/document-agents.json
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,28 @@
]
}
],
"capabilities": [
{
"ordId": "sap.foo:capability:disputeSummarization:v1",
"title": "Dispute Summarization Skill",
"shortDescription": "Summarizes dispute cases and their resolution history",
"description": "An agent skill that generates concise summaries of financial dispute cases, including key facts, involved parties, and resolution status.",
"version": "1.0.0",
"lastUpdate": "2022-12-19T15:47:04+00:00",
"visibility": "public",
"releaseStatus": "active",
"partOfPackage": "sap.foo:package:ord-reference-app:v1",
"type": "ord:agent-skill:v1",
"definitions": [
{
"type": "ord:agent-skill-zip:v1",
"mediaType": "application/zip",
"url": "/capabilities/disputeSummarization/skill.zip",
"accessStrategies": [{ "type": "open" }]
}
]
}
],
"integrationDependencies": [
{
"ordId": "sap.foo:integrationDependency:DisputeCaseManagement:v1",
Expand All @@ -127,6 +149,16 @@
"ordId": "sap.bar:apiResource:DisputeResolutionAPI:v1"
}
]
},
{
"title": "Document Processing Skill Access",
"description": "Optionally uses an external agent skill for processing and extracting information from supporting documents (e.g. contracts, invoices).",
"mandatory": false,
"capabilities": [
{
"ordId": "sap.bar:capability:documentProcessing:v1"
}
]
}
]
}
Expand Down
18 changes: 17 additions & 1 deletion spec/v1/Document.schema.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3034,6 +3034,14 @@ definitions:
pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
description: |-
Any valid [Specification ID](../index.md#specification-id).
- const: "ord:agent-skill:v1"
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or should we go without namespacing etc. ?

Suggested change
- const: "ord:agent-skill:v1"
- const: "agent-skill"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

better without ord namespace, as the agent skill spec is not part of ord spec itself

x-introduced-in-version: "1.14.3"
description: |-
An [agent skill](https://agentskills.io/home) is a discrete, reusable capability that an agent can perform.
Agent skills can be invoked by orchestrator agents or other systems and represent
a well-defined task or function that the agent is capable of executing.

For the capability definitions: `type` SHOULD be set to `ord:agent-skill-zip:v1`.
- const: "sap.mdo:mdi-capability:v1"
description: |-
Capability for SAP Master Data Integration (MDI).
Expand All @@ -3044,7 +3052,7 @@ definitions:
If chosen, `customType` MUST be provided.
# Deprecate this in future?
examples:
- custom
- "ord:agent-skill:v1"

customType:
<<: *customType
Expand Down Expand Up @@ -3207,6 +3215,14 @@ definitions:
pattern: ^([a-z0-9]+(?:[.][a-z0-9]+)*):([a-zA-Z0-9._\-]+):(v0|v[1-9][0-9]*)$
description: |-
Any valid [Specification ID](../index.md#specification-id).
- const: "ord:agent-skill-zip:v1"
Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alternative:

Suggested change
- const: "ord:agent-skill-zip:v1"
- const: "agent-skill-zip"

x-introduced-in-version: "1.14.3"
description: |-
A ZIP archive containing the definition of an agent skill, including all relevant
assets such as configuration and schema files.

The `mediaType` MUST be set to `application/zip`.
The capability `type` SHOULD be set to `ord:agent-skill:v1`.
- const: "sap.mdo:mdi-capability-definition:v1"
description: |-
Specification for describing master data integration capabilities for Master Data Orchestration (MDO).
Expand Down
4 changes: 2 additions & 2 deletions src/generated/spec/v1/types/Document.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1971,7 +1971,7 @@ export interface Capability {
/**
* Type of the Capability
*/
type: (string | "sap.mdo:mdi-capability:v1" | "custom") & string;
type: (string | "ord:agent-skill:v1" | "sap.mdo:mdi-capability:v1" | "custom") & string;
/**
* If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
*
Expand Down Expand Up @@ -2217,7 +2217,7 @@ export interface CapabilityDefinition {
/**
* Type of the capability resource definition
*/
type: (string | "sap.mdo:mdi-capability-definition:v1" | "custom") & string;
type: (string | "ord:agent-skill-zip:v1" | "sap.mdo:mdi-capability-definition:v1" | "custom") & string;
/**
* If the fixed `type` enum values need to be extended, an arbitrary `customType` can be provided.
*
Expand Down
Loading