agentkernel 0.8.0__tar.gz → 0.9.0__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.
- {agentkernel-0.8.0 → agentkernel-0.9.0}/PKG-INFO +489 -59
- {agentkernel-0.8.0 → agentkernel-0.9.0}/README.md +470 -49
- {agentkernel-0.8.0 → agentkernel-0.9.0}/pyproject.toml +37 -12
- agentkernel-0.8.0/src/agentkernel/aws.py → agentkernel-0.9.0/src/agentkernel/agui.py +1 -1
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/api/__init__.py +0 -1
- agentkernel-0.9.0/src/agentkernel/api/handler.py +153 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/api/http.py +37 -12
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/api/mcp/akmcp.py +2 -5
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/auth/__init__.py +1 -0
- agentkernel-0.9.0/src/agentkernel/auth/authoriser.py +56 -0
- agentkernel-0.9.0/src/agentkernel/aws.py +16 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/cli/cli.py +28 -2
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/__init__.py +17 -1
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/base.py +202 -5
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/chat_service.py +293 -160
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/config.py +306 -31
- agentkernel-0.9.0/src/agentkernel/core/event.py +147 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/model.py +57 -2
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/multimodal/hooks.py +96 -91
- agentkernel-0.9.0/src/agentkernel/core/multimodal/source.py +112 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/multimodal/storage/base.py +11 -1
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/multimodal/storage/storage_manager.py +6 -1
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/multimodal/tools.py +101 -87
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/runtime.py +69 -40
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/service.py +33 -4
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/session/base.py +75 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/session/cosmosdb.py +18 -2
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/session/dynamodb.py +77 -1
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/session/firestore.py +18 -1
- agentkernel-0.9.0/src/agentkernel/core/session/in_memory.py +128 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/session/redis.py +11 -1
- agentkernel-0.9.0/src/agentkernel/core/session/redis_like.py +74 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/session/valkey.py +11 -1
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/tool.py +22 -1
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/util/driver/dynamodb.py +43 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/util/driver/redis_like.py +51 -0
- agentkernel-0.9.0/src/agentkernel/core/util/pagination.py +66 -0
- agentkernel-0.9.0/src/agentkernel/deployment/aws/__init__.py +66 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/containerized/__init__.py +1 -0
- agentkernel-0.9.0/src/agentkernel/deployment/aws/containerized/akagentrunner.py +279 -0
- agentkernel-0.9.0/src/agentkernel/deployment/aws/containerized/akoutputconsumer.py +200 -0
- agentkernel-0.9.0/src/agentkernel/deployment/aws/containerized/core/api/__init__.py +2 -0
- agentkernel-0.9.0/src/agentkernel/deployment/aws/containerized/core/api/rest_api.py +23 -0
- agentkernel-0.9.0/src/agentkernel/deployment/aws/containerized/core/api/websocket_api.py +520 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/containerized/core/sqs_consumer.py +74 -52
- agentkernel-0.9.0/src/agentkernel/deployment/aws/containerized/ecs_io_handler.py +76 -0
- agentkernel-0.8.0/src/agentkernel/deployment/common/queue_consumer.py → agentkernel-0.9.0/src/agentkernel/deployment/aws/core/raw_queue_consumer.py +11 -4
- agentkernel-0.9.0/src/agentkernel/deployment/aws/core/response_store/__init__.py +1 -0
- agentkernel-0.9.0/src/agentkernel/deployment/aws/core/response_store/dynamodb.py +5 -0
- agentkernel-0.9.0/src/agentkernel/deployment/aws/core/response_store/factory.py +5 -0
- agentkernel-0.9.0/src/agentkernel/deployment/aws/core/response_store/redis.py +5 -0
- agentkernel-0.9.0/src/agentkernel/deployment/aws/core/response_store/valkey.py +5 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/core/sqs_handler.py +58 -123
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/core/websocket_service.py +7 -127
- agentkernel-0.9.0/src/agentkernel/deployment/aws/serverless/__init__.py +5 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/serverless/akagentrunner.py +97 -12
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/serverless/akresponsehandler.py +51 -18
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/serverless/core/router/rest_lambda.py +64 -38
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/serverless/core/router/ws_lambda.py +38 -80
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/serverless/core/sqs_consumer.py +2 -2
- agentkernel-0.9.0/src/agentkernel/deployment/common/__init__.py +1 -0
- agentkernel-0.9.0/src/agentkernel/deployment/common/response_store.py +5 -0
- agentkernel-0.9.0/src/agentkernel/deployment/common/rest_handler.py +8 -0
- agentkernel-0.9.0/src/agentkernel/deployment/common/thread_runner.py +9 -0
- agentkernel-0.9.0/src/agentkernel/deployment/common/websocket_service.py +5 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/adk/adk.py +229 -46
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/crewai/crewai.py +17 -7
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/langgraph/langgraph.py +207 -14
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/openai/openai.py +154 -23
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/pydanticai/pydanticai.py +248 -13
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/smolagents/smolagents.py +23 -2
- agentkernel-0.9.0/src/agentkernel/integration/agui/__init__.py +15 -0
- agentkernel-0.9.0/src/agentkernel/integration/agui/handler.py +285 -0
- agentkernel-0.9.0/src/agentkernel/integration/agui/mapping.py +74 -0
- agentkernel-0.9.0/src/agentkernel/integration/agui/run_input.py +163 -0
- agentkernel-0.9.0/src/agentkernel/integration/agui/state.py +212 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/gmail/gmail_chat.py +16 -23
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/instagram/instagram_chat.py +18 -22
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/messenger/messenger_chat.py +18 -22
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/slack/slack_chat.py +25 -10
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/teams/README.md +143 -102
- agentkernel-0.9.0/src/agentkernel/integration/teams/teams_chat.py +553 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/telegram/telegram_chat.py +17 -15
- agentkernel-0.9.0/src/agentkernel/integration/thread/__init__.py +17 -0
- {agentkernel-0.8.0/src/agentkernel/core → agentkernel-0.9.0/src/agentkernel/integration}/thread/manager.py +44 -69
- {agentkernel-0.8.0/src/agentkernel/core → agentkernel-0.9.0/src/agentkernel/integration}/thread/naming.py +1 -1
- agentkernel-0.9.0/src/agentkernel/integration/thread/recorder.py +66 -0
- {agentkernel-0.8.0/src/agentkernel/core → agentkernel-0.9.0/src/agentkernel/integration}/thread/store/base.py +14 -20
- {agentkernel-0.8.0/src/agentkernel/core → agentkernel-0.9.0/src/agentkernel/integration}/thread/store/cosmosdb.py +2 -2
- {agentkernel-0.8.0/src/agentkernel/core → agentkernel-0.9.0/src/agentkernel/integration}/thread/store/dynamodb.py +2 -2
- {agentkernel-0.8.0/src/agentkernel/core → agentkernel-0.9.0/src/agentkernel/integration}/thread/store/firestore.py +2 -2
- agentkernel-0.9.0/src/agentkernel/integration/thread/store/redis.py +19 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/store/redis.py → agentkernel-0.9.0/src/agentkernel/integration/thread/store/redis_like.py +12 -12
- agentkernel-0.9.0/src/agentkernel/integration/thread/store/valkey.py +19 -0
- agentkernel-0.9.0/src/agentkernel/integration/thread/thread_chat.py +283 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/whatsapp/whatsapp_chat.py +14 -9
- agentkernel-0.9.0/src/agentkernel/pipeline/__init__.py +65 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/agent_runner.py +178 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/consumer.py +156 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/envelope.py +37 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/io_handler.py +161 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/request_handler.py +363 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/response_handler.py +188 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/response_store/__init__.py +5 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/response_store/base.py +132 -0
- {agentkernel-0.8.0/src/agentkernel/deployment/aws/core → agentkernel-0.9.0/src/agentkernel/pipeline}/response_store/dynamodb.py +27 -2
- agentkernel-0.9.0/src/agentkernel/pipeline/response_store/factory.py +96 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/response_store/in_memory.py +118 -0
- {agentkernel-0.8.0/src/agentkernel/deployment/aws/core → agentkernel-0.9.0/src/agentkernel/pipeline}/response_store/redis.py +24 -2
- {agentkernel-0.8.0/src/agentkernel/deployment/aws/core → agentkernel-0.9.0/src/agentkernel/pipeline}/response_store/valkey.py +24 -2
- agentkernel-0.9.0/src/agentkernel/pipeline/testing.py +172 -0
- {agentkernel-0.8.0/src/agentkernel/deployment/common → agentkernel-0.9.0/src/agentkernel/pipeline}/thread_runner.py +49 -7
- agentkernel-0.9.0/src/agentkernel/pipeline/transport/__init__.py +4 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/transport/base.py +213 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/transport/bookkeeping.py +172 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/transport/in_memory.py +204 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/transport/kafka.py +457 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/transport/nats.py +472 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/transport/sqs.py +257 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/ws/__init__.py +41 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/ws/base.py +233 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/ws/endpoint.py +61 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/ws/gateway.py +108 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/ws/handler.py +267 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/ws/push.py +184 -0
- agentkernel-0.9.0/src/agentkernel/pipeline/ws/registry.py +128 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/__init__.py +2 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/broker/base.py +1 -0
- agentkernel-0.9.0/src/agentkernel/sandbox/broker/queue.py +176 -0
- agentkernel-0.9.0/src/agentkernel/sandbox/broker/queue_worker.py +367 -0
- agentkernel-0.9.0/src/agentkernel/sandbox/broker/wire.py +52 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/broker/worker.py +14 -2
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/factory.py +10 -1
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/manager.py +24 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/model.py +19 -1
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/providers/docker.py +3 -2
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/providers/ec2_ssm.py +14 -1
- agentkernel-0.9.0/src/agentkernel/sandbox/providers/kubernetes.py +422 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/tools.py +9 -3
- agentkernel-0.9.0/src/agentkernel/schedule/__init__.py +59 -0
- agentkernel-0.9.0/src/agentkernel/schedule/errors.py +11 -0
- agentkernel-0.9.0/src/agentkernel/schedule/handler.py +177 -0
- agentkernel-0.9.0/src/agentkernel/schedule/manager.py +490 -0
- agentkernel-0.9.0/src/agentkernel/schedule/model.py +101 -0
- agentkernel-0.9.0/src/agentkernel/schedule/provider/__init__.py +5 -0
- agentkernel-0.9.0/src/agentkernel/schedule/provider/base.py +142 -0
- agentkernel-0.9.0/src/agentkernel/schedule/provider/eventbridge.py +290 -0
- agentkernel-0.9.0/src/agentkernel/schedule/provider/local.py +247 -0
- agentkernel-0.9.0/src/agentkernel/schedule/store/__init__.py +5 -0
- agentkernel-0.9.0/src/agentkernel/schedule/store/base.py +146 -0
- agentkernel-0.9.0/src/agentkernel/schedule/store/dynamodb.py +102 -0
- agentkernel-0.9.0/src/agentkernel/schedule/store/in_memory.py +53 -0
- agentkernel-0.9.0/src/agentkernel/schedule/store/redis.py +20 -0
- agentkernel-0.9.0/src/agentkernel/schedule/store/redis_like.py +120 -0
- agentkernel-0.9.0/src/agentkernel/schedule/store/valkey.py +20 -0
- agentkernel-0.9.0/src/agentkernel/schedule/timing.py +108 -0
- agentkernel-0.9.0/src/agentkernel/schedule/tools.py +375 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/ak-add-capabilities/SKILL.md +355 -45
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/ak-add-capabilities/evals/evals.json +115 -3
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/ak-add-integration/SKILL.md +11 -9
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/ak-add-integration/evals/evals.json +1 -1
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/ak-build/SKILL.md +2 -2
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/ak-build/evals/evals.json +1 -1
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/ak-cloud-deploy/SKILL.md +350 -39
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/ak-cloud-deploy/evals/evals.json +64 -5
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/ak-init/SKILL.md +10 -5
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/ak-init/evals/evals.json +2 -2
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/ak-test/SKILL.md +33 -14
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/ak-test/evals/evals.json +33 -13
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/test/config.py +8 -4
- agentkernel-0.9.0/src/agentkernel/test/core/akevaluators/__init__.py +17 -0
- agentkernel-0.9.0/src/agentkernel/test/core/akevaluators/base.py +66 -0
- agentkernel-0.9.0/src/agentkernel/test/core/akevaluators/deepeval.py +90 -0
- agentkernel-0.9.0/src/agentkernel/test/test.py +292 -0
- agentkernel-0.9.0/src/agentkernel/thread.py +8 -0
- agentkernel-0.9.0/src/agentkernel/trace/langfuse/langgraph.py +49 -0
- agentkernel-0.9.0/src/agentkernel/trace/openllmetry/__init__.py +0 -0
- agentkernel-0.8.0/src/agentkernel/api/handler.py +0 -109
- agentkernel-0.8.0/src/agentkernel/api/thread.py +0 -107
- agentkernel-0.8.0/src/agentkernel/core/session/in_memory.py +0 -61
- agentkernel-0.8.0/src/agentkernel/core/thread/__init__.py +0 -16
- agentkernel-0.8.0/src/agentkernel/core/thread/authoriser.py +0 -28
- agentkernel-0.8.0/src/agentkernel/deployment/aws/__init__.py +0 -18
- agentkernel-0.8.0/src/agentkernel/deployment/aws/containerized/akagentrunner.py +0 -118
- agentkernel-0.8.0/src/agentkernel/deployment/aws/containerized/akoutputconsumer.py +0 -131
- agentkernel-0.8.0/src/agentkernel/deployment/aws/containerized/ecs_io_handler.py +0 -51
- agentkernel-0.8.0/src/agentkernel/deployment/aws/containerized/ecs_queue_handler.py +0 -39
- agentkernel-0.8.0/src/agentkernel/deployment/aws/core/response_store/__init__.py +0 -1
- agentkernel-0.8.0/src/agentkernel/deployment/aws/core/response_store/handler.py +0 -106
- agentkernel-0.8.0/src/agentkernel/deployment/aws/serverless/__init__.py +0 -13
- agentkernel-0.8.0/src/agentkernel/deployment/common/__init__.py +0 -2
- agentkernel-0.8.0/src/agentkernel/deployment/common/queue_handler.py +0 -84
- agentkernel-0.8.0/src/agentkernel/deployment/common/queue_request_handler.py +0 -185
- agentkernel-0.8.0/src/agentkernel/deployment/common/response_store.py +0 -90
- agentkernel-0.8.0/src/agentkernel/deployment/common/websocket_connection_store.py +0 -63
- agentkernel-0.8.0/src/agentkernel/integration/teams/teams_chat.py +0 -301
- agentkernel-0.8.0/src/agentkernel/test/test.py +0 -303
- agentkernel-0.8.0/src/agentkernel/trace/langfuse/langgraph.py +0 -70
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/adk.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/api/a2a/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/api/a2a/a2a.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/api/a2a/handler.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/api/mcp/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/auth/handler.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/auth.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/azure.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/cli/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/cli/ak.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/builder.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/hooks.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/logger.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/module.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/multimodal/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/multimodal/factory.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/multimodal/storage/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/multimodal/storage/dynamodb.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/multimodal/storage/in_memory.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/multimodal/storage/redis.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/multimodal/storage/session_cache.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/session/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/session/serde.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/util/config_yaml_util.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/util/driver/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/util/driver/base.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/util/driver/cosmosdb.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/util/driver/firestore.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/util/driver/redis.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/util/driver/valkey.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/util/error_util.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/util/factory.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/core/util/key_value_cache.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/crewai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/containerized/core/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/core/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/serverless/akauthorizer.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/serverless/aklambda.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/serverless/akwsconnectionhandler.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/serverless/core/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/serverless/core/router/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/aws/serverless/core/router/common.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/azure/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/azure/akfunction.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/gcp/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/gcp/akauthorizer.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/deployment/gcp/akcloudrun.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/adk/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/crewai/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/langgraph/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/openai/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/pydanticai/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/framework/smolagents/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/gcp.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/gmail.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/guardrail/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/guardrail/bedrock.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/guardrail/guardrail.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/guardrail/openai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/guardrail/walledai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/instagram.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/gmail/README.md +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/gmail/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/instagram/README.md +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/instagram/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/messenger/README.md +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/messenger/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/slack/README.md +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/slack/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/teams/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/telegram/README.md +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/telegram/__init__.py +0 -0
- {agentkernel-0.8.0/src/agentkernel/core → agentkernel-0.9.0/src/agentkernel/integration}/thread/model.py +0 -0
- {agentkernel-0.8.0/src/agentkernel/core → agentkernel-0.9.0/src/agentkernel/integration}/thread/store/__init__.py +0 -0
- {agentkernel-0.8.0/src/agentkernel/core → agentkernel-0.9.0/src/agentkernel/integration}/thread/store/in_memory.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/whatsapp/README.md +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/integration/whatsapp/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/knowledgebase/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/knowledgebase/base.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/knowledgebase/chroma.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/knowledgebase/knowledgebuilder.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/knowledgebase/neo4j.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/knowledgebase/starburst.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/langgraph.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/mcp.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/messenger.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/openai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/pydanticai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/base.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/broker/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/broker/embedded.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/broker/thread.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/errors.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/hooks.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/principal.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/providers/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/providers/daytona.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/providers/e2b.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/providers/local_subprocess.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/sandbox/testing.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/skills/skills.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/slack.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/smolagents.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/teams.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/telegram.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/test/__init__.py +0 -0
- {agentkernel-0.8.0/src/agentkernel/trace/langfuse → agentkernel-0.9.0/src/agentkernel/test/core}/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/base.py +0 -0
- {agentkernel-0.8.0/src/agentkernel/trace/logfire → agentkernel-0.9.0/src/agentkernel/trace/langfuse}/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/langfuse/adk.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/langfuse/crewai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/langfuse/langfuse.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/langfuse/openai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/langfuse/pydanticai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/langfuse/smolagents.py +0 -0
- {agentkernel-0.8.0/src/agentkernel/trace/openllmetry → agentkernel-0.9.0/src/agentkernel/trace/logfire}/__init__.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/logfire/adk.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/logfire/crewai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/logfire/langgraph.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/logfire/logfire.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/logfire/openai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/logfire/pydanticai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/logfire/smolagents.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/openllmetry/adk.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/openllmetry/crewai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/openllmetry/langgraph.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/openllmetry/openai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/openllmetry/openllmetry.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/openllmetry/pydanticai.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/openllmetry/smolagents.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/trace/trace.py +0 -0
- {agentkernel-0.8.0 → agentkernel-0.9.0}/src/agentkernel/whatsapp.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: agentkernel
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.0
|
|
4
4
|
Summary: Agent Kernel - Unified AI Agents Runtime
|
|
5
5
|
Author: Yaala Labs
|
|
6
6
|
Author-email: Yaala Labs <agentkernel@yaalalabs.com>
|
|
@@ -14,9 +14,11 @@ Requires-Dist: a2a-sdk[http-server]>=0.3.6 ; extra == 'a2a'
|
|
|
14
14
|
Requires-Dist: google-adk>=1.14.1 ; extra == 'adk'
|
|
15
15
|
Requires-Dist: litellm~=1.89.2 ; extra == 'adk'
|
|
16
16
|
Requires-Dist: openinference-instrumentation-google-adk>=0.1.6 ; extra == 'adk'
|
|
17
|
+
Requires-Dist: ag-ui-protocol>=0.1.16 ; extra == 'agui'
|
|
17
18
|
Requires-Dist: fastapi>=0.118.0 ; extra == 'api'
|
|
18
19
|
Requires-Dist: uvicorn>=0.37.0 ; extra == 'api'
|
|
19
20
|
Requires-Dist: gunicorn>=23.0.0 ; extra == 'api'
|
|
21
|
+
Requires-Dist: httpx>=0.27.0 ; extra == 'api'
|
|
20
22
|
Requires-Dist: pyjwt>=2.13.0 ; extra == 'auth'
|
|
21
23
|
Requires-Dist: boto3>=1.41.4 ; extra == 'aws'
|
|
22
24
|
Requires-Dist: azure-functions>=1.24.0 ; extra == 'azure'
|
|
@@ -26,6 +28,7 @@ Requires-Dist: chromadb>=0.4.0 ; extra == 'chromadb'
|
|
|
26
28
|
Requires-Dist: crewai>=1.15.0 ; extra == 'crewai'
|
|
27
29
|
Requires-Dist: openinference-instrumentation-crewai>=0.1.16 ; extra == 'crewai'
|
|
28
30
|
Requires-Dist: openinference-instrumentation-litellm>=0.1.28 ; extra == 'crewai'
|
|
31
|
+
Requires-Dist: croniter>=3.0 ; extra == 'cron'
|
|
29
32
|
Requires-Dist: daytona>=0.198.0,<0.199 ; extra == 'daytona'
|
|
30
33
|
Requires-Dist: e2b-code-interpreter>=2.8.0 ; extra == 'e2b'
|
|
31
34
|
Requires-Dist: google-cloud-firestore>=2.19.0 ; extra == 'gcp'
|
|
@@ -34,19 +37,23 @@ Requires-Dist: google-auth-oauthlib>=1.0.0 ; extra == 'gmail'
|
|
|
34
37
|
Requires-Dist: google-auth-httplib2>=0.2.0 ; extra == 'gmail'
|
|
35
38
|
Requires-Dist: google-api-python-client>=2.0.0 ; extra == 'gmail'
|
|
36
39
|
Requires-Dist: httpx>=0.27.0 ; extra == 'instagram'
|
|
40
|
+
Requires-Dist: confluent-kafka>=2.15.0 ; extra == 'kafka'
|
|
41
|
+
Requires-Dist: kubernetes>=29.0.0 ; extra == 'kubernetes'
|
|
37
42
|
Requires-Dist: langfuse>=4.2.0 ; extra == 'langfuse'
|
|
38
43
|
Requires-Dist: nest-asyncio>=1.6.0 ; extra == 'langfuse'
|
|
39
|
-
Requires-Dist: langgraph~=1.
|
|
40
|
-
Requires-Dist:
|
|
44
|
+
Requires-Dist: langgraph~=1.2.10 ; extra == 'langgraph'
|
|
45
|
+
Requires-Dist: langgraph-prebuilt~=1.1.0 ; extra == 'langgraph'
|
|
46
|
+
Requires-Dist: langchain~=1.3.10 ; extra == 'langgraph'
|
|
41
47
|
Requires-Dist: langchain-community==0.4.1 ; extra == 'langgraph'
|
|
42
48
|
Requires-Dist: litellm~=1.89.2 ; extra == 'langgraph'
|
|
43
49
|
Requires-Dist: logfire>=3.0 ; extra == 'logfire'
|
|
44
|
-
Requires-Dist: fastmcp>=2.
|
|
50
|
+
Requires-Dist: fastmcp>=3.2.0,<4.0.0 ; extra == 'mcp'
|
|
45
51
|
Requires-Dist: httpx>=0.27.0 ; extra == 'messenger'
|
|
46
52
|
Requires-Dist: litellm>=1.74.9 ; extra == 'multimodal'
|
|
47
53
|
Requires-Dist: python-multipart>=0.0.12 ; extra == 'multimodal'
|
|
54
|
+
Requires-Dist: nats-py>=2.15.0 ; extra == 'nats'
|
|
48
55
|
Requires-Dist: neo4j>=5.0.0 ; extra == 'neo4j'
|
|
49
|
-
Requires-Dist: openai-agents>=0.
|
|
56
|
+
Requires-Dist: openai-agents>=0.7.0 ; extra == 'openai'
|
|
50
57
|
Requires-Dist: openinference-instrumentation-openai-agents>=1.4.0 ; extra == 'openai'
|
|
51
58
|
Requires-Dist: openai-guardrails>=0.2.1 ; extra == 'openai'
|
|
52
59
|
Requires-Dist: traceloop-sdk>=0.61.0 ; extra == 'openllmetry'
|
|
@@ -59,6 +66,7 @@ Requires-Dist: httpx>=0.27.0 ; extra == 'slack'
|
|
|
59
66
|
Requires-Dist: smolagents>=1.0.0 ; extra == 'smolagents'
|
|
60
67
|
Requires-Dist: botbuilder-core>=4.17.0 ; extra == 'teams'
|
|
61
68
|
Requires-Dist: botbuilder-schema>=4.17.0 ; extra == 'teams'
|
|
69
|
+
Requires-Dist: aiohttp>=3.9.0 ; extra == 'teams'
|
|
62
70
|
Requires-Dist: msal>=1.31.1 ; extra == 'teams'
|
|
63
71
|
Requires-Dist: httpx>=0.27.0 ; extra == 'teams'
|
|
64
72
|
Requires-Dist: httpx>=0.27.0 ; extra == 'telegram'
|
|
@@ -67,11 +75,7 @@ Requires-Dist: pytest-asyncio>=1.2.0 ; extra == 'test'
|
|
|
67
75
|
Requires-Dist: pytest-cov>=6.2.1 ; extra == 'test'
|
|
68
76
|
Requires-Dist: pytest-html>=4.1.1 ; extra == 'test'
|
|
69
77
|
Requires-Dist: pytest-order>=1.3.0 ; extra == 'test'
|
|
70
|
-
Requires-Dist:
|
|
71
|
-
Requires-Dist: ragas>=0.4.1 ; extra == 'test'
|
|
72
|
-
Requires-Dist: langchain-community==0.4.1 ; extra == 'test'
|
|
73
|
-
Requires-Dist: datasets>=2.14.0 ; extra == 'test'
|
|
74
|
-
Requires-Dist: pandas>=2.0.0 ; extra == 'test'
|
|
78
|
+
Requires-Dist: deepeval>=4.1.4 ; extra == 'test'
|
|
75
79
|
Requires-Dist: litellm>=1.89.2 ; extra == 'test'
|
|
76
80
|
Requires-Dist: litellm>=1.74.9 ; extra == 'thread'
|
|
77
81
|
Requires-Dist: trino>=0.337.0 ; extra == 'trino'
|
|
@@ -81,6 +85,7 @@ Requires-Dist: httpx>=0.27.0 ; extra == 'whatsapp'
|
|
|
81
85
|
Requires-Python: >=3.12, <3.14
|
|
82
86
|
Provides-Extra: a2a
|
|
83
87
|
Provides-Extra: adk
|
|
88
|
+
Provides-Extra: agui
|
|
84
89
|
Provides-Extra: api
|
|
85
90
|
Provides-Extra: auth
|
|
86
91
|
Provides-Extra: aws
|
|
@@ -88,17 +93,21 @@ Provides-Extra: azure
|
|
|
88
93
|
Provides-Extra: chromadb
|
|
89
94
|
Provides-Extra: cli
|
|
90
95
|
Provides-Extra: crewai
|
|
96
|
+
Provides-Extra: cron
|
|
91
97
|
Provides-Extra: daytona
|
|
92
98
|
Provides-Extra: e2b
|
|
93
99
|
Provides-Extra: gcp
|
|
94
100
|
Provides-Extra: gmail
|
|
95
101
|
Provides-Extra: instagram
|
|
102
|
+
Provides-Extra: kafka
|
|
103
|
+
Provides-Extra: kubernetes
|
|
96
104
|
Provides-Extra: langfuse
|
|
97
105
|
Provides-Extra: langgraph
|
|
98
106
|
Provides-Extra: logfire
|
|
99
107
|
Provides-Extra: mcp
|
|
100
108
|
Provides-Extra: messenger
|
|
101
109
|
Provides-Extra: multimodal
|
|
110
|
+
Provides-Extra: nats
|
|
102
111
|
Provides-Extra: neo4j
|
|
103
112
|
Provides-Extra: openai
|
|
104
113
|
Provides-Extra: openllmetry
|
|
@@ -130,11 +139,13 @@ Agent Kernel is a lightweight **AI agent runtime** and adapter layer for buildin
|
|
|
130
139
|
- **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK, Smolagents, and Pydantic AI
|
|
131
140
|
- **Session Management**: Built-in session abstraction with pluggable storage backends
|
|
132
141
|
- **Knowledge Bases**: Unified `KnowledgeBase` interface with ChromaDB, Neo4j, and Starburst/Trino backends via `KnowledgeBuilder`
|
|
133
|
-
- **Sandbox**: Execute agent-generated code and shell commands in an isolated, permission-bounded environment with pluggable providers (`local_subprocess`, `docker`, `e2b`, `daytona`, `ec2_ssm`), workload profiles, policy enforcement,
|
|
142
|
+
- **Sandbox**: Execute agent-generated code and shell commands in an isolated, permission-bounded environment with pluggable providers (`local_subprocess`, `docker`, `kubernetes`, `e2b`, `daytona`, `ec2_ssm`), workload profiles, policy enforcement, per-user identity, and a queue-decoupled broker for long-running executions
|
|
143
|
+
- **Scheduled Tasks**: Deferred and recurring chat execution (`schedule.at`/`schedule.cron`) with a management REST API, five agent-facing tools, and pluggable provider (`local`, `eventbridge`) and store (`in_memory`, `redis`, `valkey`, `dynamodb`) backends
|
|
134
144
|
- **Flexible Deployment**: Interactive CLI, REST API, serverless, or containerized deployment — see the "Multi-Cloud Deployment" section below
|
|
135
145
|
- **Pluggable Architecture**: Easy to extend with custom framework adapters
|
|
136
146
|
- **MCP Server**: Built-in Model Context Protocol server for exposing agents as MCP tools and exposing any custom tool
|
|
137
147
|
- **A2A Server**: Built-in Agent-to-Agent communication server for exposing agents with a simple configuration change
|
|
148
|
+
- **AG-UI Server**: Built-in [AG-UI protocol](https://github.com/ag-ui-protocol/ag-ui) handler for driving any streaming-capable agent from an AG-UI frontend, with opt-in shared state and client-context tools
|
|
138
149
|
- **REST API**: Built-in REST API server for agent interaction
|
|
139
150
|
- **Test Automation**: Built-in test suite for testing agents
|
|
140
151
|
|
|
@@ -158,16 +169,29 @@ For LLM-based thread naming with Conversation Thread Support:
|
|
|
158
169
|
pip install "agentkernel[thread]"
|
|
159
170
|
```
|
|
160
171
|
|
|
172
|
+
For the AG-UI server (`AGUIRequestHandler`):
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
pip install "agentkernel[agui]"
|
|
176
|
+
```
|
|
177
|
+
|
|
161
178
|
For the sandbox providers (the `local_subprocess` provider needs no extra; `ec2_ssm` rides
|
|
162
179
|
the `aws` extra):
|
|
163
180
|
|
|
164
181
|
```bash
|
|
165
182
|
pip install "agentkernel[sandbox-docker]" # docker provider
|
|
183
|
+
pip install "agentkernel[kubernetes]" # kubernetes provider (pod per sandbox)
|
|
166
184
|
pip install "agentkernel[e2b]" # e2b cloud provider
|
|
167
185
|
pip install "agentkernel[daytona]" # daytona cloud provider
|
|
168
186
|
pip install "agentkernel[aws]" # ec2_ssm provider (boto3)
|
|
169
187
|
```
|
|
170
188
|
|
|
189
|
+
For cron parsing with the Scheduling capability (the `eventbridge` provider rides the `aws` extra):
|
|
190
|
+
|
|
191
|
+
```bash
|
|
192
|
+
pip install "agentkernel[cron]"
|
|
193
|
+
```
|
|
194
|
+
|
|
171
195
|
**Requirements:**
|
|
172
196
|
- Python 3.12+
|
|
173
197
|
|
|
@@ -419,6 +443,33 @@ if __name__ == "__main__":
|
|
|
419
443
|
|
|
420
444
|
For full Terraform deployment configuration, see [`ak-deployment/ak-gcp/`](https://github.com/yaalalabs/agent-kernel/tree/develop/ak-deployment/ak-gcp) or the [GCP deployment docs](https://github.com/yaalalabs/agent-kernel/tree/develop/docs/docs/deployment/gcp-serverless.md).
|
|
421
445
|
|
|
446
|
+
### On-Prem / Kubernetes Deployment
|
|
447
|
+
|
|
448
|
+
Deploy the queue pipeline to any Kubernetes cluster with the official Helm chart: an
|
|
449
|
+
io-handler Deployment (REST API + Response Handler), an agent-runner Deployment, and an
|
|
450
|
+
optional WebSocket gateway, over Kafka or NATS JetStream (or SQS on EKS). Your image supplies
|
|
451
|
+
one entry file per component:
|
|
452
|
+
|
|
453
|
+
```python
|
|
454
|
+
# app_io_handler.py
|
|
455
|
+
from agentkernel.pipeline import IOHandler
|
|
456
|
+
|
|
457
|
+
IOHandler.run()
|
|
458
|
+
|
|
459
|
+
# app_agent_runner.py
|
|
460
|
+
from agentkernel.openai import OpenAIModule
|
|
461
|
+
from agentkernel.pipeline import AgentRunner
|
|
462
|
+
|
|
463
|
+
OpenAIModule([...])
|
|
464
|
+
AgentRunner.run()
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
The chart injects broker and store connections as `AK_*` environment variables. See
|
|
468
|
+
[`ak-deployment/ak-k8s/`](https://github.com/yaalalabs/agent-kernel/tree/develop/ak-deployment/ak-k8s),
|
|
469
|
+
the [On-Prem / Kubernetes docs](https://github.com/yaalalabs/agent-kernel/tree/develop/docs/docs/deployment/onprem-kubernetes.md),
|
|
470
|
+
and the end-to-end example at
|
|
471
|
+
[`examples/k8s/openai-queue-mode`](https://github.com/yaalalabs/agent-kernel/tree/develop/examples/k8s/openai-queue-mode).
|
|
472
|
+
|
|
422
473
|
## Configuration
|
|
423
474
|
|
|
424
475
|
Agent Kernel can be configured via environment variables, `.env` files, or YAML/JSON configuration files.
|
|
@@ -518,10 +569,12 @@ available on AWS ElastiCache at a lower price point than the Redis OSS engine:
|
|
|
518
569
|
|
|
519
570
|
#### Conversation Thread Support
|
|
520
571
|
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
`GET /api/v1/threads/{session_id}
|
|
572
|
+
Mounting `AgentThreadRequestHandler` (from `agentkernel.thread`) instead of the default REST handler
|
|
573
|
+
enables persistent, named conversation threads keyed by `session_id`: it serves the standard chat routes
|
|
574
|
+
with thread recording, plus the read routes (`GET /api/v1/threads` and
|
|
575
|
+
`GET /api/v1/threads/{session_id}`, optionally protected by a pluggable `Authoriser`). The `thread`
|
|
576
|
+
block in the configuration only selects the store backend and naming. On the thread handler's chat
|
|
577
|
+
routes `user_id` is required, and a thread is auto-created on a session's first request. Sending
|
|
525
578
|
`thread_name` on any chat request sets or renames the thread's display name and locks it against automatic
|
|
526
579
|
naming. Threads created without an explicit `thread_name` are
|
|
527
580
|
named by a pluggable naming strategy — by default an LLM call derives a concise title from the first prompt
|
|
@@ -532,8 +585,8 @@ mode additionally require `multimodal.enabled: true` with a shared attachment st
|
|
|
532
585
|
|
|
533
586
|
- **Field**: `thread.type`
|
|
534
587
|
- **Type**: string
|
|
535
|
-
- **Options**: `
|
|
536
|
-
- **Default**: `
|
|
588
|
+
- **Options**: `in_memory`, `redis`, `valkey`, `dynamodb` (AWS), `firestore` (GCP), `cosmosdb` (Azure)
|
|
589
|
+
- **Default**: `in_memory`
|
|
537
590
|
- **Environment Variable**: `AK_THREAD__TYPE`
|
|
538
591
|
|
|
539
592
|
- **Naming Model**
|
|
@@ -572,6 +625,28 @@ Required when `thread.type=redis`:
|
|
|
572
625
|
- **Description**: Key prefix for Redis thread storage
|
|
573
626
|
- **Environment Variable**: `AK_THREAD__REDIS__PREFIX`
|
|
574
627
|
|
|
628
|
+
##### Valkey Thread Store
|
|
629
|
+
|
|
630
|
+
Required when `thread.type=valkey`. Requires the `valkey` extra (`pip install "agentkernel[valkey]"`):
|
|
631
|
+
|
|
632
|
+
- **URL**
|
|
633
|
+
- **Field**: `thread.valkey.url`
|
|
634
|
+
- **Default**: `valkey://localhost:6379`
|
|
635
|
+
- **Description**: Valkey connection URL. Use `valkeys://` for SSL
|
|
636
|
+
- **Environment Variable**: `AK_THREAD__VALKEY__URL`
|
|
637
|
+
|
|
638
|
+
- **TTL (Time to Live)**
|
|
639
|
+
- **Field**: `thread.valkey.ttl`
|
|
640
|
+
- **Default**: `2592000` (30 days)
|
|
641
|
+
- **Description**: Thread TTL in seconds (0 disables)
|
|
642
|
+
- **Environment Variable**: `AK_THREAD__VALKEY__TTL`
|
|
643
|
+
|
|
644
|
+
- **Key Prefix**
|
|
645
|
+
- **Field**: `thread.valkey.prefix`
|
|
646
|
+
- **Default**: `ak:thread:`
|
|
647
|
+
- **Description**: Key prefix for Valkey thread storage
|
|
648
|
+
- **Environment Variable**: `AK_THREAD__VALKEY__PREFIX`
|
|
649
|
+
|
|
575
650
|
##### DynamoDB Thread Store
|
|
576
651
|
|
|
577
652
|
Used when `thread.type=dynamodb`:
|
|
@@ -629,6 +704,104 @@ Required when `thread.type=cosmosdb`:
|
|
|
629
704
|
- **Description**: Cosmos DB table name for thread storage
|
|
630
705
|
- **Environment Variable**: `AK_THREAD__COSMOSDB__TABLE_NAME`
|
|
631
706
|
|
|
707
|
+
#### Scheduling
|
|
708
|
+
|
|
709
|
+
The presence of a `schedule` block enables deferred and recurring chat execution: a chat request carrying a
|
|
710
|
+
`schedule` block (`at` for one-time, `cron` for recurring, plus `timezone` and `session_mode`) is not run —
|
|
711
|
+
it is registered as a scheduled task and acknowledged with HTTP 202. When an occurrence is due, the provider
|
|
712
|
+
delivers the stored prompt into the input queue as a plain chat request, so scheduling requires the queue
|
|
713
|
+
execution pipeline. The block also injects five agent tools (`create_schedule`, `list_schedules`,
|
|
714
|
+
`get_schedule`, `update_schedule`, `delete_schedule`). The management routes
|
|
715
|
+
(`GET`/`PUT`/`DELETE /api/v1/schedules`) are not mounted from config: the application mounts
|
|
716
|
+
`ScheduleRESTRequestHandler` itself — `IOHandler.run(handlers=[ScheduleRESTRequestHandler()])` —
|
|
717
|
+
passing an optional pluggable `Authoriser` to the handler to protect them. Every scheduling request
|
|
718
|
+
needs a `user_id`: it is the owner the task is stored under and the identity later reads and changes
|
|
719
|
+
are checked against. A bare `schedule:` block works for local development — its defaults are the
|
|
720
|
+
`local` provider and the `in_memory` store. See `examples/api/schedule-openai`.
|
|
721
|
+
|
|
722
|
+
- **Provider Type**
|
|
723
|
+
- **Field**: `schedule.provider.type`
|
|
724
|
+
- **Type**: string
|
|
725
|
+
- **Default**: `local`
|
|
726
|
+
- **Options**: `local` (in-process scheduler thread; requires the `in_memory` transport and store),
|
|
727
|
+
`eventbridge` (AWS EventBridge Scheduler; requires the `sqs` transport and the `aws` extra), or a dotted
|
|
728
|
+
path to a `ScheduleProvider` subclass
|
|
729
|
+
- **Environment Variable**: `AK_SCHEDULE__PROVIDER__TYPE`
|
|
730
|
+
|
|
731
|
+
- **Store Type**
|
|
732
|
+
- **Field**: `schedule.store.type`
|
|
733
|
+
- **Type**: string
|
|
734
|
+
- **Default**: `in_memory`
|
|
735
|
+
- **Options**: `in_memory`, `redis`, `valkey`, `dynamodb`, or a dotted path to a `ScheduleStore` subclass
|
|
736
|
+
- **Environment Variable**: `AK_SCHEDULE__STORE__TYPE`
|
|
737
|
+
|
|
738
|
+
- **Tool Scoping**
|
|
739
|
+
- **Field**: `schedule.agents`
|
|
740
|
+
- **Type**: list of strings
|
|
741
|
+
- **Default**: `null` (all agents)
|
|
742
|
+
- **Description**: Agent names the schedule tools and system-prompt guidance attach to
|
|
743
|
+
- **Environment Variable**: `AK_SCHEDULE__AGENTS`
|
|
744
|
+
|
|
745
|
+
##### EventBridge Scheduler Provider
|
|
746
|
+
|
|
747
|
+
Required when `schedule.provider.type=eventbridge`. All three are supplied by the AWS Terraform modules
|
|
748
|
+
when `enable_scheduling = true`; a missing one fails at startup with an `AKConfigError`.
|
|
749
|
+
|
|
750
|
+
- **Group Name**
|
|
751
|
+
- **Field**: `schedule.provider.eventbridge.group_name`
|
|
752
|
+
- **Description**: EventBridge Scheduler schedule-group name the schedules are created in
|
|
753
|
+
- **Environment Variable**: `AK_SCHEDULE__PROVIDER__EVENTBRIDGE__GROUP_NAME`
|
|
754
|
+
|
|
755
|
+
- **Role ARN**
|
|
756
|
+
- **Field**: `schedule.provider.eventbridge.role_arn`
|
|
757
|
+
- **Description**: Execution role ARN Scheduler assumes to deliver triggers to the input queue
|
|
758
|
+
- **Environment Variable**: `AK_SCHEDULE__PROVIDER__EVENTBRIDGE__ROLE_ARN`
|
|
759
|
+
|
|
760
|
+
- **Queue ARN**
|
|
761
|
+
- **Field**: `schedule.provider.eventbridge.queue_arn`
|
|
762
|
+
- **Description**: Input queue ARN used as the schedule target
|
|
763
|
+
- **Environment Variable**: `AK_SCHEDULE__PROVIDER__EVENTBRIDGE__QUEUE_ARN`
|
|
764
|
+
|
|
765
|
+
##### Redis / Valkey Schedule Store
|
|
766
|
+
|
|
767
|
+
Required when `schedule.store.type=redis` (or `valkey`, with `schedule.store.valkey.*` / `AK_SCHEDULE__STORE__VALKEY__*`).
|
|
768
|
+
|
|
769
|
+
- **URL**
|
|
770
|
+
- **Field**: `schedule.store.redis.url`
|
|
771
|
+
- **Default**: `redis://localhost:6379`
|
|
772
|
+
- **Description**: Redis connection URL. Use `rediss://` for SSL
|
|
773
|
+
- **Environment Variable**: `AK_SCHEDULE__STORE__REDIS__URL`
|
|
774
|
+
|
|
775
|
+
- **Key Prefix**
|
|
776
|
+
- **Field**: `schedule.store.redis.prefix`
|
|
777
|
+
- **Default**: `ak:schedule:`
|
|
778
|
+
- **Description**: Key prefix for scheduled-task storage
|
|
779
|
+
- **Environment Variable**: `AK_SCHEDULE__STORE__REDIS__PREFIX`
|
|
780
|
+
|
|
781
|
+
- **TTL (Time to Live)**
|
|
782
|
+
- **Field**: `schedule.store.redis.ttl`
|
|
783
|
+
- **Default**: `0` (disabled)
|
|
784
|
+
- **Description**: Scheduled task TTL in seconds. Unlike threads this defaults to 0 — a task that
|
|
785
|
+
silently expired would stop firing with no audit trail
|
|
786
|
+
- **Environment Variable**: `AK_SCHEDULE__STORE__REDIS__TTL`
|
|
787
|
+
|
|
788
|
+
##### DynamoDB Schedule Store
|
|
789
|
+
|
|
790
|
+
Required when `schedule.store.type=dynamodb`. The table needs a partition key named `task_id` (S) and no
|
|
791
|
+
sort key; the AWS Terraform modules create it when `create_dynamodb_schedule_table = true`.
|
|
792
|
+
|
|
793
|
+
- **Table Name**
|
|
794
|
+
- **Field**: `schedule.store.dynamodb.table_name`
|
|
795
|
+
- **Default**: `ak-agent-schedules`
|
|
796
|
+
- **Description**: DynamoDB table name for scheduled-task storage
|
|
797
|
+
- **Environment Variable**: `AK_SCHEDULE__STORE__DYNAMODB__TABLE_NAME`
|
|
798
|
+
|
|
799
|
+
- **TTL (Time to Live)**
|
|
800
|
+
- **Field**: `schedule.store.dynamodb.ttl`
|
|
801
|
+
- **Default**: `0` (disabled)
|
|
802
|
+
- **Description**: DynamoDB item TTL in seconds
|
|
803
|
+
- **Environment Variable**: `AK_SCHEDULE__STORE__DYNAMODB__TTL`
|
|
804
|
+
|
|
632
805
|
#### Execution Configuration
|
|
633
806
|
|
|
634
807
|
Configure queue-backed and serverless execution behavior.
|
|
@@ -642,16 +815,25 @@ Configure queue-backed and serverless execution behavior.
|
|
|
642
815
|
|
|
643
816
|
- **Queues**
|
|
644
817
|
- **Field**: `execution.queues`
|
|
645
|
-
- **Description**: Queue settings used by
|
|
818
|
+
- **Description**: Queue settings used by the queue execution pipeline (in-process by default, or serverless/containerized backends)
|
|
819
|
+
|
|
820
|
+
- **Transport Type**
|
|
821
|
+
- **Field**: `execution.queues.type`
|
|
822
|
+
- **Options**: `in_memory`, `sqs`, `kafka`, `nats`, or a dotted path to a `QueueTransport` subclass
|
|
823
|
+
- **Default**: none — **mandatory whenever an `execution.queues` block is declared**
|
|
824
|
+
- **Description**: Queue transport used by the pipeline, and the only thing that selects it: queue coordinates are injected per component by a deployment, so they are never used to infer the transport. Declaring the block without a `type` is a configuration error. Omitting the block entirely leaves `in_memory` — a zero-dependency, in-process transport for local development and single-process deployments.
|
|
825
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__TYPE`
|
|
646
826
|
|
|
647
827
|
- **Input Queue URL**
|
|
648
828
|
- **Field**: `execution.queues.input.url`
|
|
649
829
|
- **Default**: `None`
|
|
830
|
+
- **Description**: Input queue URL (`sqs` transport only)
|
|
650
831
|
- **Environment Variable**: `AK_EXECUTION__QUEUES__INPUT__URL`
|
|
651
832
|
|
|
652
833
|
- **Output Queue URL**
|
|
653
834
|
- **Field**: `execution.queues.output.url`
|
|
654
835
|
- **Default**: `None`
|
|
836
|
+
- **Description**: Output queue URL (`sqs` transport only)
|
|
655
837
|
- **Environment Variable**: `AK_EXECUTION__QUEUES__OUTPUT__URL`
|
|
656
838
|
|
|
657
839
|
- **Input Queue Max Receive Count**
|
|
@@ -667,15 +849,150 @@ Configure queue-backed and serverless execution behavior.
|
|
|
667
849
|
- **Input Queue Consumer Count**
|
|
668
850
|
- **Field**: `execution.queues.input.no_of_consumers`
|
|
669
851
|
- **Default**: `5`
|
|
670
|
-
- **Description**: Number of independent consumer threads that each poll the input queue in a continuous loop.
|
|
852
|
+
- **Description**: Number of independent consumer threads that each poll the input queue in a continuous loop. Used by the in-process pipeline (agent-runner worker threads) and by ECS containerized deployments; not used in serverless (Lambda) mode, which has no consumer threads.
|
|
671
853
|
- **Environment Variable**: `AK_EXECUTION__QUEUES__INPUT__NO_OF_CONSUMERS`
|
|
672
854
|
|
|
673
855
|
- **Output Queue Consumer Count**
|
|
674
856
|
- **Field**: `execution.queues.output.no_of_consumers`
|
|
675
857
|
- **Default**: `5`
|
|
676
|
-
- **Description**: Number of independent consumer threads that each poll the output queue in a continuous loop.
|
|
858
|
+
- **Description**: Number of independent consumer threads that each poll the output queue in a continuous loop. Used by the in-process pipeline (response-handler worker threads) and by ECS containerized deployments; not used in serverless (Lambda) mode, which has no consumer threads.
|
|
677
859
|
- **Environment Variable**: `AK_EXECUTION__QUEUES__OUTPUT__NO_OF_CONSUMERS`
|
|
678
860
|
|
|
861
|
+
- **In-Memory Transport Ack Wait**
|
|
862
|
+
- **Field**: `execution.queues.in_memory.ack_wait`
|
|
863
|
+
- **Default**: `300.0`
|
|
864
|
+
- **Description**: Seconds an unacknowledged in-memory message stays invisible before redelivery. Redelivery rescues stuck worker threads; keep this above your longest expected agent run or a slow run will be executed again.
|
|
865
|
+
|
|
866
|
+
- **In-Memory Transport Dedup Window**
|
|
867
|
+
- **Field**: `execution.queues.in_memory.dedup_window`
|
|
868
|
+
- **Default**: `300.0`
|
|
869
|
+
- **Description**: Seconds within which a repeated `message_deduplication_id` is dropped
|
|
870
|
+
|
|
871
|
+
- **Kafka Bootstrap Servers**
|
|
872
|
+
- **Field**: `execution.queues.kafka.bootstrap_servers`
|
|
873
|
+
- **Default**: `localhost:9092`
|
|
874
|
+
- **Description**: Kafka bootstrap servers (host:port, comma-separated)
|
|
875
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__KAFKA__BOOTSTRAP_SERVERS`
|
|
876
|
+
|
|
877
|
+
- **Kafka Input Topic**
|
|
878
|
+
- **Field**: `execution.queues.kafka.input_topic`
|
|
879
|
+
- **Default**: `agent-input`
|
|
880
|
+
- **Description**: Topic carrying chat requests
|
|
881
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__KAFKA__INPUT_TOPIC`
|
|
882
|
+
|
|
883
|
+
- **Kafka Output Topic**
|
|
884
|
+
- **Field**: `execution.queues.kafka.output_topic`
|
|
885
|
+
- **Default**: `agent-output`
|
|
886
|
+
- **Description**: Topic carrying agent replies
|
|
887
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__KAFKA__OUTPUT_TOPIC`
|
|
888
|
+
|
|
889
|
+
- **Kafka Consumer Group Id**
|
|
890
|
+
- **Field**: `execution.queues.kafka.group_id`
|
|
891
|
+
- **Default**: `agent-kernel`
|
|
892
|
+
- **Description**: Consumer group id prefix; the input and output consumers append their queue name to it
|
|
893
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__KAFKA__GROUP_ID`
|
|
894
|
+
|
|
895
|
+
- **Kafka Dead-Letter Topic Suffix**
|
|
896
|
+
- **Field**: `execution.queues.kafka.dlq_suffix`
|
|
897
|
+
- **Default**: `.dlq`
|
|
898
|
+
- **Description**: Suffix appended to a topic name for its dead-letter topic, where permanently failed records are routed
|
|
899
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__KAFKA__DLQ_SUFFIX`
|
|
900
|
+
|
|
901
|
+
- **Kafka Retry Backoff**
|
|
902
|
+
- **Field**: `execution.queues.kafka.retry_backoff`
|
|
903
|
+
- **Default**: `2.0`
|
|
904
|
+
- **Description**: Seconds to wait before an in-process retry of a failed record
|
|
905
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__KAFKA__RETRY_BACKOFF`
|
|
906
|
+
|
|
907
|
+
- **Kafka Delivery Timeout**
|
|
908
|
+
- **Field**: `execution.queues.kafka.delivery_timeout`
|
|
909
|
+
- **Default**: `30.0`
|
|
910
|
+
- **Description**: Seconds to wait for the broker to confirm a produced message before failing the send
|
|
911
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__KAFKA__DELIVERY_TIMEOUT`
|
|
912
|
+
|
|
913
|
+
- **Kafka Metadata Timeout**
|
|
914
|
+
- **Field**: `execution.queues.kafka.metadata_timeout`
|
|
915
|
+
- **Default**: `5.0`
|
|
916
|
+
- **Description**: Seconds to wait for topic metadata during the startup partition-capacity check (the check is skipped on timeout)
|
|
917
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__KAFKA__METADATA_TIMEOUT`
|
|
918
|
+
|
|
919
|
+
- **Kafka Client Config**
|
|
920
|
+
- **Field**: `execution.queues.kafka.client_config`
|
|
921
|
+
- **Default**: `{}`
|
|
922
|
+
- **Description**: Passthrough settings merged into the `confluent-kafka` producer and consumer configs (SASL, TLS, tuning); set via `config.yaml`, not individually exported as environment variables
|
|
923
|
+
|
|
924
|
+
- **NATS Server URL**
|
|
925
|
+
- **Field**: `execution.queues.nats.url`
|
|
926
|
+
- **Default**: `nats://localhost:4222`
|
|
927
|
+
- **Description**: NATS server URL (comma-separated for a cluster)
|
|
928
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__NATS__URL`
|
|
929
|
+
|
|
930
|
+
- **NATS Input Stream**
|
|
931
|
+
- **Field**: `execution.queues.nats.input_stream`
|
|
932
|
+
- **Default**: `AGENT_REQUESTS`
|
|
933
|
+
- **Description**: JetStream stream carrying chat requests
|
|
934
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__NATS__INPUT_STREAM`
|
|
935
|
+
|
|
936
|
+
- **NATS Input Subject Prefix**
|
|
937
|
+
- **Field**: `execution.queues.nats.input_subject_prefix`
|
|
938
|
+
- **Default**: `chat.req`
|
|
939
|
+
- **Description**: Subject prefix for chat requests
|
|
940
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__NATS__INPUT_SUBJECT_PREFIX`
|
|
941
|
+
|
|
942
|
+
- **NATS Output Stream**
|
|
943
|
+
- **Field**: `execution.queues.nats.output_stream`
|
|
944
|
+
- **Default**: `AGENT_REPLIES`
|
|
945
|
+
- **Description**: JetStream stream carrying agent replies
|
|
946
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__NATS__OUTPUT_STREAM`
|
|
947
|
+
|
|
948
|
+
- **NATS Output Subject Prefix**
|
|
949
|
+
- **Field**: `execution.queues.nats.output_subject_prefix`
|
|
950
|
+
- **Default**: `chat.out`
|
|
951
|
+
- **Description**: Subject prefix for agent replies
|
|
952
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__NATS__OUTPUT_SUBJECT_PREFIX`
|
|
953
|
+
|
|
954
|
+
- **NATS Partitions**
|
|
955
|
+
- **Field**: `execution.queues.nats.partitions`
|
|
956
|
+
- **Default**: `32`
|
|
957
|
+
- **Description**: Number of partition subjects per stream, each served by its own durable consumer. Sessions hash to a partition, so this caps how many messages can be in flight at once: keep it at or above `no_of_consumers` x replicas. Changing it re-maps sessions, so size it up front (idle partitions cost almost nothing)
|
|
958
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__NATS__PARTITIONS`
|
|
959
|
+
|
|
960
|
+
- **NATS Ack Wait**
|
|
961
|
+
- **Field**: `execution.queues.nats.ack_wait`
|
|
962
|
+
- **Default**: `300.0`
|
|
963
|
+
- **Description**: Seconds the server waits for an acknowledgement before redelivering. Must exceed your longest agent turn: a turn that outlives it is redelivered and executed a second time
|
|
964
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__NATS__ACK_WAIT`
|
|
965
|
+
|
|
966
|
+
- **NATS Retry Backoff**
|
|
967
|
+
- **Field**: `execution.queues.nats.retry_backoff`
|
|
968
|
+
- **Default**: `2.0`
|
|
969
|
+
- **Description**: Seconds to delay a redelivery after a failed message (nak delay)
|
|
970
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__NATS__RETRY_BACKOFF`
|
|
971
|
+
|
|
972
|
+
- **NATS Duplicate Window**
|
|
973
|
+
- **Field**: `execution.queues.nats.duplicate_window`
|
|
974
|
+
- **Default**: `300.0`
|
|
975
|
+
- **Description**: Seconds within which a repeated dedup id is dropped by the stream (SQS parity)
|
|
976
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__NATS__DUPLICATE_WINDOW`
|
|
977
|
+
|
|
978
|
+
- **NATS Max Age**
|
|
979
|
+
- **Field**: `execution.queues.nats.max_age`
|
|
980
|
+
- **Default**: `86400.0`
|
|
981
|
+
- **Description**: Seconds before an unconsumed message is discarded. A safety net: work-queue messages are otherwise kept forever
|
|
982
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__NATS__MAX_AGE`
|
|
983
|
+
|
|
984
|
+
- **NATS Request Timeout**
|
|
985
|
+
- **Field**: `execution.queues.nats.request_timeout`
|
|
986
|
+
- **Default**: `10.0`
|
|
987
|
+
- **Description**: Seconds to wait for a NATS request (publish, ack, management call) to complete
|
|
988
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__NATS__REQUEST_TIMEOUT`
|
|
989
|
+
|
|
990
|
+
- **NATS Auto Provision**
|
|
991
|
+
- **Field**: `execution.queues.nats.auto_provision`
|
|
992
|
+
- **Default**: `false`
|
|
993
|
+
- **Description**: Create the streams and per-partition consumers at startup if missing. Convenient for local and dev clusters; leave false in production, where the objects are managed declaratively (NACK CRs) and a missing object should fail loudly instead of being created with defaults
|
|
994
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__NATS__AUTO_PROVISION`
|
|
995
|
+
|
|
679
996
|
- **Queue Batch Size**
|
|
680
997
|
- **Field**: `execution.queues.batch_size`
|
|
681
998
|
- **Default**: `None`
|
|
@@ -688,7 +1005,8 @@ Configure queue-backed and serverless execution behavior.
|
|
|
688
1005
|
|
|
689
1006
|
- **Type**
|
|
690
1007
|
- **Field**: `execution.response_store.type`
|
|
691
|
-
- **
|
|
1008
|
+
- **Options**: `in_memory`, `redis`, `valkey`, `dynamodb`, or a dotted path to a `ResponseStore` subclass
|
|
1009
|
+
- **Description**: Response store backend selector configured in `config.yaml`; this value is not exported as an environment variable. Defaults to an in-process `in_memory` store when unset and no other backend is configured.
|
|
692
1010
|
|
|
693
1011
|
- **Retry Count**
|
|
694
1012
|
- **Field**: `execution.response_store.retry_count`
|
|
@@ -716,7 +1034,7 @@ Configure queue-backed and serverless execution behavior.
|
|
|
716
1034
|
- **Environment Variables**: `AK_EXECUTION__RESPONSE_STORE__DYNAMODB__TABLE_NAME`, `AK_EXECUTION__RESPONSE_STORE__DYNAMODB__TTL`
|
|
717
1035
|
- **Description**: DynamoDB-backed response storage with table name and TTL
|
|
718
1036
|
|
|
719
|
-
Use Redis, Valkey, or DynamoDB for
|
|
1037
|
+
Use the built-in `in_memory` response store for local development and single-process deployments (zero extra services required), or Redis, Valkey, or DynamoDB for distributed/serverless deployments. The runtime accepts `BaseRunRequest` payloads directly, normalizes them internally when queueing is required, and uses `request_id` plus optional `user_id` as queue message attributes.
|
|
720
1038
|
|
|
721
1039
|
#### API Configuration
|
|
722
1040
|
|
|
@@ -796,6 +1114,52 @@ Configure the REST API server (if using the API module).
|
|
|
796
1114
|
- The MCP server is always mounted at `/mcp` on the main API server.
|
|
797
1115
|
- Full URL: `http://{api.host}:{api.port}/mcp` — use `api.port` / `AK_API__PORT` to change the port.
|
|
798
1116
|
|
|
1117
|
+
#### AG-UI Configuration
|
|
1118
|
+
|
|
1119
|
+
Mounting `AGUIRequestHandler` (from `agentkernel.agui`, requires the `agentkernel[agui]` extra — `pip
|
|
1120
|
+
install "agentkernel[agui]"`) is what enables the [AG-UI protocol](https://github.com/ag-ui-protocol/ag-ui)
|
|
1121
|
+
surface; the `agui` block only parameterizes it, and it never switches the surface on by itself.
|
|
1122
|
+
`AGUIRequestHandler` refuses to construct without an `Authoriser` or `AuthValidator` — AG-UI runs
|
|
1123
|
+
agents on a caller's behalf and has no anonymous mode. Only agents whose runner declares
|
|
1124
|
+
`supports_streaming = True` are reachable (currently OpenAI Agents SDK, LangGraph, Google ADK, and
|
|
1125
|
+
Pydantic AI — not CrewAI or Smolagents). See `examples/api/agui`.
|
|
1126
|
+
|
|
1127
|
+
- **Agents**
|
|
1128
|
+
- **Field**: `agui.agents`
|
|
1129
|
+
- **Default**: unset (every streaming-capable agent is reachable)
|
|
1130
|
+
- **Description**: Agent names reachable over AG-UI
|
|
1131
|
+
- **Environment Variable**: `AK_AGUI__AGENTS` (comma-separated)
|
|
1132
|
+
|
|
1133
|
+
- **Prefix**
|
|
1134
|
+
- **Field**: `agui.prefix`
|
|
1135
|
+
- **Default**: `/agui`
|
|
1136
|
+
- **Description**: Route prefix for the AG-UI surface
|
|
1137
|
+
- **Environment Variable**: `AK_AGUI__PREFIX`
|
|
1138
|
+
|
|
1139
|
+
- **Default Agent**
|
|
1140
|
+
- **Field**: `agui.default_agent`
|
|
1141
|
+
- **Default**: unset
|
|
1142
|
+
- **Description**: Agent served on the bare prefix route (`POST {prefix}`, in addition to `POST {prefix}/{agent_name}`); must be one of `agui.agents` when that list is set
|
|
1143
|
+
- **Environment Variable**: `AK_AGUI__DEFAULT_AGENT`
|
|
1144
|
+
|
|
1145
|
+
- **State Tools**
|
|
1146
|
+
- **Field**: `agui.state.enabled`
|
|
1147
|
+
- **Default**: `false`
|
|
1148
|
+
- **Description**: Attach `get_agui_state` / `update_agui_state`, giving agents read/write access to AG-UI's shared JSON state (a `StateSnapshot` is streamed back only when the state actually changed)
|
|
1149
|
+
- **Environment Variable**: `AK_AGUI__STATE__ENABLED`
|
|
1150
|
+
- **Field**: `agui.state.agents`
|
|
1151
|
+
- **Default**: unset (every agent gets the tools)
|
|
1152
|
+
- **Environment Variable**: `AK_AGUI__STATE__AGENTS` (comma-separated)
|
|
1153
|
+
|
|
1154
|
+
- **Client Context Tools**
|
|
1155
|
+
- **Field**: `agui.client_context.enabled`
|
|
1156
|
+
- **Default**: `false`
|
|
1157
|
+
- **Description**: Attach the read-only `get_forwarded_props` / `get_agui_context` tools over a run's `forwardedProps` and `context` fields; never injected into the prompt automatically
|
|
1158
|
+
- **Environment Variable**: `AK_AGUI__CLIENT_CONTEXT__ENABLED`
|
|
1159
|
+
- **Field**: `agui.client_context.agents`
|
|
1160
|
+
- **Default**: unset (every agent gets the tools)
|
|
1161
|
+
- **Environment Variable**: `AK_AGUI__CLIENT_CONTEXT__AGENTS` (comma-separated)
|
|
1162
|
+
|
|
799
1163
|
#### Trace (Observability) Configuration
|
|
800
1164
|
|
|
801
1165
|
Configure tracing and observability for monitoring agent execution.
|
|
@@ -889,38 +1253,45 @@ Configure test comparison modes for automated testing. Test configuration is sep
|
|
|
889
1253
|
|
|
890
1254
|
- **Mode**
|
|
891
1255
|
- **Field**: `mode`
|
|
892
|
-
- **Options**: `
|
|
1256
|
+
- **Options**: `score`, `llm`, `fallback`
|
|
893
1257
|
- **Default**: `fallback`
|
|
894
1258
|
- **Description**: Test comparison mode
|
|
895
1259
|
- **Environment Variable**: `AK_TEST__MODE`
|
|
896
1260
|
|
|
897
|
-
- **
|
|
898
|
-
- **Field**: `
|
|
1261
|
+
- **Evaluator**
|
|
1262
|
+
- **Field**: `evaluator`
|
|
1263
|
+
- **Default**: `deepeval`
|
|
1264
|
+
- **Description**: Built-in evaluator short name, or a dotted path to your own `AKEvaluator` subclass
|
|
1265
|
+
- **Environment Variable**: `AK_TEST__EVALUATOR`
|
|
1266
|
+
|
|
1267
|
+
- **Llm Model**
|
|
1268
|
+
- **Field**: `llm.model`
|
|
899
1269
|
- **Default**: `gpt-4o-mini`
|
|
900
|
-
- **Description**: LLM model for
|
|
901
|
-
- **Environment Variable**: `
|
|
1270
|
+
- **Description**: LLM model for llm evaluation
|
|
1271
|
+
- **Environment Variable**: `AK_TEST__LLM__MODEL`
|
|
902
1272
|
|
|
903
|
-
- **
|
|
904
|
-
- **Field**: `
|
|
1273
|
+
- **Llm Provider**
|
|
1274
|
+
- **Field**: `llm.provider`
|
|
905
1275
|
- **Default**: `openai`
|
|
906
|
-
- **Description**: LLM provider for
|
|
907
|
-
- **Environment Variable**: `
|
|
1276
|
+
- **Description**: LLM provider for llm evaluation
|
|
1277
|
+
- **Environment Variable**: `AK_TEST__LLM__PROVIDER`
|
|
908
1278
|
|
|
909
|
-
- **
|
|
910
|
-
- **Field**: `
|
|
1279
|
+
- **Llm Embedding Model**
|
|
1280
|
+
- **Field**: `llm.embedding_model`
|
|
911
1281
|
- **Default**: `text-embedding-3-small`
|
|
912
|
-
- **Description**: Embedding model
|
|
913
|
-
- **Environment Variable**: `
|
|
1282
|
+
- **Description**: Embedding model, unconsumed by any built-in v1 metric
|
|
1283
|
+
- **Environment Variable**: `AK_TEST__LLM__EMBEDDING_MODEL`
|
|
914
1284
|
|
|
915
1285
|
**Test Modes:**
|
|
916
|
-
- `
|
|
917
|
-
- `
|
|
918
|
-
- `fallback`: Tries
|
|
1286
|
+
- `score`: Deterministic, offline string-match scoring via the configured evaluator (built-in DeepEval evaluator: `Scorer.quasi_exact_match_score`)
|
|
1287
|
+
- `llm`: LLM-as-judge evaluation via the configured evaluator (built-in DeepEval evaluator: `GEval`) for semantic similarity
|
|
1288
|
+
- `fallback`: Tries score first, falls back to llm if score fails
|
|
919
1289
|
|
|
920
1290
|
```yaml
|
|
921
1291
|
# test-config.yaml (separate file — not config.yaml)
|
|
922
1292
|
mode: fallback
|
|
923
|
-
|
|
1293
|
+
evaluator: deepeval
|
|
1294
|
+
llm:
|
|
924
1295
|
model: gpt-4o-mini
|
|
925
1296
|
provider: openai
|
|
926
1297
|
embedding_model: text-embedding-3-small
|
|
@@ -1147,7 +1518,7 @@ Key fields:
|
|
|
1147
1518
|
user's identity.
|
|
1148
1519
|
- **`broker.flavor`** — `thread` (default, for CLI/REST) or `embedded` (inline/synchronous).
|
|
1149
1520
|
|
|
1150
|
-
See the [Sandbox guide](https://kernel.yaala.ai/docs/
|
|
1521
|
+
See the [Sandbox guide](https://kernel.yaala.ai/docs/advanced/sandbox) for the full
|
|
1151
1522
|
reference and the `examples/sandbox` and `examples/sandbox/identity` examples.
|
|
1152
1523
|
|
|
1153
1524
|
#### Messaging Platform Integrations
|
|
@@ -1212,6 +1583,30 @@ Configure integrations with messaging platforms.
|
|
|
1212
1583
|
- **Bot Token**, **Webhook Secret**, **API Version**
|
|
1213
1584
|
- **Environment Variables**: `AK_TELEGRAM__BOT_TOKEN`, `AK_TELEGRAM__WEBHOOK_SECRET`, `AK_TELEGRAM__API_VERSION`
|
|
1214
1585
|
|
|
1586
|
+
##### Microsoft Teams
|
|
1587
|
+
|
|
1588
|
+
- **Agent**
|
|
1589
|
+
- **Field**: `teams.agent`
|
|
1590
|
+
- **Default**: `""`
|
|
1591
|
+
- **Description**: Default agent for Microsoft Teams interactions
|
|
1592
|
+
- **Environment Variable**: `AK_TEAMS__AGENT`
|
|
1593
|
+
|
|
1594
|
+
- **Agent Acknowledgement**
|
|
1595
|
+
- **Field**: `teams.agent_acknowledgement`
|
|
1596
|
+
- **Default**: `""`
|
|
1597
|
+
- **Description**: Message sent as an acknowledgement when a Teams message is received
|
|
1598
|
+
- **Environment Variable**: `AK_TEAMS__AGENT_ACKNOWLEDGEMENT`
|
|
1599
|
+
|
|
1600
|
+
- **App ID**, **App Password**
|
|
1601
|
+
- **Description**: Azure Bot / Entra ID application (client) ID and client secret. Both are required
|
|
1602
|
+
- **Environment Variables**: `AK_TEAMS__APP_ID`, `AK_TEAMS__APP_PASSWORD`
|
|
1603
|
+
|
|
1604
|
+
- **Tenant ID**
|
|
1605
|
+
- **Field**: `teams.tenant_id`
|
|
1606
|
+
- **Default**: `""`
|
|
1607
|
+
- **Description**: Entra ID tenant that owns the bot's app registration. Required only for a single-tenant registration, whose channel tokens must be issued by its own tenant; leave empty for a multi-tenant bot. Also the fallback tenant for the app-only token used to download attachments whose URL is not pre-authenticated, when the incoming activity carries none
|
|
1608
|
+
- **Environment Variable**: `AK_TEAMS__TENANT_ID`
|
|
1609
|
+
|
|
1215
1610
|
##### Gmail
|
|
1216
1611
|
|
|
1217
1612
|
- **Agent**
|
|
@@ -1250,10 +1645,11 @@ export AK_TRACE__TYPE=langfuse # or openllmetry, logfire
|
|
|
1250
1645
|
# For Logfire:
|
|
1251
1646
|
# export LOGFIRE_TOKEN=your-write-token
|
|
1252
1647
|
# Test harness (loaded from the separate test-config.yaml — see Test Configuration)
|
|
1253
|
-
export AK_TEST__MODE=fallback # Options:
|
|
1254
|
-
export
|
|
1255
|
-
export
|
|
1256
|
-
export
|
|
1648
|
+
export AK_TEST__MODE=fallback # Options: score, llm, fallback
|
|
1649
|
+
export AK_TEST__EVALUATOR=deepeval # Built-in short name, or a dotted path to your own AKEvaluator subclass
|
|
1650
|
+
export AK_TEST__LLM__MODEL=gpt-4o-mini
|
|
1651
|
+
export AK_TEST__LLM__PROVIDER=openai
|
|
1652
|
+
export AK_TEST__LLM__EMBEDDING_MODEL=text-embedding-3-small
|
|
1257
1653
|
# Guardrails configuration
|
|
1258
1654
|
export AK_GUARDRAIL__INPUT__ENABLED=false
|
|
1259
1655
|
export AK_GUARDRAIL__INPUT__TYPE=openai
|
|
@@ -1314,7 +1710,7 @@ session:
|
|
|
1314
1710
|
url: redis://localhost:6379
|
|
1315
1711
|
ttl: 604800
|
|
1316
1712
|
prefix: "ak:sessions:"
|
|
1317
|
-
thread: # optional
|
|
1713
|
+
thread: # optional; configures Conversation Thread Support (enabled by mounting AgentThreadRequestHandler)
|
|
1318
1714
|
type: redis
|
|
1319
1715
|
redis:
|
|
1320
1716
|
url: redis://localhost:6379
|
|
@@ -1323,17 +1719,42 @@ thread: # optional — enables Conversation Thread Support (user_id becomes requ
|
|
|
1323
1719
|
execution:
|
|
1324
1720
|
mode: rest_sync
|
|
1325
1721
|
queues:
|
|
1722
|
+
type: sqs # in_memory | sqs | kafka | nats, or a dotted path to a QueueTransport subclass — mandatory whenever this block is declared
|
|
1326
1723
|
input:
|
|
1327
|
-
url: https://queue.example.com/<accountno>/<queuename>
|
|
1724
|
+
url: https://queue.example.com/<accountno>/<queuename> # sqs transport only
|
|
1328
1725
|
max_receive_count: 3
|
|
1329
|
-
no_of_consumers: 5 #
|
|
1726
|
+
no_of_consumers: 5 # in-process pipeline + containerized deployments, ignored by serverless deployments
|
|
1330
1727
|
output:
|
|
1331
|
-
url: https://queue.example.com/<accountno>/<queuename>
|
|
1728
|
+
url: https://queue.example.com/<accountno>/<queuename> # sqs transport only
|
|
1332
1729
|
max_receive_count: 3
|
|
1333
|
-
no_of_consumers: 5 #
|
|
1730
|
+
no_of_consumers: 5 # in-process pipeline + containerized deployments, ignored by serverless deployments
|
|
1731
|
+
# in_memory: {ack_wait: 300.0, dedup_window: 300.0} # in_memory transport settings, unused otherwise
|
|
1732
|
+
# kafka: # kafka transport settings, unused otherwise
|
|
1733
|
+
# bootstrap_servers: localhost:9092
|
|
1734
|
+
# input_topic: agent-input
|
|
1735
|
+
# output_topic: agent-output
|
|
1736
|
+
# group_id: agent-kernel
|
|
1737
|
+
# dlq_suffix: .dlq
|
|
1738
|
+
# retry_backoff: 2.0
|
|
1739
|
+
# delivery_timeout: 30.0
|
|
1740
|
+
# metadata_timeout: 5.0
|
|
1741
|
+
# client_config: {} # passthrough confluent-kafka producer/consumer settings (SASL, TLS, tuning)
|
|
1742
|
+
# nats: # nats transport settings, unused otherwise
|
|
1743
|
+
# url: nats://localhost:4222
|
|
1744
|
+
# input_stream: AGENT_REQUESTS
|
|
1745
|
+
# input_subject_prefix: chat.req
|
|
1746
|
+
# output_stream: AGENT_REPLIES
|
|
1747
|
+
# output_subject_prefix: chat.out
|
|
1748
|
+
# partitions: 32
|
|
1749
|
+
# ack_wait: 300.0
|
|
1750
|
+
# retry_backoff: 2.0
|
|
1751
|
+
# duplicate_window: 300.0
|
|
1752
|
+
# max_age: 86400.0
|
|
1753
|
+
# request_timeout: 10.0
|
|
1754
|
+
# auto_provision: false # true for local/dev; leave false where NACK CRs own the objects
|
|
1334
1755
|
# batch_size is set by the deployment tooling — set via AK_EXECUTION__QUEUES__BATCH_SIZE, never here
|
|
1335
1756
|
response_store:
|
|
1336
|
-
type: redis
|
|
1757
|
+
type: redis # in_memory | redis | valkey | dynamodb | dotted path — omit for the built-in in_memory store
|
|
1337
1758
|
retry_count: 5
|
|
1338
1759
|
delay: 5
|
|
1339
1760
|
redis: # if this is given, then valkey/dynamodb response store parts cannot be given
|
|
@@ -1394,6 +1815,10 @@ instagram:
|
|
|
1394
1815
|
agent: my-agent
|
|
1395
1816
|
telegram:
|
|
1396
1817
|
agent: my-agent
|
|
1818
|
+
teams:
|
|
1819
|
+
agent: my-agent
|
|
1820
|
+
app_id: "<azure-app-client-id>"
|
|
1821
|
+
app_password: "<azure-app-client-secret>"
|
|
1397
1822
|
gmail:
|
|
1398
1823
|
agent: my-agent
|
|
1399
1824
|
poll_interval: 30
|
|
@@ -1466,6 +1891,11 @@ gmail:
|
|
|
1466
1891
|
"telegram": {
|
|
1467
1892
|
"agent": "my-agent"
|
|
1468
1893
|
},
|
|
1894
|
+
"teams": {
|
|
1895
|
+
"agent": "my-agent",
|
|
1896
|
+
"app_id": "<azure-app-client-id>",
|
|
1897
|
+
"app_password": "<azure-app-client-secret>"
|
|
1898
|
+
},
|
|
1469
1899
|
"gmail": {
|
|
1470
1900
|
"agent": "my-agent",
|
|
1471
1901
|
"poll_interval": 30,
|
|
@@ -1484,19 +1914,20 @@ gmail:
|
|
|
1484
1914
|
|
|
1485
1915
|
### Test Configuration (test-config.yaml)
|
|
1486
1916
|
|
|
1487
|
-
Test harness configuration (comparison mode
|
|
1917
|
+
Test harness configuration (comparison mode, evaluator backend, llm models) is separate from the application configuration. It is not part of `config.yaml` — it lives in its own `test-config.yaml` file, resolved from the current working directory, and is only loaded when the testing utilities (`agentkernel.test`) are used. A legacy `test:` section in `config.yaml` is ignored. See [Test Configuration](#test-configuration) under Configuration Options for the full list of fields and defaults.
|
|
1488
1918
|
|
|
1489
1919
|
**test-config.yaml:**
|
|
1490
1920
|
|
|
1491
1921
|
```yaml
|
|
1492
1922
|
mode: fallback
|
|
1493
|
-
|
|
1923
|
+
evaluator: deepeval
|
|
1924
|
+
llm:
|
|
1494
1925
|
model: gpt-4o-mini
|
|
1495
1926
|
provider: openai
|
|
1496
1927
|
embedding_model: text-embedding-3-small
|
|
1497
1928
|
```
|
|
1498
1929
|
|
|
1499
|
-
Note that the file is un-nested — there is no top-level `test:` key. If the file is missing, defaults apply silently (
|
|
1930
|
+
Note that the file is un-nested — there is no top-level `test:` key. If the file is missing, defaults apply silently (score and fallback tests need no configuration file at all).
|
|
1500
1931
|
|
|
1501
1932
|
**Override the test config file path:**
|
|
1502
1933
|
|
|
@@ -1507,14 +1938,13 @@ export AK_TEST_CONFIG_PATH_OVERRIDE=/path/to/test-config.yaml
|
|
|
1507
1938
|
**Environment variables** use the `AK_TEST__` prefix and override `test-config.yaml` values:
|
|
1508
1939
|
|
|
1509
1940
|
```bash
|
|
1510
|
-
export AK_TEST__MODE=fallback # Options:
|
|
1511
|
-
export
|
|
1512
|
-
export
|
|
1513
|
-
export
|
|
1941
|
+
export AK_TEST__MODE=fallback # Options: score, llm, fallback
|
|
1942
|
+
export AK_TEST__EVALUATOR=deepeval
|
|
1943
|
+
export AK_TEST__LLM__MODEL=gpt-4o-mini
|
|
1944
|
+
export AK_TEST__LLM__PROVIDER=openai
|
|
1945
|
+
export AK_TEST__LLM__EMBEDDING_MODEL=text-embedding-3-small
|
|
1514
1946
|
```
|
|
1515
1947
|
|
|
1516
|
-
> **Migration note:** Earlier versions read test configuration from a `test:` section in `config.yaml`. That section is now ignored — move its contents (un-nested, without the `test:` key) to a sibling `test-config.yaml`. The `AK_TEST__*` environment variables are unchanged, so CI pipelines that use them need no updates.
|
|
1517
|
-
|
|
1518
1948
|
## Extensibility
|
|
1519
1949
|
|
|
1520
1950
|
### Custom Framework Adapters
|