@bluefly/openstandardagents 0.2.7 → 0.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.devfile.yaml +1 -1
- package/.env.example +1 -1
- package/.version.json +2 -2
- package/.wiki-config.json +24 -0
- package/CHANGELOG.md +11 -18
- package/CODEOWNERS +75 -0
- package/CONTRIBUTING.md +1 -1
- package/README.md +171 -243
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/repositories/schema.repository.d.ts +6 -1
- package/dist/repositories/schema.repository.d.ts.map +1 -1
- package/dist/repositories/schema.repository.js +49 -27
- package/dist/repositories/schema.repository.js.map +1 -1
- package/dist/services/migration.service.d.ts +4 -3
- package/dist/services/migration.service.d.ts.map +1 -1
- package/dist/services/migration.service.js +11 -10
- package/dist/services/migration.service.js.map +1 -1
- package/dist/services/release-automation/release.service.js +1 -1
- package/dist/services/release-automation/release.service.js.map +1 -1
- package/dist/services/release-automation/schemas/release.schema.js +1 -1
- package/dist/services/runtime/claude/claude-adapter.js +1 -1
- package/dist/services/runtime/claude/claude-adapter.js.map +1 -1
- package/dist/spec/v0.2.8/CHANGELOG.md +401 -0
- package/dist/spec/v0.2.8/README.md +72 -0
- package/dist/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/dist/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/dist/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
- 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
- package/dist/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/utils/index.d.ts +6 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/version.d.ts +68 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +156 -0
- package/dist/utils/version.js.map +1 -0
- package/eslint-report.json +1 -0
- package/examples/adk-integration/code-review-workflow.yml +1 -1
- package/examples/adk-integration/customer-support.yml +1 -1
- package/examples/adk-integration/data-pipeline.yml +1 -1
- package/examples/advanced/workflows/hybrid-model-strategy.yaml +1 -1
- package/examples/agent-manifests/critics/critic-agent.yaml +1 -1
- package/examples/agent-manifests/governors/governor-agent.yaml +1 -1
- package/examples/agent-manifests/integrators/integrator-agent.yaml +1 -1
- package/examples/agent-manifests/judges/judge-agent.yaml +1 -1
- package/examples/agent-manifests/monitors/monitor-agent.yaml +1 -1
- package/examples/agent-manifests/orchestrators/orchestrator-agent.yaml +1 -1
- package/examples/agent-manifests/sample-compliant-agent.yaml +1 -1
- package/examples/agent-manifests/workers/worker-agent.yaml +1 -1
- package/examples/anthropic/claude-assistant.ossa.json +1 -1
- package/examples/autogen/multi-agent.ossa.json +1 -1
- package/examples/claude-code/code-reviewer.ossa.yaml +78 -0
- package/examples/claude-code/ossa-validator.ossa.yaml +80 -0
- package/examples/common_npm/agent-router.ossa.yaml +1 -0
- package/examples/common_npm/agent-router.v0.2.2.ossa.yaml +1 -1
- package/examples/crewai/research-team.ossa.json +1 -1
- package/examples/cursor/code-review-agent.ossa.json +1 -1
- package/examples/drupal/gitlab-ml-recommender.ossa.yaml +1 -0
- package/examples/drupal/gitlab-ml-recommender.v0.2.2.ossa.yaml +1 -1
- package/examples/extensions/drupal-v1.yml +1 -1
- package/examples/extensions/kagent-v1.yml +1 -1
- package/examples/getting-started/hello-world-complete.ossa.yaml +1 -1
- package/examples/integration-patterns/agent-to-agent-orchestration.ossa.yaml +4 -4
- package/examples/kagent/compliance-validator.ossa.yaml +1 -1
- package/examples/kagent/cost-optimizer.ossa.yaml +1 -1
- package/examples/kagent/documentation-agent.ossa.yaml +1 -1
- package/examples/kagent/k8s-troubleshooter-v1.ossa.yaml +1 -0
- package/examples/kagent/k8s-troubleshooter-v1.v0.2.2.ossa.yaml +1 -1
- package/examples/kagent/k8s-troubleshooter.ossa.yaml +1 -1
- package/examples/kagent/security-scanner.ossa.yaml +1 -1
- package/examples/langchain/chain-agent.ossa.json +1 -1
- package/examples/langflow/workflow-agent.ossa.json +1 -1
- package/examples/langgraph/state-machine-agent.ossa.json +1 -1
- package/examples/llamaindex/rag-agent.ossa.json +1 -1
- package/examples/migration-guides/from-langchain-to-ossa.yaml +4 -4
- package/examples/multi-agent/README.md +74 -0
- package/examples/multi-agent/conditional-router.ossa.yaml +42 -0
- package/examples/multi-agent/parallel-execution.ossa.yaml +54 -0
- package/examples/multi-agent/sequential-pipeline.ossa.yaml +45 -0
- package/examples/openai/basic-agent.ossa.yaml +1 -1
- package/examples/openai/multi-tool-agent.ossa.json +1 -1
- package/examples/openai/swarm-agent.ossa.json +1 -1
- package/examples/production/document-analyzer-openai.yml +1 -1
- package/examples/quickstart/support-agent.ossa.yaml +1 -1
- package/examples/spec-examples/audit-agent.yml +1 -1
- package/examples/spec-examples/chat-agent.yml +1 -1
- package/examples/spec-examples/compliance-agent.yml +1 -1
- package/examples/spec-examples/monitoring-agent.yml +1 -1
- package/examples/spec-examples/workflow-agent.yml +1 -1
- package/examples/templates/ossa-compliance.yaml +1 -1
- package/examples/vercel/edge-agent.ossa.json +1 -1
- package/gl-code-quality-report.json +62 -0
- package/llms-ctx-full.txt +39 -0
- package/llms-ctx.txt +39 -0
- package/llms.txt +47 -0
- package/package.json +3 -2
- package/scripts/eslint-to-codequality.cjs +34 -0
- package/scripts/generate-llms-ctx.sh +17 -0
- package/scripts/generate-schema-docs.ts +31 -10
- package/scripts/sync-version.js +4 -12
- package/scripts/validate-schema.ts +2 -1
- package/spec/v0.2.8/CHANGELOG.md +401 -0
- package/spec/v0.2.8/README.md +72 -0
- package/spec/v0.2.8/migrations/v0.2.3-to-v0.2.4.md +599 -0
- package/spec/v0.2.8/migrations/v0.2.5-RC-to-v0.2.6.md +65 -0
- package/spec/v0.2.8/migrations/v0.2.6-to-v0.2.8.md +81 -0
- package/{dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json → spec/v0.2.8/ossa-0.2.8.schema.json} +1509 -52
- package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
- package/test-results/junit.xml +299 -0
- package/bin/validate-ossa-0.2.5-RC.ts +0 -244
- package/dist/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
- package/scripts/lib/exec.ts +0 -37
- package/scripts/lib/file-ops.ts +0 -58
- package/scripts/lib/version.ts +0 -83
- package/spec/v0.2.6-dev/ossa-0.2.6-dev.schema.json +0 -1696
- package/website/.lighthouserc.ts +0 -24
- package/website/.prettierrc +0 -10
- package/website/DESIGN_SYSTEM_IMPLEMENTATION.md +0 -445
- package/website/Dockerfile +0 -30
- package/website/app/about/page.tsx +0 -304
- package/website/app/blog/[slug]/page.tsx +0 -208
- package/website/app/blog/page.tsx +0 -249
- package/website/app/design-guide/page.tsx +0 -511
- package/website/app/docs/[[...slug]]/page.tsx +0 -847
- package/website/app/docs/core-concepts/project-structure/page.tsx +0 -349
- package/website/app/ecosystem/page.tsx +0 -410
- package/website/app/examples/page.tsx +0 -133
- package/website/app/globals.scss +0 -370
- package/website/app/layout.tsx +0 -106
- package/website/app/license/page.tsx +0 -183
- package/website/app/not-found.tsx +0 -18
- package/website/app/page.tsx +0 -686
- package/website/app/page.tsx.bak +0 -679
- package/website/app/page.tsx.bak2 +0 -649
- package/website/app/playground/page.tsx +0 -487
- package/website/app/robots.ts +0 -19
- package/website/app/rss.xml/route.ts +0 -74
- package/website/app/schema/page.tsx +0 -1001
- package/website/app/sitemap.ts +0 -56
- package/website/app/specification/page.tsx +0 -287
- package/website/components/InstallCommand.tsx +0 -96
- package/website/components/Logo.tsx +0 -97
- package/website/components/StructuredData.tsx +0 -65
- package/website/components/docs/DocsSearch.tsx +0 -104
- package/website/components/docs/DocsSidebar.tsx +0 -155
- package/website/components/docs/MarkdownContent.tsx +0 -401
- package/website/components/docs/VersionSelector.tsx +0 -105
- package/website/components/examples/ExamplesViewer.tsx +0 -293
- package/website/components/layout/Footer.tsx +0 -116
- package/website/components/layout/Header.tsx +0 -172
- package/website/components/schema/SchemaComponentsAccordion.tsx +0 -84
- package/website/components/schema/SchemaExplorer.tsx +0 -213
- package/website/components/ui/Badge.tsx +0 -82
- package/website/components/ui/Button.tsx +0 -116
- package/website/components/ui/Card.tsx +0 -167
- package/website/components/ui/Checkbox.tsx +0 -141
- package/website/components/ui/Input.tsx +0 -169
- package/website/components/ui/Radio.tsx +0 -141
- package/website/components/ui/Select.tsx +0 -182
- package/website/components/ui/Tag.tsx +0 -158
- package/website/components/ui/Textarea.tsx +0 -195
- package/website/components/ui/index.ts +0 -11
- package/website/content/blog/OpenAPI-AI-Agents-Standard.md +0 -285
- package/website/content/blog/Why-Formal-Standards-Matter-Now.md +0 -198
- package/website/content/blog/gitlab-kubernetes-agent-ecosystem.md +0 -286
- package/website/content/blog/introducing-ossa-framework.md +0 -328
- package/website/content/blog/ossa-production-results.md +0 -279
- package/website/content/blog/welcome-to-ossa.md +0 -43
- package/website/content/blog/why-ai-agents-need-open-standard.md +0 -98
- package/website/content/docs/00-home.md +0 -153
- package/website/content/docs/adapters/openai-adapter.md +0 -693
- package/website/content/docs/agents/catalog.md +0 -28
- package/website/content/docs/aiflow-framework-integration-with-ossa.md +0 -107
- package/website/content/docs/api-reference/index.md +0 -38
- package/website/content/docs/api-reference/ossa-core-api.md +0 -634
- package/website/content/docs/api-reference/ossa-registry-api.md +0 -515
- package/website/content/docs/api-reference/unified-agent-gateway.md +0 -599
- package/website/content/docs/architecture/execution-flow.md +0 -335
- package/website/content/docs/architecture/multi-agent-systems.md +0 -737
- package/website/content/docs/architecture/overview.md +0 -121
- package/website/content/docs/architecture/stack-integration.md +0 -461
- package/website/content/docs/changelog.md +0 -246
- package/website/content/docs/cli-reference/index.md +0 -111
- package/website/content/docs/cli-reference/ossa-agents.md +0 -70
- package/website/content/docs/cli-reference/ossa-export.md +0 -56
- package/website/content/docs/cli-reference/ossa-generate.md +0 -66
- package/website/content/docs/cli-reference/ossa-gitlab-agent.md +0 -57
- package/website/content/docs/cli-reference/ossa-import.md +0 -56
- package/website/content/docs/cli-reference/ossa-init.md +0 -57
- package/website/content/docs/cli-reference/ossa-migrate.md +0 -62
- package/website/content/docs/cli-reference/ossa-run.md +0 -66
- package/website/content/docs/cli-reference/ossa-schema.md +0 -57
- package/website/content/docs/cli-reference/ossa-setup.md +0 -57
- package/website/content/docs/cli-reference/ossa-validate.md +0 -66
- package/website/content/docs/configuration/index.md +0 -97
- package/website/content/docs/contributing.md +0 -599
- package/website/content/docs/deployment/github-mirroring.md +0 -924
- package/website/content/docs/documentation.md +0 -100
- package/website/content/docs/ecosystem/framework-support.md +0 -1361
- package/website/content/docs/ecosystem/overview.md +0 -366
- package/website/content/docs/errors/index.md +0 -10
- package/website/content/docs/examples/aiflow-framework-integration-with-ossa.md +0 -107
- package/website/content/docs/examples/catalog.md +0 -300
- package/website/content/docs/for-audiences/students-researchers.md +0 -122
- package/website/content/docs/getting-started/index.md +0 -92
- package/website/content/docs/getting-started/installation.md +0 -155
- package/website/content/docs/getting-started/running-agents.md +0 -309
- package/website/content/docs/getting-started.md +0 -91
- package/website/content/docs/integrations/aiflow.md +0 -104
- package/website/content/docs/integrations/drupal.md +0 -105
- package/website/content/docs/migration-guides/agent-schema-comparison.md +0 -232
- package/website/content/docs/migration-guides/anthropic-mcp-to-ossa.md +0 -1750
- package/website/content/docs/migration-guides/crewai-to-ossa.md +0 -274
- package/website/content/docs/migration-guides/drupal-eca-to-ossa.md +0 -2017
- package/website/content/docs/migration-guides/general-agent-schema.yml +0 -247
- package/website/content/docs/migration-guides/index.md +0 -133
- package/website/content/docs/migration-guides/langchain-to-ossa.md +0 -1714
- package/website/content/docs/migration-guides/langflow-to-ossa.md +0 -2075
- package/website/content/docs/migration-guides/migration-manifest.json +0 -64
- package/website/content/docs/migration-guides/openai-to-ossa.md +0 -1202
- package/website/content/docs/openapi-extensions/examples.md +0 -550
- package/website/content/docs/openapi-extensions/index.md +0 -551
- package/website/content/docs/openapi-extensions/operation-extensions.md +0 -457
- package/website/content/docs/openapi-extensions/root-extensions.md +0 -410
- package/website/content/docs/ossa-compliant-badge.md +0 -251
- package/website/content/docs/pre-release/index.md +0 -175
- package/website/content/docs/quick-reference.md +0 -17
- package/website/content/docs/readme.md +0 -35
- package/website/content/docs/releases/v0.2.6.md +0 -99
- package/website/content/docs/schema-reference/agent-capabilities.md +0 -50
- package/website/content/docs/schema-reference/agent-id.md +0 -52
- package/website/content/docs/schema-reference/agent-name.md +0 -50
- package/website/content/docs/schema-reference/agent-role.md +0 -54
- package/website/content/docs/schema-reference/agent-spec.md +0 -406
- package/website/content/docs/schema-reference/agent-version.md +0 -50
- package/website/content/docs/schema-reference/autonomy.md +0 -568
- package/website/content/docs/schema-reference/constraints.md +0 -543
- package/website/content/docs/schema-reference/index.md +0 -45
- package/website/content/docs/schema-reference/llm-config.md +0 -445
- package/website/content/docs/schema-reference/observability.md +0 -654
- package/website/content/docs/schema-reference/ossa-manifest.md +0 -309
- package/website/content/docs/schema-reference/taxonomy.md +0 -509
- package/website/content/docs/schema-reference/tools.md +0 -628
- package/website/content/docs/templates/blog-post.md +0 -43
- package/website/content/docs/types-reference/index.md +0 -105
- package/website/content/docs/use-cases/00-index.md +0 -395
- package/website/content/docs/use-cases/cicd-code-review.md +0 -1236
- package/website/content/docs/use-cases/customer-support.md +0 -1234
- package/website/content/docs/use-cases/enterprise-compliance.md +0 -1208
- package/website/content/docs/use-cases/research-multi-agent.md +0 -1161
- package/website/content/docs/versioning.md +0 -288
- package/website/dev.sh +0 -53
- package/website/docker-compose.dev.yml +0 -36
- package/website/lib/version.ts +0 -35
- package/website/lib/versions.json +0 -103
- package/website/next.config.ts +0 -18
- package/website/nginx.conf +0 -32
- package/website/package-lock.json +0 -9679
- package/website/package.json +0 -59
- package/website/postcss.config.mjs +0 -9
- package/website/scripts/fetch-versions.js +0 -166
- package/website/scripts/generate-examples-index.js +0 -163
- package/website/scripts/merge-docs-to-wiki.ts +0 -207
- package/website/scripts/sync-version.js +0 -72
- package/website/scripts/sync-wiki.ts +0 -322
- package/website/scripts/upload-wiki.ts +0 -199
- package/website/styles/_spacing.scss +0 -453
- package/website/styles/_tokens.scss +0 -245
- package/website/styles/_typography.scss +0 -361
- package/website/styles/_variables.scss +0 -287
- 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.
|