Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
6ccb1a4
adding agent class
Apr 16, 2026
0add5cc
adding agent capability
Apr 16, 2026
084a53b
adding agent external tool
Apr 16, 2026
9fd010b
adding agent memory mode
Apr 16, 2026
e73b385
adding automation level
Apr 16, 2026
faa60d5
adding automation level in vocabulary
Apr 16, 2026
d91a583
persist memory relationship type
Apr 16, 2026
9b55632
adding input modality
Apr 16, 2026
462323a
adding output modality
Apr 16, 2026
fbe7300
moving input and output modality to software
Apr 16, 2026
418006c
upadte the fields
Apr 17, 2026
5100387
modifying agent type and protocol
Apr 17, 2026
07cb774
modifying the Summaries and Descriptions
Apr 17, 2026
dbddf59
update input modality
Apr 17, 2026
e4ae023
update output modality
Apr 17, 2026
0ece14e
update agent capabolity
Apr 17, 2026
27032c2
first draft for AI agent class
Apr 17, 2026
4a11714
remove additional files
Apr 17, 2026
537912b
Merge branch 'develop' into add-ai-agent-v2
ElyasRashno Apr 17, 2026
b102e1b
adding usesmodel and fixing the memorymode
Apr 22, 2026
2759be6
updating automation level definition
Apr 22, 2026
bd7990e
updating agent type and agent external properties
Apr 22, 2026
3711cf1
updating the external properties
Apr 22, 2026
57abd65
updating agent capability and externaltools
Apr 22, 2026
78f20a9
updating core artifact suppliedby
Apr 22, 2026
185eac6
updating suppliedby
Apr 22, 2026
ba2dca5
updating suppliedby
Apr 22, 2026
faa40ce
updating suppliedby
Apr 22, 2026
8357616
updating external properties
Apr 22, 2026
a8cbbcb
updating external properties
Apr 22, 2026
80b0e69
removing suppliedby
Apr 28, 2026
41e93ce
removing releasetime
Apr 28, 2026
6e38450
removing external properties
Apr 28, 2026
c7f20b4
modifying gitignore
Apr 28, 2026
246ae3d
removing automation level
Apr 28, 2026
907ad59
fixing the suggestions on PR
May 13, 2026
0610067
single newline character was added
May 13, 2026
6e8a18e
agentProtocol to agentCommunicationProtocol
May 22, 2026
0c4f8cd
adding safetyRiskAssesment to the AIAgent class
May 26, 2026
0ae957c
updating agent type and provide more examples
May 26, 2026
a66a989
agentCapability should be captured across all AI agents.
Jun 1, 2026
afca67a
updating agentCapability examples
Jun 1, 2026
836cd4b
updating agentComunicationProtocol description
Jun 1, 2026
ae17cd0
updating agentComunicationProtocol examples
Jun 1, 2026
128437c
updating memoryMode description
Jun 1, 2026
0d5c15d
adding agentPermissionScope field
Jun 2, 2026
6920468
adding agentPermissionScope description
Jun 3, 2026
75451fb
updaing agentType and agentCapability
Jun 3, 2026
f0f3ccb
updaing agentType vocab description
Jun 3, 2026
dc2a1b0
clarification for AgentTrustLevel
Jun 3, 2026
9943ae7
create a vocab for agentMemoryMode
Jun 3, 2026
651375d
remove change file
Jun 3, 2026
3a1052e
fixing AgentType markdown issue
Jun 3, 2026
6b93d62
fixing AgentType markdown issue
Jun 3, 2026
eead715
agentCapability examples
Jun 3, 2026
44ec851
convert agentCapability to DictionaryEntry
Jun 3, 2026
ca74135
fixing agentExternalTool description
Jun 3, 2026
7c50e7b
modifying agentCapability summary
Jun 10, 2026
3210044
updaing agent capability type and AIAgent defination
Jun 17, 2026
3d0fe1d
removing the agentPermissionScope in the AIAgent
Jun 24, 2026
579ccaa
Update model/Core/Vocabularies/RelationshipType.md
ElyasRashno Jun 25, 2026
6bc034e
using specification range for the agentCommunicationProtocol
Jun 25, 2026
e9bb886
Update model/AI/Properties/agentCommunicationProtocol.md
ElyasRashno Jun 26, 2026
89165ea
removing the agent type
Jul 6, 2026
2913208
removing the agent type in AIAgent class
Jul 6, 2026
e356ca6
Merge branch 'develop' into add-ai-agent-v2
ElyasRashno Jul 8, 2026
a33a172
converting agentExternalTools to external resources
Jul 15, 2026
e5197b8
fixing the name issue
Jul 15, 2026
7733523
Update model/AI/Classes/AIAgent.md
ElyasRashno Jul 16, 2026
32e2e35
Update model/AI/Properties/externalResources.md
ElyasRashno Jul 16, 2026
df0326c
Update model/AI/Properties/externalResources.md
ElyasRashno Jul 16, 2026
11d0f63
updatin externalResource
Jul 16, 2026
de44d3e
updating hasPersitantMemory
Jul 22, 2026
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
60 changes: 60 additions & 0 deletions model/AI/Classes/AIAgent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
SPDX-License-Identifier: Community-Spec-1.0

# AIAgent

## Summary

Specifies an AI agent and its associated metadata.

## Description

An AI agent is a software entity that uses artificial intelligence techniques to perceive its environment, reason about its state, and take actions to achieve specified goals.

The following relationship types are also used to describe an AI agent's functionalities and interactions:

- invokedBy: Describes a relationship from any Element back to the Agent that initiated its execution (e.g., a Package is invokedBy an AIAgent; an AIAgent is invokedBy a Person).
- usesTool: Describes a relationship from the AIAgent to an Element that the agent uses as a tool to extend its capabilities.
- usesModel: Describes a relationship from the AIAgent to an /AI/AIPackage that represents the underlying AI model the agent relies on (e.g., its model weights, training data, and safety assessments), enabling BOM consumers to trace from an agent to its associated model artifacts.

## Metadata

- name: AIAgent
- SubclassOf: /Core/SoftwareAgent
- Instantiability: Concrete

## Properties

- /Core/isoAutomationLevel
- type: /Core/IsoAutomationLevel
- minCount: 0
- maxCount: 1
- agentCapability
- type: xsd:string
- minCount: 0
- agentMemoryMode
- type: AgentMemoryMode
- minCount: 0
- agentCommunicationProtocol
- type: /Core/Specification
- minCount: 0
- agentTrustLevel
- type: AgentTrustLevel
- minCount: 0
- maxCount: 1
- externalResource
- type: /Core/DictionaryEntry
- minCount: 0
- limitation
- type: xsd:string
- minCount: 0
- maxCount: 1
- /Software/inputModality
- type: /Core/Modality
- minCount: 0
- /Software/outputModality
- type: /Core/Modality
- minCount: 0
- safetyRiskAssessment
- type: SafetyRiskAssessmentType
- minCount: 0
- maxCount: 1
40 changes: 40 additions & 0 deletions model/AI/Properties/agentCapability.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
SPDX-License-Identifier: Community-Spec-1.0

# agentCapability

## Summary

Describes a specific domain task or goal the agent is designed to perform.

## Description

A free-form string that identifies a user-facing task ability of the AI agent:
what it can accomplish for a system.

*Examples*

```text
web-search: search across web and retrieve information
```

```text
document-summarization: condenses retrieved documents into structured outputs
```

```text
code-execution: runs Python snippets in a sandboxed environment
```

```text
multi-step-reasoning: decomposes complex queries into sub-tasks and plans execution order
```

```text
multi-agent-coordination: delegates sub-tasks to specialized agents and aggregates results
```

## Metadata

- name: agentCapability
- Nature: ObjectProperty
- Range: xsd:string
31 changes: 31 additions & 0 deletions model/AI/Properties/agentCommunicationProtocol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
SPDX-License-Identifier: Community-Spec-1.0

# agentCommunicationProtocol

## Summary

Identifies a standardized communication protocol implemented by the AI agent
for interacting with external tools, data sources, or other agents.

## Description

Specifies the standardized communication protocol(s) that the AI agent
implements, enabling consumers, integrators, and automated tooling to determine
how the agent can be invoked, composed, or connected within a larger system.

Each `agentCommunicationProtocol` entry references a `Specification`
that describes the protocol. The `Specification`'s `name` identifies the
protocol, its `externalIdentifier` (e.g., a `webpage` identifier) locates the
protocol's authoritative definition or version.

*Examples*

Protocols that can be described this way include the Model Context Protocol
(MCP), Agent2Agent (A2A), the Agent Network Protocol (ANP), and the Agent
Connect Protocol (AConP).

## Metadata

- name: agentCommunicationProtocol
- Nature: ObjectProperty
- Range: /Core/Specification
21 changes: 21 additions & 0 deletions model/AI/Properties/agentMemoryMode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
SPDX-License-Identifier: Community-Spec-1.0

# agentMemoryMode

## Summary

Indicates the memory category or storage mechanism used by the AI agent.

## Description

Classifies how an AI agent retains and recalls information across interactions
or reasoning steps. Multiple values may be declared when an agent employs more
than one memory mechanism.

**Values:** see `AI/AgentMemoryMode` vocabulary.

## Metadata

- name: agentMemoryMode
- Nature: ObjectProperty
- Range: AgentMemoryMode
30 changes: 30 additions & 0 deletions model/AI/Properties/agentTrustLevel.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
SPDX-License-Identifier: Community-Spec-1.0

# agentTrustLevel

## Summary

Indicates the degree of external verification applied to the AI agent's
identity, behavioral claims, and declared capabilities.

## Description

Specifies the trust level assigned to an AI agent, reflecting how rigorously
its identity and behavior have been verified by external parties. Trust level
informs consumers, orchestrators, and access-control systems about the
confidence they can place in the agent's declared properties and the scope of
resources or operations the agent may be permitted to access.

The four levels progress from `unverified` (no assessment performed) through
`selfDeclared` (developer or operator claims only) and `thirdPartyReviewed`
(independent audit) to `certified` (formal certification by a recognized
standards body).

An agent declares at most one trust level. When no value is present, consumers
should treat the agent as unverified.

## Metadata

- name: agentTrustLevel
- Nature: ObjectProperty
- Range: AgentTrustLevel
33 changes: 33 additions & 0 deletions model/AI/Properties/externalResource.md

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Rename the file to use singular form

model/AI/Properties/externalResources.md -> model/AI/Properties/externalResource.md

Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
SPDX-License-Identifier: Community-Spec-1.0

# externalResource

## Summary

Identifies an external resource that the AI agent can access or invoke to extend its capabilities.

## Description

Identifies an external resources, API, service, knowledge base, or data sources, that the AI agent can invoke to
perform actions or retrieve information beyond its built-in model. Each entry maps a short, human-readable resource identifier (the key) to a URI, package URL, or other
reference that locates the resource's definition or specification (the value).

*Examples*

```text
web-search: https://serpapi.com/
```

```text
code-interpreter: pkg:pypi/jupyter-kernel-gateway@2.0.0
```

```text
pubmed-query: https://eutils.ncbi.nlm.nih.gov/entrez/eutils/
```

## Metadata

- name: externalResource
- Nature: ObjectProperty
- Range: /Core/DictionaryEntry
28 changes: 28 additions & 0 deletions model/AI/Vocabularies/AgentMemoryMode.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
SPDX-License-Identifier: Community-Spec-1.0

# AgentMemoryMode

## Summary

The type of memory store or storage mechanism used by the AI agent.

## Description

Classifies how an AI agent retains and recalls information across interactions
or reasoning steps. Multiple values may be declared when an agent employs more
than one memory mechanism.

## Metadata

- name: AgentMemoryMode

## Entries

- episodic: Records of past events, interactions, or task executions that provide experiential context for future reasoning.
- semantic: Factual or conceptual knowledge stored for retrieval and inference (e.g., vector embeddings, knowledge graphs).
- procedural: Encoded skills, plans, or behavioral patterns that guide the agent's execution strategy.
- working: Short-lived, context-scoped information used within a single reasoning session or conversation turn.
- inContext: Information retained within the active context window of the underlying language model.
- inWeights: Knowledge encoded in model parameters through pretraining or fine-tuning; not updated at runtime.
- inCache: Precomputed key-value attention caches enabling efficient reuse of prior computations.
- external: Information persisted in an external store (database, file system, vector store) and retrieved on demand.
25 changes: 25 additions & 0 deletions model/AI/Vocabularies/AgentTrustLevel.md

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

This is potentially be shared by non-AI use cases.
So we can consider to bring this up to Core namespace.

Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
SPDX-License-Identifier: Community-Spec-1.0

# AgentTrustLevel

## Summary

How much the agent's identity and behavior have been independently verified.

## Description

Indicates how rigorously an AI agent has been checked by external parties.
The four levels progress from no verification at all to formal certification,
and can be used by orchestrators or access-control systems to decide what the
agent is allowed to do.

## Metadata

- name: AgentTrustLevel

## Entries

- unverified: No review has been performed. The agent's identity, capabilities, and behavior are entirely unconfirmed. Treat with maximum caution and restrict access accordingly.
- selfDeclared: The agent's developer or operator has described its behavior, but no one else has checked those claims. Suitable for internal or sandboxed use where the declaring party is trusted.
- thirdPartyReviewed: An independent party has audited the agent, but it has not been formally certified. Offers more confidence than self-declaration; suitable for controlled production use.
- certified: A recognized standards or certification body has formally verified the agent against defined criteria. Appropriate for high-stakes or regulated deployments.
19 changes: 19 additions & 0 deletions model/Software/Properties/inputModality.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
SPDX-License-Identifier: Community-Spec-1.0

# inputModality

## Summary

Fundamental data or sensory type accepted as input by a software artifact or agent.

## Description

Specifies the fundamental type of data that a software artifact or agent accepts and processes as input. This includes the sensory or representational form of data, such as natural language text, images, audio, or structured records.

Multiple `inputModality` values may be declared when a software artifact or agent processes more than one type of input.

## Metadata

- name: inputModality
- Nature: ObjectProperty
- Range: /Core/Modality
19 changes: 19 additions & 0 deletions model/Software/Properties/outputModality.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
SPDX-License-Identifier: Community-Spec-1.0

# outputModality

## Summary

Fundamental data or sensory type produced as output by a software artifact or agent.

## Description

Specifies the fundamental type of data that a software artifact or agent produces or emits as output. This includes the sensory or representational form of data, such as natural language text, images, audio, or structured records.

Multiple `outputModality` values may be declared when a software artifact or agent produces more than one type of output.

## Metadata

- name: outputModality
- Nature: ObjectProperty
- Range: /Core/Modality