@bluefly/openstandardagents 0.2.7 → 0.2.9

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 (327) hide show
  1. package/.devfile.yaml +1 -1
  2. package/.env.example +1 -1
  3. package/.github/AGENTS.md +245 -0
  4. package/.github/agents/github-issue-triage.ossa.yaml +99 -0
  5. package/.github/agents/github-pr-triage.ossa.yaml +137 -0
  6. package/.github/workflows/issue-sync-to-gitlab.yml +138 -0
  7. package/.github/workflows/pr-triage-to-gitlab.yml +164 -0
  8. package/.version.json +2 -2
  9. package/.wiki-config.json +24 -0
  10. package/CHANGELOG.md +44 -18
  11. package/CODEOWNERS +75 -0
  12. package/CONTRIBUTING.md +103 -4
  13. package/README.md +178 -243
  14. package/dist/index.d.ts +1 -0
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +2 -0
  17. package/dist/index.js.map +1 -1
  18. package/dist/repositories/schema.repository.d.ts +6 -1
  19. package/dist/repositories/schema.repository.d.ts.map +1 -1
  20. package/dist/repositories/schema.repository.js +49 -27
  21. package/dist/repositories/schema.repository.js.map +1 -1
  22. package/dist/services/migration.service.d.ts +4 -3
  23. package/dist/services/migration.service.d.ts.map +1 -1
  24. package/dist/services/migration.service.js +11 -10
  25. package/dist/services/migration.service.js.map +1 -1
  26. package/dist/services/release-automation/release.service.js +1 -1
  27. package/dist/services/release-automation/release.service.js.map +1 -1
  28. package/dist/services/release-automation/schemas/release.schema.js +1 -1
  29. package/dist/services/release-automation/webhook.service.js +3 -3
  30. package/dist/services/release-automation/webhook.service.js.map +1 -1
  31. package/dist/services/runtime/claude/claude-adapter.d.ts +1 -1
  32. package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -1
  33. package/dist/services/runtime/claude/claude-adapter.js +2 -2
  34. package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
  35. package/dist/spec/v0.2.8/CHANGELOG.md +401 -0
  36. package/dist/spec/v0.2.8/README.md +72 -0
  37. package/dist/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  38. package/dist/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  39. package/dist/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  40. 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
  41. package/dist/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  42. package/dist/spec/v0.2.9/a2a-protocol.md +1337 -0
  43. package/dist/spec/v0.2.9/agent.md +1946 -0
  44. package/dist/spec/v0.2.9/capabilities/index.yaml +25 -0
  45. package/dist/spec/v0.2.9/capabilities/memory.yaml +251 -0
  46. package/dist/spec/v0.2.9/capability-schema.md +576 -0
  47. package/dist/spec/v0.2.9/compliance-profiles.md +533 -0
  48. package/dist/spec/v0.2.9/conformance-testing.md +1527 -0
  49. package/dist/spec/v0.2.9/gitlab-duo-integration.md +621 -0
  50. package/dist/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
  51. package/dist/spec/v0.2.9/runtime-semantics.md +464 -0
  52. package/dist/spec/v0.2.9/security-model.md +1245 -0
  53. package/dist/spec/v0.2.9/semantic-conventions.md +347 -0
  54. package/dist/spec/v0.2.9/types.ts +522 -0
  55. package/dist/types/index.d.ts +3 -2
  56. package/dist/types/index.d.ts.map +1 -1
  57. package/dist/types/policy.d.ts +377 -0
  58. package/dist/types/policy.d.ts.map +1 -0
  59. package/dist/types/policy.js +84 -0
  60. package/dist/types/policy.js.map +1 -0
  61. package/dist/utils/index.d.ts +6 -0
  62. package/dist/utils/index.d.ts.map +1 -0
  63. package/dist/utils/index.js +6 -0
  64. package/dist/utils/index.js.map +1 -0
  65. package/dist/utils/version.d.ts +68 -0
  66. package/dist/utils/version.d.ts.map +1 -0
  67. package/dist/utils/version.js +156 -0
  68. package/dist/utils/version.js.map +1 -0
  69. package/docs/specs/policy-dsl.md +925 -0
  70. package/eslint-report.json +1 -0
  71. package/examples/adk-integration/code-review-workflow.yml +1 -1
  72. package/examples/adk-integration/customer-support.yml +1 -1
  73. package/examples/adk-integration/data-pipeline.yml +1 -1
  74. package/examples/advanced/reasoning-agent.yaml +136 -0
  75. package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
  76. package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
  77. package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
  78. package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
  79. package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
  80. package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
  81. package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
  82. package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
  83. package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
  84. package/examples/agents-md/code-agent.ossa.json +100 -0
  85. package/examples/agents-md/monorepo-agent.ossa.yaml +180 -0
  86. package/examples/anthropic/claude-assistant.ossa.json +1 -1
  87. package/examples/autogen/multi-agent.ossa.json +1 -1
  88. package/examples/claude-code/code-reviewer.ossa.yaml +78 -0
  89. package/examples/claude-code/ossa-validator.ossa.yaml +80 -0
  90. package/examples/common_npm/agent-router.ossa.yaml +1 -0
  91. package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
  92. package/examples/crewai/research-team.ossa.json +1 -1
  93. package/examples/cursor/code-review-agent.ossa.json +1 -1
  94. package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -0
  95. package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
  96. package/examples/extensions/agents-md-v1.yml +175 -0
  97. package/examples/extensions/drupal-v1.yml +1 -1
  98. package/examples/extensions/kagent-v1.yml +1 -1
  99. package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
  100. package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
  101. package/examples/kagent/compliance-validator.ossa.yaml +1 -1
  102. package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
  103. package/examples/kagent/documentation-agent.ossa.yaml +1 -1
  104. package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -0
  105. package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
  106. package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
  107. package/examples/kagent/security-scanner.ossa.yaml +1 -1
  108. package/examples/langchain/chain-agent.ossa.json +1 -1
  109. package/examples/langflow/workflow-agent.ossa.json +1 -1
  110. package/examples/langgraph/state-machine-agent.ossa.json +1 -1
  111. package/examples/llamaindex/rag-agent.ossa.json +1 -1
  112. package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
  113. package/examples/multi-agent/README.md +74 -0
  114. package/examples/multi-agent/conditional-router.ossa.yaml +42 -0
  115. package/examples/multi-agent/parallel-execution.ossa.yaml +54 -0
  116. package/examples/multi-agent/sequential-pipeline.ossa.yaml +45 -0
  117. package/examples/openai/basic-agent.ossa.yaml +1 -1
  118. package/examples/openai/multi-tool-agent.ossa.json +1 -1
  119. package/examples/openai/swarm-agent.ossa.json +1 -1
  120. package/examples/production/document-analyzer-openai.yml +1 -1
  121. package/examples/quickstart/support-agent.ossa.yaml +1 -1
  122. package/examples/spec-examples/audit-agent.yml +1 -1
  123. package/examples/spec-examples/chat-agent.yml +1 -1
  124. package/examples/spec-examples/compliance-agent.yml +1 -1
  125. package/examples/spec-examples/monitoring-agent.yml +1 -1
  126. package/examples/spec-examples/workflow-agent.yml +1 -1
  127. package/examples/templates/ossa-compliance.yaml +1 -1
  128. package/examples/vercel/edge-agent.ossa.json +1 -1
  129. package/gl-code-quality-report.json +62 -0
  130. package/llms-ctx-full.txt +39 -0
  131. package/llms-ctx.txt +39 -0
  132. package/llms.txt +47 -0
  133. package/package.json +6 -3
  134. package/scripts/README.md +25 -0
  135. package/scripts/compliance-audit.ts +796 -0
  136. package/scripts/eslint-to-codequality.cjs +34 -0
  137. package/scripts/generate-agents-catalog.ts +2 -1
  138. package/scripts/generate-api-docs.ts +2 -1
  139. package/scripts/generate-examples-docs.ts +2 -1
  140. package/scripts/generate-llms-ctx.sh +17 -0
  141. package/scripts/generate-schema-docs.ts +31 -10
  142. package/scripts/sync-version.js +4 -12
  143. package/scripts/validate-schema.ts +2 -1
  144. package/spec/v0.2.8/CHANGELOG.md +401 -0
  145. package/spec/v0.2.8/README.md +72 -0
  146. package/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
  147. package/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
  148. package/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
  149. package/spec/{v0.2.6-dev/ossa-0.2.6-dev.schema.json → v0.2.8/ossa-0.2.8.schema.json} +1509 -52
  150. package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
  151. package/spec/v0.2.9/a2a-protocol.md +1337 -0
  152. package/spec/v0.2.9/agent.md +1946 -0
  153. package/spec/v0.2.9/capabilities/index.yaml +25 -0
  154. package/spec/v0.2.9/capabilities/memory.yaml +251 -0
  155. package/spec/v0.2.9/capability-schema.md +576 -0
  156. package/spec/v0.2.9/compliance-profiles.md +533 -0
  157. package/spec/v0.2.9/conformance-testing.md +1527 -0
  158. package/spec/v0.2.9/gitlab-duo-integration.md +621 -0
  159. package/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
  160. package/spec/v0.2.9/runtime-semantics.md +464 -0
  161. package/spec/v0.2.9/security-model.md +1245 -0
  162. package/spec/v0.2.9/semantic-conventions.md +347 -0
  163. package/spec/v0.2.9/types.ts +522 -0
  164. package/test-results/junit.xml +337 -0
  165. package/.github/workflows/pr-comment.yml +0 -33
  166. package/bin/validate-ossa-0.2.5-RC.ts +0 -244
  167. package/dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json +0 -1696
  168. package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
  169. package/scripts/lib/exec.ts +0 -37
  170. package/scripts/lib/file-ops.ts +0 -58
  171. package/scripts/lib/version.ts +0 -83
  172. package/website/.lighthouserc.ts +0 -24
  173. package/website/.prettierrc +0 -10
  174. package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +0 -445
  175. package/website/Dockerfile +0 -30
  176. package/website/app/about/page.tsx +0 -304
  177. package/website/app/blog/[slug]/page.tsx +0 -208
  178. package/website/app/blog/page.tsx +0 -249
  179. package/website/app/design-guide/page.tsx +0 -511
  180. package/website/app/docs/[[...slug]]/page.tsx +0 -847
  181. package/website/app/docs/core-concepts/project-structure/page.tsx +0 -349
  182. package/website/app/ecosystem/page.tsx +0 -410
  183. package/website/app/examples/page.tsx +0 -133
  184. package/website/app/globals.scss +0 -370
  185. package/website/app/layout.tsx +0 -106
  186. package/website/app/license/page.tsx +0 -183
  187. package/website/app/not-found.tsx +0 -18
  188. package/website/app/page.tsx +0 -686
  189. package/website/app/page.tsx.bak +0 -679
  190. package/website/app/page.tsx.bak2 +0 -649
  191. package/website/app/playground/page.tsx +0 -487
  192. package/website/app/robots.ts +0 -19
  193. package/website/app/rss.xml/route.ts +0 -74
  194. package/website/app/schema/page.tsx +0 -1001
  195. package/website/app/sitemap.ts +0 -56
  196. package/website/app/specification/page.tsx +0 -287
  197. package/website/components/InstallCommand.tsx +0 -96
  198. package/website/components/Logo.tsx +0 -97
  199. package/website/components/StructuredData.tsx +0 -65
  200. package/website/components/docs/DocsSearch.tsx +0 -104
  201. package/website/components/docs/DocsSidebar.tsx +0 -155
  202. package/website/components/docs/MarkdownContent.tsx +0 -401
  203. package/website/components/docs/VersionSelector.tsx +0 -105
  204. package/website/components/examples/ExamplesViewer.tsx +0 -293
  205. package/website/components/layout/Footer.tsx +0 -116
  206. package/website/components/layout/Header.tsx +0 -172
  207. package/website/components/schema/SchemaComponentsAccordion.tsx +0 -84
  208. package/website/components/schema/SchemaExplorer.tsx +0 -213
  209. package/website/components/ui/Badge.tsx +0 -82
  210. package/website/components/ui/Button.tsx +0 -116
  211. package/website/components/ui/Card.tsx +0 -167
  212. package/website/components/ui/Checkbox.tsx +0 -141
  213. package/website/components/ui/Input.tsx +0 -169
  214. package/website/components/ui/Radio.tsx +0 -141
  215. package/website/components/ui/Select.tsx +0 -182
  216. package/website/components/ui/Tag.tsx +0 -158
  217. package/website/components/ui/Textarea.tsx +0 -195
  218. package/website/components/ui/index.ts +0 -11
  219. package/website/content/blog/OpenAPI-AI-Agents-Standard.md +0 -285
  220. package/website/content/blog/Why-Formal-Standards-Matter-Now.md +0 -198
  221. package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +0 -286
  222. package/website/content/blog/introducing-ossa-framework.md +0 -328
  223. package/website/content/blog/ossa-production-results.md +0 -279
  224. package/website/content/blog/welcome-to-ossa.md +0 -43
  225. package/website/content/blog/why-ai-agents-need-open-standard.md +0 -98
  226. package/website/content/docs/00-home.md +0 -153
  227. package/website/content/docs/adapters/openai-adapter.md +0 -693
  228. package/website/content/docs/agents/catalog.md +0 -28
  229. package/website/content/docs/aiflow-framework-integration-with-ossa.md +0 -107
  230. package/website/content/docs/api-reference/index.md +0 -38
  231. package/website/content/docs/api-reference/ossa-core-api.md +0 -634
  232. package/website/content/docs/api-reference/ossa-registry-api.md +0 -515
  233. package/website/content/docs/api-reference/unified-agent-gateway.md +0 -599
  234. package/website/content/docs/architecture/execution-flow.md +0 -335
  235. package/website/content/docs/architecture/multi-agent-systems.md +0 -737
  236. package/website/content/docs/architecture/overview.md +0 -121
  237. package/website/content/docs/architecture/stack-integration.md +0 -461
  238. package/website/content/docs/changelog.md +0 -246
  239. package/website/content/docs/cli-reference/index.md +0 -111
  240. package/website/content/docs/cli-reference/ossa-agents.md +0 -70
  241. package/website/content/docs/cli-reference/ossa-export.md +0 -56
  242. package/website/content/docs/cli-reference/ossa-generate.md +0 -66
  243. package/website/content/docs/cli-reference/ossa-gitlab-agent.md +0 -57
  244. package/website/content/docs/cli-reference/ossa-import.md +0 -56
  245. package/website/content/docs/cli-reference/ossa-init.md +0 -57
  246. package/website/content/docs/cli-reference/ossa-migrate.md +0 -62
  247. package/website/content/docs/cli-reference/ossa-run.md +0 -66
  248. package/website/content/docs/cli-reference/ossa-schema.md +0 -57
  249. package/website/content/docs/cli-reference/ossa-setup.md +0 -57
  250. package/website/content/docs/cli-reference/ossa-validate.md +0 -66
  251. package/website/content/docs/configuration/index.md +0 -97
  252. package/website/content/docs/contributing.md +0 -599
  253. package/website/content/docs/deployment/github-mirroring.md +0 -924
  254. package/website/content/docs/documentation.md +0 -100
  255. package/website/content/docs/ecosystem/framework-support.md +0 -1361
  256. package/website/content/docs/ecosystem/overview.md +0 -366
  257. package/website/content/docs/errors/index.md +0 -10
  258. package/website/content/docs/examples/aiflow-framework-integration-with-ossa.md +0 -107
  259. package/website/content/docs/examples/catalog.md +0 -300
  260. package/website/content/docs/for-audiences/students-researchers.md +0 -122
  261. package/website/content/docs/getting-started/index.md +0 -92
  262. package/website/content/docs/getting-started/installation.md +0 -155
  263. package/website/content/docs/getting-started/running-agents.md +0 -309
  264. package/website/content/docs/getting-started.md +0 -91
  265. package/website/content/docs/integrations/aiflow.md +0 -104
  266. package/website/content/docs/integrations/drupal.md +0 -105
  267. package/website/content/docs/migration-guides/agent-schema-comparison.md +0 -232
  268. package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +0 -1750
  269. package/website/content/docs/migration-guides/crewai-to-ossa.md +0 -274
  270. package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +0 -2017
  271. package/website/content/docs/migration-guides/general-agent-schema.yml +0 -247
  272. package/website/content/docs/migration-guides/index.md +0 -133
  273. package/website/content/docs/migration-guides/langchain-to-ossa.md +0 -1714
  274. package/website/content/docs/migration-guides/langflow-to-ossa.md +0 -2075
  275. package/website/content/docs/migration-guides/migration-manifest.json +0 -64
  276. package/website/content/docs/migration-guides/openai-to-ossa.md +0 -1202
  277. package/website/content/docs/openapi-extensions/examples.md +0 -550
  278. package/website/content/docs/openapi-extensions/index.md +0 -551
  279. package/website/content/docs/openapi-extensions/operation-extensions.md +0 -457
  280. package/website/content/docs/openapi-extensions/root-extensions.md +0 -410
  281. package/website/content/docs/ossa-compliant-badge.md +0 -251
  282. package/website/content/docs/pre-release/index.md +0 -175
  283. package/website/content/docs/quick-reference.md +0 -17
  284. package/website/content/docs/readme.md +0 -35
  285. package/website/content/docs/releases/v0.2.6.md +0 -99
  286. package/website/content/docs/schema-reference/agent-capabilities.md +0 -50
  287. package/website/content/docs/schema-reference/agent-id.md +0 -52
  288. package/website/content/docs/schema-reference/agent-name.md +0 -50
  289. package/website/content/docs/schema-reference/agent-role.md +0 -54
  290. package/website/content/docs/schema-reference/agent-spec.md +0 -406
  291. package/website/content/docs/schema-reference/agent-version.md +0 -50
  292. package/website/content/docs/schema-reference/autonomy.md +0 -568
  293. package/website/content/docs/schema-reference/constraints.md +0 -543
  294. package/website/content/docs/schema-reference/index.md +0 -45
  295. package/website/content/docs/schema-reference/llm-config.md +0 -445
  296. package/website/content/docs/schema-reference/observability.md +0 -654
  297. package/website/content/docs/schema-reference/ossa-manifest.md +0 -309
  298. package/website/content/docs/schema-reference/taxonomy.md +0 -509
  299. package/website/content/docs/schema-reference/tools.md +0 -628
  300. package/website/content/docs/templates/blog-post.md +0 -43
  301. package/website/content/docs/types-reference/index.md +0 -105
  302. package/website/content/docs/use-cases/00-index.md +0 -395
  303. package/website/content/docs/use-cases/cicd-code-review.md +0 -1236
  304. package/website/content/docs/use-cases/customer-support.md +0 -1234
  305. package/website/content/docs/use-cases/enterprise-compliance.md +0 -1208
  306. package/website/content/docs/use-cases/research-multi-agent.md +0 -1161
  307. package/website/content/docs/versioning.md +0 -288
  308. package/website/dev.sh +0 -53
  309. package/website/docker-compose.dev.yml +0 -36
  310. package/website/lib/version.ts +0 -35
  311. package/website/lib/versions.json +0 -103
  312. package/website/next.config.ts +0 -18
  313. package/website/nginx.conf +0 -32
  314. package/website/package-lock.json +0 -9679
  315. package/website/package.json +0 -59
  316. package/website/postcss.config.mjs +0 -9
  317. package/website/scripts/fetch-versions.js +0 -166
  318. package/website/scripts/generate-examples-index.js +0 -163
  319. package/website/scripts/merge-docs-to-wiki.ts +0 -207
  320. package/website/scripts/sync-version.js +0 -72
  321. package/website/scripts/sync-wiki.ts +0 -322
  322. package/website/scripts/upload-wiki.ts +0 -199
  323. package/website/styles/_spacing.scss +0 -453
  324. package/website/styles/_tokens.scss +0 -245
  325. package/website/styles/_typography.scss +0 -361
  326. package/website/styles/_variables.scss +0 -287
  327. package/website/tailwind.config.ts +0 -170
@@ -0,0 +1,347 @@
1
+ # OSSA OpenTelemetry Semantic Conventions
2
+
3
+ **Version**: 0.2.9
4
+ **Status**: Draft
5
+ **Last Updated**: 2025-12-04
6
+
7
+ This document defines the semantic conventions for OpenTelemetry instrumentation of OSSA-compliant agents. These conventions ensure consistent observability across all agent implementations.
8
+
9
+ ## Overview
10
+
11
+ OSSA semantic conventions extend the [OpenTelemetry GenAI Semantic Conventions](https://opentelemetry.io/docs/specs/semconv/gen-ai/) with agent-specific attributes for multi-instance debugging, session tracking, and capability tracing.
12
+
13
+ ## Namespace Hierarchy
14
+
15
+ ```
16
+ gen_ai.* # Standard GenAI conventions (OTel GenAI SIG)
17
+ ossa.* # OSSA-specific extensions
18
+ ossa.agent.* # Agent identity attributes
19
+ ossa.session.* # Session/conversation tracking
20
+ ossa.interaction.* # Per-turn tracking
21
+ ossa.capability.* # Tool/capability invocation
22
+ ossa.state.* # State management
23
+ ```
24
+
25
+ ## Required Attributes
26
+
27
+ ### Agent Identity (from spec.identity)
28
+
29
+ | Attribute | Type | Description | Example |
30
+ |-----------|------|-------------|---------|
31
+ | `ossa.agent.id` | string | Agent definition ID from manifest | `review-agent` |
32
+ | `ossa.agent.name` | string | Human-readable agent name | `Code Review Agent` |
33
+ | `ossa.agent.version` | string | Agent manifest version (semver) | `1.2.0` |
34
+ | `ossa.instance.id` | string | Runtime instance UUID | `550e8400-e29b-41d4-a716-446655440000` |
35
+
36
+ ### Session & Interaction Tracking
37
+
38
+ | Attribute | Type | Description | Example |
39
+ |-----------|------|-------------|---------|
40
+ | `ossa.session.id` | string | Conversation/workflow session ID | `uuid-v4` |
41
+ | `ossa.interaction.id` | string | Per-turn interaction ID | `uuid-v4` |
42
+ | `ossa.turn.number` | int | Turn number within session | `3` |
43
+
44
+ ## GenAI Standard Attributes
45
+
46
+ OSSA agents MUST emit standard GenAI attributes:
47
+
48
+ ### Request Attributes
49
+
50
+ | Attribute | Type | Description | Example |
51
+ |-----------|------|-------------|---------|
52
+ | `gen_ai.system` | string | AI system identifier | `ossa` |
53
+ | `gen_ai.request.model` | string | Model identifier | `claude-sonnet-4-20250514` |
54
+ | `gen_ai.request.max_tokens` | int | Max tokens requested | `4096` |
55
+ | `gen_ai.request.temperature` | float | Sampling temperature | `0.7` |
56
+ | `gen_ai.request.top_p` | float | Top-p sampling | `0.9` |
57
+
58
+ ### Response Attributes
59
+
60
+ | Attribute | Type | Description | Example |
61
+ |-----------|------|-------------|---------|
62
+ | `gen_ai.response.id` | string | Provider response ID | `chatcmpl-abc123` |
63
+ | `gen_ai.response.model` | string | Actual model used | `claude-sonnet-4-20250514` |
64
+ | `gen_ai.response.finish_reason` | string | Completion reason | `stop`, `length`, `tool_use` |
65
+ | `gen_ai.usage.input_tokens` | int | Input token count | `1523` |
66
+ | `gen_ai.usage.output_tokens` | int | Output token count | `892` |
67
+ | `gen_ai.usage.total_tokens` | int | Total tokens | `2415` |
68
+
69
+ ## OSSA Extension Attributes
70
+
71
+ ### Capability/Tool Tracking
72
+
73
+ | Attribute | Type | Description | Example |
74
+ |-----------|------|-------------|---------|
75
+ | `ossa.capability.name` | string | Capability being invoked | `code_review` |
76
+ | `ossa.capability.version` | string | Capability version | `2.1` |
77
+ | `ossa.tool.name` | string | Tool name | `gitlab-api` |
78
+ | `ossa.tool.type` | string | Tool transport type | `mcp`, `http`, `function` |
79
+ | `ossa.tool.source` | string | Tool source URI | `mcp://gitlab/api` |
80
+
81
+ ### State Management
82
+
83
+ | Attribute | Type | Description | Example |
84
+ |-----------|------|-------------|---------|
85
+ | `ossa.state.mode` | string | State persistence mode | `session`, `persistent`, `none` |
86
+ | `ossa.state.storage_type` | string | Storage backend type | `redis`, `postgres`, `vector-db` |
87
+ | `ossa.state.ttl_seconds` | int | State TTL | `3600` |
88
+
89
+ ### Reasoning (from spec.reasoning)
90
+
91
+ | Attribute | Type | Description | Example |
92
+ |-----------|------|-------------|---------|
93
+ | `ossa.reasoning.strategy` | string | Reasoning strategy | `react`, `cot`, `tree_of_thought` |
94
+ | `ossa.reasoning.step` | int | Current reasoning step | `3` |
95
+ | `ossa.reasoning.max_steps` | int | Maximum steps allowed | `10` |
96
+ | `ossa.reasoning.depth` | int | Tree depth (for ToT) | `2` |
97
+
98
+ ### Multi-Agent Collaboration
99
+
100
+ | Attribute | Type | Description | Example |
101
+ |-----------|------|-------------|---------|
102
+ | `ossa.delegation.target` | string | Target agent ID | `specialist-agent` |
103
+ | `ossa.delegation.type` | string | Delegation pattern | `handoff`, `parallel`, `supervisor` |
104
+ | `ossa.parent.agent.id` | string | Parent agent (if delegated) | `orchestrator` |
105
+ | `ossa.parent.interaction.id` | string | Parent interaction ID | `uuid-v4` |
106
+
107
+ ## Span Naming Conventions
108
+
109
+ ### Span Names
110
+
111
+ ```
112
+ ossa.agent.invoke # Agent invocation
113
+ ossa.agent.turn # Single turn (prompt → response)
114
+ ossa.tool.call # Tool/capability invocation
115
+ ossa.reasoning.step # Individual reasoning step
116
+ ossa.delegation.handoff # Agent-to-agent handoff
117
+ ossa.state.load # State retrieval
118
+ ossa.state.save # State persistence
119
+ ```
120
+
121
+ ### Span Hierarchy
122
+
123
+ ```
124
+ ossa.agent.invoke (root)
125
+ ├── ossa.agent.turn
126
+ │ ├── gen_ai.chat # LLM call
127
+ │ ├── ossa.tool.call # Tool execution
128
+ │ │ └── http.request # External call
129
+ │ └── ossa.reasoning.step
130
+ │ └── gen_ai.chat # Reasoning LLM call
131
+ └── ossa.state.save # Persist state
132
+ ```
133
+
134
+ ## Span Links (Multi-Agent)
135
+
136
+ For agent-to-agent communication, use span links instead of parent-child:
137
+
138
+ ```typescript
139
+ // Agent handoff creates a link, not a child span
140
+ span.addLink({
141
+ context: parentAgentSpanContext,
142
+ attributes: {
143
+ 'ossa.link.type': 'delegation',
144
+ 'ossa.link.source_agent': 'orchestrator',
145
+ 'ossa.link.target_agent': 'specialist'
146
+ }
147
+ });
148
+ ```
149
+
150
+ ## W3C Baggage Propagation
151
+
152
+ OSSA agents SHOULD propagate context via W3C Baggage:
153
+
154
+ ```
155
+ baggage: ossa.session.id=abc123,ossa.workflow.id=workflow-456,ossa.tenant.id=customer-789
156
+ ```
157
+
158
+ ### Standard Baggage Keys
159
+
160
+ | Key | Description |
161
+ |-----|-------------|
162
+ | `ossa.session.id` | Session identifier |
163
+ | `ossa.workflow.id` | Workflow identifier |
164
+ | `ossa.tenant.id` | Multi-tenant isolation |
165
+ | `ossa.environment` | Environment (dev/staging/prod) |
166
+
167
+ ## Metrics
168
+
169
+ ### Required Metrics
170
+
171
+ | Metric | Type | Unit | Description |
172
+ |--------|------|------|-------------|
173
+ | `ossa.agent.invocations` | Counter | 1 | Total agent invocations |
174
+ | `ossa.agent.turns` | Counter | 1 | Total turns processed |
175
+ | `ossa.agent.errors` | Counter | 1 | Total errors |
176
+ | `ossa.agent.latency` | Histogram | ms | Turn latency |
177
+ | `ossa.tokens.input` | Counter | 1 | Input tokens consumed |
178
+ | `ossa.tokens.output` | Counter | 1 | Output tokens generated |
179
+ | `ossa.tool.calls` | Counter | 1 | Tool invocations |
180
+ | `ossa.tool.errors` | Counter | 1 | Tool failures |
181
+
182
+ ### Metric Attributes
183
+
184
+ All metrics SHOULD include:
185
+ - `ossa.agent.id`
186
+ - `ossa.agent.version`
187
+ - `gen_ai.request.model`
188
+
189
+ ### Cardinality Control
190
+
191
+ To prevent metric explosion:
192
+ - Do NOT use `ossa.instance.id` as metric attribute
193
+ - Do NOT use `ossa.session.id` as metric attribute
194
+ - Do NOT use `ossa.interaction.id` as metric attribute
195
+
196
+ Use these only in traces and logs.
197
+
198
+ ## Example: Instrumented Agent Turn
199
+
200
+ ```typescript
201
+ import { trace, metrics, context, propagation } from '@opentelemetry/api';
202
+
203
+ const tracer = trace.getTracer('ossa-agent', '0.2.9');
204
+ const meter = metrics.getMeter('ossa-agent', '0.2.9');
205
+
206
+ // Metrics
207
+ const invocationCounter = meter.createCounter('ossa.agent.invocations');
208
+ const latencyHistogram = meter.createHistogram('ossa.agent.latency');
209
+
210
+ async function processAgentTurn(input: string, agentManifest: OSSAManifest) {
211
+ const startTime = Date.now();
212
+
213
+ return tracer.startActiveSpan('ossa.agent.turn', async (span) => {
214
+ // Set identity attributes
215
+ span.setAttributes({
216
+ 'gen_ai.system': 'ossa',
217
+ 'ossa.agent.id': agentManifest.metadata.name,
218
+ 'ossa.agent.version': agentManifest.metadata.version,
219
+ 'ossa.instance.id': runtime.instanceId,
220
+ 'ossa.session.id': session.id,
221
+ 'ossa.interaction.id': generateUUID(),
222
+ 'ossa.turn.number': session.turnCount,
223
+ });
224
+
225
+ // Extract baggage for multi-agent context
226
+ const baggage = propagation.getBaggage(context.active());
227
+ if (baggage) {
228
+ const workflowId = baggage.getEntry('ossa.workflow.id');
229
+ if (workflowId) {
230
+ span.setAttribute('ossa.workflow.id', workflowId.value);
231
+ }
232
+ }
233
+
234
+ try {
235
+ // LLM call span
236
+ const response = await tracer.startActiveSpan('gen_ai.chat', async (llmSpan) => {
237
+ llmSpan.setAttributes({
238
+ 'gen_ai.request.model': agentManifest.spec.llm.model,
239
+ 'gen_ai.request.max_tokens': agentManifest.spec.llm.parameters?.max_tokens,
240
+ });
241
+
242
+ const result = await llmProvider.chat(input);
243
+
244
+ llmSpan.setAttributes({
245
+ 'gen_ai.response.finish_reason': result.finish_reason,
246
+ 'gen_ai.usage.input_tokens': result.usage.input_tokens,
247
+ 'gen_ai.usage.output_tokens': result.usage.output_tokens,
248
+ });
249
+
250
+ llmSpan.end();
251
+ return result;
252
+ });
253
+
254
+ // Record metrics
255
+ invocationCounter.add(1, {
256
+ 'ossa.agent.id': agentManifest.metadata.name,
257
+ 'gen_ai.request.model': agentManifest.spec.llm.model,
258
+ });
259
+
260
+ latencyHistogram.record(Date.now() - startTime, {
261
+ 'ossa.agent.id': agentManifest.metadata.name,
262
+ });
263
+
264
+ span.setStatus({ code: SpanStatusCode.OK });
265
+ return response;
266
+
267
+ } catch (error) {
268
+ span.setStatus({ code: SpanStatusCode.ERROR, message: error.message });
269
+ span.recordException(error);
270
+ throw error;
271
+ } finally {
272
+ span.end();
273
+ }
274
+ });
275
+ }
276
+ ```
277
+
278
+ ## TypeScript Types
279
+
280
+ ```typescript
281
+ // Semantic convention attribute names
282
+ export const OSSAAttributes = {
283
+ // Agent Identity
284
+ AGENT_ID: 'ossa.agent.id',
285
+ AGENT_NAME: 'ossa.agent.name',
286
+ AGENT_VERSION: 'ossa.agent.version',
287
+ INSTANCE_ID: 'ossa.instance.id',
288
+
289
+ // Session & Interaction
290
+ SESSION_ID: 'ossa.session.id',
291
+ INTERACTION_ID: 'ossa.interaction.id',
292
+ TURN_NUMBER: 'ossa.turn.number',
293
+
294
+ // Capability
295
+ CAPABILITY_NAME: 'ossa.capability.name',
296
+ CAPABILITY_VERSION: 'ossa.capability.version',
297
+ TOOL_NAME: 'ossa.tool.name',
298
+ TOOL_TYPE: 'ossa.tool.type',
299
+
300
+ // Reasoning
301
+ REASONING_STRATEGY: 'ossa.reasoning.strategy',
302
+ REASONING_STEP: 'ossa.reasoning.step',
303
+ REASONING_MAX_STEPS: 'ossa.reasoning.max_steps',
304
+
305
+ // State
306
+ STATE_MODE: 'ossa.state.mode',
307
+ STATE_STORAGE_TYPE: 'ossa.state.storage_type',
308
+
309
+ // Delegation
310
+ DELEGATION_TARGET: 'ossa.delegation.target',
311
+ DELEGATION_TYPE: 'ossa.delegation.type',
312
+ PARENT_AGENT_ID: 'ossa.parent.agent.id',
313
+ } as const;
314
+
315
+ export type OSSAAttributeKey = typeof OSSAAttributes[keyof typeof OSSAAttributes];
316
+ ```
317
+
318
+ ## Integration with Observability Platforms
319
+
320
+ ### GitLab Ultimate
321
+
322
+ ```yaml
323
+ # gitlab-ci.yml observability config
324
+ variables:
325
+ OTEL_EXPORTER_OTLP_ENDPOINT: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/observability/v1/traces"
326
+ OTEL_EXPORTER_OTLP_HEADERS: "PRIVATE-TOKEN=${CI_JOB_TOKEN}"
327
+ OTEL_SERVICE_NAME: "ossa-agents"
328
+ OTEL_RESOURCE_ATTRIBUTES: "deployment.environment=${CI_ENVIRONMENT_NAME}"
329
+ ```
330
+
331
+ ### SigNoz / Jaeger
332
+
333
+ ```typescript
334
+ // Configure OTLP exporter
335
+ import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
336
+
337
+ const exporter = new OTLPTraceExporter({
338
+ url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT || 'http://localhost:4318/v1/traces',
339
+ });
340
+ ```
341
+
342
+ ## References
343
+
344
+ - [OpenTelemetry GenAI Semantic Conventions](https://opentelemetry.io/docs/specs/semconv/gen-ai/)
345
+ - [W3C Trace Context](https://www.w3.org/TR/trace-context/)
346
+ - [W3C Baggage](https://www.w3.org/TR/baggage/)
347
+ - [OSSA Specification v0.2.9](./ossa-0.2.9.schema.json)