@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
@@ -1,1361 +0,0 @@
1
- ---
2
- title: Framework Support
3
- description: Detailed framework compatibility guide including migration paths, examples, and integration patterns for OSSA-compatible frameworks
4
- ---
5
-
6
- # Framework Support
7
-
8
- This guide provides detailed information about OSSA compatibility with popular AI agent frameworks, including migration guides, examples, and best practices for each integration.
9
-
10
- ## How OSSA Works
11
-
12
- OSSA acts as a **translation layer** between your agent definitions and framework-specific implementations. It doesn't replace frameworks—it standardizes how agents are defined, enabling portability across different execution environments.
13
-
14
- ### Architecture Overview
15
-
16
- ```
17
- ┌─────────────────────────────────────────────────────────────┐
18
- │ OSSA Manifest (JSON/YAML) │
19
- │ ┌──────────────────────────────────────────────────────┐ │
20
- │ │ { │ │
21
- │ │ "ossa": "1.0.0", │ │
22
- │ │ "name": "research-agent", │ │
23
- │ │ "capabilities": { "tools": [...], "llm": {...} } │ │
24
- │ │ } │ │
25
- │ └──────────────────────────────────────────────────────┘ │
26
- └────────────────────────┬────────────────────────────────────┘
27
-
28
-
29
- ┌───────────────────────────────┐
30
- │ OSSA Runtime / Adapter │
31
- │ (Validates & Translates) │
32
- └───────────────┬───────────────┘
33
-
34
- ┌────────────────┼────────────────┐
35
- │ │ │
36
- ▼ ▼ ▼
37
- ┌─────────┐ ┌──────────┐ ┌──────────┐
38
- │LangChain│ │ CrewAI │ │ AutoGen │
39
- └────┬────┘ └─────┬────┘ └─────┬────┘
40
- │ │ │
41
- └────────────────┼────────────────┘
42
-
43
-
44
- ┌──────────────────┐
45
- │ LLM Provider │
46
- │ (OpenAI/Anthropic)│
47
- └──────────────────┘
48
- ```
49
-
50
- ### Data Flow
51
-
52
- **1. Manifest Loading**
53
- ```
54
- OSSA Manifest → Schema Validation → Parsed Configuration
55
- ```
56
-
57
- **2. Runtime Translation**
58
- ```
59
- OSSA Config → Framework Adapter → Native Framework Objects
60
- ```
61
-
62
- **3. Execution**
63
- ```
64
- User Input → Agent Execution → Tool Calls → LLM Responses → Output
65
- ```
66
-
67
- **4. Response Flow**
68
- ```
69
- ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐
70
- │ User │────▶│ OSSA │────▶│Framework │────▶│ LLM │
71
- │ Input │ │ Agent │ │ Runtime │ │ Provider │
72
- └──────────┘ └──────────┘ └──────────┘ └──────────┘
73
- ▲ │
74
- │ │
75
- └─────────────────────────────────────────────────────┘
76
- Formatted Response
77
- ```
78
-
79
- ## Support Matrix
80
-
81
- | Framework | Status | OSSA Version | Migration Complexity | Documentation |
82
- |-----------|--------|--------------|---------------------|---------------|
83
- | kAgent | ✅ Native | 1.0.0+ | N/A (Native) | [Docs](#kagent) |
84
- | LangChain | ✅ Supported | 1.0.0+ | Low | [Docs](#langchain) |
85
- | LangGraph | ✅ Supported | 1.0.0+ | Low | [Docs](#langgraph) |
86
- | CrewAI | ✅ Supported | 1.0.0+ | Medium | [Docs](#crewai) |
87
- | AutoGen | ✅ Supported | 1.0.0+ | Medium | [Docs](#autogen) |
88
- | Semantic Kernel | ✅ Supported | 1.0.0+ | Medium | [Docs](#semantic-kernel) |
89
- | Anthropic MCP | ✅ Supported | 1.0.0+ | Low | [Docs](#anthropic-mcp) |
90
- | Langflow | ✅ Supported | 1.0.0+ | Low | [Docs](#langflow) |
91
- | LlamaIndex | ✅ Supported | 1.0.0+ | Low | [Docs](#llamaindex) |
92
- | Haystack | 🔄 Planned | 1.1.0+ | Medium | Coming Soon |
93
- | Drupal ECA | ✅ Supported | 1.0.0+ | Medium | [Docs](#drupal-eca) |
94
- | OpenAI Assistants | ✅ Supported | 1.0.0+ | Medium | [Docs](#openai-assistants) |
95
- | Vercel AI SDK | 🔄 Planned | 1.1.0+ | Low | Coming Soon |
96
-
97
- **Legend:**
98
- - ✅ **Native**: Built on OSSA from the ground up
99
- - ✅ **Supported**: Full integration with adapter/bridge
100
- - 🔄 **Planned**: Integration in progress
101
- - ⚠️ **Beta**: Experimental support available
102
- - ❌ **Not Supported**: No current integration plans
103
-
104
- ### What "Supported" Means
105
-
106
- **Bidirectional Conversion**: Convert to/from OSSA manifests
107
- **Runtime Compatibility**: Execute OSSA manifests natively
108
- **Tool Mapping**: Framework tools map to OSSA tool definitions
109
- **LLM Configuration**: Framework LLM settings translate to OSSA capabilities
110
- **Workflow Preservation**: Multi-step workflows maintain structure
111
-
112
- ---
113
-
114
- ## kAgent {#kagent}
115
-
116
- ### Overview
117
-
118
- **kAgent** is a native OSSA implementation, designed from the ground up to follow the Open Standard Agents specification. It serves as the reference implementation and demonstrates best practices for OSSA-compliant agent development.
119
-
120
- ### Key Features
121
-
122
- - **Native OSSA Manifests**: No conversion needed - manifests are OSSA JSON/YAML
123
- - **Full Specification Coverage**: Implements 100% of OSSA spec
124
- - **TypeScript First**: Modern TypeScript with full type safety
125
- - **MCP Integration**: Built-in Model Context Protocol support
126
- - **Zero Dependencies**: Minimal runtime footprint
127
-
128
- ### Installation
129
-
130
- ```bash
131
- npm install @bluefly/openstandardagents
132
- # or
133
- pnpm add @bluefly/openstandardagents
134
- # or
135
- yarn add @bluefly/openstandardagents
136
- ```
137
-
138
- ### Quick Start
139
-
140
- ```typescript
141
- import { OSSAAgent, OSSAManifest } from '@bluefly/openstandardagents';
142
-
143
- // Load manifest
144
- const manifest: OSSAManifest = {
145
- ossa: '1.0.0',
146
- name: 'research-assistant',
147
- version: '1.0.0',
148
- description: 'AI research assistant',
149
- type: 'worker',
150
- capabilities: {
151
- tools: ['web-search', 'summarize'],
152
- llm: {
153
- provider: 'anthropic',
154
- model: 'claude-3-5-sonnet-20241022',
155
- },
156
- },
157
- };
158
-
159
- // Create agent
160
- const agent = new OSSAAgent(manifest);
161
-
162
- // Execute task
163
- const result = await agent.execute({
164
- task: 'Research the latest developments in quantum computing',
165
- context: {},
166
- });
167
-
168
- console.log(result);
169
- ```
170
-
171
- ### Example Manifest
172
-
173
- ```json
174
- {
175
- "ossa": "1.0.0",
176
- "name": "data-analyst",
177
- "version": "1.2.0",
178
- "description": "Data analysis and visualization agent",
179
- "type": "worker",
180
- "author": {
181
- "name": "OSSA Team",
182
- "email": "team@openstandardagents.org"
183
- },
184
- "capabilities": {
185
- "tools": [
186
- {
187
- "name": "query-database",
188
- "type": "function",
189
- "description": "Query PostgreSQL database",
190
- "parameters": {
191
- "type": "object",
192
- "properties": {
193
- "query": { "type": "string" }
194
- }
195
- }
196
- },
197
- {
198
- "name": "create-chart",
199
- "type": "mcp",
200
- "server": "visualization-mcp"
201
- }
202
- ],
203
- "llm": {
204
- "provider": "anthropic",
205
- "model": "claude-3-5-sonnet-20241022",
206
- "temperature": 0.7
207
- }
208
- },
209
- "runtime": {
210
- "environment": "node",
211
- "version": ">=18.0.0"
212
- }
213
- }
214
- ```
215
-
216
- ### Documentation
217
-
218
- - **Repository**: [github.com/blueflyio/kagent](https://github.com/blueflyio/kagent)
219
- - **API Reference**: [docs.openstandardagents.org/kagent/api](https://openstandardagents.org/docs/kagent/api)
220
- - **Examples**: [examples/kagent/](https://github.com/blueflyio/openstandardagents/tree/main/examples/kagent)
221
-
222
- ---
223
-
224
- ## LangChain {#langchain}
225
-
226
- ### Overview
227
-
228
- **LangChain** is one of the most popular AI agent frameworks. OSSA provides a bidirectional bridge for converting LangChain agents to/from OSSA manifests.
229
-
230
- ### Migration Complexity
231
-
232
- **Low** - LangChain's chain-based architecture maps cleanly to OSSA's tool and capability model.
233
-
234
- ### Installation
235
-
236
- ```bash
237
- npm install @ossa/langchain langchain
238
- # or
239
- pip install ossa-langchain langchain
240
- ```
241
-
242
- ### Converting LangChain to OSSA
243
-
244
- ```typescript
245
- import { LangChainToOSSA } from '@ossa/langchain';
246
- import { ChatAnthropic } from '@langchain/anthropic';
247
- import { DuckDuckGoSearch } from '@langchain/community/tools/duckduckgo_search';
248
-
249
- // Create LangChain agent
250
- const llm = new ChatAnthropic({
251
- model: 'claude-3-5-sonnet-20241022',
252
- });
253
-
254
- const tools = [new DuckDuckGoSearch()];
255
-
256
- // Convert to OSSA
257
- const converter = new LangChainToOSSA();
258
- const manifest = await converter.convert({
259
- llm,
260
- tools,
261
- name: 'research-agent',
262
- description: 'Web research assistant',
263
- });
264
-
265
- // Save manifest
266
- await manifest.save('research-agent.json');
267
- ```
268
-
269
- ### Converting OSSA to LangChain
270
-
271
- ```typescript
272
- import { OSSAToLangChain } from '@ossa/langchain';
273
- import { OSSAManifest } from '@ossa/core';
274
-
275
- // Load OSSA manifest
276
- const manifest = await OSSAManifest.load('research-agent.json');
277
-
278
- // Convert to LangChain
279
- const converter = new OSSAToLangChain();
280
- const agent = await converter.convert(manifest);
281
-
282
- // Use LangChain agent
283
- const result = await agent.invoke({
284
- input: 'What are the latest AI research papers?',
285
- });
286
-
287
- console.log(result);
288
- ```
289
-
290
- ### Python Example
291
-
292
- ```python
293
- from ossa_langchain import LangChainToOSSA, OSSAToLangChain
294
- from langchain_anthropic import ChatAnthropic
295
- from langchain.agents import initialize_agent, AgentType
296
- from langchain.tools import DuckDuckGoSearchRun
297
-
298
- # Create LangChain agent
299
- llm = ChatAnthropic(model="claude-3-5-sonnet-20241022")
300
- tools = [DuckDuckGoSearchRun()]
301
- agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION)
302
-
303
- # Convert to OSSA
304
- converter = LangChainToOSSA()
305
- manifest = converter.convert(agent, name="research-agent")
306
- manifest.save("research-agent.json")
307
-
308
- # Later: Convert back to LangChain
309
- manifest = OSSAManifest.load("research-agent.json")
310
- converter = OSSAToLangChain()
311
- agent = converter.convert(manifest)
312
- result = agent.invoke("What are the latest AI research papers?")
313
- ```
314
-
315
- ### Example Manifest
316
-
317
- See [examples/langchain/](https://github.com/blueflyio/openstandardagents/tree/main/examples/langchain) for complete examples.
318
-
319
- ### Documentation
320
-
321
- - **Integration Guide**: [docs.openstandardagents.org/langchain](https://openstandardagents.org/docs/langchain)
322
- - **LangChain Docs**: [python.langchain.com](https://python.langchain.com)
323
-
324
- ---
325
-
326
- ## LangGraph {#langgraph}
327
-
328
- ### Overview
329
-
330
- **LangGraph** is LangChain's framework for building stateful, multi-actor applications with LLMs. OSSA supports LangGraph's graph-based workflows with state management.
331
-
332
- ### Migration Complexity
333
-
334
- **Low** - LangGraph's nodes and edges map to OSSA workflow steps.
335
-
336
- ### Installation
337
-
338
- ```bash
339
- npm install @ossa/langgraph langgraph
340
- # or
341
- pip install ossa-langgraph langgraph
342
- ```
343
-
344
- ### Converting LangGraph to OSSA
345
-
346
- ```python
347
- from ossa_langgraph import LangGraphToOSSA
348
- from langgraph.graph import StateGraph, END
349
- from typing import TypedDict
350
-
351
- # Define state
352
- class AgentState(TypedDict):
353
- messages: list
354
- next_step: str
355
-
356
- # Create graph
357
- workflow = StateGraph(AgentState)
358
-
359
- # Add nodes
360
- workflow.add_node("researcher", research_node)
361
- workflow.add_node("writer", write_node)
362
- workflow.add_node("reviewer", review_node)
363
-
364
- # Add edges
365
- workflow.add_edge("researcher", "writer")
366
- workflow.add_edge("writer", "reviewer")
367
- workflow.add_conditional_edges("reviewer", should_continue, {
368
- "continue": "writer",
369
- "end": END
370
- })
371
-
372
- # Set entry point
373
- workflow.set_entry_point("researcher")
374
-
375
- # Compile
376
- app = workflow.compile()
377
-
378
- # Convert to OSSA
379
- converter = LangGraphToOSSA()
380
- manifest = converter.convert(app, name="content-pipeline")
381
- manifest.save("content-pipeline.json")
382
- ```
383
-
384
- ### Technical Details
385
-
386
- **State Management**: LangGraph state is preserved in OSSA's `workflow.state` field
387
- **Conditional Routing**: Conditional edges become OSSA workflow conditions
388
- **Checkpointing**: LangGraph checkpoints map to OSSA's persistence layer
389
-
390
- ### Data Flow
391
-
392
- ```
393
- Input → Entry Node → [State Update] → Next Node → [Condition Check] →
394
- ├─ Continue → Loop Back
395
- └─ End → Output
396
- ```
397
-
398
- ### Documentation
399
-
400
- - **LangGraph Docs**: [langchain-ai.github.io/langgraph](https://langchain-ai.github.io/langgraph)
401
- - **OSSA LangGraph Guide**: [docs.openstandardagents.org/langgraph](https://openstandardagents.org/docs/langgraph)
402
-
403
- ---
404
-
405
- ## AutoGen {#autogen}
406
-
407
- ### Overview
408
-
409
- **Microsoft AutoGen** enables multi-agent conversations with human-in-the-loop capabilities. OSSA supports AutoGen's conversational patterns and agent groups.
410
-
411
- ### Migration Complexity
412
-
413
- **Medium** - AutoGen's conversation-driven model requires mapping to OSSA's message-based workflow.
414
-
415
- ### Installation
416
-
417
- ```bash
418
- pip install ossa-autogen pyautogen
419
- ```
420
-
421
- ### Converting AutoGen to OSSA
422
-
423
- ```python
424
- from ossa_autogen import AutoGenToOSSA
425
- import autogen
426
-
427
- # Configure AutoGen agents
428
- config_list = [{"model": "gpt-4", "api_key": "..."}]
429
-
430
- assistant = autogen.AssistantAgent(
431
- name="assistant",
432
- llm_config={"config_list": config_list},
433
- )
434
-
435
- user_proxy = autogen.UserProxyAgent(
436
- name="user_proxy",
437
- human_input_mode="NEVER",
438
- code_execution_config={"work_dir": "coding"},
439
- )
440
-
441
- # Convert to OSSA
442
- converter = AutoGenToOSSA()
443
- manifest = converter.convert(
444
- agents=[assistant, user_proxy],
445
- name="coding-assistant"
446
- )
447
- manifest.save("coding-assistant.json")
448
- ```
449
-
450
- ### Technical Details
451
-
452
- **Conversation Flow**: AutoGen conversations become OSSA workflow steps
453
- **Code Execution**: AutoGen's code execution maps to OSSA's `code_interpreter` tool
454
- **Human-in-Loop**: AutoGen's human input becomes OSSA's `approval_required` flag
455
-
456
- ### Data Flow
457
-
458
- ```
459
- User Message → Agent 1 → [Generate Response] → Agent 2 →
460
- [Execute Code] → [Validate] → Agent 1 → Final Response
461
- ```
462
-
463
- ### Example Manifest
464
-
465
- ```json
466
- {
467
- "ossa": "1.0.0",
468
- "name": "coding-assistant",
469
- "type": "orchestrator",
470
- "agents": [
471
- {
472
- "id": "assistant",
473
- "role": "Assistant",
474
- "capabilities": {
475
- "tools": ["code_interpreter"],
476
- "llm": {
477
- "provider": "openai",
478
- "model": "gpt-4"
479
- }
480
- }
481
- },
482
- {
483
- "id": "executor",
484
- "role": "Code Executor",
485
- "capabilities": {
486
- "tools": [
487
- {
488
- "type": "code_interpreter",
489
- "languages": ["python", "javascript"],
490
- "sandbox": true
491
- }
492
- ]
493
- }
494
- }
495
- ],
496
- "workflow": {
497
- "type": "conversation",
498
- "max_turns": 10,
499
- "termination": {
500
- "condition": "task_complete"
501
- }
502
- }
503
- }
504
- ```
505
-
506
- ### Documentation
507
-
508
- - **AutoGen Docs**: [microsoft.github.io/autogen](https://microsoft.github.io/autogen)
509
- - **OSSA AutoGen Guide**: [docs.openstandardagents.org/autogen](https://openstandardagents.org/docs/autogen)
510
-
511
- ---
512
-
513
- ## Semantic Kernel {#semantic-kernel}
514
-
515
- ### Overview
516
-
517
- **Microsoft Semantic Kernel** is an SDK for integrating LLMs with conventional programming languages. OSSA supports Semantic Kernel's plugin system and planners.
518
-
519
- ### Migration Complexity
520
-
521
- **Medium** - Semantic Kernel's plugin architecture requires mapping to OSSA tools.
522
-
523
- ### Installation
524
-
525
- ```bash
526
- dotnet add package OSSA.SemanticKernel
527
- # or
528
- pip install ossa-semantic-kernel semantic-kernel
529
- ```
530
-
531
- ### Converting Semantic Kernel to OSSA
532
-
533
- ```csharp
534
- using Microsoft.SemanticKernel;
535
- using OSSA.SemanticKernel;
536
-
537
- // Create Semantic Kernel
538
- var kernel = Kernel.CreateBuilder()
539
- .AddOpenAIChatCompletion("gpt-4", "api-key")
540
- .Build();
541
-
542
- // Import plugins
543
- kernel.ImportPluginFromType<MathPlugin>();
544
- kernel.ImportPluginFromType<FileIOPlugin>();
545
-
546
- // Convert to OSSA
547
- var converter = new SemanticKernelToOSSA();
548
- var manifest = converter.Convert(kernel, "sk-agent");
549
- await manifest.SaveAsync("sk-agent.json");
550
- ```
551
-
552
- ### Python Example
553
-
554
- ```python
555
- from ossa_semantic_kernel import SemanticKernelToOSSA
556
- import semantic_kernel as sk
557
-
558
- # Create kernel
559
- kernel = sk.Kernel()
560
-
561
- # Add service
562
- kernel.add_chat_service(
563
- "chat",
564
- sk.connectors.ai.OpenAIChatCompletion("gpt-4", "api-key")
565
- )
566
-
567
- # Import skills
568
- kernel.import_skill(MathSkill(), "math")
569
- kernel.import_skill(FileIOSkill(), "fileio")
570
-
571
- # Convert to OSSA
572
- converter = SemanticKernelToOSSA()
573
- manifest = converter.convert(kernel, name="sk-agent")
574
- manifest.save("sk-agent.json")
575
- ```
576
-
577
- ### Technical Details
578
-
579
- **Plugin Mapping**: SK plugins become OSSA tools
580
- **Planner Integration**: SK planners map to OSSA's workflow orchestration
581
- **Memory**: SK memory becomes OSSA's context management
582
-
583
- ### Data Flow
584
-
585
- ```
586
- User Goal → Planner → [Generate Steps] → Execute Plugin 1 →
587
- Execute Plugin 2 → [Aggregate Results] → Response
588
- ```
589
-
590
- ### Documentation
591
-
592
- - **Semantic Kernel Docs**: [learn.microsoft.com/semantic-kernel](https://learn.microsoft.com/semantic-kernel)
593
- - **OSSA SK Guide**: [docs.openstandardagents.org/semantic-kernel](https://openstandardagents.org/docs/semantic-kernel)
594
-
595
- ---
596
-
597
- ## LlamaIndex {#llamaindex}
598
-
599
- ### Overview
600
-
601
- **LlamaIndex** (formerly GPT Index) is a data framework for LLM applications. OSSA supports LlamaIndex's indexing and query engines.
602
-
603
- ### Migration Complexity
604
-
605
- **Low** - LlamaIndex's query engines map cleanly to OSSA's retrieval tools.
606
-
607
- ### Installation
608
-
609
- ```bash
610
- pip install ossa-llamaindex llama-index
611
- ```
612
-
613
- ### Converting LlamaIndex to OSSA
614
-
615
- ```python
616
- from ossa_llamaindex import LlamaIndexToOSSA
617
- from llama_index import VectorStoreIndex, SimpleDirectoryReader
618
-
619
- # Create index
620
- documents = SimpleDirectoryReader('data').load_data()
621
- index = VectorStoreIndex.from_documents(documents)
622
-
623
- # Create query engine
624
- query_engine = index.as_query_engine()
625
-
626
- # Convert to OSSA
627
- converter = LlamaIndexToOSSA()
628
- manifest = converter.convert(
629
- query_engine,
630
- name="rag-agent",
631
- description="RAG-powered Q&A agent"
632
- )
633
- manifest.save("rag-agent.json")
634
- ```
635
-
636
- ### Technical Details
637
-
638
- **Index Types**: Vector, tree, keyword, and graph indexes all supported
639
- **Retrievers**: LlamaIndex retrievers become OSSA retrieval tools
640
- **Response Synthesis**: Synthesis modes map to OSSA's response formatting
641
-
642
- ### Data Flow
643
-
644
- ```
645
- Query → [Embed Query] → Vector Search → [Retrieve Docs] →
646
- LLM Context → [Generate Response] → Post-process → Output
647
- ```
648
-
649
- ### Example Manifest
650
-
651
- ```json
652
- {
653
- "ossa": "1.0.0",
654
- "name": "rag-agent",
655
- "type": "worker",
656
- "capabilities": {
657
- "tools": [
658
- {
659
- "type": "retrieval",
660
- "name": "vector_search",
661
- "index_type": "vector",
662
- "embedding_model": "text-embedding-ada-002",
663
- "top_k": 5
664
- }
665
- ],
666
- "llm": {
667
- "provider": "openai",
668
- "model": "gpt-4",
669
- "temperature": 0.7
670
- }
671
- },
672
- "data": {
673
- "sources": [
674
- {
675
- "type": "directory",
676
- "path": "./data",
677
- "file_types": ["txt", "pdf", "md"]
678
- }
679
- ]
680
- }
681
- }
682
- ```
683
-
684
- ### Documentation
685
-
686
- - **LlamaIndex Docs**: [docs.llamaindex.ai](https://docs.llamaindex.ai)
687
- - **OSSA LlamaIndex Guide**: [docs.openstandardagents.org/llamaindex](https://openstandardagents.org/docs/llamaindex)
688
-
689
- ---
690
-
691
- ## CrewAI {#crewai}
692
-
693
- ### Overview
694
-
695
- **CrewAI** specializes in multi-agent coordination. OSSA supports CrewAI crews with agent orchestration and inter-agent communication.
696
-
697
- ### Migration Complexity
698
-
699
- **Medium** - CrewAI's crew concept requires mapping to OSSA's orchestrator type.
700
-
701
- ### Installation
702
-
703
- ```bash
704
- pip install ossa-crewai crewai
705
- ```
706
-
707
- ### Converting CrewAI to OSSA
708
-
709
- ```python
710
- from ossa_crewai import CrewAIToOSSA
711
- from crewai import Agent, Task, Crew
712
-
713
- # Define CrewAI agents
714
- researcher = Agent(
715
- role='Researcher',
716
- goal='Research the topic thoroughly',
717
- backstory='Expert researcher with attention to detail',
718
- )
719
-
720
- writer = Agent(
721
- role='Writer',
722
- goal='Write engaging content',
723
- backstory='Professional content writer',
724
- )
725
-
726
- # Define tasks
727
- research_task = Task(
728
- description='Research quantum computing',
729
- agent=researcher,
730
- )
731
-
732
- write_task = Task(
733
- description='Write article based on research',
734
- agent=writer,
735
- )
736
-
737
- # Create crew
738
- crew = Crew(
739
- agents=[researcher, writer],
740
- tasks=[research_task, write_task],
741
- )
742
-
743
- # Convert to OSSA
744
- converter = CrewAIToOSSA()
745
- manifest = converter.convert(crew, name="content-crew")
746
- manifest.save("content-crew.json")
747
- ```
748
-
749
- ### Converting OSSA to CrewAI
750
-
751
- ```python
752
- from ossa_crewai import OSSAToCrewAI
753
- from ossa.core import OSSAManifest
754
-
755
- # Load OSSA manifest
756
- manifest = OSSAManifest.load("content-crew.json")
757
-
758
- # Convert to CrewAI
759
- converter = OSSAToCrewAI()
760
- crew = converter.convert(manifest)
761
-
762
- # Run crew
763
- result = crew.kickoff()
764
- print(result)
765
- ```
766
-
767
- ### Example Manifest
768
-
769
- ```json
770
- {
771
- "ossa": "1.0.0",
772
- "name": "content-crew",
773
- "version": "1.0.0",
774
- "type": "orchestrator",
775
- "description": "Multi-agent content creation crew",
776
- "agents": [
777
- {
778
- "id": "researcher",
779
- "role": "Researcher",
780
- "goal": "Research the topic thoroughly",
781
- "backstory": "Expert researcher with attention to detail",
782
- "tools": ["web-search", "arxiv-search"],
783
- "llm": {
784
- "provider": "anthropic",
785
- "model": "claude-3-5-sonnet-20241022"
786
- }
787
- },
788
- {
789
- "id": "writer",
790
- "role": "Writer",
791
- "goal": "Write engaging content",
792
- "backstory": "Professional content writer",
793
- "tools": ["grammar-check", "plagiarism-check"],
794
- "llm": {
795
- "provider": "anthropic",
796
- "model": "claude-3-5-sonnet-20241022"
797
- }
798
- }
799
- ],
800
- "workflow": {
801
- "steps": [
802
- {
803
- "agent": "researcher",
804
- "task": "Research the topic",
805
- "output": "research_findings"
806
- },
807
- {
808
- "agent": "writer",
809
- "task": "Write article based on research",
810
- "input": "research_findings",
811
- "output": "final_article"
812
- }
813
- ]
814
- }
815
- }
816
- ```
817
-
818
- ### Documentation
819
-
820
- - **Integration Guide**: [docs.openstandardagents.org/crewai](https://openstandardagents.org/docs/crewai)
821
- - **CrewAI Docs**: [docs.crewai.com](https://docs.crewai.com)
822
-
823
- ---
824
-
825
- ## Anthropic MCP {#anthropic-mcp}
826
-
827
- ### Overview
828
-
829
- **Anthropic's Model Context Protocol (MCP)** provides standardized interfaces for AI model interactions. OSSA has first-class MCP support for Claude and other Anthropic models.
830
-
831
- ### Migration Complexity
832
-
833
- **Low** - MCP's tool protocol aligns naturally with OSSA's tool capabilities.
834
-
835
- ### Installation
836
-
837
- ```bash
838
- npm install @ossa/mcp @anthropic-ai/sdk
839
- ```
840
-
841
- ### Using MCP Servers in OSSA
842
-
843
- ```typescript
844
- import { OSSAAgent } from '@bluefly/openstandardagents';
845
- import { MCPServerRegistry } from '@ossa/mcp';
846
-
847
- // Register MCP servers
848
- const registry = new MCPServerRegistry();
849
- await registry.register({
850
- name: 'filesystem',
851
- transport: 'stdio',
852
- command: 'npx',
853
- args: ['-y', '@modelcontextprotocol/server-filesystem', '/tmp'],
854
- });
855
-
856
- // Create OSSA agent with MCP tools
857
- const manifest = {
858
- ossa: '1.0.0',
859
- name: 'file-manager',
860
- version: '1.0.0',
861
- type: 'worker',
862
- capabilities: {
863
- tools: [
864
- {
865
- type: 'mcp',
866
- server: 'filesystem',
867
- tools: ['read_file', 'write_file', 'list_directory'],
868
- },
869
- ],
870
- llm: {
871
- provider: 'anthropic',
872
- model: 'claude-3-5-sonnet-20241022',
873
- },
874
- },
875
- mcp: {
876
- servers: {
877
- filesystem: {
878
- transport: 'stdio',
879
- command: 'npx',
880
- args: ['-y', '@modelcontextprotocol/server-filesystem', '/tmp'],
881
- },
882
- },
883
- },
884
- };
885
-
886
- const agent = new OSSAAgent(manifest);
887
- await agent.execute({ task: 'List all files in the directory' });
888
- ```
889
-
890
- ### Example Manifest
891
-
892
- ```json
893
- {
894
- "ossa": "1.0.0",
895
- "name": "data-processor",
896
- "version": "1.0.0",
897
- "type": "worker",
898
- "capabilities": {
899
- "tools": [
900
- {
901
- "type": "mcp",
902
- "server": "postgres",
903
- "tools": ["query", "list_tables"]
904
- },
905
- {
906
- "type": "mcp",
907
- "server": "redis",
908
- "tools": ["get", "set", "delete"]
909
- }
910
- ],
911
- "llm": {
912
- "provider": "anthropic",
913
- "model": "claude-3-5-sonnet-20241022"
914
- }
915
- },
916
- "mcp": {
917
- "servers": {
918
- "postgres": {
919
- "transport": "stdio",
920
- "command": "mcp-server-postgres",
921
- "env": {
922
- "POSTGRES_URL": "${POSTGRES_URL}"
923
- }
924
- },
925
- "redis": {
926
- "transport": "stdio",
927
- "command": "mcp-server-redis",
928
- "env": {
929
- "REDIS_URL": "${REDIS_URL}"
930
- }
931
- }
932
- }
933
- }
934
- }
935
- ```
936
-
937
- ### Documentation
938
-
939
- - **MCP Specification**: [modelcontextprotocol.io](https://modelcontextprotocol.io)
940
- - **OSSA MCP Guide**: [docs.openstandardagents.org/mcp](https://openstandardagents.org/docs/mcp)
941
-
942
- ---
943
-
944
- ## Langflow {#langflow}
945
-
946
- ### Overview
947
-
948
- **Langflow** is a visual flow-based builder for AI agents. OSSA supports exporting Langflow flows as OSSA manifests.
949
-
950
- ### Migration Complexity
951
-
952
- **Low** - Langflow's visual flows map to OSSA's workflow steps.
953
-
954
- ### Installation
955
-
956
- ```bash
957
- pip install ossa-langflow langflow
958
- ```
959
-
960
- ### Exporting Langflow to OSSA
961
-
962
- ```python
963
- from ossa_langflow import LangflowToOSSA
964
- import json
965
-
966
- # Load Langflow flow (exported JSON)
967
- with open('flow.json') as f:
968
- flow = json.load(f)
969
-
970
- # Convert to OSSA
971
- converter = LangflowToOSSA()
972
- manifest = converter.convert(flow, name="visual-agent")
973
- manifest.save("visual-agent.json")
974
- ```
975
-
976
- ### Importing OSSA to Langflow
977
-
978
- ```python
979
- from ossa_langflow import OSSAToLangflow
980
- from ossa.core import OSSAManifest
981
-
982
- # Load OSSA manifest
983
- manifest = OSSAManifest.load("visual-agent.json")
984
-
985
- # Convert to Langflow
986
- converter = OSSAToLangflow()
987
- flow = converter.convert(manifest)
988
-
989
- # Save Langflow flow
990
- with open('flow.json', 'w') as f:
991
- json.dump(flow, f, indent=2)
992
- ```
993
-
994
- ### Documentation
995
-
996
- - **Langflow Docs**: [docs.langflow.org](https://docs.langflow.org)
997
- - **OSSA Langflow Guide**: [docs.openstandardagents.org/langflow](https://openstandardagents.org/docs/langflow)
998
-
999
- ---
1000
-
1001
- ## Drupal ECA {#drupal-eca}
1002
-
1003
- ### Overview
1004
-
1005
- **Drupal ECA (Event-Condition-Action)** is a powerful rule-based automation framework for Drupal. OSSA integrates with ECA to enable AI-powered Drupal workflows.
1006
-
1007
- ### Migration Complexity
1008
-
1009
- **Medium** - Mapping ECA's event-driven model to OSSA requires workflow orchestration.
1010
-
1011
- ### Installation
1012
-
1013
- ```bash
1014
- composer require ossa/drupal-eca
1015
- drush pm:enable ossa_eca
1016
- ```
1017
-
1018
- ### Creating OSSA-Enabled ECA Rules
1019
-
1020
- ```yaml
1021
- # eca_config.yml
1022
- name: Content Moderation Agent
1023
- description: AI-powered content review and moderation
1024
- trigger:
1025
- event: node_presave
1026
- entity_type: node
1027
- bundle: article
1028
- conditions:
1029
- - plugin: entity_field_value
1030
- field: status
1031
- value: draft
1032
- actions:
1033
- - plugin: ossa_agent_execute
1034
- agent_manifest: /path/to/moderator-agent.json
1035
- input:
1036
- title: "[node:title]"
1037
- body: "[node:body:value]"
1038
- output_mapping:
1039
- approved: field_moderation_status
1040
- feedback: field_ai_feedback
1041
- ```
1042
-
1043
- ### OSSA Manifest for Drupal
1044
-
1045
- ```json
1046
- {
1047
- "ossa": "1.0.0",
1048
- "name": "drupal-content-moderator",
1049
- "version": "1.0.0",
1050
- "type": "worker",
1051
- "description": "AI content moderation for Drupal",
1052
- "capabilities": {
1053
- "tools": [
1054
- {
1055
- "name": "drupal-api",
1056
- "type": "rest",
1057
- "baseUrl": "${DRUPAL_BASE_URL}",
1058
- "auth": {
1059
- "type": "bearer",
1060
- "token": "${DRUPAL_API_TOKEN}"
1061
- }
1062
- },
1063
- {
1064
- "name": "check-guidelines",
1065
- "type": "function",
1066
- "description": "Check content against editorial guidelines"
1067
- }
1068
- ],
1069
- "llm": {
1070
- "provider": "anthropic",
1071
- "model": "claude-3-5-sonnet-20241022"
1072
- }
1073
- },
1074
- "runtime": {
1075
- "environment": "php",
1076
- "version": ">=8.1"
1077
- }
1078
- }
1079
- ```
1080
-
1081
- ### Documentation
1082
-
1083
- - **Drupal ECA**: [drupal.org/project/eca](https://drupal.org/project/eca)
1084
- - **OSSA Drupal Guide**: [docs.openstandardagents.org/drupal](https://openstandardagents.org/docs/drupal)
1085
-
1086
- ---
1087
-
1088
- ## OpenAI Assistants {#openai-assistants}
1089
-
1090
- ### Overview
1091
-
1092
- **OpenAI Assistants API** provides managed AI assistants with built-in tools. OSSA enables local definitions and deployment flexibility.
1093
-
1094
- ### Migration Complexity
1095
-
1096
- **Medium** - OpenAI's proprietary format requires translation to OSSA standard.
1097
-
1098
- ### Installation
1099
-
1100
- ```bash
1101
- npm install @ossa/openai openai
1102
- # or
1103
- pip install ossa-openai openai
1104
- ```
1105
-
1106
- ### Converting OpenAI Assistant to OSSA
1107
-
1108
- ```typescript
1109
- import { OpenAIToOSSA } from '@ossa/openai';
1110
- import OpenAI from 'openai';
1111
-
1112
- const openai = new OpenAI();
1113
-
1114
- // Retrieve OpenAI Assistant
1115
- const assistant = await openai.beta.assistants.retrieve('asst_abc123');
1116
-
1117
- // Convert to OSSA
1118
- const converter = new OpenAIToOSSA();
1119
- const manifest = converter.convert(assistant);
1120
-
1121
- // Save manifest
1122
- await manifest.save('assistant.json');
1123
- ```
1124
-
1125
- ### Converting OSSA to OpenAI Assistant
1126
-
1127
- ```typescript
1128
- import { OSSAToOpenAI } from '@ossa/openai';
1129
- import { OSSAManifest } from '@ossa/core';
1130
- import OpenAI from 'openai';
1131
-
1132
- const openai = new OpenAI();
1133
-
1134
- // Load OSSA manifest
1135
- const manifest = await OSSAManifest.load('assistant.json');
1136
-
1137
- // Convert to OpenAI Assistant
1138
- const converter = new OSSAToOpenAI();
1139
- const assistantConfig = converter.convert(manifest);
1140
-
1141
- // Create OpenAI Assistant
1142
- const assistant = await openai.beta.assistants.create(assistantConfig);
1143
- console.log(`Created assistant: ${assistant.id}`);
1144
- ```
1145
-
1146
- ### Example Manifest
1147
-
1148
- ```json
1149
- {
1150
- "ossa": "1.0.0",
1151
- "name": "code-reviewer",
1152
- "version": "1.0.0",
1153
- "type": "worker",
1154
- "description": "AI code review assistant",
1155
- "capabilities": {
1156
- "tools": [
1157
- {
1158
- "type": "code_interpreter",
1159
- "enabled": true
1160
- },
1161
- {
1162
- "type": "file_search",
1163
- "enabled": true
1164
- }
1165
- ],
1166
- "llm": {
1167
- "provider": "openai",
1168
- "model": "gpt-4-turbo-preview",
1169
- "temperature": 0.7,
1170
- "instructions": "You are an expert code reviewer. Analyze code for best practices, security issues, and performance optimizations."
1171
- }
1172
- },
1173
- "files": {
1174
- "vector_store": "vs_abc123"
1175
- }
1176
- }
1177
- ```
1178
-
1179
- ### Documentation
1180
-
1181
- - **OpenAI Assistants**: [platform.openai.com/docs/assistants](https://platform.openai.com/docs/assistants)
1182
- - **OSSA OpenAI Guide**: [docs.openstandardagents.org/openai](https://openstandardagents.org/docs/openai)
1183
-
1184
- ---
1185
-
1186
- ## Framework Comparison
1187
-
1188
- | Feature | kAgent | LangChain | LangGraph | CrewAI | AutoGen | Semantic Kernel | MCP | Langflow | LlamaIndex | Drupal ECA | OpenAI |
1189
- |---------|--------|-----------|-----------|--------|---------|-----------------|-----|----------|------------|------------|--------|
1190
- | OSSA Native | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ |
1191
- | Multi-Agent | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ |
1192
- | State Management | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ |
1193
- | Visual Builder | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ✅ | ❌ |
1194
- | TypeScript | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ✅ |
1195
- | Python | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
1196
- | C# / .NET | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ❌ | ❌ | ✅ |
1197
- | Self-Hosted | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
1198
- | Cloud Managed | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ | ❌ | ✅ |
1199
- | RAG Support | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ❌ | ✅ |
1200
- | Code Execution | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ❌ | ✅ |
1201
-
1202
- ---
1203
-
1204
- ## Technical Architecture
1205
-
1206
- ### OSSA Runtime Components
1207
-
1208
- ```
1209
- ┌─────────────────────────────────────────────────────────────┐
1210
- │ OSSA Runtime │
1211
- │ │
1212
- │ ┌────────────────┐ ┌────────────────┐ ┌──────────────┐ │
1213
- │ │ Manifest │ │ Schema │ │ Validator │ │
1214
- │ │ Parser │──│ Validator │──│ Engine │ │
1215
- │ └────────────────┘ └────────────────┘ └──────────────┘ │
1216
- │ │ │ │
1217
- │ ▼ ▼ │
1218
- │ ┌────────────────┐ ┌──────────────────┐ │
1219
- │ │ Framework │ │ Execution │ │
1220
- │ │ Adapter │◀───────────────────│ Engine │ │
1221
- │ └────────────────┘ └──────────────────┘ │
1222
- │ │ │ │
1223
- └───────────┼───────────────────────────────────────┼──────────┘
1224
- │ │
1225
- ▼ ▼
1226
- ┌────────────────┐ ┌──────────────────┐
1227
- │ Native │ │ Tool │
1228
- │ Framework │ │ Registry │
1229
- └────────────────┘ └──────────────────┘
1230
- ```
1231
-
1232
- ### Adapter Pattern
1233
-
1234
- Each framework adapter implements:
1235
-
1236
- 1. **Manifest Translation**: OSSA → Framework Config
1237
- 2. **Tool Mapping**: OSSA tools → Framework tools
1238
- 3. **Execution Bridge**: Framework execution → OSSA responses
1239
- 4. **State Management**: Framework state ↔ OSSA state
1240
-
1241
- ### Example: LangChain Adapter Flow
1242
-
1243
- ```
1244
- OSSA Manifest
1245
-
1246
-
1247
- ┌─────────────────────┐
1248
- │ Parse Capabilities │
1249
- │ - tools: [...] │
1250
- │ - llm: {...} │
1251
- └──────────┬──────────┘
1252
-
1253
-
1254
- ┌─────────────────────┐
1255
- │ Create LangChain │
1256
- │ - ChatModel │
1257
- │ - Tools │
1258
- │ - Agent Executor │
1259
- └──────────┬──────────┘
1260
-
1261
-
1262
- ┌─────────────────────┐
1263
- │ Execute Task │
1264
- │ - Input → Agent │
1265
- │ - Agent → Tools │
1266
- │ - Tools → LLM │
1267
- └──────────┬──────────┘
1268
-
1269
-
1270
- ┌─────────────────────┐
1271
- │ Format Response │
1272
- │ - OSSA Output │
1273
- └─────────────────────┘
1274
- ```
1275
-
1276
- ### Tool Resolution
1277
-
1278
- ```
1279
- OSSA Tool Definition
1280
-
1281
- ├─ type: "function" ──→ Native Function Call
1282
-
1283
- ├─ type: "mcp" ──────→ MCP Server Connection
1284
-
1285
- ├─ type: "rest" ─────→ HTTP API Call
1286
-
1287
- ├─ type: "retrieval" ─→ Vector DB Query
1288
-
1289
- └─ type: "code" ─────→ Code Interpreter
1290
- ```
1291
-
1292
- ---
1293
-
1294
- ## Migration Strategies
1295
-
1296
- ### Gradual Migration
1297
-
1298
- Adopt OSSA incrementally:
1299
-
1300
- 1. **Start with new agents**: Build new agents using OSSA
1301
- 2. **Convert high-value agents**: Migrate critical agents first
1302
- 3. **Maintain compatibility**: Run OSSA and native formats in parallel
1303
- 4. **Complete migration**: Fully transition to OSSA
1304
-
1305
- ### Framework Coexistence
1306
-
1307
- Run multiple frameworks simultaneously:
1308
-
1309
- ```json
1310
- {
1311
- "ossa": "1.0.0",
1312
- "name": "hybrid-system",
1313
- "type": "orchestrator",
1314
- "agents": [
1315
- { "id": "langchain-agent", "framework": "langchain" },
1316
- { "id": "crewai-crew", "framework": "crewai" },
1317
- { "id": "native-agent", "framework": "kagent" }
1318
- ]
1319
- }
1320
- ```
1321
-
1322
- ### Testing Strategy
1323
-
1324
- Validate migrations:
1325
-
1326
- 1. **Schema Validation**: Ensure manifest compliance
1327
- 2. **Functional Testing**: Verify agent behavior
1328
- 3. **Performance Testing**: Compare metrics
1329
- 4. **Integration Testing**: Test framework interop
1330
-
1331
- ---
1332
-
1333
- ## Support & Resources
1334
-
1335
- ### Getting Help
1336
-
1337
- - **Discord**: [discord.gg/ossa](https://github.com/blueflyio/openstandardagents/discussions) - Real-time community support
1338
- - **GitHub Issues**: [GitHub Issues](https://github.com/blueflyio/openstandardagents/issues) - Bug reports and feature requests
1339
- - **Documentation**: [docs.openstandardagents.org](https://docs.openstandardagents.org) - Comprehensive guides
1340
-
1341
- ### Contributing
1342
-
1343
- Help improve framework integrations:
1344
-
1345
- - **Report compatibility issues**
1346
- - **Submit integration PRs**
1347
- - **Share migration experiences**
1348
- - **Contribute examples**
1349
-
1350
- ### Requesting New Integrations
1351
-
1352
- To request support for a new framework:
1353
-
1354
- 1. **Open GitLab issue** with `integration-request` label
1355
- 2. **Provide framework details**: Name, repo, community size
1356
- 3. **Describe use case**: Why this integration matters
1357
- 4. **Offer to help**: Contribute to integration development
1358
-
1359
- ---
1360
-
1361
- **Next Steps**: Explore [Runtime Deployment](/docs/getting-started/installation) to learn about deploying OSSA agents.