-
Notifications
You must be signed in to change notification settings - Fork 67
Add ai agent v2 #1257
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ElyasRashno
wants to merge
73
commits into
spdx:develop
Choose a base branch
from
ElyasRashno:add-ai-agent-v2
base: develop
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Add ai agent v2 #1257
Changes from all commits
Commits
Show all changes
73 commits
Select commit
Hold shift + click to select a range
6ccb1a4
adding agent class
0add5cc
adding agent capability
084a53b
adding agent external tool
9fd010b
adding agent memory mode
e73b385
adding automation level
faa60d5
adding automation level in vocabulary
d91a583
persist memory relationship type
9b55632
adding input modality
462323a
adding output modality
fbe7300
moving input and output modality to software
418006c
upadte the fields
5100387
modifying agent type and protocol
07cb774
modifying the Summaries and Descriptions
dbddf59
update input modality
e4ae023
update output modality
0ece14e
update agent capabolity
27032c2
first draft for AI agent class
4a11714
remove additional files
537912b
Merge branch 'develop' into add-ai-agent-v2
ElyasRashno b102e1b
adding usesmodel and fixing the memorymode
2759be6
updating automation level definition
bd7990e
updating agent type and agent external properties
3711cf1
updating the external properties
57abd65
updating agent capability and externaltools
78f20a9
updating core artifact suppliedby
185eac6
updating suppliedby
ba2dca5
updating suppliedby
faa40ce
updating suppliedby
8357616
updating external properties
a8cbbcb
updating external properties
80b0e69
removing suppliedby
41e93ce
removing releasetime
6e38450
removing external properties
c7f20b4
modifying gitignore
246ae3d
removing automation level
907ad59
fixing the suggestions on PR
0610067
single newline character was added
6e8a18e
agentProtocol to agentCommunicationProtocol
0c4f8cd
adding safetyRiskAssesment to the AIAgent class
0ae957c
updating agent type and provide more examples
a66a989
agentCapability should be captured across all AI agents.
afca67a
updating agentCapability examples
836cd4b
updating agentComunicationProtocol description
ae17cd0
updating agentComunicationProtocol examples
128437c
updating memoryMode description
0d5c15d
adding agentPermissionScope field
6920468
adding agentPermissionScope description
75451fb
updaing agentType and agentCapability
f0f3ccb
updaing agentType vocab description
dc2a1b0
clarification for AgentTrustLevel
9943ae7
create a vocab for agentMemoryMode
651375d
remove change file
3a1052e
fixing AgentType markdown issue
6b93d62
fixing AgentType markdown issue
eead715
agentCapability examples
44ec851
convert agentCapability to DictionaryEntry
ca74135
fixing agentExternalTool description
7c50e7b
modifying agentCapability summary
3210044
updaing agent capability type and AIAgent defination
3d0fe1d
removing the agentPermissionScope in the AIAgent
579ccaa
Update model/Core/Vocabularies/RelationshipType.md
ElyasRashno 6bc034e
using specification range for the agentCommunicationProtocol
e9bb886
Update model/AI/Properties/agentCommunicationProtocol.md
ElyasRashno 89165ea
removing the agent type
2913208
removing the agent type in AIAgent class
e356ca6
Merge branch 'develop' into add-ai-agent-v2
ElyasRashno a33a172
converting agentExternalTools to external resources
e5197b8
fixing the name issue
7733523
Update model/AI/Classes/AIAgent.md
ElyasRashno 32e2e35
Update model/AI/Properties/externalResources.md
ElyasRashno df0326c
Update model/AI/Properties/externalResources.md
ElyasRashno 11d0f63
updatin externalResource
de44d3e
updating hasPersitantMemory
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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. |
|
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is potentially be shared by non-AI use cases. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
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