@bluefly/openstandardagents 0.2.7 → 0.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (277) hide show
  1. package/.devfile.yaml +1 -1
  2. package/.env.example +1 -1
  3. package/.version.json +2 -2
  4. package/.wiki-config.json +24 -0
  5. package/CHANGELOG.md +11 -18
  6. package/CODEOWNERS +75 -0
  7. package/CONTRIBUTING.md +1 -1
  8. package/README.md +171 -243
  9. package/dist/index.d.ts +1 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2 -0
  12. package/dist/index.js.map +1 -1
  13. package/dist/repositories/schema.repository.d.ts +6 -1
  14. package/dist/repositories/schema.repository.d.ts.map +1 -1
  15. package/dist/repositories/schema.repository.js +49 -27
  16. package/dist/repositories/schema.repository.js.map +1 -1
  17. package/dist/services/migration.service.d.ts +4 -3
  18. package/dist/services/migration.service.d.ts.map +1 -1
  19. package/dist/services/migration.service.js +11 -10
  20. package/dist/services/migration.service.js.map +1 -1
  21. package/dist/services/release-automation/release.service.js +1 -1
  22. package/dist/services/release-automation/release.service.js.map +1 -1
  23. package/dist/services/release-automation/schemas/release.schema.js +1 -1
  24. package/dist/services/runtime/claude/claude-adapter.js +1 -1
  25. package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
  26. package/dist/spec/v0.2.8/CHANGELOG.md +401 -0
  27. package/dist/spec/v0.2.8/README.md +72 -0
  28. package/dist/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  29. package/dist/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  30. package/dist/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  31. package/{spec/v0.2.6-dev/ossa-0.2.5.schema.json → dist/spec/v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  32. package/dist/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  33. package/dist/types/index.d.ts +3 -2
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/utils/index.d.ts +6 -0
  36. package/dist/utils/index.d.ts.map +1 -0
  37. package/dist/utils/index.js +6 -0
  38. package/dist/utils/index.js.map +1 -0
  39. package/dist/utils/version.d.ts +68 -0
  40. package/dist/utils/version.d.ts.map +1 -0
  41. package/dist/utils/version.js +156 -0
  42. package/dist/utils/version.js.map +1 -0
  43. package/eslint-report.json +1 -0
  44. package/examples/adk-integration/code-review-workflow.yml +1 -1
  45. package/examples/adk-integration/customer-support.yml +1 -1
  46. package/examples/adk-integration/data-pipeline.yml +1 -1
  47. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
  48. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  49. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  50. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  51. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  52. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  53. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  54. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  55. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  56. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  57. package/examples/autogen/multi-agent.ossa.json +1 -1
  58. package/examples/claude-code/code-reviewer.ossa.yaml +78 -0
  59. package/examples/claude-code/ossa-validator.ossa.yaml +80 -0
  60. package/examples/common_npm/agent-router.ossa.yaml +1 -0
  61. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
  62. package/examples/crewai/research-team.ossa.json +1 -1
  63. package/examples/cursor/code-review-agent.ossa.json +1 -1
  64. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -0
  65. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
  66. package/examples/extensions/drupal-v1.yml +1 -1
  67. package/examples/extensions/kagent-v1.yml +1 -1
  68. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  69. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  70. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  71. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  72. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  73. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -0
  74. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
  75. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  76. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  77. package/examples/langchain/chain-agent.ossa.json +1 -1
  78. package/examples/langflow/workflow-agent.ossa.json +1 -1
  79. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  80. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  81. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  82. package/examples/multi-agent/README.md +74 -0
  83. package/examples/multi-agent/conditional-router.ossa.yaml +42 -0
  84. package/examples/multi-agent/parallel-execution.ossa.yaml +54 -0
  85. package/examples/multi-agent/sequential-pipeline.ossa.yaml +45 -0
  86. package/examples/openai/basic-agent.ossa.yaml +1 -1
  87. package/examples/openai/multi-tool-agent.ossa.json +1 -1
  88. package/examples/openai/swarm-agent.ossa.json +1 -1
  89. package/examples/production/document-analyzer-openai.yml +1 -1
  90. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  91. package/examples/spec-examples/audit-agent.yml +1 -1
  92. package/examples/spec-examples/chat-agent.yml +1 -1
  93. package/examples/spec-examples/compliance-agent.yml +1 -1
  94. package/examples/spec-examples/monitoring-agent.yml +1 -1
  95. package/examples/spec-examples/workflow-agent.yml +1 -1
  96. package/examples/templates/ossa-compliance.yaml +1 -1
  97. package/examples/vercel/edge-agent.ossa.json +1 -1
  98. package/gl-code-quality-report.json +62 -0
  99. package/llms-ctx-full.txt +39 -0
  100. package/llms-ctx.txt +39 -0
  101. package/llms.txt +47 -0
  102. package/package.json +3 -2
  103. package/scripts/eslint-to-codequality.cjs +34 -0
  104. package/scripts/generate-llms-ctx.sh +17 -0
  105. package/scripts/generate-schema-docs.ts +31 -10
  106. package/scripts/sync-version.js +4 -12
  107. package/scripts/validate-schema.ts +2 -1
  108. package/spec/v0.2.8/CHANGELOG.md +401 -0
  109. package/spec/v0.2.8/README.md +72 -0
  110. package/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  111. package/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  112. package/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  113. package/{dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json → spec/v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  114. package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  115. package/test-results/junit.xml +299 -0
  116. package/bin/validate-ossa-0.2.5-RC.ts +0 -244
  117. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
  118. package/scripts/lib/exec.ts +0 -37
  119. package/scripts/lib/file-ops.ts +0 -58
  120. package/scripts/lib/version.ts +0 -83
  121. package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
  122. package/website/.lighthouserc.ts +0 -24
  123. package/website/.prettierrc +0 -10
  124. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +0 -445
  125. package/website/Dockerfile +0 -30
  126. package/website/app/about/page.tsx +0 -304
  127. package/website/app/blog/[slug]/page.tsx +0 -208
  128. package/website/app/blog/page.tsx +0 -249
  129. package/website/app/design-guide/page.tsx +0 -511
  130. package/website/app/docs/[[...slug]]/page.tsx +0 -847
  131. package/website/app/docs/core-concepts/project-structure/page.tsx +0 -349
  132. package/website/app/ecosystem/page.tsx +0 -410
  133. package/website/app/examples/page.tsx +0 -133
  134. package/website/app/globals.scss +0 -370
  135. package/website/app/layout.tsx +0 -106
  136. package/website/app/license/page.tsx +0 -183
  137. package/website/app/not-found.tsx +0 -18
  138. package/website/app/page.tsx +0 -686
  139. package/website/app/page.tsx.bak +0 -679
  140. package/website/app/page.tsx.bak2 +0 -649
  141. package/website/app/playground/page.tsx +0 -487
  142. package/website/app/robots.ts +0 -19
  143. package/website/app/rss.xml/route.ts +0 -74
  144. package/website/app/schema/page.tsx +0 -1001
  145. package/website/app/sitemap.ts +0 -56
  146. package/website/app/specification/page.tsx +0 -287
  147. package/website/components/InstallCommand.tsx +0 -96
  148. package/website/components/Logo.tsx +0 -97
  149. package/website/components/StructuredData.tsx +0 -65
  150. package/website/components/docs/DocsSearch.tsx +0 -104
  151. package/website/components/docs/DocsSidebar.tsx +0 -155
  152. package/website/components/docs/MarkdownContent.tsx +0 -401
  153. package/website/components/docs/VersionSelector.tsx +0 -105
  154. package/website/components/examples/ExamplesViewer.tsx +0 -293
  155. package/website/components/layout/Footer.tsx +0 -116
  156. package/website/components/layout/Header.tsx +0 -172
  157. package/website/components/schema/SchemaComponentsAccordion.tsx +0 -84
  158. package/website/components/schema/SchemaExplorer.tsx +0 -213
  159. package/website/components/ui/Badge.tsx +0 -82
  160. package/website/components/ui/Button.tsx +0 -116
  161. package/website/components/ui/Card.tsx +0 -167
  162. package/website/components/ui/Checkbox.tsx +0 -141
  163. package/website/components/ui/Input.tsx +0 -169
  164. package/website/components/ui/Radio.tsx +0 -141
  165. package/website/components/ui/Select.tsx +0 -182
  166. package/website/components/ui/Tag.tsx +0 -158
  167. package/website/components/ui/Textarea.tsx +0 -195
  168. package/website/components/ui/index.ts +0 -11
  169. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +0 -285
  170. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +0 -198
  171. package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +0 -286
  172. package/website/content/blog/introducing-ossa-framework.md +0 -328
  173. package/website/content/blog/ossa-production-results.md +0 -279
  174. package/website/content/blog/welcome-to-ossa.md +0 -43
  175. package/website/content/blog/why-ai-agents-need-open-standard.md +0 -98
  176. package/website/content/docs/00-home.md +0 -153
  177. package/website/content/docs/adapters/openai-adapter.md +0 -693
  178. package/website/content/docs/agents/catalog.md +0 -28
  179. package/website/content/docs/aiflow-framework-integration-with-ossa.md +0 -107
  180. package/website/content/docs/api-reference/index.md +0 -38
  181. package/website/content/docs/api-reference/ossa-core-api.md +0 -634
  182. package/website/content/docs/api-reference/ossa-registry-api.md +0 -515
  183. package/website/content/docs/api-reference/unified-agent-gateway.md +0 -599
  184. package/website/content/docs/architecture/execution-flow.md +0 -335
  185. package/website/content/docs/architecture/multi-agent-systems.md +0 -737
  186. package/website/content/docs/architecture/overview.md +0 -121
  187. package/website/content/docs/architecture/stack-integration.md +0 -461
  188. package/website/content/docs/changelog.md +0 -246
  189. package/website/content/docs/cli-reference/index.md +0 -111
  190. package/website/content/docs/cli-reference/ossa-agents.md +0 -70
  191. package/website/content/docs/cli-reference/ossa-export.md +0 -56
  192. package/website/content/docs/cli-reference/ossa-generate.md +0 -66
  193. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +0 -57
  194. package/website/content/docs/cli-reference/ossa-import.md +0 -56
  195. package/website/content/docs/cli-reference/ossa-init.md +0 -57
  196. package/website/content/docs/cli-reference/ossa-migrate.md +0 -62
  197. package/website/content/docs/cli-reference/ossa-run.md +0 -66
  198. package/website/content/docs/cli-reference/ossa-schema.md +0 -57
  199. package/website/content/docs/cli-reference/ossa-setup.md +0 -57
  200. package/website/content/docs/cli-reference/ossa-validate.md +0 -66
  201. package/website/content/docs/configuration/index.md +0 -97
  202. package/website/content/docs/contributing.md +0 -599
  203. package/website/content/docs/deployment/github-mirroring.md +0 -924
  204. package/website/content/docs/documentation.md +0 -100
  205. package/website/content/docs/ecosystem/framework-support.md +0 -1361
  206. package/website/content/docs/ecosystem/overview.md +0 -366
  207. package/website/content/docs/errors/index.md +0 -10
  208. package/website/content/docs/examples/aiflow-framework-integration-with-ossa.md +0 -107
  209. package/website/content/docs/examples/catalog.md +0 -300
  210. package/website/content/docs/for-audiences/students-researchers.md +0 -122
  211. package/website/content/docs/getting-started/index.md +0 -92
  212. package/website/content/docs/getting-started/installation.md +0 -155
  213. package/website/content/docs/getting-started/running-agents.md +0 -309
  214. package/website/content/docs/getting-started.md +0 -91
  215. package/website/content/docs/integrations/aiflow.md +0 -104
  216. package/website/content/docs/integrations/drupal.md +0 -105
  217. package/website/content/docs/migration-guides/agent-schema-comparison.md +0 -232
  218. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +0 -1750
  219. package/website/content/docs/migration-guides/crewai-to-ossa.md +0 -274
  220. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +0 -2017
  221. package/website/content/docs/migration-guides/general-agent-schema.yml +0 -247
  222. package/website/content/docs/migration-guides/index.md +0 -133
  223. package/website/content/docs/migration-guides/langchain-to-ossa.md +0 -1714
  224. package/website/content/docs/migration-guides/langflow-to-ossa.md +0 -2075
  225. package/website/content/docs/migration-guides/migration-manifest.json +0 -64
  226. package/website/content/docs/migration-guides/openai-to-ossa.md +0 -1202
  227. package/website/content/docs/openapi-extensions/examples.md +0 -550
  228. package/website/content/docs/openapi-extensions/index.md +0 -551
  229. package/website/content/docs/openapi-extensions/operation-extensions.md +0 -457
  230. package/website/content/docs/openapi-extensions/root-extensions.md +0 -410
  231. package/website/content/docs/ossa-compliant-badge.md +0 -251
  232. package/website/content/docs/pre-release/index.md +0 -175
  233. package/website/content/docs/quick-reference.md +0 -17
  234. package/website/content/docs/readme.md +0 -35
  235. package/website/content/docs/releases/v0.2.6.md +0 -99
  236. package/website/content/docs/schema-reference/agent-capabilities.md +0 -50
  237. package/website/content/docs/schema-reference/agent-id.md +0 -52
  238. package/website/content/docs/schema-reference/agent-name.md +0 -50
  239. package/website/content/docs/schema-reference/agent-role.md +0 -54
  240. package/website/content/docs/schema-reference/agent-spec.md +0 -406
  241. package/website/content/docs/schema-reference/agent-version.md +0 -50
  242. package/website/content/docs/schema-reference/autonomy.md +0 -568
  243. package/website/content/docs/schema-reference/constraints.md +0 -543
  244. package/website/content/docs/schema-reference/index.md +0 -45
  245. package/website/content/docs/schema-reference/llm-config.md +0 -445
  246. package/website/content/docs/schema-reference/observability.md +0 -654
  247. package/website/content/docs/schema-reference/ossa-manifest.md +0 -309
  248. package/website/content/docs/schema-reference/taxonomy.md +0 -509
  249. package/website/content/docs/schema-reference/tools.md +0 -628
  250. package/website/content/docs/templates/blog-post.md +0 -43
  251. package/website/content/docs/types-reference/index.md +0 -105
  252. package/website/content/docs/use-cases/00-index.md +0 -395
  253. package/website/content/docs/use-cases/cicd-code-review.md +0 -1236
  254. package/website/content/docs/use-cases/customer-support.md +0 -1234
  255. package/website/content/docs/use-cases/enterprise-compliance.md +0 -1208
  256. package/website/content/docs/use-cases/research-multi-agent.md +0 -1161
  257. package/website/content/docs/versioning.md +0 -288
  258. package/website/dev.sh +0 -53
  259. package/website/docker-compose.dev.yml +0 -36
  260. package/website/lib/version.ts +0 -35
  261. package/website/lib/versions.json +0 -103
  262. package/website/next.config.ts +0 -18
  263. package/website/nginx.conf +0 -32
  264. package/website/package-lock.json +0 -9679
  265. package/website/package.json +0 -59
  266. package/website/postcss.config.mjs +0 -9
  267. package/website/scripts/fetch-versions.js +0 -166
  268. package/website/scripts/generate-examples-index.js +0 -163
  269. package/website/scripts/merge-docs-to-wiki.ts +0 -207
  270. package/website/scripts/sync-version.js +0 -72
  271. package/website/scripts/sync-wiki.ts +0 -322
  272. package/website/scripts/upload-wiki.ts +0 -199
  273. package/website/styles/_spacing.scss +0 -453
  274. package/website/styles/_tokens.scss +0 -245
  275. package/website/styles/_typography.scss +0 -361
  276. package/website/styles/_variables.scss +0 -287
  277. package/website/tailwind.config.ts +0 -170
@@ -1,737 +0,0 @@
1
- # Multi-Agent Systems Architecture
2
-
3
- How multiple OSSA agents discover, communicate, and coordinate with each other.
4
-
5
- ---
6
-
7
- ## Overview
8
-
9
- OSSA enables **multi-agent systems** where specialized agents collaborate to solve complex problems. Just as microservices communicate via REST APIs, OSSA agents communicate via standardized manifests and messaging protocols.
10
-
11
- ---
12
-
13
- ## Multi-Agent System Topology
14
-
15
- ```mermaid
16
- graph TB
17
- subgraph "Agent Registry"
18
- Registry[OSSA Agent Registry<br/>Discovery Service]
19
- Manifests[(Agent Manifests<br/>customer.ossa.yaml<br/>sales.ossa.yaml<br/>support.ossa.yaml)]
20
- end
21
-
22
- subgraph "Orchestrator Layer"
23
- Coordinator[Agent Coordinator]
24
- Router[Message Router]
25
- Queue[Message Queue<br/>RabbitMQ | Redis]
26
- end
27
-
28
- subgraph "Agent Layer"
29
- CustomerAgent[Customer Agent<br/>Handles inquiries]
30
- SalesAgent[Sales Agent<br/>Processes orders]
31
- SupportAgent[Support Agent<br/>Resolves issues]
32
- AnalyticsAgent[Analytics Agent<br/>Generates reports]
33
- end
34
-
35
- subgraph "Shared Resources"
36
- Memory[(Shared Memory<br/>PostgreSQL)]
37
- Vector[(Vector Store<br/>Pinecone)]
38
- Cache[(Cache<br/>Redis)]
39
- end
40
-
41
- Registry --> Coordinator
42
- Manifests --> Registry
43
-
44
- Coordinator --> Router
45
- Router --> Queue
46
-
47
- Queue --> CustomerAgent
48
- Queue --> SalesAgent
49
- Queue --> SupportAgent
50
- Queue --> AnalyticsAgent
51
-
52
- CustomerAgent --> Memory
53
- SalesAgent --> Memory
54
- SupportAgent --> Memory
55
- AnalyticsAgent --> Memory
56
-
57
- CustomerAgent --> Vector
58
- SalesAgent --> Vector
59
-
60
- CustomerAgent --> Cache
61
- SalesAgent --> Cache
62
- SupportAgent --> Cache
63
-
64
- CustomerAgent -.->|Delegate| SalesAgent
65
- CustomerAgent -.->|Escalate| SupportAgent
66
- SalesAgent -.->|Report| AnalyticsAgent
67
-
68
- style Registry fill:#4A90E2,stroke:#333,stroke-width:2px,color:#fff
69
- style Manifests fill:#4A90E2,stroke:#333,stroke-width:2px,color:#fff
70
- ```
71
-
72
- ---
73
-
74
- ## Agent Discovery Flow
75
-
76
- ```mermaid
77
- sequenceDiagram
78
- autonumber
79
- participant CustomerAgent as Customer Agent
80
- participant Registry as Agent Registry
81
- participant SalesAgent as Sales Agent
82
-
83
- CustomerAgent->>Registry: Query: "Find agent for 'process_order'"
84
- Note over Registry: Search manifests<br/>by capability
85
-
86
- Registry->>Registry: Load sales.ossa.yaml
87
- Note over Registry: apiVersion: ossa/v0.2.x<br/>capabilities:<br/> - process_order
88
-
89
- Registry-->>CustomerAgent: Return Agent Info
90
- Note over Registry: {<br/> name: "sales-agent",<br/> endpoint: "/api/sales",<br/> manifest: {...}<br/>}
91
-
92
- CustomerAgent->>SalesAgent: Delegate Task
93
- Note over CustomerAgent,SalesAgent: {<br/> task: "process_order",<br/> data: {...}<br/>}
94
-
95
- SalesAgent-->>CustomerAgent: Task Result
96
- ```
97
-
98
- **Key Concepts:**
99
- - **Agent Registry**: Central discovery service for OSSA agents
100
- - **Capability Matching**: Find agents by what they can do
101
- - **Manifest-Driven**: Agent capabilities defined in OSSA manifests
102
-
103
- ---
104
-
105
- ## Agent-to-Agent Communication
106
-
107
- ### Pattern 1: Direct Delegation
108
-
109
- ```mermaid
110
- sequenceDiagram
111
- participant User
112
- participant AgentA as Customer Agent
113
- participant AgentB as Sales Agent
114
- participant LLM as LLM Provider
115
-
116
- User->>AgentA: "I want to buy 5 widgets"
117
- AgentA->>LLM: Process Intent
118
- LLM-->>AgentA: Intent: purchase_order
119
-
120
- Note over AgentA: Check capabilities<br/>in manifest
121
-
122
- AgentA->>AgentA: Load sales.ossa.yaml
123
- Note over AgentA: Found: Sales Agent<br/>handles orders
124
-
125
- AgentA->>AgentB: Delegate Task
126
- Note over AgentA,AgentB: {<br/> action: "create_order",<br/> items: ["widget"],<br/> quantity: 5<br/>}
127
-
128
- AgentB->>LLM: Process Order
129
- LLM->>AgentB: Generate Confirmation
130
-
131
- AgentB-->>AgentA: Order Created
132
- Note over AgentB: {<br/> orderId: "12345",<br/> total: "$50.00"<br/>}
133
-
134
- AgentA->>User: "Order #12345 created for $50"
135
- ```
136
-
137
- **OSSA Manifest Example (Customer Agent):**
138
- ```yaml
139
- apiVersion: ossa/v0.2.x
140
- kind: Agent
141
- metadata:
142
- name: customer-agent
143
- spec:
144
- role: You are a customer service agent
145
- capabilities:
146
- - handle_inquiries
147
- - delegate_to_sales
148
- delegationRules:
149
- - intent: purchase_order
150
- targetAgent: sales-agent
151
- method: direct
152
- ```
153
-
154
- ---
155
-
156
- ### Pattern 2: Event-Driven Coordination
157
-
158
- ```mermaid
159
- sequenceDiagram
160
- participant AgentA as Order Agent
161
- participant Queue as Message Queue
162
- participant AgentB as Inventory Agent
163
- participant AgentC as Notification Agent
164
-
165
- AgentA->>Queue: Publish Event
166
- Note over Queue: Event: order_created<br/>{orderId: 12345}
167
-
168
- Queue->>AgentB: Consume Event
169
- Queue->>AgentC: Consume Event
170
-
171
- par Process in Parallel
172
- AgentB->>AgentB: Update Inventory
173
- Note over AgentB: Reduce stock by qty
174
- AgentB->>Queue: Publish: inventory_updated
175
- and
176
- AgentC->>AgentC: Send Email
177
- Note over AgentC: Email customer
178
- AgentC->>Queue: Publish: notification_sent
179
- end
180
-
181
- Queue->>AgentA: Events: inventory_updated, notification_sent
182
- AgentA->>AgentA: Mark Order Complete
183
- ```
184
-
185
- **OSSA Manifest Example (Order Agent):**
186
- ```yaml
187
- apiVersion: ossa/v0.2.x
188
- kind: Agent
189
- metadata:
190
- name: order-agent
191
- spec:
192
- role: You process customer orders
193
- events:
194
- publishes:
195
- - name: order_created
196
- schema:
197
- type: object
198
- properties:
199
- orderId: { type: string }
200
- items: { type: array }
201
- subscribes:
202
- - name: inventory_updated
203
- handler: update_order_status
204
- - name: notification_sent
205
- handler: mark_notified
206
- ```
207
-
208
- ---
209
-
210
- ### Pattern 3: Hierarchical Coordination
211
-
212
- ```mermaid
213
- graph TB
214
- Supervisor[Supervisor Agent<br/>Orchestrates workflow]
215
-
216
- Supervisor --> Worker1[Research Agent<br/>Gathers data]
217
- Supervisor --> Worker2[Analysis Agent<br/>Processes data]
218
- Supervisor --> Worker3[Report Agent<br/>Generates output]
219
-
220
- Worker1 --> Supervisor
221
- Worker2 --> Supervisor
222
- Worker3 --> Supervisor
223
-
224
- Supervisor --> Result[Final Result<br/>to User]
225
-
226
- style Supervisor fill:#E74C3C,stroke:#333,stroke-width:2px,color:#fff
227
- style Worker1 fill:#3498DB,stroke:#333,stroke-width:1px,color:#fff
228
- style Worker2 fill:#3498DB,stroke:#333,stroke-width:1px,color:#fff
229
- style Worker3 fill:#3498DB,stroke:#333,stroke-width:1px,color:#fff
230
- ```
231
-
232
- **Workflow:**
233
- 1. Supervisor receives complex task
234
- 2. Breaks task into subtasks
235
- 3. Assigns subtasks to worker agents
236
- 4. Collects results
237
- 5. Synthesizes final response
238
-
239
- **OSSA Manifest Example (Supervisor):**
240
- ```yaml
241
- apiVersion: ossa/v0.2.x
242
- kind: Agent
243
- metadata:
244
- name: supervisor-agent
245
- spec:
246
- role: You coordinate research workflows
247
- workerAgents:
248
- - name: research-agent
249
- capabilities: [gather_data, web_search]
250
- - name: analysis-agent
251
- capabilities: [analyze_data, statistics]
252
- - name: report-agent
253
- capabilities: [generate_report, format_output]
254
- workflow:
255
- - step: research
256
- agent: research-agent
257
- output: raw_data
258
- - step: analyze
259
- agent: analysis-agent
260
- input: raw_data
261
- output: insights
262
- - step: report
263
- agent: report-agent
264
- input: insights
265
- output: final_report
266
- ```
267
-
268
- ---
269
-
270
- ## Agent Capability Discovery
271
-
272
- ### Capability-Based Routing
273
-
274
- ```mermaid
275
- graph LR
276
- Task[User Task:<br/>Analyze sales data] --> Router[Agent Router]
277
-
278
- Router --> Registry[Query Registry<br/>capability=analytics]
279
-
280
- Registry --> Check1{Check Agent 1<br/>customer-agent}
281
- Registry --> Check2{Check Agent 2<br/>analytics-agent}
282
- Registry --> Check3{Check Agent 3<br/>support-agent}
283
-
284
- Check1 -->|No match| X1[Skip]
285
- Check2 -->|Match!| Select[Select Analytics Agent]
286
- Check3 -->|No match| X2[Skip]
287
-
288
- Select --> Execute[Execute Task]
289
-
290
- style Registry fill:#4A90E2,stroke:#333,stroke-width:2px,color:#fff
291
- style Select fill:#2ECC71,stroke:#333,stroke-width:2px,color:#fff
292
- ```
293
-
294
- **How it works:**
295
- 1. Task comes in with required capability (e.g., "analytics")
296
- 2. Router queries agent registry
297
- 3. Registry scans all OSSA manifests
298
- 4. Returns agents with matching capabilities
299
- 5. Router selects best agent (by priority, load, etc.)
300
-
301
- **OSSA Manifest with Capabilities:**
302
- ```yaml
303
- apiVersion: ossa/v0.2.x
304
- kind: Agent
305
- metadata:
306
- name: analytics-agent
307
- version: 1.0.0
308
- spec:
309
- role: You analyze business data
310
- capabilities:
311
- - name: analyze_sales_data
312
- description: Analyze sales trends and metrics
313
- priority: high
314
- - name: generate_charts
315
- description: Create data visualizations
316
- priority: medium
317
- - name: forecast_revenue
318
- description: Predict future revenue
319
- priority: high
320
- ```
321
-
322
- ---
323
-
324
- ## Multi-Agent Communication Protocols
325
-
326
- ### Protocol 1: RESTful Agent Communication
327
-
328
- ```yaml
329
- # Agent A sends HTTP request to Agent B
330
- POST /api/agents/sales-agent/tasks
331
- Content-Type: application/json
332
- X-OSSA-Agent: customer-agent
333
- X-OSSA-Version: v0.2.x
334
-
335
- {
336
- "task": "create_order",
337
- "parameters": {
338
- "customerId": "C123",
339
- "items": [{"sku": "W001", "quantity": 5}]
340
- },
341
- "context": {
342
- "conversationId": "conv-456",
343
- "userId": "user-789"
344
- }
345
- }
346
- ```
347
-
348
- **Response:**
349
- ```json
350
- {
351
- "status": "success",
352
- "result": {
353
- "orderId": "12345",
354
- "total": 50.00
355
- },
356
- "metadata": {
357
- "agent": "sales-agent",
358
- "executionTime": 1230
359
- }
360
- }
361
- ```
362
-
363
- ---
364
-
365
- ### Protocol 2: Message Queue (Async)
366
-
367
- ```yaml
368
- # Agent publishes to queue
369
- Message:
370
- exchange: ossa.agents
371
- routingKey: order.created
372
- body:
373
- event: order_created
374
- agent: order-agent
375
- data:
376
- orderId: "12345"
377
- customerId: "C123"
378
- timestamp: "2024-01-15T10:30:00Z"
379
- ```
380
-
381
- **Consumer (Inventory Agent):**
382
- ```yaml
383
- # Subscribes to order.created events
384
- Subscription:
385
- queue: inventory-updates
386
- binding:
387
- exchange: ossa.agents
388
- routingKey: order.created
389
- handler: update_inventory
390
- ```
391
-
392
- ---
393
-
394
- ### Protocol 3: Shared Memory
395
-
396
- ```python
397
- # Agent A writes to shared memory
398
- shared_memory.set(
399
- key="task:order-12345",
400
- value={
401
- "status": "processing",
402
- "assignedTo": "inventory-agent",
403
- "createdBy": "order-agent",
404
- "data": {...}
405
- },
406
- ttl=3600 # 1 hour
407
- )
408
-
409
- # Agent B reads from shared memory
410
- task = shared_memory.get("task:order-12345")
411
- # Process task...
412
- shared_memory.update("task:order-12345", {"status": "completed"})
413
- ```
414
-
415
- ---
416
-
417
- ## Agent Coordination Patterns
418
-
419
- ### Pattern 1: Pipeline (Sequential)
420
-
421
- ```mermaid
422
- graph LR
423
- A[Agent A<br/>Extract Data] --> B[Agent B<br/>Transform Data]
424
- B --> C[Agent C<br/>Load Data]
425
- C --> D[Result]
426
-
427
- style A fill:#3498DB,stroke:#333,stroke-width:1px,color:#fff
428
- style B fill:#3498DB,stroke:#333,stroke-width:1px,color:#fff
429
- style C fill:#3498DB,stroke:#333,stroke-width:1px,color:#fff
430
- ```
431
-
432
- **Use case:** ETL workflows, document processing pipelines
433
-
434
- ---
435
-
436
- ### Pattern 2: Scatter-Gather (Parallel)
437
-
438
- ```mermaid
439
- graph TB
440
- Coordinator[Coordinator Agent]
441
-
442
- Coordinator -->|Scatter| A1[Agent 1]
443
- Coordinator -->|Scatter| A2[Agent 2]
444
- Coordinator -->|Scatter| A3[Agent 3]
445
-
446
- A1 -->|Gather| Result[Combined Result]
447
- A2 -->|Gather| Result
448
- A3 -->|Gather| Result
449
-
450
- style Coordinator fill:#E74C3C,stroke:#333,stroke-width:2px,color:#fff
451
- ```
452
-
453
- **Use case:** Research tasks, competitive analysis, multi-source data gathering
454
-
455
- ---
456
-
457
- ### Pattern 3: Request-Reply (Synchronous)
458
-
459
- ```mermaid
460
- sequenceDiagram
461
- participant A as Agent A
462
- participant B as Agent B
463
-
464
- A->>B: Request (sync)
465
- Note over B: Process request
466
- B-->>A: Reply
467
- Note over A: Continue with result
468
- ```
469
-
470
- **Use case:** API calls, database queries, simple delegations
471
-
472
- ---
473
-
474
- ### Pattern 4: Publish-Subscribe (Async)
475
-
476
- ```mermaid
477
- graph TB
478
- Publisher[Publisher Agent]
479
-
480
- Publisher -->|Publish| Topic[Event Topic<br/>order.created]
481
-
482
- Topic --> Sub1[Subscriber 1<br/>Inventory]
483
- Topic --> Sub2[Subscriber 2<br/>Analytics]
484
- Topic --> Sub3[Subscriber 3<br/>Notifications]
485
-
486
- style Publisher fill:#E74C3C,stroke:#333,stroke-width:2px,color:#fff
487
- ```
488
-
489
- **Use case:** Event-driven systems, real-time updates, loose coupling
490
-
491
- ---
492
-
493
- ## Multi-Agent System Example
494
-
495
- ### E-Commerce Platform with 5 Agents
496
-
497
- ```mermaid
498
- graph TB
499
- User[User] --> Frontend[Frontend Agent<br/>Handles UI interactions]
500
-
501
- Frontend --> Customer[Customer Agent<br/>Manages accounts]
502
- Frontend --> Product[Product Agent<br/>Searches catalog]
503
- Frontend --> Order[Order Agent<br/>Processes orders]
504
-
505
- Order --> Inventory[Inventory Agent<br/>Manages stock]
506
- Order --> Payment[Payment Agent<br/>Processes payments]
507
-
508
- Customer --> Analytics[Analytics Agent<br/>Tracks behavior]
509
- Product --> Analytics
510
- Order --> Analytics
511
-
512
- subgraph "OSSA Manifests"
513
- M1[frontend.ossa.yaml]
514
- M2[customer.ossa.yaml]
515
- M3[product.ossa.yaml]
516
- M4[order.ossa.yaml]
517
- M5[inventory.ossa.yaml]
518
- M6[payment.ossa.yaml]
519
- M7[analytics.ossa.yaml]
520
- end
521
-
522
- Frontend -.-> M1
523
- Customer -.-> M2
524
- Product -.-> M3
525
- Order -.-> M4
526
- Inventory -.-> M5
527
- Payment -.-> M6
528
- Analytics -.-> M7
529
-
530
- style M1 fill:#4A90E2,stroke:#333,stroke-width:1px,color:#fff
531
- style M2 fill:#4A90E2,stroke:#333,stroke-width:1px,color:#fff
532
- style M3 fill:#4A90E2,stroke:#333,stroke-width:1px,color:#fff
533
- style M4 fill:#4A90E2,stroke:#333,stroke-width:1px,color:#fff
534
- style M5 fill:#4A90E2,stroke:#333,stroke-width:1px,color:#fff
535
- style M6 fill:#4A90E2,stroke:#333,stroke-width:1px,color:#fff
536
- style M7 fill:#4A90E2,stroke:#333,stroke-width:1px,color:#fff
537
- ```
538
-
539
- **Flow:**
540
- 1. User interacts with Frontend Agent
541
- 2. Frontend Agent delegates to specialized agents (Customer, Product, Order)
542
- 3. Order Agent coordinates with Inventory and Payment agents
543
- 4. Analytics Agent passively observes all interactions
544
-
545
- **Benefits:**
546
- - ✅ Each agent has a single responsibility
547
- - ✅ Agents can be developed/deployed independently
548
- - ✅ Easy to add new agents (e.g., Shipping Agent)
549
- - ✅ Scales horizontally (run multiple instances)
550
-
551
- ---
552
-
553
- ## Agent Registry Implementation
554
-
555
- ### Registry Schema
556
-
557
- ```yaml
558
- # Agent Registry Entry
559
- agents:
560
- - id: customer-agent-001
561
- name: customer-agent
562
- version: 1.0.0
563
- manifest: s3://manifests/customer.ossa.yaml
564
- endpoint: https://api.example.com/agents/customer
565
- capabilities:
566
- - handle_inquiries
567
- - manage_accounts
568
- status: active
569
- healthCheck: https://api.example.com/agents/customer/health
570
- metadata:
571
- team: customer-experience
572
- environment: production
573
-
574
- - id: sales-agent-001
575
- name: sales-agent
576
- version: 2.1.0
577
- manifest: s3://manifests/sales.ossa.yaml
578
- endpoint: https://api.example.com/agents/sales
579
- capabilities:
580
- - process_orders
581
- - generate_quotes
582
- status: active
583
- healthCheck: https://api.example.com/agents/sales/health
584
- metadata:
585
- team: sales-ops
586
- environment: production
587
- ```
588
-
589
- **Registry API:**
590
- ```bash
591
- # Discover agents by capability
592
- GET /registry/agents?capability=process_orders
593
-
594
- # Get agent manifest
595
- GET /registry/agents/sales-agent-001/manifest
596
-
597
- # Register new agent
598
- POST /registry/agents
599
- Body: { name, version, manifest, endpoint, capabilities }
600
-
601
- # Update agent status
602
- PATCH /registry/agents/sales-agent-001
603
- Body: { status: "maintenance" }
604
- ```
605
-
606
- ---
607
-
608
- ## Security in Multi-Agent Systems
609
-
610
- ### Agent Authentication
611
-
612
- ```yaml
613
- # OSSA Manifest with Auth
614
- apiVersion: ossa/v0.2.x
615
- kind: Agent
616
- metadata:
617
- name: secure-agent
618
- spec:
619
- security:
620
- authentication:
621
- type: jwt
622
- issuer: https://auth.example.com
623
- audience: ossa-agents
624
- authorization:
625
- allowedAgents:
626
- - customer-agent
627
- - sales-agent
628
- deniedAgents:
629
- - untrusted-agent
630
- encryption:
631
- inTransit: tls1.3
632
- atRest: aes256
633
- ```
634
-
635
- ### Message Signing
636
-
637
- ```python
638
- # Agent A signs message to Agent B
639
- message = {
640
- "task": "create_order",
641
- "data": {...}
642
- }
643
-
644
- signature = sign_message(message, private_key)
645
-
646
- request = {
647
- "message": message,
648
- "signature": signature,
649
- "agent": "customer-agent",
650
- "timestamp": "2024-01-15T10:30:00Z"
651
- }
652
-
653
- # Agent B verifies signature
654
- if verify_signature(request, public_key):
655
- process_message(request["message"])
656
- else:
657
- raise AuthenticationError("Invalid signature")
658
- ```
659
-
660
- ---
661
-
662
- ## Monitoring Multi-Agent Systems
663
-
664
- ### Observability Dashboard
665
-
666
- ```mermaid
667
- graph TB
668
- subgraph "Agents"
669
- A1[Customer Agent]
670
- A2[Sales Agent]
671
- A3[Support Agent]
672
- end
673
-
674
- subgraph "Observability Layer"
675
- Metrics[Metrics Collector<br/>Prometheus]
676
- Logs[Log Aggregator<br/>Loki]
677
- Traces[Trace Collector<br/>Jaeger]
678
- end
679
-
680
- subgraph "Visualization"
681
- Grafana[Grafana Dashboard]
682
- end
683
-
684
- A1 --> Metrics
685
- A2 --> Metrics
686
- A3 --> Metrics
687
-
688
- A1 --> Logs
689
- A2 --> Logs
690
- A3 --> Logs
691
-
692
- A1 --> Traces
693
- A2 --> Traces
694
- A3 --> Traces
695
-
696
- Metrics --> Grafana
697
- Logs --> Grafana
698
- Traces --> Grafana
699
- ```
700
-
701
- **Key Metrics:**
702
- - Agent response times
703
- - Inter-agent communication latency
704
- - Task delegation counts
705
- - Error rates per agent
706
- - Resource utilization
707
-
708
- ---
709
-
710
- ## Key Takeaways
711
-
712
- ### What OSSA Enables
713
- - ✅ **Agent Discovery**: Find agents by capability
714
- - ✅ **Standard Communication**: Common protocols via manifests
715
- - ✅ **Loose Coupling**: Agents don't need to know implementation details
716
- - ✅ **Scalability**: Add/remove agents without system changes
717
- - ✅ **Portability**: Move agents between environments
718
-
719
- ### Best Practices
720
- 1. **Single Responsibility**: Each agent handles one domain
721
- 2. **Capability-Driven**: Define clear capabilities in manifests
722
- 3. **Event-Driven**: Use async messaging for loose coupling
723
- 4. **Health Checks**: Monitor agent availability
724
- 5. **Versioning**: Version manifests for backward compatibility
725
-
726
- ---
727
-
728
- ## Related Documentation
729
-
730
- - [Execution Flow](execution-flow) - How individual agents process requests
731
- - [Stack Integration](stack-integration) - Where multi-agent systems fit
732
- - [Ecosystem Overview](/docs/ecosystem/overview) - Real-world patterns
733
- - [Specification](/docs/specification) - OSSA spec details
734
-
735
- ---
736
-
737
- **Next Steps**: Explore [Ecosystem Overview](/docs/ecosystem/overview) for real-world multi-agent examples