algen-agent-runtime 0.1.0a1__tar.gz
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.
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-builder/SKILL.md +26 -0
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-builder/agents/openai.yaml +6 -0
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-builder/references/project-shape.md +39 -0
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-builder/references/workflows.md +74 -0
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-connector/SKILL.md +24 -0
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-connector/agents/openai.yaml +5 -0
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-agent-connector/references/connectors.md +81 -0
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-contributor/SKILL.md +29 -0
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-contributor/agents/openai.yaml +6 -0
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-contributor/references/change-checklist.md +59 -0
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-extension/SKILL.md +24 -0
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-extension/agents/openai.yaml +6 -0
- algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-extension/references/extension-points.md +62 -0
- algen_agent_runtime-0.1.0a1/.gitignore +13 -0
- algen_agent_runtime-0.1.0a1/CHANGELOG.md +87 -0
- algen_agent_runtime-0.1.0a1/LICENSE +201 -0
- algen_agent_runtime-0.1.0a1/NOTICE +7 -0
- algen_agent_runtime-0.1.0a1/PKG-INFO +480 -0
- algen_agent_runtime-0.1.0a1/README.md +382 -0
- algen_agent_runtime-0.1.0a1/examples/__init__.py +37 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/README.md +86 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/app.py +20 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/application/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/application/contracts.py +132 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/application/document_pipeline.py +30 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/application/repositories.py +140 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/application/workflow.py +473 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/application/workflow_hooks.py +66 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/config/agent.yaml +318 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/dashboard.py +195 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/data/template_corpus.md +18 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/database/migrations/001_hiring_schema.sql +27 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_responsible_hiring/ui/index.html +424 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/DEMO_GUIDE.md +48 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/Dockerfile +22 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/README.md +111 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/app.py +63 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/application/__init__.py +12 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/application/handler.py +114 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/application/policies.py +89 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/application/tools.py +253 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/application/workflow_hooks.py +11 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/config/agent.yaml +204 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/config/ecs.yaml +37 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/dashboard.py +70 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/deploy/README.md +29 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/deploy/ecs-task-definition.example.json +46 -0
- algen_agent_runtime-0.1.0a1/examples/case_study_teaching_assistant/ui/index.html +55 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_approval_workflow/README.md +13 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_approval_workflow/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_approval_workflow/agent.yaml +71 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_approval_workflow/app.py +24 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_approval_workflow/hooks.py +53 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_approval_workflow/manifest.yaml +23 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_child_workflow/README.md +9 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_child_workflow/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_child_workflow/agent.yaml +69 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_child_workflow/app.py +21 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_child_workflow/hooks.py +20 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_child_workflow/manifest.yaml +21 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_evaluation_gate/README.md +12 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_evaluation_gate/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_evaluation_gate/agent.yaml +36 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_evaluation_gate/app.py +51 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_evaluation_gate/hooks.py +23 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_evaluation_gate/manifest.yaml +22 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_governed_research/README.md +11 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_governed_research/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_governed_research/agent.yaml +57 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_governed_research/app.py +24 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_governed_research/hooks.py +53 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_governed_research/manifest.yaml +23 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_langgraph_governance/README.md +8 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_langgraph_governance/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_langgraph_governance/agent.yaml +36 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_langgraph_governance/app.py +24 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_langgraph_governance/hooks.py +44 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_langgraph_governance/manifest.yaml +26 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_multi_agent_fanout/README.md +11 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_multi_agent_fanout/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_multi_agent_fanout/agent.yaml +76 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_multi_agent_fanout/app.py +21 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_multi_agent_fanout/hooks.py +69 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_multi_agent_fanout/manifest.yaml +22 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_provider_fallback/README.md +65 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_provider_fallback/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_provider_fallback/agent.yaml +25 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_provider_fallback/app.py +122 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_provider_fallback/manifest.yaml +29 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/README.md +52 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/advanced/README.md +42 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/advanced/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/advanced/agent.yaml +84 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/advanced/app.py +75 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/advanced/knowledge.py +69 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/advanced/migrations/001_schema_embeddings.sql +24 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/agent.yaml +138 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/app.py +228 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/manifest.yaml +52 -0
- algen_agent_runtime-0.1.0a1/examples/pattern_text_to_sql/schema.sql +29 -0
- algen_agent_runtime-0.1.0a1/examples/plugins.py +38 -0
- algen_agent_runtime-0.1.0a1/examples/providers.yaml +101 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_approval/README.md +9 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_approval/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_approval/agent.yaml +58 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_approval/app.py +24 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_approval/hooks.py +43 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_approval/manifest.yaml +22 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_cloud_chat/README.md +11 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_cloud_chat/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_cloud_chat/agent.yaml +28 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_cloud_chat/app.py +33 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_cloud_chat/manifest.yaml +26 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_local_chat/README.md +70 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_local_chat/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_local_chat/agent.yaml +31 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_local_chat/app.py +80 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_local_chat/manifest.yaml +34 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_rag/README.md +24 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_rag/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_rag/agent.yaml +103 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_rag/app.py +63 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_rag/manifest.yaml +37 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_rag/tests/test_smoke.py +42 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_tool/README.md +11 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_tool/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_tool/agent.yaml +42 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_tool/app.py +22 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_tool/hooks.py +29 -0
- algen_agent_runtime-0.1.0a1/examples/quickstart_tool/manifest.yaml +22 -0
- algen_agent_runtime-0.1.0a1/examples/reference_customer_support/README.md +15 -0
- algen_agent_runtime-0.1.0a1/examples/reference_customer_support/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/reference_customer_support/app.py +24 -0
- algen_agent_runtime-0.1.0a1/examples/reference_customer_support/application/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/reference_customer_support/application/workflow.py +73 -0
- algen_agent_runtime-0.1.0a1/examples/reference_customer_support/config/agent.yaml +98 -0
- algen_agent_runtime-0.1.0a1/examples/reference_customer_support/manifest.yaml +31 -0
- algen_agent_runtime-0.1.0a1/examples/reference_incident_response/README.md +13 -0
- algen_agent_runtime-0.1.0a1/examples/reference_incident_response/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/reference_incident_response/app.py +24 -0
- algen_agent_runtime-0.1.0a1/examples/reference_incident_response/application/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/reference_incident_response/application/workflow.py +70 -0
- algen_agent_runtime-0.1.0a1/examples/reference_incident_response/config/agent.yaml +109 -0
- algen_agent_runtime-0.1.0a1/examples/reference_incident_response/manifest.yaml +23 -0
- algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/README.md +15 -0
- algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/app.py +24 -0
- algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/application/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/application/workflow.py +88 -0
- algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/config/agent.yaml +97 -0
- algen_agent_runtime-0.1.0a1/examples/reference_invoice_exceptions/manifest.yaml +26 -0
- algen_agent_runtime-0.1.0a1/examples/workflow_cli.py +107 -0
- algen_agent_runtime-0.1.0a1/pyproject.toml +139 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/__init__.py +50 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/analytics/__init__.py +15 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/analytics/contracts.py +210 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/analytics/engine.py +397 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/analytics/handlers.py +167 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/analytics/stores.py +74 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/api/app.py +631 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/api/dependencies.py +86 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/approvals/service.py +194 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/artifacts/__init__.py +7 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/artifacts/service.py +83 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/cache/__init__.py +15 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/cache/contracts.py +49 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/cache/service.py +233 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/cache/stores.py +145 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/communications/__init__.py +25 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/communications/email.py +319 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/config/registry.py +35 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/config/settings.py +497 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/context/builder.py +203 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/__init__.py +55 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/contracts.py +206 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/feedback.py +237 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/followups.py +105 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/presentation.py +48 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/service.py +637 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/stores.py +336 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/conversations/visualization.py +55 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/distributed/__init__.py +12 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/distributed/contracts.py +44 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/distributed/queue.py +182 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/distributed/worker.py +50 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/evaluation/__init__.py +17 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/evaluation/contracts.py +51 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/evaluation/runner.py +102 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/events/bus.py +172 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/events/contracts.py +63 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/exceptions/__init__.py +1 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/exceptions/errors.py +51 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/frameworks/__init__.py +31 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/frameworks/adapters.py +281 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/frameworks/contracts.py +101 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/governance/__init__.py +25 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/governance/contracts.py +77 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/governance/engine.py +126 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/governance/executor.py +124 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/methods/__init__.py +16 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/methods/contracts.py +75 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/methods/registry.py +139 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/model_services/__init__.py +25 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/model_services/contracts.py +76 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/model_services/http.py +68 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/model_services/registry.py +126 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/models/base.py +242 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/models/providers/adapters.py +409 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/models/providers/local_transformers.py +58 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/models/providers/mock.py +88 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/models/providers/openai_compatible.py +447 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/observability/setup.py +55 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/observability/traccia_adapter.py +384 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/observability/trace_levels.py +54 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/orchestration/container.py +698 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/memory.py +164 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/001_initial.sql +75 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/002_conversations.sql +32 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/003_analytical_execution.sql +32 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/004_conversation_feedback.sql +13 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/005_algen_agent_runtime_rename.sql +54 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/006_artifact_lifecycle.sql +33 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/007_s3_artifacts.sql +21 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/migrations/008_workflow_checkpoints.sql +18 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/postgres.py +412 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/redis.py +87 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/s3.py +245 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/persistence/tool_executions.py +49 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/planning/contracts.py +54 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/planning/planners.py +92 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/plugins/sdk.py +66 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/policies/contracts.py +40 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/policies/engine.py +446 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/policies/instrumentation.py +65 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/py.typed +1 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/responses/composer.py +35 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/retrieval/contracts.py +60 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/retrieval/ingestion.py +52 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/retrieval/memory.py +206 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/retrieval/registry.py +24 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/retrieval/vector_stores.py +610 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/runtime/client.py +32 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/runtime/runtime.py +1250 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/runtime/state_machine.py +77 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/security/documents.py +358 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/security/network.py +44 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/security/redaction.py +23 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/semantics/__init__.py +82 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/semantics/compiler.py +192 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/semantics/contracts.py +404 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/semantics/layer.py +390 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/semantics/planner.py +99 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/semantics/production_compiler.py +324 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/tools/adapters.py +95 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/tools/builtin.py +112 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/tools/contracts.py +104 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/tools/executor.py +193 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/tools/registry.py +24 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/tools/subagent.py +48 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/types/contracts.py +413 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/types/interfaces.py +145 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/verification/analytical.py +95 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/verification/verifiers.py +130 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/workflows/__init__.py +59 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/workflows/contracts.py +338 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/workflows/engine.py +1443 -0
- algen_agent_runtime-0.1.0a1/src/algen_agent_runtime/workflows/store.py +118 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: algen-agent-builder
|
|
3
|
+
description: Create or update an Algen-compatible single-agent or multi-agent project that uses Runtime manifests, governance, tests, and Studio-importable packaging.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Build an Algen agent project
|
|
7
|
+
|
|
8
|
+
Start by choosing the smallest topology that fits: one agent for a single governed conversation, or
|
|
9
|
+
a Runtime `WorkflowManifest` for coordination. Read `references/project-shape.md`; for a workflow,
|
|
10
|
+
also read `references/workflows.md`. Use `$algen-agent-connector` when external tools, databases,
|
|
11
|
+
retrieval, MCP, or remote APIs are part of the request.
|
|
12
|
+
|
|
13
|
+
Prefer configuration for provider routing, policies, memory, retrieval, storage, telemetry, and
|
|
14
|
+
workflow topology. Keep only domain-specific payload builders, validators, schemas, predicates, and
|
|
15
|
+
deterministic handlers in the project's hook provider. Never implement a second scheduler or a
|
|
16
|
+
Studio-specific workflow dialect.
|
|
17
|
+
|
|
18
|
+
Produce an importable project with secret references, bounded execution, deterministic offline
|
|
19
|
+
tests, documented optional dependencies, and a small runnable entry point. A project intended for
|
|
20
|
+
Studio must keep its Runtime configuration and `WorkflowManifest` authoritative; Studio discovers
|
|
21
|
+
and runs that same contract.
|
|
22
|
+
|
|
23
|
+
Validate YAML by loading it through the current Runtime model rather than relying on syntax alone.
|
|
24
|
+
Run the project smoke test and relevant Runtime tests. Do not publish to a marketplace or deploy
|
|
25
|
+
unless the user explicitly requests that external action.
|
|
26
|
+
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# Agent project shape
|
|
2
|
+
|
|
3
|
+
A portable project normally contains:
|
|
4
|
+
|
|
5
|
+
```text
|
|
6
|
+
my_agent/
|
|
7
|
+
├── __init__.py
|
|
8
|
+
├── agent.yaml # providers, agents, workflows, retrieval, stores, telemetry
|
|
9
|
+
├── app.py # small local entry point using Runtime APIs
|
|
10
|
+
├── hooks.py # only when a workflow needs domain hooks
|
|
11
|
+
├── manifest.yaml # catalogue metadata for examples/marketplace tooling
|
|
12
|
+
├── README.md
|
|
13
|
+
└── tests/
|
|
14
|
+
└── test_smoke.py
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Larger applications may put `agent.yaml` under `config/`. Keep the package import path stable so a
|
|
18
|
+
workflow `hook_provider: my_agent.hooks:create_hooks` can be loaded after installation.
|
|
19
|
+
|
|
20
|
+
## Single-agent baseline
|
|
21
|
+
|
|
22
|
+
- Declare at least one provider and agent in `agent.yaml`.
|
|
23
|
+
- Use `env://NAME` for credentials and DSNs.
|
|
24
|
+
- Bound `max_steps`, latency, tokens, cost, retries, and memory retention.
|
|
25
|
+
- Enable only the tools and permissions the agent needs.
|
|
26
|
+
- Choose guardrails, verification, approvals, and model allowlists based on actual risk.
|
|
27
|
+
- Use in-memory stores for examples; document PostgreSQL/Redis settings for durable deployments.
|
|
28
|
+
|
|
29
|
+
Use `examples/quickstart_cloud_chat`, `quickstart_local_chat`, `quickstart_rag`, and
|
|
30
|
+
`pattern_text_to_sql` as current working references. Copy concepts, not stale versions of internal
|
|
31
|
+
classes.
|
|
32
|
+
|
|
33
|
+
## Importability
|
|
34
|
+
|
|
35
|
+
The project configuration—not Studio metadata—is the source of truth. Browser-folder import uploads
|
|
36
|
+
configuration but not executable Python; hook-based projects must also be installed into Studio's
|
|
37
|
+
Python environment or imported from a trusted server-visible source. Git imports likewise do not
|
|
38
|
+
auto-install untrusted code.
|
|
39
|
+
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Runtime multi-agent workflows
|
|
2
|
+
|
|
3
|
+
Use a `WorkflowManifest` under the top-level `workflows` mapping. Choose nodes deliberately:
|
|
4
|
+
|
|
5
|
+
- `agent`: one bounded agent run;
|
|
6
|
+
- `map_agent`: bounded dynamic fan-out over a runtime list;
|
|
7
|
+
- `handler`: deterministic domain operation registered by a hook provider;
|
|
8
|
+
- `predicate`: declarative branch condition;
|
|
9
|
+
- `join`: merge dependency outputs using `concat`, `json_array`, or `first`;
|
|
10
|
+
- `approval`: durable approve/modify/reject checkpoint owned by Runtime;
|
|
11
|
+
- `workflow`: dispatch one exact, registered child workflow version with typed input and canonical
|
|
12
|
+
output.
|
|
13
|
+
|
|
14
|
+
Declare `input_schema` when a workflow accepts more than one value or anything more structured than
|
|
15
|
+
legacy free text. Use JSON Schema Draft 2020-12, keep the payload secret-free, and read it from
|
|
16
|
+
`WorkflowHookContext.state.values["inputs"]`. Declare `output_schema` together with `output_key` when
|
|
17
|
+
callers depend on a canonical typed result. Runtime validates both contracts; Studio renders the same
|
|
18
|
+
input schema and must not replace it with Studio-specific form metadata.
|
|
19
|
+
|
|
20
|
+
Represent file, image, or audio inputs as artifact IDs, not base64 or local paths. Use a string schema
|
|
21
|
+
with `format: artifact` and, when known, `contentMediaType`. The host stages the file through the
|
|
22
|
+
Runtime artifact lifecycle; hooks must resolve it in the current tenant and reject expired,
|
|
23
|
+
quarantined, mismatched-media-type, or oversized content.
|
|
24
|
+
|
|
25
|
+
Do not mark uploads available from a workflow hook. A deployment-owned `ArtifactScanner` must run
|
|
26
|
+
through `ArtifactLifecycleService` first; workflows consume only `available` descriptors and should
|
|
27
|
+
record artifact IDs—not object keys or presigned URLs—in their typed state.
|
|
28
|
+
|
|
29
|
+
For typed execution, pass `{"inputs": payload}` as the executor's initial values. Do not add
|
|
30
|
+
clarification history, credentials, or host bookkeeping to the typed payload; those belong in
|
|
31
|
+
separate workflow state keys.
|
|
32
|
+
|
|
33
|
+
Express edges only with `depends_on`. Use `run_if` for conditional execution, `pause` for bounded
|
|
34
|
+
clarification or human input, `max_repairs` plus a validator for structured-output repair,
|
|
35
|
+
`max_iterations` plus `loop_until` for bounded loops, and `failure_policy` for explicit failure
|
|
36
|
+
semantics. Choose `recovery_policy` explicitly: keep the fail-closed default for side effects and use
|
|
37
|
+
`retry` only when replay is idempotent or externally reconcilable. Cap workflow concurrency, timeout,
|
|
38
|
+
and map fan-out.
|
|
39
|
+
|
|
40
|
+
Use a first-class `approval` node—not a clarification predicate—before consequential work. Declare a
|
|
41
|
+
clear prompt, only deliberately reviewable `review_from` paths, optional secret-free parameters and
|
|
42
|
+
their JSON Schema, a bounded expiry, and whether modification is permitted. Keep the defaults
|
|
43
|
+
`allow_modification: false` and `rejection_policy: skip_dependents`; use `continue` only for a branch
|
|
44
|
+
designed to consume a rejection.
|
|
45
|
+
Resume it with `executor.decide_approval`, passing the authenticated reviewer identity. Treat
|
|
46
|
+
approval parameters and review context as persisted operator-visible data: never include credentials,
|
|
47
|
+
presigned URLs, unrestricted model context, or raw private artifacts.
|
|
48
|
+
|
|
49
|
+
Use `storage.workflow_store: postgres` outside local development. Resume a clarification with
|
|
50
|
+
`executor.resume`; never invoke `run` again because that creates a new workflow and replays completed
|
|
51
|
+
predecessors. At host startup, list recoverable Runtime checkpoints, reconstruct only trusted hook
|
|
52
|
+
providers, and call `executor.recover` with the exact versioned manifest.
|
|
53
|
+
|
|
54
|
+
For composition, register every trusted child manifest and its hooks in a `WorkflowRegistry`, then
|
|
55
|
+
give that registry to the parent executor. A `workflow` node must pin `workflow_name` and
|
|
56
|
+
`workflow_version`; never resolve a floating latest version. Runtime owns correlation and lineage,
|
|
57
|
+
child checkpoint identity, depth and cycle limits, clarification/approval propagation, recovery, and
|
|
58
|
+
canonical output validation. Parent concurrency bounds whole child executions. Runtime checkpoints
|
|
59
|
+
the child ID and input before dispatch so recovery either reconciles that child or creates the same
|
|
60
|
+
recorded identity after a pre-creation crash. Resume or decide through the parent checkpoint. Do not
|
|
61
|
+
invoke the child directly or copy its nodes into the parent. Child inputs and outputs must be
|
|
62
|
+
JSON-compatible and secret-free. See `examples/pattern_child_workflow`.
|
|
63
|
+
|
|
64
|
+
Declare tools, query sources, retrieval, memory, storage, cache, telemetry, and services in each
|
|
65
|
+
node's `resources`. These references are secret-free operational topology and allow Studio to draw
|
|
66
|
+
the real dependency graph.
|
|
67
|
+
|
|
68
|
+
The hook factory returns `WorkflowHookRegistry`. Register only names referenced by the manifest:
|
|
69
|
+
builders, validators, schemas, and deterministic handlers. Runtime owns scheduling, run state,
|
|
70
|
+
events, repair, clarification, resume, failure propagation, and cancellation.
|
|
71
|
+
|
|
72
|
+
Use `examples/pattern_multi_agent_fanout`, `pattern_approval_workflow`,
|
|
73
|
+
`pattern_child_workflow`, `pattern_governed_research`, and the reference applications as current
|
|
74
|
+
examples.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: algen-agent-connector
|
|
3
|
+
description: Connect an Algen Runtime agent or workflow to typed tools, MCP, HTTP APIs, databases, retrieval stores, model providers, memory, persistence, or telemetry without bypassing governance.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Connect an Algen agent
|
|
7
|
+
|
|
8
|
+
Identify the requested systems, data direction, side effects, credentials, network boundary,
|
|
9
|
+
tenancy, and expected failure behavior. Read the matching parts of `references/connectors.md` and
|
|
10
|
+
combine connectors only when the use case needs them.
|
|
11
|
+
|
|
12
|
+
Expose external actions as typed Runtime tools or workflow resources. Do not call a connector
|
|
13
|
+
directly from orchestration code to bypass policy, approvals, idempotency, audit events, budgets, or
|
|
14
|
+
telemetry. Use secret references in configuration and resolve values only at execution time.
|
|
15
|
+
|
|
16
|
+
For each connection, declare least-privilege permissions, read/write behavior, idempotency, strict
|
|
17
|
+
schemas, timeout, retry policy, concurrency, result-size limit, and allowed destinations. Mark it on
|
|
18
|
+
the consuming workflow node with a `WorkflowResourceReference` so Studio can display the actual
|
|
19
|
+
topology.
|
|
20
|
+
|
|
21
|
+
Test with a deterministic fake or local fixture. Live credentials and paid services belong only in
|
|
22
|
+
explicit live tests. Document the required Runtime extra and environment variable names without
|
|
23
|
+
including secret values.
|
|
24
|
+
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# Connector choices
|
|
2
|
+
|
|
3
|
+
## Model providers
|
|
4
|
+
|
|
5
|
+
Declare providers in `agent.yaml`, reference credentials with `env://`, and give agents a
|
|
6
|
+
provider-neutral model requirement plus allowlist/fallback policy. Keep provider-specific options in
|
|
7
|
+
`extensions`. Use the mock provider for deterministic tests.
|
|
8
|
+
|
|
9
|
+
## Local Python tools
|
|
10
|
+
|
|
11
|
+
Create a `ToolDefinition` with strict JSON input/output schemas, permissions, `SideEffect`,
|
|
12
|
+
`Idempotency`, timeout, concurrency, cost, and size bounds. Register the `Tool` in the deployment's
|
|
13
|
+
registry. Require approval for writes, external effects, or destructive actions as appropriate.
|
|
14
|
+
|
|
15
|
+
## MCP
|
|
16
|
+
|
|
17
|
+
Wrap a deployment-owned MCP client with `mcp_tool`; retain a Runtime `ToolDefinition` as the local
|
|
18
|
+
governance contract. Treat MCP server output as untrusted and do not let remote metadata grant local
|
|
19
|
+
permissions.
|
|
20
|
+
|
|
21
|
+
## HTTP APIs
|
|
22
|
+
|
|
23
|
+
Use `remote_tool` or an equivalent typed adapter. Configure a fixed endpoint or an allowlisted host,
|
|
24
|
+
deny private-network access by default, avoid redirects across trust boundaries, propagate the
|
|
25
|
+
idempotency key, and bound response size and time.
|
|
26
|
+
|
|
27
|
+
## Email
|
|
28
|
+
|
|
29
|
+
Use `communications.email.EmailMessage` and `email_tool` rather than creating an application-local
|
|
30
|
+
send contract. Addresses, headers, recipients, subject/body size, attachments, and provider receipts
|
|
31
|
+
are validated and content-minimal. Attachments are tenant-authorized Runtime artifact references;
|
|
32
|
+
never accept arbitrary filesystem paths. The first adapter, `SmtpEmailSender`, requires TLS by
|
|
33
|
+
default, expects credentials resolved by the deployment secret boundary, keeps BCC out of message
|
|
34
|
+
headers, and derives a stable Message-ID from the Runtime idempotency key.
|
|
35
|
+
|
|
36
|
+
Email is an external keyed side effect. Keep Runtime's durable tool-execution ledger enabled in
|
|
37
|
+
production. A provider timeout after submission is indeterminate and must be reconciled rather than
|
|
38
|
+
automatically replayed. Delivery approval, suppression, bounce/complaint handling, reply ingestion,
|
|
39
|
+
provider OAuth, and campaign policy remain application or connector responsibilities.
|
|
40
|
+
|
|
41
|
+
## Databases and query sources
|
|
42
|
+
|
|
43
|
+
Use `database_tool` with a deployment-owned async handler. Prefer read-only, parameterized queries
|
|
44
|
+
and a database credential restricted at the server. For analytical workflows, declare a secret-safe
|
|
45
|
+
`query_source` and a node resource with `kind: query_source`. SQL generation, validation, execution,
|
|
46
|
+
repair, and verification remain separate bounded stages.
|
|
47
|
+
|
|
48
|
+
## Retrieval
|
|
49
|
+
|
|
50
|
+
Choose memory for small examples; pgvector, Chroma, FAISS, or Qdrant for supported vector workloads.
|
|
51
|
+
Install only the corresponding extra. Preserve source provenance and tenant filters, cap retrieved
|
|
52
|
+
tokens, and instruct agents not to follow instructions embedded in retrieved content.
|
|
53
|
+
|
|
54
|
+
## Memory, cache, and durable stores
|
|
55
|
+
|
|
56
|
+
Use memory backends for tests and ephemeral local runs. Use PostgreSQL for durable run, event, audit,
|
|
57
|
+
approval, artifact, tool-execution, and conversation records; use Redis where supported for cache or
|
|
58
|
+
stores. Connection values remain `env://` references. Declare memory/cache/storage resources on the
|
|
59
|
+
workflow nodes that consume them.
|
|
60
|
+
|
|
61
|
+
For files and binary connector output, store bytes through `ArtifactStore` and pass only artifact IDs
|
|
62
|
+
through messages or workflow values. Preserve tenant scope, checksum, lifecycle state, expiry, and
|
|
63
|
+
size limits. User uploads begin `pending_scan`; a deployment-owned scanner marks them `available` or
|
|
64
|
+
`quarantined`. PostgreSQL is suitable only for bounded payloads; use the optional S3 adapter for
|
|
65
|
+
large blobs while retaining PostgreSQL lifecycle metadata. Configure bucket, prefix, region,
|
|
66
|
+
server-side encryption, and optional KMS key—never static access keys. Implement scanners behind
|
|
67
|
+
`ArtifactScanner` and invoke `ArtifactLifecycleService` so the pending transition is compare-and-set
|
|
68
|
+
and audited; do not update status directly in application domain code.
|
|
69
|
+
|
|
70
|
+
## Telemetry
|
|
71
|
+
|
|
72
|
+
Runtime supports OpenTelemetry and optional Traccia. Keep content capture off unless explicitly
|
|
73
|
+
required and authorized, redact PII, and declare telemetry resources with `access: observe`.
|
|
74
|
+
|
|
75
|
+
## Useful combinations
|
|
76
|
+
|
|
77
|
+
- Grounded assistant: model provider + retrieval + memory + telemetry.
|
|
78
|
+
- Safe action agent: model provider + read tools + approval-gated write tool + audit store.
|
|
79
|
+
- Data analyst: model provider + schema retrieval + read-only query source + SQL verifier.
|
|
80
|
+
- Research DAG: planner + bounded retrieval fan-out + join + citation verifier.
|
|
81
|
+
- Support workflow: tenant retrieval + CRM read + approval-gated ticket/billing write + durable runs.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: algen-runtime-contributor
|
|
3
|
+
description: Implement or review contributions to Algen Agent Runtime while preserving its public API, provider neutrality, tenant isolation, optional dependencies, and repository boundary.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Contribute to Algen Agent Runtime
|
|
7
|
+
|
|
8
|
+
Work from the Runtime repository root. Read `CONTRIBUTING.md` and the documentation most closely
|
|
9
|
+
related to the change before editing. Use `references/change-checklist.md` when planning or reviewing
|
|
10
|
+
a code change.
|
|
11
|
+
|
|
12
|
+
Keep reusable execution contracts, orchestration, governance, persistence, and integrations in
|
|
13
|
+
Runtime. Keep Studio UI, project management, marketplace, and product-specific behavior out of this
|
|
14
|
+
repository. Domain behavior belongs in an application hook provider, not in the Runtime executor.
|
|
15
|
+
|
|
16
|
+
Preserve these invariants:
|
|
17
|
+
|
|
18
|
+
- provider-neutral public contracts and typed boundaries;
|
|
19
|
+
- explicit tenant, user, permission, secret, and idempotency context;
|
|
20
|
+
- deterministic offline behavior and tests by default;
|
|
21
|
+
- optional provider, database, vector-store, telemetry, and framework dependencies;
|
|
22
|
+
- stable error codes and forward migrations for persisted data;
|
|
23
|
+
- secret-free configuration committed to source control.
|
|
24
|
+
|
|
25
|
+
Add the narrowest meaningful test and cover the relevant failure path. Update public documentation,
|
|
26
|
+
examples, and `CHANGELOG.md` for user-visible behavior. Run the repository quality gates before
|
|
27
|
+
finishing; report any gate that could not run and why. Do not commit, push, publish, or open a pull
|
|
28
|
+
request unless the user explicitly requests it.
|
|
29
|
+
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Algen Runtime Contributor"
|
|
3
|
+
short_description: "Build safe, compatible Runtime contributions"
|
|
4
|
+
brand_color: "#4F46E5"
|
|
5
|
+
default_prompt: "Use $algen-runtime-contributor to implement this Runtime change with tests and compatibility checks."
|
|
6
|
+
|
algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-contributor/references/change-checklist.md
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Runtime change checklist
|
|
2
|
+
|
|
3
|
+
Use the applicable sections; do not force irrelevant work into a small change.
|
|
4
|
+
|
|
5
|
+
## Boundary and compatibility
|
|
6
|
+
|
|
7
|
+
- Is this a reusable Runtime capability rather than Studio or marketplace behavior?
|
|
8
|
+
- Does it change a public import, YAML contract, event, error code, or persisted schema?
|
|
9
|
+
- If it changes `WorkflowManifest`, are manifest validation, execution validation, Studio
|
|
10
|
+
consumption, examples, agent-builder guidance, and the changelog updated together?
|
|
11
|
+
- If compatibility changes, is there an upgrade note, migration path, and changelog entry?
|
|
12
|
+
- For durable workflows, are tenant isolation, optimistic version conflicts, manifest fingerprints,
|
|
13
|
+
pause/resume, deadline suspension, recovery opt-in, and interrupted side effects tested?
|
|
14
|
+
- For workflow approvals, are authenticated reviewer identity, approve/modify/reject outcomes,
|
|
15
|
+
parameter-schema validation, expiry, rejection propagation, checkpoint durability, event-content
|
|
16
|
+
minimization, and invalid-decision deadline behavior tested?
|
|
17
|
+
- For child workflows, are exact-version registry resolution, typed input/canonical output,
|
|
18
|
+
correlation and lineage, cycle/depth limits, nested pause/decision propagation, checkpoint-first
|
|
19
|
+
dispatch, bounded parent concurrency, pre-child-creation failure, and recovery without duplicate
|
|
20
|
+
children tested?
|
|
21
|
+
- Does core remain usable without a new optional integration installed?
|
|
22
|
+
- For artifact changes, are staged pre-run inputs, checksums, lifecycle state, expiry, tenant-scoped
|
|
23
|
+
list/read/delete, PostgreSQL migration, and large-object boundaries covered?
|
|
24
|
+
- For object storage, are partial failure compensation, retry-safe deletion, encryption, checksum
|
|
25
|
+
verification, opaque tenant keys, credential discovery, scanner compare-and-set, and audit evidence
|
|
26
|
+
covered without requiring the optional SDK in core installs?
|
|
27
|
+
- For email changes, are header injection, recipient and attachment bounds, BCC privacy, TLS,
|
|
28
|
+
artifact-only attachments, stable idempotency, content-minimal receipts/errors, provider refusal,
|
|
29
|
+
and ambiguous delivery failure tested?
|
|
30
|
+
|
|
31
|
+
## Security and operations
|
|
32
|
+
|
|
33
|
+
- Preserve tenant isolation and authorization at every read and write boundary.
|
|
34
|
+
- Resolve secrets through `env://` or `secret://`; never serialize values into manifests or events.
|
|
35
|
+
- Classify tool side effects and idempotency accurately.
|
|
36
|
+
- Default interrupted workflow nodes to fail closed; never infer retry safety from node kind alone.
|
|
37
|
+
- Bound retries, repairs, loops, fan-out, payload sizes, concurrency, and network access.
|
|
38
|
+
- Avoid telemetry content by default; redact credentials and sensitive payloads.
|
|
39
|
+
- Keep workflow approval review paths and parameters explicitly secret-free; approval events must not
|
|
40
|
+
expose review values, parameters, or operator comments.
|
|
41
|
+
|
|
42
|
+
## Evidence
|
|
43
|
+
|
|
44
|
+
- Unit tests: deterministic contracts and failure behavior.
|
|
45
|
+
- Contract tests: provider, tool, store, retrieval, or framework compatibility.
|
|
46
|
+
- Integration tests: several Runtime components working together.
|
|
47
|
+
- End-to-end tests: public API or representative application path.
|
|
48
|
+
- Paid or networked checks use the `live` marker and are never required for ordinary pull requests.
|
|
49
|
+
|
|
50
|
+
## Quality gates
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
ruff format --check src tests examples
|
|
54
|
+
ruff check src tests examples
|
|
55
|
+
mypy src/algen_agent_runtime
|
|
56
|
+
pytest -q -p no:cacheprovider
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
Use `make lint`, `make typecheck`, and `make test` when the Makefile is the better local entry point.
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: algen-runtime-extension
|
|
3
|
+
description: Add or review an Algen Agent Runtime extension such as a model provider, tool adapter, retrieval backend, persistence store, telemetry integration, or external-framework adapter.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Extend Algen Agent Runtime
|
|
7
|
+
|
|
8
|
+
First identify the extension point and inspect its Protocol, registry, existing adapter, contract
|
|
9
|
+
tests, optional extra, and documentation. Read only the matching section of
|
|
10
|
+
`references/extension-points.md`.
|
|
11
|
+
|
|
12
|
+
Implement against Runtime contracts rather than leaking a vendor SDK into orchestration or public
|
|
13
|
+
state. Normalize vendor inputs, outputs, usage, errors, streaming behavior, and cancellation at the
|
|
14
|
+
adapter boundary. Keep the dependency optional and fail with an actionable installation message
|
|
15
|
+
when its extra is absent.
|
|
16
|
+
|
|
17
|
+
Treat all extension inputs as untrusted. Carry tenant and identity context, enforce permissions,
|
|
18
|
+
validate outbound destinations, classify side effects and idempotency, bound time and result size,
|
|
19
|
+
and prevent secrets from entering logs or persisted events.
|
|
20
|
+
|
|
21
|
+
Add deterministic contract tests without credentials. Put live integration tests behind the `live`
|
|
22
|
+
marker. Update the optional dependency extra, compatibility documentation, an importable example
|
|
23
|
+
when useful, and `CHANGELOG.md` for user-visible support.
|
|
24
|
+
|
algen_agent_runtime-0.1.0a1/.agents/skills/algen-runtime-extension/references/extension-points.md
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Runtime extension points
|
|
2
|
+
|
|
3
|
+
## Model provider
|
|
4
|
+
|
|
5
|
+
Inspect `src/algen_agent_runtime/models/providers/`, the provider registry, and provider contract
|
|
6
|
+
tests. Normalize messages, tool calls, structured output, streaming, usage, retryable failures, and
|
|
7
|
+
capabilities. Provider credentials remain secret references. Document supported capabilities and
|
|
8
|
+
known limitations in `docs/provider-compatibility.md`.
|
|
9
|
+
|
|
10
|
+
Provider-specific strict JSON Schema subsets belong at the provider boundary. Preserve the original
|
|
11
|
+
application schema for Runtime validation; translate only the wire copy and cover nested objects,
|
|
12
|
+
optional/defaulted fields, constants, and unsupported constraint keywords in contract tests.
|
|
13
|
+
|
|
14
|
+
## Tool or connector adapter
|
|
15
|
+
|
|
16
|
+
Inspect `tools/contracts.py`, `tools/adapters.py`, the executor, and policy engine. Every tool needs a
|
|
17
|
+
strict input schema, output schema, permissions, side-effect class, idempotency class, timeout,
|
|
18
|
+
concurrency bound, and result-size bound. Use `ToolContext` for identity and secrets. A database
|
|
19
|
+
connector accepts parameterized statements through a deployment-owned handler; remote HTTP tools
|
|
20
|
+
must validate destinations and propagate the idempotency key.
|
|
21
|
+
|
|
22
|
+
Email provider adapters implement `communications.email.EmailSender` and return the normalized,
|
|
23
|
+
content-minimal `EmailDeliveryReceipt`. Preserve the supplied idempotency key as the provider's
|
|
24
|
+
deduplication key or stable message identifier. Validate provider recipient refusals explicitly,
|
|
25
|
+
resolve attachments only through a tenant-authorized artifact loader, do not leak message bodies or
|
|
26
|
+
credentials in exceptions, and treat an uncertain post-submission failure as indeterminate through
|
|
27
|
+
the Runtime tool ledger. See `docs/email.md`.
|
|
28
|
+
|
|
29
|
+
## Retrieval backend
|
|
30
|
+
|
|
31
|
+
Inspect `retrieval/contracts.py`, `retrieval/vector_stores.py`, and `docs/rag.md`. Preserve tenant
|
|
32
|
+
filters, source provenance, score semantics, query/context limits, and prompt-injection boundaries.
|
|
33
|
+
Keep the backend SDK behind an optional extra.
|
|
34
|
+
|
|
35
|
+
## Persistence store
|
|
36
|
+
|
|
37
|
+
Inspect the relevant Protocol and in-memory/PostgreSQL implementations. Preserve tenant-scoped keys,
|
|
38
|
+
atomic state transitions, optimistic concurrency where defined, timestamps, recovery behavior, and
|
|
39
|
+
forward schema migrations.
|
|
40
|
+
|
|
41
|
+
Workflow checkpoint stores additionally require detached reads, tenant isolation, compare-and-set
|
|
42
|
+
versions, manifest fingerprints, recoverable-state filtering, and corruption failure behavior. Run
|
|
43
|
+
the shared in-memory/PostgreSQL conformance suite when adding another backend. Parent/child workflow
|
|
44
|
+
recovery must reconcile the recorded child checkpoint; it must never dispatch a replacement child.
|
|
45
|
+
|
|
46
|
+
Artifact stores additionally preserve optional run association, content checksum and length,
|
|
47
|
+
scan/quarantine status, metadata-only reads, expiry visibility, bounded purge, and permanent
|
|
48
|
+
tenant-scoped deletion. Keep large-object SDKs optional and never return another tenant's descriptor
|
|
49
|
+
or bytes.
|
|
50
|
+
|
|
51
|
+
For S3-compatible implementations, keep authoritative metadata in a tenant-scoped durable store,
|
|
52
|
+
hash tenant identifiers in object keys, request service-side checksums and encryption, conditionally
|
|
53
|
+
create objects, verify downloads locally, compensate partial uploads, and make deletion/expiry safe
|
|
54
|
+
to retry. Credentials come from workload identity or the SDK chain, not Runtime YAML. Scanner
|
|
55
|
+
adapters return only `ArtifactScanResult`; lifecycle state and audit writes belong to
|
|
56
|
+
`ArtifactLifecycleService`.
|
|
57
|
+
|
|
58
|
+
## Framework or telemetry adapter
|
|
59
|
+
|
|
60
|
+
Inspect `docs/framework-adapters.md` or `observability/`. Runtime remains the governance envelope;
|
|
61
|
+
framework-native state must not bypass identity, policy, budgets, tool execution, or normalized
|
|
62
|
+
events. Telemetry integrations must remain optional and must not include content by default.
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to Algen Agent Runtime will be documented in this file.
|
|
4
|
+
The project follows [Semantic Versioning](https://semver.org/) while public
|
|
5
|
+
contracts are explicitly marked experimental during the `0.x` series.
|
|
6
|
+
|
|
7
|
+
## [Unreleased]
|
|
8
|
+
|
|
9
|
+
_No unreleased changes yet._
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## [0.1.0a1] - 2026-09-22
|
|
14
|
+
|
|
15
|
+
First public alpha. Intended for evaluation and contribution; not a
|
|
16
|
+
production-readiness claim. Contracts labelled `experimental` may change
|
|
17
|
+
without a deprecation window during the `0.x` series.
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- Repository-scoped contributor, extension, agent-building, and connector skills for coding agents.
|
|
22
|
+
- A shared Algen ecosystem identity with light/dark Runtime logo and README banner assets, plus
|
|
23
|
+
documented Runtime, Studio, and Marketplace product boundaries.
|
|
24
|
+
- Studio-importable Runtime examples shipped with their Python hook providers and configuration in
|
|
25
|
+
source and wheel distributions.
|
|
26
|
+
- Runnable cloud chat, typed capability, human checkpoint, governed research, LangGraph adapter,
|
|
27
|
+
multi-agent fan-out, evaluation gate, customer support, incident response, and invoice exception
|
|
28
|
+
examples.
|
|
29
|
+
- Runtime DAG manifests for the responsible hiring and teaching-assistant case studies.
|
|
30
|
+
- Deterministic configuration, hook-loading, workflow execution, and checkpoint regression coverage
|
|
31
|
+
for the example portfolio.
|
|
32
|
+
- Initial open-source governance, security, contribution, and release policies.
|
|
33
|
+
- PyPI metadata, deterministic build contents, and clean-install CI checks.
|
|
34
|
+
- Public-ready README with an offline quickstart, support matrix, architecture overview, and
|
|
35
|
+
security boundaries.
|
|
36
|
+
- API stability and release-process documentation.
|
|
37
|
+
- Dedicated PyPI Trusted Publishing, CodeQL, and pull-request dependency-review workflows.
|
|
38
|
+
- Separation of the private Algen Agent Studio application from the Runtime distribution.
|
|
39
|
+
- Runtime-owned multi-agent workflow manifests and an embedded DAG executor with agent and
|
|
40
|
+
deterministic-handler nodes, conditional execution, clarification limits, bounded validation
|
|
41
|
+
repair, capped dynamic fan-out, correlated child runs, and lifecycle events.
|
|
42
|
+
- Application hook registries for workflow payloads, request metadata, structured-output schemas,
|
|
43
|
+
domain validation, and deterministic service execution.
|
|
44
|
+
- Runtime predicate and join nodes, declarative input templates, bounded agent loops, deterministic
|
|
45
|
+
ready-node ordering, conditional-branch convergence, host-provided agent execution, and portable
|
|
46
|
+
application hook-provider references.
|
|
47
|
+
- Typed, secret-free workflow resource references for documenting node connections to tools, query
|
|
48
|
+
sources, retrieval indexes, memory, caches, stores, telemetry, and application services.
|
|
49
|
+
- Runtime-owned JSON Schema Draft 2020-12 workflow input and canonical-output contracts with
|
|
50
|
+
manifest-time schema checks and fail-closed execution validation.
|
|
51
|
+
- Tenant-scoped staged artifacts with optional run association, SHA-256 and size metadata,
|
|
52
|
+
scan/available/quarantine states, expiry, metadata listing, deletion, bounded purge, HTTP lifecycle
|
|
53
|
+
endpoints, and a forward PostgreSQL migration.
|
|
54
|
+
- Optional PostgreSQL-metadata/S3-blob artifact storage with server-side encryption, service-side
|
|
55
|
+
SHA-256 checks, tenant-hashed keys, conditional creation, compensating cleanup, health checks, and
|
|
56
|
+
an audited compare-and-set `ArtifactScanner` lifecycle service.
|
|
57
|
+
- Runtime-owned in-memory and PostgreSQL multi-agent workflow checkpoint stores with tenant isolation,
|
|
58
|
+
optimistic versions, manifest fingerprints, pause/resume without completed-node replay, suspended
|
|
59
|
+
human-wait deadlines, and explicit fail-closed or retry crash recovery.
|
|
60
|
+
- First-class Runtime workflow approval nodes with durable approve/modify/reject decisions,
|
|
61
|
+
authenticated reviewer attribution, schema-validated parameter modification, bounded expiry,
|
|
62
|
+
safe rejection propagation, and content-minimal lifecycle events.
|
|
63
|
+
- Exact-version parent/child workflow composition with a trusted registry, typed child input and
|
|
64
|
+
canonical output, lineage, cycle/depth guards, nested clarification and approval propagation, and
|
|
65
|
+
checkpoint-first recovery without duplicate child dispatch.
|
|
66
|
+
- Provider-neutral, validated email contracts and a TLS-first SMTP adapter exposed as an
|
|
67
|
+
idempotency-aware Runtime tool with artifact-only attachments and content-minimal receipts.
|
|
68
|
+
- Shared workflow checkpoint-store conformance coverage plus corruption, ambiguous email delivery,
|
|
69
|
+
and parent/child crash-recovery failure-injection tests.
|
|
70
|
+
- Updated the responsible-hiring, customer-support, incident-response, and invoice-exception
|
|
71
|
+
reference workflows to use first-class Runtime approvals and explicit recovery safety instead of
|
|
72
|
+
clarification-shaped action checkpoints.
|
|
73
|
+
- DAG-based multi-agent workflow engine (`MultiAgentWorkflowExecutor`) with full topological
|
|
74
|
+
scheduling, fan-out/fan-in, conditional branching, and error recovery.
|
|
75
|
+
- Durable execution via in-memory and PostgreSQL checkpoint persistence backends.
|
|
76
|
+
- Extended `WorkflowManifest` and contracts with typed node, edge, and dependency schemas.
|
|
77
|
+
- OpenAI-compatible model provider adapter and provider contract test suite.
|
|
78
|
+
- Approval workflow patterns (`pattern_approval_workflow`, `quickstart_approval`) with
|
|
79
|
+
human-in-the-loop hooks.
|
|
80
|
+
- Fixed stale module references and CLI run commands across all example packages.
|
|
81
|
+
- Enhanced responsible-hiring case-study UI dashboard.
|
|
82
|
+
- Normalize OpenAI and Azure OpenAI response schemas at the provider boundary for strict structured
|
|
83
|
+
outputs: all object fields are required, additional properties are forbidden, and defaults and
|
|
84
|
+
unsupported wire constraints are removed while Runtime retains full result validation.
|
|
85
|
+
|
|
86
|
+
[Unreleased]: https://github.com/AlgenAI/algen-agent-runtime/compare/v0.1.0a1...HEAD
|
|
87
|
+
[0.1.0a1]: https://github.com/AlgenAI/algen-agent-runtime/releases/tag/v0.1.0a1
|