@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.
- package/.devfile.yaml +1 -1
- package/.env.example +1 -1
- package/.github/AGENTS.md +245 -0
- package/.github/agents/github-issue-triage.ossa.yaml +99 -0
- package/.github/agents/github-pr-triage.ossa.yaml +137 -0
- package/.github/workflows/issue-sync-to-gitlab.yml +138 -0
- package/.github/workflows/pr-triage-to-gitlab.yml +164 -0
- package/.version.json +2 -2
- package/.wiki-config.json +24 -0
- package/CHANGELOG.md +44 -18
- package/CODEOWNERS +75 -0
- package/CONTRIBUTING.md +103 -4
- package/README.md +178 -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/release-automation/webhook.service.js +3 -3
- package/dist/services/release-automation/webhook.service.js.map +1 -1
- package/dist/services/runtime/claude/claude-adapter.d.ts +1 -1
- package/dist/services/runtime/claude/claude-adapter.d.ts.map +1 -1
- package/dist/services/runtime/claude/claude-adapter.js +2 -2
- 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/spec/v0.2.9/a2a-protocol.md +1337 -0
- package/dist/spec/v0.2.9/agent.md +1946 -0
- package/dist/spec/v0.2.9/capabilities/index.yaml +25 -0
- package/dist/spec/v0.2.9/capabilities/memory.yaml +251 -0
- package/dist/spec/v0.2.9/capability-schema.md +576 -0
- package/dist/spec/v0.2.9/compliance-profiles.md +533 -0
- package/dist/spec/v0.2.9/conformance-testing.md +1527 -0
- package/dist/spec/v0.2.9/gitlab-duo-integration.md +621 -0
- package/dist/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
- package/dist/spec/v0.2.9/runtime-semantics.md +464 -0
- package/dist/spec/v0.2.9/security-model.md +1245 -0
- package/dist/spec/v0.2.9/semantic-conventions.md +347 -0
- package/dist/spec/v0.2.9/types.ts +522 -0
- package/dist/types/index.d.ts +3 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/policy.d.ts +377 -0
- package/dist/types/policy.d.ts.map +1 -0
- package/dist/types/policy.js +84 -0
- package/dist/types/policy.js.map +1 -0
- 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/docs/specs/policy-dsl.md +925 -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/reasoning-agent.yaml +136 -0
- 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/agents-md/code-agent.ossa.json +100 -0
- package/examples/agents-md/monorepo-agent.ossa.yaml +180 -0
- 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/agents-md-v1.yml +175 -0
- 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 +6 -3
- package/scripts/README.md +25 -0
- package/scripts/compliance-audit.ts +796 -0
- package/scripts/eslint-to-codequality.cjs +34 -0
- package/scripts/generate-agents-catalog.ts +2 -1
- package/scripts/generate-api-docs.ts +2 -1
- package/scripts/generate-examples-docs.ts +2 -1
- 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/spec/{v0.2.6-dev/ossa-0.2.6-dev.schema.json → v0.2.8/ossa-0.2.8.schema.json} +1509 -52
- package/spec/v0.2.8/ossa-0.2.8.yaml +581 -0
- package/spec/v0.2.9/a2a-protocol.md +1337 -0
- package/spec/v0.2.9/agent.md +1946 -0
- package/spec/v0.2.9/capabilities/index.yaml +25 -0
- package/spec/v0.2.9/capabilities/memory.yaml +251 -0
- package/spec/v0.2.9/capability-schema.md +576 -0
- package/spec/v0.2.9/compliance-profiles.md +533 -0
- package/spec/v0.2.9/conformance-testing.md +1527 -0
- package/spec/v0.2.9/gitlab-duo-integration.md +621 -0
- package/spec/v0.2.9/ossa-0.2.9.schema.json +3699 -0
- package/spec/v0.2.9/runtime-semantics.md +464 -0
- package/spec/v0.2.9/security-model.md +1245 -0
- package/spec/v0.2.9/semantic-conventions.md +347 -0
- package/spec/v0.2.9/types.ts +522 -0
- package/test-results/junit.xml +337 -0
- package/.github/workflows/pr-comment.yml +0 -33
- package/bin/validate-ossa-0.2.5-RC.ts +0 -244
- package/dist/spec/v0.2.6-dev/ossa-0.2.5.schema.json +0 -1696
- 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/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,543 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "Constraints"
|
|
3
|
-
description: "Cost, performance, and resource constraints configuration"
|
|
4
|
-
weight: 7
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Constraints Object
|
|
8
|
-
|
|
9
|
-
The `constraints` object in `spec.constraints` defines operational limits for cost, performance, and resource usage. Constraints prevent runaway costs, ensure SLAs, and manage resource allocation.
|
|
10
|
-
|
|
11
|
-
## Field Reference
|
|
12
|
-
|
|
13
|
-
| Field Name | Type | Required | Description |
|
|
14
|
-
|------------|------|----------|-------------|
|
|
15
|
-
| `cost` | [Cost](#cost-constraints) | No | Cost and token usage limits |
|
|
16
|
-
| `performance` | [Performance](#performance-constraints) | No | Latency, concurrency, and timeout settings |
|
|
17
|
-
| `resources` | [Resources](#resource-constraints) | No | CPU, memory, and GPU allocation (Kubernetes format) |
|
|
18
|
-
|
|
19
|
-
## Cost Constraints
|
|
20
|
-
|
|
21
|
-
Cost constraints prevent excessive LLM API usage and spending.
|
|
22
|
-
|
|
23
|
-
| Field Name | Type | Required | Description |
|
|
24
|
-
|------------|------|----------|-------------|
|
|
25
|
-
| `maxTokensPerDay` | integer | No | Maximum tokens allowed per day (input + output combined). Minimum: 0 |
|
|
26
|
-
| `maxTokensPerRequest` | integer | No | Maximum tokens per individual request. Minimum: 0 |
|
|
27
|
-
| `maxCostPerDay` | number | No | Maximum cost per day in specified currency. Minimum: 0 |
|
|
28
|
-
| `currency` | string | No | ISO 4217 currency code (3 uppercase letters). Default: `USD` |
|
|
29
|
-
|
|
30
|
-
### Examples
|
|
31
|
-
|
|
32
|
-
```yaml
|
|
33
|
-
# Moderate daily limits
|
|
34
|
-
constraints:
|
|
35
|
-
cost:
|
|
36
|
-
maxTokensPerDay: 1000000 # 1M tokens/day
|
|
37
|
-
maxTokensPerRequest: 10000 # 10K tokens/request
|
|
38
|
-
maxCostPerDay: 50.0 # $50/day
|
|
39
|
-
currency: USD
|
|
40
|
-
|
|
41
|
-
# High-volume agent
|
|
42
|
-
constraints:
|
|
43
|
-
cost:
|
|
44
|
-
maxTokensPerDay: 50000000 # 50M tokens/day
|
|
45
|
-
maxTokensPerRequest: 100000 # 100K tokens/request
|
|
46
|
-
maxCostPerDay: 500.0
|
|
47
|
-
currency: USD
|
|
48
|
-
|
|
49
|
-
# Experimental/testing
|
|
50
|
-
constraints:
|
|
51
|
-
cost:
|
|
52
|
-
maxTokensPerDay: 100000 # 100K tokens/day
|
|
53
|
-
maxCostPerDay: 5.0
|
|
54
|
-
currency: USD
|
|
55
|
-
|
|
56
|
-
# European deployment
|
|
57
|
-
constraints:
|
|
58
|
-
cost:
|
|
59
|
-
maxTokensPerDay: 5000000
|
|
60
|
-
maxCostPerDay: 200.0
|
|
61
|
-
currency: EUR
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
### Cost Calculation
|
|
65
|
-
|
|
66
|
-
Cost tracking varies by provider:
|
|
67
|
-
|
|
68
|
-
**OpenAI:**
|
|
69
|
-
```yaml
|
|
70
|
-
# GPT-4o: $2.50/1M input, $10.00/1M output
|
|
71
|
-
constraints:
|
|
72
|
-
cost:
|
|
73
|
-
maxTokensPerDay: 1000000
|
|
74
|
-
maxCostPerDay: 10.0
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
**Anthropic:**
|
|
78
|
-
```yaml
|
|
79
|
-
# Claude 3.5 Sonnet: $3.00/1M input, $15.00/1M output
|
|
80
|
-
constraints:
|
|
81
|
-
cost:
|
|
82
|
-
maxTokensPerDay: 1000000
|
|
83
|
-
maxCostPerDay: 15.0
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
**Note:** Platforms typically estimate cost based on provider pricing. For precise cost control, use both token and cost limits.
|
|
87
|
-
|
|
88
|
-
## Performance Constraints
|
|
89
|
-
|
|
90
|
-
Performance constraints ensure latency SLAs and prevent resource exhaustion.
|
|
91
|
-
|
|
92
|
-
| Field Name | Type | Required | Description |
|
|
93
|
-
|------------|------|----------|-------------|
|
|
94
|
-
| `maxLatencySeconds` | number | No | Maximum acceptable latency per request in seconds. Minimum: 0 |
|
|
95
|
-
| `maxConcurrentRequests` | integer | No | Maximum concurrent requests the agent can handle. Minimum: 1 |
|
|
96
|
-
| `timeoutSeconds` | number | No | Request timeout in seconds. Minimum: 0 |
|
|
97
|
-
|
|
98
|
-
### Examples
|
|
99
|
-
|
|
100
|
-
```yaml
|
|
101
|
-
# Low-latency requirements (chatbot)
|
|
102
|
-
constraints:
|
|
103
|
-
performance:
|
|
104
|
-
maxLatencySeconds: 3
|
|
105
|
-
maxConcurrentRequests: 100
|
|
106
|
-
timeoutSeconds: 10
|
|
107
|
-
|
|
108
|
-
# Batch processing
|
|
109
|
-
constraints:
|
|
110
|
-
performance:
|
|
111
|
-
maxLatencySeconds: 60
|
|
112
|
-
maxConcurrentRequests: 10
|
|
113
|
-
timeoutSeconds: 300
|
|
114
|
-
|
|
115
|
-
# High-throughput
|
|
116
|
-
constraints:
|
|
117
|
-
performance:
|
|
118
|
-
maxLatencySeconds: 10
|
|
119
|
-
maxConcurrentRequests: 1000
|
|
120
|
-
timeoutSeconds: 30
|
|
121
|
-
|
|
122
|
-
# Background tasks
|
|
123
|
-
constraints:
|
|
124
|
-
performance:
|
|
125
|
-
maxLatencySeconds: 300
|
|
126
|
-
maxConcurrentRequests: 5
|
|
127
|
-
timeoutSeconds: 3600
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
### Latency vs. Timeout
|
|
131
|
-
|
|
132
|
-
- **maxLatencySeconds:** Expected/desired latency. Platform may log warnings if exceeded.
|
|
133
|
-
- **timeoutSeconds:** Hard cutoff. Requests exceeding timeout are terminated.
|
|
134
|
-
|
|
135
|
-
```yaml
|
|
136
|
-
constraints:
|
|
137
|
-
performance:
|
|
138
|
-
maxLatencySeconds: 5 # Warn if response takes > 5s
|
|
139
|
-
timeoutSeconds: 30 # Kill request after 30s
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
## Resource Constraints
|
|
143
|
-
|
|
144
|
-
Resource constraints define CPU, memory, and GPU allocation. Uses Kubernetes resource format.
|
|
145
|
-
|
|
146
|
-
| Field Name | Type | Required | Description |
|
|
147
|
-
|------------|------|----------|-------------|
|
|
148
|
-
| `cpu` | string | No | CPU limit in Kubernetes format. Examples: `100m`, `1`, `2.5` |
|
|
149
|
-
| `memory` | string | No | Memory limit in Kubernetes format. Examples: `128Mi`, `1Gi`, `4Gi` |
|
|
150
|
-
| `gpu` | string | No | GPU requirement (format varies by platform) |
|
|
151
|
-
|
|
152
|
-
### CPU Format
|
|
153
|
-
|
|
154
|
-
**Millicores (`m`):**
|
|
155
|
-
```yaml
|
|
156
|
-
resources:
|
|
157
|
-
cpu: "100m" # 0.1 CPU core
|
|
158
|
-
cpu: "500m" # 0.5 CPU core
|
|
159
|
-
cpu: "1000m" # 1 CPU core
|
|
160
|
-
```
|
|
161
|
-
|
|
162
|
-
**Cores (integer or decimal):**
|
|
163
|
-
```yaml
|
|
164
|
-
resources:
|
|
165
|
-
cpu: "1" # 1 CPU core
|
|
166
|
-
cpu: "2" # 2 CPU cores
|
|
167
|
-
cpu: "0.5" # 0.5 CPU core
|
|
168
|
-
cpu: "4.5" # 4.5 CPU cores
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### Memory Format
|
|
172
|
-
|
|
173
|
-
**Mebibytes (`Mi`):**
|
|
174
|
-
```yaml
|
|
175
|
-
resources:
|
|
176
|
-
memory: "128Mi" # 128 MiB
|
|
177
|
-
memory: "512Mi" # 512 MiB
|
|
178
|
-
memory: "1024Mi" # 1 GiB
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
**Gibibytes (`Gi`):**
|
|
182
|
-
```yaml
|
|
183
|
-
resources:
|
|
184
|
-
memory: "1Gi" # 1 GiB
|
|
185
|
-
memory: "2Gi" # 2 GiB
|
|
186
|
-
memory: "16Gi" # 16 GiB
|
|
187
|
-
```
|
|
188
|
-
|
|
189
|
-
**Other units:**
|
|
190
|
-
```yaml
|
|
191
|
-
resources:
|
|
192
|
-
memory: "1000M" # 1000 MB (decimal)
|
|
193
|
-
memory: "1G" # 1 GB (decimal)
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
### GPU Requirement
|
|
197
|
-
|
|
198
|
-
GPU format is platform-specific:
|
|
199
|
-
|
|
200
|
-
```yaml
|
|
201
|
-
# NVIDIA GPU count
|
|
202
|
-
resources:
|
|
203
|
-
gpu: "1"
|
|
204
|
-
|
|
205
|
-
# Specific GPU type
|
|
206
|
-
resources:
|
|
207
|
-
gpu: "nvidia-tesla-v100"
|
|
208
|
-
|
|
209
|
-
# GPU memory
|
|
210
|
-
resources:
|
|
211
|
-
gpu: "16Gi"
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
### Resource Examples
|
|
215
|
-
|
|
216
|
-
```yaml
|
|
217
|
-
# Minimal (lightweight agent)
|
|
218
|
-
constraints:
|
|
219
|
-
resources:
|
|
220
|
-
cpu: "100m"
|
|
221
|
-
memory: "128Mi"
|
|
222
|
-
|
|
223
|
-
# Small (chatbot)
|
|
224
|
-
constraints:
|
|
225
|
-
resources:
|
|
226
|
-
cpu: "500m"
|
|
227
|
-
memory: "512Mi"
|
|
228
|
-
|
|
229
|
-
# Medium (code analysis)
|
|
230
|
-
constraints:
|
|
231
|
-
resources:
|
|
232
|
-
cpu: "1"
|
|
233
|
-
memory: "2Gi"
|
|
234
|
-
|
|
235
|
-
# Large (data processing)
|
|
236
|
-
constraints:
|
|
237
|
-
resources:
|
|
238
|
-
cpu: "4"
|
|
239
|
-
memory: "8Gi"
|
|
240
|
-
|
|
241
|
-
# GPU workload
|
|
242
|
-
constraints:
|
|
243
|
-
resources:
|
|
244
|
-
cpu: "8"
|
|
245
|
-
memory: "32Gi"
|
|
246
|
-
gpu: "1"
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
## Complete Examples
|
|
250
|
-
|
|
251
|
-
### Production Chatbot
|
|
252
|
-
|
|
253
|
-
```yaml
|
|
254
|
-
apiVersion: ossa/v0.2.x
|
|
255
|
-
kind: Agent
|
|
256
|
-
metadata:
|
|
257
|
-
name: customer-chatbot
|
|
258
|
-
version: 1.0.0
|
|
259
|
-
spec:
|
|
260
|
-
role: You are a customer support chatbot.
|
|
261
|
-
|
|
262
|
-
llm:
|
|
263
|
-
provider: anthropic
|
|
264
|
-
model: claude-3-5-haiku-20241022
|
|
265
|
-
temperature: 0.7
|
|
266
|
-
maxTokens: 1024
|
|
267
|
-
|
|
268
|
-
constraints:
|
|
269
|
-
cost:
|
|
270
|
-
maxTokensPerDay: 10000000 # 10M tokens/day
|
|
271
|
-
maxTokensPerRequest: 2048 # 2K tokens/request
|
|
272
|
-
maxCostPerDay: 100.0
|
|
273
|
-
currency: USD
|
|
274
|
-
performance:
|
|
275
|
-
maxLatencySeconds: 3 # Fast responses
|
|
276
|
-
maxConcurrentRequests: 500 # High throughput
|
|
277
|
-
timeoutSeconds: 10
|
|
278
|
-
resources:
|
|
279
|
-
cpu: "2"
|
|
280
|
-
memory: "4Gi"
|
|
281
|
-
```
|
|
282
|
-
|
|
283
|
-
### Background Data Analyzer
|
|
284
|
-
|
|
285
|
-
```yaml
|
|
286
|
-
apiVersion: ossa/v0.2.x
|
|
287
|
-
kind: Agent
|
|
288
|
-
metadata:
|
|
289
|
-
name: data-analyzer
|
|
290
|
-
version: 1.5.0
|
|
291
|
-
spec:
|
|
292
|
-
role: You are a data analysis specialist.
|
|
293
|
-
|
|
294
|
-
llm:
|
|
295
|
-
provider: openai
|
|
296
|
-
model: gpt-4o
|
|
297
|
-
temperature: 0.2
|
|
298
|
-
maxTokens: 8192
|
|
299
|
-
|
|
300
|
-
constraints:
|
|
301
|
-
cost:
|
|
302
|
-
maxTokensPerDay: 50000000 # 50M tokens/day
|
|
303
|
-
maxCostPerDay: 500.0
|
|
304
|
-
currency: USD
|
|
305
|
-
performance:
|
|
306
|
-
maxLatencySeconds: 60 # Not time-critical
|
|
307
|
-
maxConcurrentRequests: 10 # Batch processing
|
|
308
|
-
timeoutSeconds: 600 # 10 minute timeout
|
|
309
|
-
resources:
|
|
310
|
-
cpu: "4"
|
|
311
|
-
memory: "16Gi"
|
|
312
|
-
```
|
|
313
|
-
|
|
314
|
-
### Development/Testing Agent
|
|
315
|
-
|
|
316
|
-
```yaml
|
|
317
|
-
apiVersion: ossa/v0.2.x
|
|
318
|
-
kind: Agent
|
|
319
|
-
metadata:
|
|
320
|
-
name: dev-assistant
|
|
321
|
-
version: 0.1.0
|
|
322
|
-
spec:
|
|
323
|
-
role: Development and testing assistant.
|
|
324
|
-
|
|
325
|
-
llm:
|
|
326
|
-
provider: anthropic
|
|
327
|
-
model: claude-3-5-sonnet-20241022
|
|
328
|
-
|
|
329
|
-
constraints:
|
|
330
|
-
cost:
|
|
331
|
-
maxTokensPerDay: 100000 # Limited for testing
|
|
332
|
-
maxCostPerDay: 5.0
|
|
333
|
-
currency: USD
|
|
334
|
-
performance:
|
|
335
|
-
maxLatencySeconds: 10
|
|
336
|
-
maxConcurrentRequests: 5
|
|
337
|
-
timeoutSeconds: 30
|
|
338
|
-
resources:
|
|
339
|
-
cpu: "500m"
|
|
340
|
-
memory: "1Gi"
|
|
341
|
-
```
|
|
342
|
-
|
|
343
|
-
### High-Performance Code Generator
|
|
344
|
-
|
|
345
|
-
```yaml
|
|
346
|
-
apiVersion: ossa/v0.2.x
|
|
347
|
-
kind: Agent
|
|
348
|
-
metadata:
|
|
349
|
-
name: code-generator
|
|
350
|
-
version: 2.0.0
|
|
351
|
-
spec:
|
|
352
|
-
role: You are an expert code generator.
|
|
353
|
-
|
|
354
|
-
llm:
|
|
355
|
-
provider: anthropic
|
|
356
|
-
model: claude-3-5-sonnet-20241022
|
|
357
|
-
temperature: 0.2
|
|
358
|
-
maxTokens: 8192
|
|
359
|
-
|
|
360
|
-
constraints:
|
|
361
|
-
cost:
|
|
362
|
-
maxTokensPerDay: 100000000 # 100M tokens/day
|
|
363
|
-
maxTokensPerRequest: 16384 # Long responses
|
|
364
|
-
maxCostPerDay: 1000.0
|
|
365
|
-
currency: USD
|
|
366
|
-
performance:
|
|
367
|
-
maxLatencySeconds: 15
|
|
368
|
-
maxConcurrentRequests: 100
|
|
369
|
-
timeoutSeconds: 60
|
|
370
|
-
resources:
|
|
371
|
-
cpu: "8"
|
|
372
|
-
memory: "32Gi"
|
|
373
|
-
```
|
|
374
|
-
|
|
375
|
-
### Cost-Optimized Agent
|
|
376
|
-
|
|
377
|
-
```yaml
|
|
378
|
-
apiVersion: ossa/v0.2.x
|
|
379
|
-
kind: Agent
|
|
380
|
-
metadata:
|
|
381
|
-
name: budget-agent
|
|
382
|
-
version: 1.0.0
|
|
383
|
-
spec:
|
|
384
|
-
role: Cost-optimized assistant.
|
|
385
|
-
|
|
386
|
-
llm:
|
|
387
|
-
provider: anthropic
|
|
388
|
-
model: claude-3-5-haiku-20241022 # Cheapest model
|
|
389
|
-
temperature: 0.5
|
|
390
|
-
maxTokens: 512 # Short responses
|
|
391
|
-
|
|
392
|
-
constraints:
|
|
393
|
-
cost:
|
|
394
|
-
maxTokensPerDay: 500000 # Tight limit
|
|
395
|
-
maxTokensPerRequest: 1024
|
|
396
|
-
maxCostPerDay: 5.0 # Low budget
|
|
397
|
-
currency: USD
|
|
398
|
-
performance:
|
|
399
|
-
maxLatencySeconds: 5
|
|
400
|
-
maxConcurrentRequests: 50
|
|
401
|
-
timeoutSeconds: 15
|
|
402
|
-
resources:
|
|
403
|
-
cpu: "250m" # Minimal resources
|
|
404
|
-
memory: "256Mi"
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
## Multi-Currency Support
|
|
408
|
-
|
|
409
|
-
```yaml
|
|
410
|
-
# United States
|
|
411
|
-
constraints:
|
|
412
|
-
cost:
|
|
413
|
-
maxCostPerDay: 100.0
|
|
414
|
-
currency: USD
|
|
415
|
-
|
|
416
|
-
# European Union
|
|
417
|
-
constraints:
|
|
418
|
-
cost:
|
|
419
|
-
maxCostPerDay: 90.0
|
|
420
|
-
currency: EUR
|
|
421
|
-
|
|
422
|
-
# United Kingdom
|
|
423
|
-
constraints:
|
|
424
|
-
cost:
|
|
425
|
-
maxCostPerDay: 80.0
|
|
426
|
-
currency: GBP
|
|
427
|
-
|
|
428
|
-
# Canada
|
|
429
|
-
constraints:
|
|
430
|
-
cost:
|
|
431
|
-
maxCostPerDay: 135.0
|
|
432
|
-
currency: CAD
|
|
433
|
-
```
|
|
434
|
-
|
|
435
|
-
**Currency validation:**
|
|
436
|
-
- Must be 3 uppercase letters
|
|
437
|
-
- Should be valid ISO 4217 code
|
|
438
|
-
- Platform converts to provider's billing currency
|
|
439
|
-
|
|
440
|
-
## Constraint Enforcement
|
|
441
|
-
|
|
442
|
-
How constraints are enforced varies by platform:
|
|
443
|
-
|
|
444
|
-
### Cost Constraints
|
|
445
|
-
- **Soft limits:** Log warnings, continue operation
|
|
446
|
-
- **Hard limits:** Reject new requests when limit reached
|
|
447
|
-
- **Reset period:** Typically 24 hours from first request
|
|
448
|
-
|
|
449
|
-
### Performance Constraints
|
|
450
|
-
- **maxLatencySeconds:** Monitoring/alerting threshold
|
|
451
|
-
- **maxConcurrentRequests:** Queue or reject excess requests
|
|
452
|
-
- **timeoutSeconds:** Hard cutoff, terminate request
|
|
453
|
-
|
|
454
|
-
### Resource Constraints
|
|
455
|
-
- **Kubernetes:** Enforced by kubelet
|
|
456
|
-
- **Docker:** Enforced by container runtime
|
|
457
|
-
- **Serverless:** Enforced by platform
|
|
458
|
-
|
|
459
|
-
## Best Practices
|
|
460
|
-
|
|
461
|
-
1. **Set realistic limits** - Based on expected usage patterns
|
|
462
|
-
2. **Monitor regularly** - Track actual usage vs. constraints
|
|
463
|
-
3. **Start conservative** - Tighten constraints after observing usage
|
|
464
|
-
4. **Account for spikes** - Set limits above normal usage
|
|
465
|
-
5. **Use both cost metrics** - Tokens AND currency for better control
|
|
466
|
-
6. **Match timeout to task** - Long-running tasks need higher timeouts
|
|
467
|
-
7. **Resource padding** - Add 20-30% buffer to resource requests
|
|
468
|
-
8. **Test limits** - Validate constraints work as expected
|
|
469
|
-
9. **Alert on limits** - Monitor constraint violations
|
|
470
|
-
10. **Document choices** - Explain constraint rationale in comments
|
|
471
|
-
|
|
472
|
-
## Common Constraint Patterns
|
|
473
|
-
|
|
474
|
-
### High-Volume Low-Cost
|
|
475
|
-
|
|
476
|
-
```yaml
|
|
477
|
-
constraints:
|
|
478
|
-
cost:
|
|
479
|
-
maxTokensPerDay: 100000000
|
|
480
|
-
maxCostPerDay: 100.0
|
|
481
|
-
performance:
|
|
482
|
-
maxConcurrentRequests: 1000
|
|
483
|
-
resources:
|
|
484
|
-
cpu: "4"
|
|
485
|
-
memory: "8Gi"
|
|
486
|
-
```
|
|
487
|
-
|
|
488
|
-
### Low-Volume High-Quality
|
|
489
|
-
|
|
490
|
-
```yaml
|
|
491
|
-
constraints:
|
|
492
|
-
cost:
|
|
493
|
-
maxTokensPerDay: 1000000
|
|
494
|
-
maxCostPerDay: 200.0
|
|
495
|
-
performance:
|
|
496
|
-
maxLatencySeconds: 5
|
|
497
|
-
maxConcurrentRequests: 10
|
|
498
|
-
resources:
|
|
499
|
-
cpu: "2"
|
|
500
|
-
memory: "4Gi"
|
|
501
|
-
```
|
|
502
|
-
|
|
503
|
-
### Batch Processing
|
|
504
|
-
|
|
505
|
-
```yaml
|
|
506
|
-
constraints:
|
|
507
|
-
cost:
|
|
508
|
-
maxTokensPerDay: 50000000
|
|
509
|
-
maxCostPerDay: 500.0
|
|
510
|
-
performance:
|
|
511
|
-
maxLatencySeconds: 300
|
|
512
|
-
timeoutSeconds: 3600
|
|
513
|
-
maxConcurrentRequests: 5
|
|
514
|
-
resources:
|
|
515
|
-
cpu: "8"
|
|
516
|
-
memory: "32Gi"
|
|
517
|
-
```
|
|
518
|
-
|
|
519
|
-
## Validation
|
|
520
|
-
|
|
521
|
-
All constraint fields are optional.
|
|
522
|
-
|
|
523
|
-
**Numeric validation:**
|
|
524
|
-
- All numeric values must be >= 0
|
|
525
|
-
- `maxConcurrentRequests` minimum: 1
|
|
526
|
-
- `currency` pattern: `^[A-Z]{3}$`
|
|
527
|
-
|
|
528
|
-
**Resource format:**
|
|
529
|
-
- `cpu`: Kubernetes CPU format
|
|
530
|
-
- `memory`: Kubernetes memory format
|
|
531
|
-
- `gpu`: Platform-specific format
|
|
532
|
-
|
|
533
|
-
## Related Objects
|
|
534
|
-
|
|
535
|
-
- [Agent Spec](./agent-spec.md) - Parent object containing constraints
|
|
536
|
-
- [LLM Configuration](./llm-config.md) - Model configuration affecting cost
|
|
537
|
-
- [Observability](./observability.md) - Monitoring constraint violations
|
|
538
|
-
- [Autonomy](./autonomy.md) - Action limits complement constraints
|
|
539
|
-
|
|
540
|
-
## See Also
|
|
541
|
-
|
|
542
|
-
- [Kubernetes Resource Management](https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/)
|
|
543
|
-
- [LLM Pricing Calculators](https://artificialanalysis.ai/models)
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
# Schema Reference
|
|
2
|
-
|
|
3
|
-
Complete reference for the OSSA agent manifest schema.
|
|
4
|
-
|
|
5
|
-
## Overview
|
|
6
|
-
|
|
7
|
-
The OSSA schema defines the structure of agent manifests. Every field serves a specific purpose in the agent lifecycle.
|
|
8
|
-
|
|
9
|
-
## Core Fields
|
|
10
|
-
|
|
11
|
-
### Agent Identification
|
|
12
|
-
- [agent.id](./agent-id.md) - Unique agent identifier
|
|
13
|
-
- [agent.name](./agent-name.md) - Human-readable name
|
|
14
|
-
- [agent.version](./agent-version.md) - Semantic version
|
|
15
|
-
- [agent.role](./agent-role.md) - Agent role classification
|
|
16
|
-
|
|
17
|
-
### Agent Capabilities
|
|
18
|
-
- [agent.capabilities](./agent-capabilities.md) - What the agent can do
|
|
19
|
-
|
|
20
|
-
## Schema Versions
|
|
21
|
-
|
|
22
|
-
- **Current**: v0.2.5-RC
|
|
23
|
-
- **Stable**: v0.2.4
|
|
24
|
-
- **Previous**: v0.2.3, v0.2.2
|
|
25
|
-
|
|
26
|
-
See [Versioning Guide](../guides/versioning.md) for migration information.
|
|
27
|
-
|
|
28
|
-
## Validation
|
|
29
|
-
|
|
30
|
-
Validate your agent manifests:
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
ossa validate agent.ossa.yaml
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Complete Schema
|
|
37
|
-
|
|
38
|
-
View the complete JSON Schema:
|
|
39
|
-
- [v0.2.5-RC Schema](https://github.com/blueflyio/openstandardagents/blob/main/spec/v0.2.6/ossa-0.2.6.schema.json)
|
|
40
|
-
|
|
41
|
-
## Related Documentation
|
|
42
|
-
|
|
43
|
-
- [CLI Reference](../cli-reference/index.md)
|
|
44
|
-
- [API Reference](../api-reference/index.md)
|
|
45
|
-
- [Creating Agents Guide](../guides/creating-agents.md)
|