agentkernel 0.6.1__tar.gz → 0.8.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.6.1 → agentkernel-0.8.0}/PKG-INFO +375 -45
- {agentkernel-0.6.1 → agentkernel-0.8.0}/README.md +355 -44
- {agentkernel-0.6.1 → agentkernel-0.8.0}/pyproject.toml +34 -2
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/__init__.py +0 -5
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/api/__init__.py +1 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/api/handler.py +6 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/api/http.py +9 -0
- agentkernel-0.8.0/src/agentkernel/api/thread.py +107 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/__init__.py +1 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/base.py +2 -2
- agentkernel-0.8.0/src/agentkernel/core/builder.py +132 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/chat_service.py +113 -9
- agentkernel-0.8.0/src/agentkernel/core/config.py +656 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/hooks.py +4 -1
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/model.py +86 -22
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/multimodal/hooks.py +44 -24
- agentkernel-0.8.0/src/agentkernel/core/multimodal/storage/dynamodb.py +108 -0
- agentkernel-0.8.0/src/agentkernel/core/multimodal/storage/redis.py +66 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/multimodal/storage/storage_manager.py +22 -10
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/runtime.py +31 -10
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/service.py +5 -3
- agentkernel-0.8.0/src/agentkernel/core/session/cosmosdb.py +125 -0
- agentkernel-0.8.0/src/agentkernel/core/session/dynamodb.py +117 -0
- agentkernel-0.8.0/src/agentkernel/core/session/firestore.py +112 -0
- agentkernel-0.8.0/src/agentkernel/core/session/redis.py +95 -0
- agentkernel-0.8.0/src/agentkernel/core/session/valkey.py +95 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/__init__.py +16 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/authoriser.py +28 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/manager.py +288 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/model.py +69 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/naming.py +143 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/store/__init__.py +5 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/store/base.py +184 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/store/cosmosdb.py +228 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/store/dynamodb.py +256 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/store/firestore.py +201 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/store/in_memory.py +115 -0
- agentkernel-0.8.0/src/agentkernel/core/thread/store/redis.py +199 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/tool.py +31 -6
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/util/config_yaml_util.py +20 -5
- agentkernel-0.8.0/src/agentkernel/core/util/driver/__init__.py +15 -0
- agentkernel-0.8.0/src/agentkernel/core/util/driver/base.py +67 -0
- agentkernel-0.8.0/src/agentkernel/core/util/driver/cosmosdb.py +222 -0
- agentkernel-0.8.0/src/agentkernel/core/util/driver/dynamodb.py +182 -0
- agentkernel-0.8.0/src/agentkernel/core/util/driver/firestore.py +151 -0
- agentkernel-0.8.0/src/agentkernel/core/util/driver/redis.py +18 -0
- agentkernel-0.8.0/src/agentkernel/core/util/driver/redis_like.py +298 -0
- agentkernel-0.8.0/src/agentkernel/core/util/driver/valkey.py +18 -0
- agentkernel-0.8.0/src/agentkernel/core/util/factory.py +64 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/__init__.py +2 -0
- agentkernel-0.8.0/src/agentkernel/deployment/aws/containerized/__init__.py +3 -0
- agentkernel-0.8.0/src/agentkernel/deployment/aws/containerized/akagentrunner.py +118 -0
- agentkernel-0.8.0/src/agentkernel/deployment/aws/containerized/akoutputconsumer.py +131 -0
- agentkernel-0.8.0/src/agentkernel/deployment/aws/containerized/core/__init__.py +1 -0
- agentkernel-0.8.0/src/agentkernel/deployment/aws/containerized/core/sqs_consumer.py +175 -0
- agentkernel-0.8.0/src/agentkernel/deployment/aws/containerized/ecs_io_handler.py +51 -0
- agentkernel-0.8.0/src/agentkernel/deployment/aws/containerized/ecs_queue_handler.py +39 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/core/response_store/dynamodb.py +5 -15
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/core/response_store/handler.py +19 -1
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/core/response_store/redis.py +5 -14
- agentkernel-0.8.0/src/agentkernel/deployment/aws/core/response_store/valkey.py +32 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/core/sqs_handler.py +80 -47
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/serverless/akagentrunner.py +25 -13
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/serverless/akresponsehandler.py +11 -9
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/serverless/core/router/rest_lambda.py +2 -3
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/serverless/core/router/ws_lambda.py +2 -3
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/serverless/core/sqs_consumer.py +18 -4
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/azure/akfunction.py +2 -0
- agentkernel-0.8.0/src/agentkernel/deployment/common/__init__.py +2 -0
- agentkernel-0.8.0/src/agentkernel/deployment/common/queue_consumer.py +55 -0
- agentkernel-0.8.0/src/agentkernel/deployment/common/queue_handler.py +84 -0
- agentkernel-0.8.0/src/agentkernel/deployment/common/queue_request_handler.py +185 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/common/response_store.py +32 -5
- agentkernel-0.8.0/src/agentkernel/deployment/common/thread_runner.py +90 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/framework/adk/adk.py +15 -4
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/framework/crewai/crewai.py +145 -17
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/framework/langgraph/langgraph.py +17 -9
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/framework/openai/openai.py +9 -4
- agentkernel-0.8.0/src/agentkernel/framework/pydanticai/__init__.py +16 -0
- agentkernel-0.8.0/src/agentkernel/framework/pydanticai/pydanticai.py +376 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/framework/smolagents/smolagents.py +10 -5
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/guardrail/bedrock.py +4 -7
- agentkernel-0.8.0/src/agentkernel/guardrail/guardrail.py +117 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/guardrail/openai.py +7 -6
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/guardrail/walledai.py +37 -11
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/gmail/gmail_chat.py +1 -1
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/instagram/instagram_chat.py +1 -1
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/messenger/messenger_chat.py +2 -2
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/slack/slack_chat.py +3 -3
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/teams/teams_chat.py +3 -2
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/telegram/telegram_chat.py +1 -1
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/whatsapp/whatsapp_chat.py +1 -1
- agentkernel-0.8.0/src/agentkernel/pydanticai.py +8 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/__init__.py +47 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/base.py +154 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/broker/__init__.py +8 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/broker/base.py +91 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/broker/embedded.py +44 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/broker/thread.py +171 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/broker/worker.py +222 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/errors.py +63 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/factory.py +202 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/hooks.py +149 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/manager.py +470 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/model.py +115 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/principal.py +39 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/providers/__init__.py +7 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/providers/daytona.py +196 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/providers/docker.py +204 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/providers/e2b.py +138 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/providers/ec2_ssm.py +234 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/providers/local_subprocess.py +152 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/testing.py +251 -0
- agentkernel-0.8.0/src/agentkernel/sandbox/tools.py +352 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/ak-add-capabilities/SKILL.md +252 -26
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/ak-add-capabilities/evals/evals.json +109 -11
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/ak-add-integration/SKILL.md +8 -8
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/ak-add-integration/evals/evals.json +1 -1
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/ak-build/SKILL.md +52 -3
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/ak-build/evals/evals.json +26 -1
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/ak-cloud-deploy/SKILL.md +184 -58
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/ak-cloud-deploy/evals/evals.json +32 -1
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/ak-init/SKILL.md +34 -13
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/ak-init/evals/evals.json +19 -2
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/ak-test/SKILL.md +4 -2
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/ak-test/evals/evals.json +1 -1
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/test/__init__.py +1 -0
- agentkernel-0.8.0/src/agentkernel/test/config.py +55 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/test/test.py +25 -5
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/base.py +7 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/langfuse/langfuse.py +8 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/langfuse/langgraph.py +10 -6
- agentkernel-0.8.0/src/agentkernel/trace/langfuse/pydanticai.py +47 -0
- agentkernel-0.8.0/src/agentkernel/trace/logfire/adk.py +35 -0
- agentkernel-0.8.0/src/agentkernel/trace/logfire/crewai.py +37 -0
- agentkernel-0.8.0/src/agentkernel/trace/logfire/langgraph.py +32 -0
- agentkernel-0.8.0/src/agentkernel/trace/logfire/logfire.py +80 -0
- agentkernel-0.8.0/src/agentkernel/trace/logfire/openai.py +34 -0
- agentkernel-0.8.0/src/agentkernel/trace/logfire/pydanticai.py +34 -0
- agentkernel-0.8.0/src/agentkernel/trace/logfire/smolagents.py +32 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/openllmetry/openllmetry.py +8 -0
- agentkernel-0.8.0/src/agentkernel/trace/openllmetry/pydanticai.py +34 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/trace.py +32 -13
- agentkernel-0.6.1/src/agentkernel/core/builder.py +0 -152
- agentkernel-0.6.1/src/agentkernel/core/config.py +0 -334
- agentkernel-0.6.1/src/agentkernel/core/multimodal/storage/dynamodb.py +0 -190
- agentkernel-0.6.1/src/agentkernel/core/multimodal/storage/redis.py +0 -160
- agentkernel-0.6.1/src/agentkernel/core/session/cosmosdb.py +0 -345
- agentkernel-0.6.1/src/agentkernel/core/session/dynamodb.py +0 -261
- agentkernel-0.6.1/src/agentkernel/core/session/firestore.py +0 -244
- agentkernel-0.6.1/src/agentkernel/core/session/redis.py +0 -219
- agentkernel-0.6.1/src/agentkernel/guardrail/guardrail.py +0 -100
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/adk.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/api/a2a/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/api/a2a/a2a.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/api/a2a/handler.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/api/mcp/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/api/mcp/akmcp.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/auth/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/auth/handler.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/auth.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/aws.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/azure.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/cli/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/cli/ak.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/cli/cli.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/logger.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/module.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/multimodal/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/multimodal/factory.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/multimodal/storage/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/multimodal/storage/base.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/multimodal/storage/in_memory.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/multimodal/storage/session_cache.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/multimodal/tools.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/session/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/session/base.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/session/in_memory.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/session/serde.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/util/error_util.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/core/util/key_value_cache.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/crewai.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/core/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/core/response_store/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/core/websocket_service.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/serverless/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/serverless/akauthorizer.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/serverless/aklambda.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/serverless/akwsconnectionhandler.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/serverless/core/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/serverless/core/router/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/aws/serverless/core/router/common.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/azure/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/common/websocket_connection_store.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/gcp/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/gcp/akauthorizer.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/deployment/gcp/akcloudrun.py +0 -0
- {agentkernel-0.6.1/src/agentkernel/deployment/common → agentkernel-0.8.0/src/agentkernel/framework}/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/framework/adk/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/framework/crewai/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/framework/langgraph/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/framework/openai/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/framework/smolagents/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/gcp.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/gmail.py +0 -0
- {agentkernel-0.6.1/src/agentkernel/framework → agentkernel-0.8.0/src/agentkernel/guardrail}/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/instagram.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/gmail/README.md +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/gmail/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/instagram/README.md +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/instagram/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/messenger/README.md +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/messenger/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/slack/README.md +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/slack/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/teams/README.md +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/teams/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/telegram/README.md +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/telegram/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/whatsapp/README.md +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/integration/whatsapp/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/knowledgebase/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/knowledgebase/base.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/knowledgebase/chroma.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/knowledgebase/knowledgebuilder.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/knowledgebase/neo4j.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/knowledgebase/starburst.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/langgraph.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/mcp.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/messenger.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/openai.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/skills/skills.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/slack.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/smolagents.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/teams.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/telegram.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/__init__.py +0 -0
- {agentkernel-0.6.1/src/agentkernel/guardrail → agentkernel-0.8.0/src/agentkernel/trace/langfuse}/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/langfuse/adk.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/langfuse/crewai.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/langfuse/openai.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/langfuse/smolagents.py +0 -0
- {agentkernel-0.6.1/src/agentkernel/trace/langfuse → agentkernel-0.8.0/src/agentkernel/trace/logfire}/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/openllmetry/__init__.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/openllmetry/adk.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/openllmetry/crewai.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/openllmetry/langgraph.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/openllmetry/openai.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.0}/src/agentkernel/trace/openllmetry/smolagents.py +0 -0
- {agentkernel-0.6.1 → agentkernel-0.8.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.8.0
|
|
4
4
|
Summary: Agent Kernel - Unified AI Agents Runtime
|
|
5
5
|
Author: Yaala Labs
|
|
6
6
|
Author-email: Yaala Labs <agentkernel@yaalalabs.com>
|
|
@@ -26,6 +26,8 @@ Requires-Dist: chromadb>=0.4.0 ; extra == 'chromadb'
|
|
|
26
26
|
Requires-Dist: crewai>=1.15.0 ; extra == 'crewai'
|
|
27
27
|
Requires-Dist: openinference-instrumentation-crewai>=0.1.16 ; extra == 'crewai'
|
|
28
28
|
Requires-Dist: openinference-instrumentation-litellm>=0.1.28 ; extra == 'crewai'
|
|
29
|
+
Requires-Dist: daytona>=0.198.0,<0.199 ; extra == 'daytona'
|
|
30
|
+
Requires-Dist: e2b-code-interpreter>=2.8.0 ; extra == 'e2b'
|
|
29
31
|
Requires-Dist: google-cloud-firestore>=2.19.0 ; extra == 'gcp'
|
|
30
32
|
Requires-Dist: google-auth>=2.0.0 ; extra == 'gmail'
|
|
31
33
|
Requires-Dist: google-auth-oauthlib>=1.0.0 ; extra == 'gmail'
|
|
@@ -38,14 +40,20 @@ Requires-Dist: langgraph~=1.0.5 ; extra == 'langgraph'
|
|
|
38
40
|
Requires-Dist: langchain~=1.2.3 ; extra == 'langgraph'
|
|
39
41
|
Requires-Dist: langchain-community==0.4.1 ; extra == 'langgraph'
|
|
40
42
|
Requires-Dist: litellm~=1.89.2 ; extra == 'langgraph'
|
|
43
|
+
Requires-Dist: logfire>=3.0 ; extra == 'logfire'
|
|
41
44
|
Requires-Dist: fastmcp>=2.14.2,<3.0.0 ; extra == 'mcp'
|
|
42
45
|
Requires-Dist: httpx>=0.27.0 ; extra == 'messenger'
|
|
46
|
+
Requires-Dist: litellm>=1.74.9 ; extra == 'multimodal'
|
|
47
|
+
Requires-Dist: python-multipart>=0.0.12 ; extra == 'multimodal'
|
|
43
48
|
Requires-Dist: neo4j>=5.0.0 ; extra == 'neo4j'
|
|
44
49
|
Requires-Dist: openai-agents>=0.6.5 ; extra == 'openai'
|
|
45
50
|
Requires-Dist: openinference-instrumentation-openai-agents>=1.4.0 ; extra == 'openai'
|
|
46
51
|
Requires-Dist: openai-guardrails>=0.2.1 ; extra == 'openai'
|
|
47
52
|
Requires-Dist: traceloop-sdk>=0.61.0 ; extra == 'openllmetry'
|
|
53
|
+
Requires-Dist: pydantic-ai-slim~=2.13.0 ; extra == 'pydanticai'
|
|
54
|
+
Requires-Dist: openinference-instrumentation-pydantic-ai>=0.1.17 ; extra == 'pydanticai'
|
|
48
55
|
Requires-Dist: redis>=7.1.0 ; extra == 'redis'
|
|
56
|
+
Requires-Dist: docker>=7.0.0 ; extra == 'sandbox-docker'
|
|
49
57
|
Requires-Dist: slack-bolt==1.22.0 ; extra == 'slack'
|
|
50
58
|
Requires-Dist: httpx>=0.27.0 ; extra == 'slack'
|
|
51
59
|
Requires-Dist: smolagents>=1.0.0 ; extra == 'smolagents'
|
|
@@ -61,10 +69,13 @@ Requires-Dist: pytest-html>=4.1.1 ; extra == 'test'
|
|
|
61
69
|
Requires-Dist: pytest-order>=1.3.0 ; extra == 'test'
|
|
62
70
|
Requires-Dist: rapidfuzz>=3.14.1 ; extra == 'test'
|
|
63
71
|
Requires-Dist: ragas>=0.4.1 ; extra == 'test'
|
|
72
|
+
Requires-Dist: langchain-community==0.4.1 ; extra == 'test'
|
|
64
73
|
Requires-Dist: datasets>=2.14.0 ; extra == 'test'
|
|
65
74
|
Requires-Dist: pandas>=2.0.0 ; extra == 'test'
|
|
66
75
|
Requires-Dist: litellm>=1.89.2 ; extra == 'test'
|
|
76
|
+
Requires-Dist: litellm>=1.74.9 ; extra == 'thread'
|
|
67
77
|
Requires-Dist: trino>=0.337.0 ; extra == 'trino'
|
|
78
|
+
Requires-Dist: valkey>=6.0.0 ; extra == 'valkey'
|
|
68
79
|
Requires-Dist: walledai>=4.9.3 ; extra == 'walledai'
|
|
69
80
|
Requires-Dist: httpx>=0.27.0 ; extra == 'whatsapp'
|
|
70
81
|
Requires-Python: >=3.12, <3.14
|
|
@@ -77,23 +88,31 @@ Provides-Extra: azure
|
|
|
77
88
|
Provides-Extra: chromadb
|
|
78
89
|
Provides-Extra: cli
|
|
79
90
|
Provides-Extra: crewai
|
|
91
|
+
Provides-Extra: daytona
|
|
92
|
+
Provides-Extra: e2b
|
|
80
93
|
Provides-Extra: gcp
|
|
81
94
|
Provides-Extra: gmail
|
|
82
95
|
Provides-Extra: instagram
|
|
83
96
|
Provides-Extra: langfuse
|
|
84
97
|
Provides-Extra: langgraph
|
|
98
|
+
Provides-Extra: logfire
|
|
85
99
|
Provides-Extra: mcp
|
|
86
100
|
Provides-Extra: messenger
|
|
101
|
+
Provides-Extra: multimodal
|
|
87
102
|
Provides-Extra: neo4j
|
|
88
103
|
Provides-Extra: openai
|
|
89
104
|
Provides-Extra: openllmetry
|
|
105
|
+
Provides-Extra: pydanticai
|
|
90
106
|
Provides-Extra: redis
|
|
107
|
+
Provides-Extra: sandbox-docker
|
|
91
108
|
Provides-Extra: slack
|
|
92
109
|
Provides-Extra: smolagents
|
|
93
110
|
Provides-Extra: teams
|
|
94
111
|
Provides-Extra: telegram
|
|
95
112
|
Provides-Extra: test
|
|
113
|
+
Provides-Extra: thread
|
|
96
114
|
Provides-Extra: trino
|
|
115
|
+
Provides-Extra: valkey
|
|
97
116
|
Provides-Extra: walledai
|
|
98
117
|
Provides-Extra: whatsapp
|
|
99
118
|
Description-Content-Type: text/markdown
|
|
@@ -103,19 +122,17 @@ Description-Content-Type: text/markdown
|
|
|
103
122
|
[](https://badge.fury.io/py/agentkernel)
|
|
104
123
|
[](https://www.python.org/downloads/)
|
|
105
124
|
|
|
106
|
-
Agent Kernel is a lightweight **
|
|
107
|
-
|
|
108
|
-
**Supported Cloud Platforms:** AWS, Azure, GCP
|
|
125
|
+
Agent Kernel is a lightweight **AI agent runtime** and adapter layer for building and running AI agents across multiple frameworks. Migrate your existing agents to Agent Kernel and instantly utilize pre-built execution and testing capabilities. Deploy the same agent code without modification — see the "Multi-Cloud Deployment" section below for supported platforms.
|
|
109
126
|
|
|
110
127
|
## Features
|
|
111
128
|
|
|
112
129
|
- **Unified API**: Common abstractions (Agent, Runner, Session, Module, Runtime) across frameworks
|
|
113
|
-
- **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK, and
|
|
114
|
-
- **
|
|
115
|
-
- **Session Management**: Built-in session abstraction with multi-cloud storage (Redis, DynamoDB, Cosmos DB, Firestore)
|
|
130
|
+
- **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK, Smolagents, and Pydantic AI
|
|
131
|
+
- **Session Management**: Built-in session abstraction with pluggable storage backends
|
|
116
132
|
- **Knowledge Bases**: Unified `KnowledgeBase` interface with ChromaDB, Neo4j, and Starburst/Trino backends via `KnowledgeBuilder`
|
|
117
|
-
- **
|
|
118
|
-
- **
|
|
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, and per-user identity
|
|
134
|
+
- **Flexible Deployment**: Interactive CLI, REST API, serverless, or containerized deployment — see the "Multi-Cloud Deployment" section below
|
|
135
|
+
- **Pluggable Architecture**: Easy to extend with custom framework adapters
|
|
119
136
|
- **MCP Server**: Built-in Model Context Protocol server for exposing agents as MCP tools and exposing any custom tool
|
|
120
137
|
- **A2A Server**: Built-in Agent-to-Agent communication server for exposing agents with a simple configuration change
|
|
121
138
|
- **REST API**: Built-in REST API server for agent interaction
|
|
@@ -135,6 +152,22 @@ pip install "agentkernel[neo4j]"
|
|
|
135
152
|
pip install "agentkernel[trino]"
|
|
136
153
|
```
|
|
137
154
|
|
|
155
|
+
For LLM-based thread naming with Conversation Thread Support:
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
pip install "agentkernel[thread]"
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
For the sandbox providers (the `local_subprocess` provider needs no extra; `ec2_ssm` rides
|
|
162
|
+
the `aws` extra):
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
pip install "agentkernel[sandbox-docker]" # docker provider
|
|
166
|
+
pip install "agentkernel[e2b]" # e2b cloud provider
|
|
167
|
+
pip install "agentkernel[daytona]" # daytona cloud provider
|
|
168
|
+
pip install "agentkernel[aws]" # ec2_ssm provider (boto3)
|
|
169
|
+
```
|
|
170
|
+
|
|
138
171
|
**Requirements:**
|
|
139
172
|
- Python 3.12+
|
|
140
173
|
|
|
@@ -268,7 +301,9 @@ Then interact with your agents:
|
|
|
268
301
|
|
|
269
302
|
## Multi-Cloud Deployment
|
|
270
303
|
|
|
271
|
-
|
|
304
|
+
**Supported Cloud Platforms:** AWS, Azure, GCP
|
|
305
|
+
|
|
306
|
+
Deploy your agents to AWS, Azure, or GCP using the built-in cloud deployment handlers.
|
|
272
307
|
|
|
273
308
|
### AWS Lambda Deployment
|
|
274
309
|
|
|
@@ -431,7 +466,7 @@ Configure where agent sessions are stored (supports multi-cloud storage backends
|
|
|
431
466
|
|
|
432
467
|
- **Field**: `session.type`
|
|
433
468
|
- **Type**: string
|
|
434
|
-
- **Options**: `in_memory`, `redis`, `dynamodb` (AWS), `cosmosdb` (Azure), `firestore` (GCP)
|
|
469
|
+
- **Options**: `in_memory`, `redis`, `valkey` (AWS), `dynamodb` (AWS), `cosmosdb` (Azure), `firestore` (GCP)
|
|
435
470
|
- **Default**: `in_memory`
|
|
436
471
|
- **Environment Variable**: `AK_SESSION__TYPE`
|
|
437
472
|
|
|
@@ -457,6 +492,143 @@ Required when `session.type=redis`:
|
|
|
457
492
|
- **Description**: Key prefix for session storage
|
|
458
493
|
- **Environment Variable**: `AK_SESSION__REDIS__PREFIX`
|
|
459
494
|
|
|
495
|
+
##### Valkey Configuration
|
|
496
|
+
|
|
497
|
+
Required when `session.type=valkey` (requires the `agentkernel[valkey]` extra). [Valkey](https://valkey.io/)
|
|
498
|
+
is the open-source, Linux Foundation-governed fork of Redis — wire-compatible with Redis and
|
|
499
|
+
available on AWS ElastiCache at a lower price point than the Redis OSS engine:
|
|
500
|
+
|
|
501
|
+
- **URL**
|
|
502
|
+
- **Field**: `session.valkey.url`
|
|
503
|
+
- **Default**: `valkey://localhost:6379`
|
|
504
|
+
- **Description**: Valkey connection URL. Use `valkeys://` for SSL
|
|
505
|
+
- **Environment Variable**: `AK_SESSION__VALKEY__URL`
|
|
506
|
+
|
|
507
|
+
- **TTL (Time to Live)**
|
|
508
|
+
- **Field**: `session.valkey.ttl`
|
|
509
|
+
- **Default**: `604800` (7 days)
|
|
510
|
+
- **Description**: Session TTL in seconds
|
|
511
|
+
- **Environment Variable**: `AK_SESSION__VALKEY__TTL`
|
|
512
|
+
|
|
513
|
+
- **Key Prefix**
|
|
514
|
+
- **Field**: `session.valkey.prefix`
|
|
515
|
+
- **Default**: `ak:sessions:`
|
|
516
|
+
- **Description**: Key prefix for session storage
|
|
517
|
+
- **Environment Variable**: `AK_SESSION__VALKEY__PREFIX`
|
|
518
|
+
|
|
519
|
+
#### Conversation Thread Support
|
|
520
|
+
|
|
521
|
+
Adding a `thread` block to the configuration turns on persistent, named conversation threads keyed by
|
|
522
|
+
`session_id`. Once enabled, `user_id` becomes required on every chat request, a thread is auto-created on a
|
|
523
|
+
session's first request, and history becomes readable over REST (`GET /api/v1/threads` and
|
|
524
|
+
`GET /api/v1/threads/{session_id}` — optionally protected by a pluggable `Authoriser`). Sending
|
|
525
|
+
`thread_name` on any chat request sets or renames the thread's display name and locks it against automatic
|
|
526
|
+
naming. Threads created without an explicit `thread_name` are
|
|
527
|
+
named by a pluggable naming strategy — by default an LLM call derives a concise title from the first prompt
|
|
528
|
+
(falling back to a prefix of the prompt when `litellm` or an API key is unavailable). Attachments in thread
|
|
529
|
+
mode additionally require `multimodal.enabled: true` with a shared attachment store (`in_memory`, `redis`, or
|
|
530
|
+
`dynamodb` — `session_cache` is rejected). See `examples/api/thread-openai` and
|
|
531
|
+
`examples/api/multimodal/thread-openai`.
|
|
532
|
+
|
|
533
|
+
- **Field**: `thread.type`
|
|
534
|
+
- **Type**: string
|
|
535
|
+
- **Options**: `memory`, `redis`, `dynamodb` (AWS), `firestore` (GCP), `cosmosdb` (Azure)
|
|
536
|
+
- **Default**: `memory`
|
|
537
|
+
- **Environment Variable**: `AK_THREAD__TYPE`
|
|
538
|
+
|
|
539
|
+
- **Naming Model**
|
|
540
|
+
- **Field**: `thread.naming.model`
|
|
541
|
+
- **Type**: string
|
|
542
|
+
- **Default**: `gpt-4o-mini`
|
|
543
|
+
- **Description**: LiteLLM model used to generate thread names (requires the `thread` extra — `pip install "agentkernel[thread]"` — and an API key in the environment; falls back to a truncated prompt prefix otherwise)
|
|
544
|
+
- **Environment Variable**: `AK_THREAD__NAMING__MODEL`
|
|
545
|
+
|
|
546
|
+
- **Auto-name Max Length**
|
|
547
|
+
- **Field**: `thread.naming.max_length`
|
|
548
|
+
- **Type**: integer
|
|
549
|
+
- **Default**: `80`
|
|
550
|
+
- **Description**: Maximum length of an auto-generated thread name
|
|
551
|
+
- **Environment Variable**: `AK_THREAD__NAMING__MAX_LENGTH`
|
|
552
|
+
|
|
553
|
+
##### Redis Thread Store
|
|
554
|
+
|
|
555
|
+
Required when `thread.type=redis`:
|
|
556
|
+
|
|
557
|
+
- **URL**
|
|
558
|
+
- **Field**: `thread.redis.url`
|
|
559
|
+
- **Default**: `redis://localhost:6379`
|
|
560
|
+
- **Description**: Redis connection URL. Use `rediss://` for SSL
|
|
561
|
+
- **Environment Variable**: `AK_THREAD__REDIS__URL`
|
|
562
|
+
|
|
563
|
+
- **TTL (Time to Live)**
|
|
564
|
+
- **Field**: `thread.redis.ttl`
|
|
565
|
+
- **Default**: `2592000` (30 days)
|
|
566
|
+
- **Description**: Thread TTL in seconds (0 disables)
|
|
567
|
+
- **Environment Variable**: `AK_THREAD__REDIS__TTL`
|
|
568
|
+
|
|
569
|
+
- **Key Prefix**
|
|
570
|
+
- **Field**: `thread.redis.prefix`
|
|
571
|
+
- **Default**: `ak:thread:`
|
|
572
|
+
- **Description**: Key prefix for Redis thread storage
|
|
573
|
+
- **Environment Variable**: `AK_THREAD__REDIS__PREFIX`
|
|
574
|
+
|
|
575
|
+
##### DynamoDB Thread Store
|
|
576
|
+
|
|
577
|
+
Used when `thread.type=dynamodb`:
|
|
578
|
+
|
|
579
|
+
- **Table Name**
|
|
580
|
+
- **Field**: `thread.dynamodb.table_name`
|
|
581
|
+
- **Default**: `ak-agent-threads`
|
|
582
|
+
- **Description**: DynamoDB table name. The table must have a partition key named `session_id` (S) and a sort key named `sk` (S)
|
|
583
|
+
- **Environment Variable**: `AK_THREAD__DYNAMODB__TABLE_NAME`
|
|
584
|
+
|
|
585
|
+
- **TTL (Time to Live)**
|
|
586
|
+
- **Field**: `thread.dynamodb.ttl`
|
|
587
|
+
- **Default**: `0` (disabled)
|
|
588
|
+
- **Description**: DynamoDB item TTL in seconds
|
|
589
|
+
- **Environment Variable**: `AK_THREAD__DYNAMODB__TTL`
|
|
590
|
+
|
|
591
|
+
##### Firestore Thread Store
|
|
592
|
+
|
|
593
|
+
Used when `thread.type=firestore`:
|
|
594
|
+
|
|
595
|
+
- **Collection Name**
|
|
596
|
+
- **Field**: `thread.firestore.collection_name`
|
|
597
|
+
- **Default**: `ak-agent-threads`
|
|
598
|
+
- **Description**: Firestore collection name; each document ID is a `session_id`
|
|
599
|
+
- **Environment Variable**: `AK_THREAD__FIRESTORE__COLLECTION_NAME`
|
|
600
|
+
|
|
601
|
+
- **Project ID**
|
|
602
|
+
- **Field**: `thread.firestore.project_id`
|
|
603
|
+
- **Default**: `null` (inferred from Application Default Credentials)
|
|
604
|
+
- **Environment Variable**: `AK_THREAD__FIRESTORE__PROJECT_ID`
|
|
605
|
+
|
|
606
|
+
- **Database ID**
|
|
607
|
+
- **Field**: `thread.firestore.database_id`
|
|
608
|
+
- **Default**: `null` (the `(default)` database)
|
|
609
|
+
- **Environment Variable**: `AK_THREAD__FIRESTORE__DATABASE_ID`
|
|
610
|
+
|
|
611
|
+
- **TTL (Time to Live)**
|
|
612
|
+
- **Field**: `thread.firestore.ttl`
|
|
613
|
+
- **Default**: `0` (disabled)
|
|
614
|
+
- **Description**: Thread TTL in seconds
|
|
615
|
+
- **Environment Variable**: `AK_THREAD__FIRESTORE__TTL`
|
|
616
|
+
|
|
617
|
+
##### Cosmos DB Thread Store
|
|
618
|
+
|
|
619
|
+
Required when `thread.type=cosmosdb`:
|
|
620
|
+
|
|
621
|
+
- **Connection String**
|
|
622
|
+
- **Field**: `thread.cosmosdb.connection_string`
|
|
623
|
+
- **Description**: Cosmos DB connection string (Azure Portal → Keys). Uses the Table API; entities are partitioned by `session_id`. No TTL support
|
|
624
|
+
- **Environment Variable**: `AK_THREAD__COSMOSDB__CONNECTION_STRING`
|
|
625
|
+
|
|
626
|
+
- **Table Name**
|
|
627
|
+
- **Field**: `thread.cosmosdb.table_name`
|
|
628
|
+
- **Default**: `akagentthreads`
|
|
629
|
+
- **Description**: Cosmos DB table name for thread storage
|
|
630
|
+
- **Environment Variable**: `AK_THREAD__COSMOSDB__TABLE_NAME`
|
|
631
|
+
|
|
460
632
|
#### Execution Configuration
|
|
461
633
|
|
|
462
634
|
Configure queue-backed and serverless execution behavior.
|
|
@@ -465,7 +637,7 @@ Configure queue-backed and serverless execution behavior.
|
|
|
465
637
|
- **Field**: `execution.mode`
|
|
466
638
|
- **Options**: `rest_sync`, `rest_async`, `stream`, `async`
|
|
467
639
|
- **Default**: `None`
|
|
468
|
-
- **Description**: Selects the
|
|
640
|
+
- **Description**: Selects the execution mode used for queue-backed and serverless request handling
|
|
469
641
|
- **Environment Variable**: `AK_EXECUTION__MODE`
|
|
470
642
|
|
|
471
643
|
- **Queues**
|
|
@@ -492,6 +664,24 @@ Configure queue-backed and serverless execution behavior.
|
|
|
492
664
|
- **Default**: `3`
|
|
493
665
|
- **Environment Variable**: `AK_EXECUTION__QUEUES__OUTPUT__MAX_RECEIVE_COUNT`
|
|
494
666
|
|
|
667
|
+
- **Input Queue Consumer Count**
|
|
668
|
+
- **Field**: `execution.queues.input.no_of_consumers`
|
|
669
|
+
- **Default**: `5`
|
|
670
|
+
- **Description**: Number of independent consumer threads that each poll the input queue in a continuous loop. Only used by containerized deployments — never set for serverless deployments, which have no consumer threads.
|
|
671
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__INPUT__NO_OF_CONSUMERS`
|
|
672
|
+
|
|
673
|
+
- **Output Queue Consumer Count**
|
|
674
|
+
- **Field**: `execution.queues.output.no_of_consumers`
|
|
675
|
+
- **Default**: `5`
|
|
676
|
+
- **Description**: Number of independent consumer threads that each poll the output queue in a continuous loop. Only used by containerized deployments — never set for serverless deployments, which have no consumer threads.
|
|
677
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__OUTPUT__NO_OF_CONSUMERS`
|
|
678
|
+
|
|
679
|
+
- **Queue Batch Size**
|
|
680
|
+
- **Field**: `execution.queues.batch_size`
|
|
681
|
+
- **Default**: `None`
|
|
682
|
+
- **Description**: Max number of messages fetched per receive call, shared by the input and output queues. Only used by containerized deployments — never set for serverless deployments, which control batch size differently. Controlled by the deployment tooling via env var `AK_EXECUTION__QUEUES__BATCH_SIZE` — do not set in `config.yaml`.
|
|
683
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__BATCH_SIZE`
|
|
684
|
+
|
|
495
685
|
- **Response Store**
|
|
496
686
|
- **Field**: `execution.response_store`
|
|
497
687
|
- **Description**: Response persistence settings used by the serverless response handler
|
|
@@ -516,12 +706,17 @@ Configure queue-backed and serverless execution behavior.
|
|
|
516
706
|
- **Field**: `execution.response_store.redis`
|
|
517
707
|
- **Environment Variables**: `AK_EXECUTION__RESPONSE_STORE__REDIS__URL`, `AK_EXECUTION__RESPONSE_STORE__REDIS__PREFIX`, `AK_EXECUTION__RESPONSE_STORE__REDIS__TTL`
|
|
518
708
|
|
|
709
|
+
- **Valkey Backend**
|
|
710
|
+
- **Field**: `execution.response_store.valkey`
|
|
711
|
+
- **Environment Variables**: `AK_EXECUTION__RESPONSE_STORE__VALKEY__URL`, `AK_EXECUTION__RESPONSE_STORE__VALKEY__PREFIX`, `AK_EXECUTION__RESPONSE_STORE__VALKEY__TTL`
|
|
712
|
+
- **Description**: Valkey-backed response storage (requires the `agentkernel[valkey]` extra)
|
|
713
|
+
|
|
519
714
|
- **DynamoDB Backend**
|
|
520
715
|
- **Field**: `execution.response_store.dynamodb`
|
|
521
716
|
- **Environment Variables**: `AK_EXECUTION__RESPONSE_STORE__DYNAMODB__TABLE_NAME`, `AK_EXECUTION__RESPONSE_STORE__DYNAMODB__TTL`
|
|
522
717
|
- **Description**: DynamoDB-backed response storage with table name and TTL
|
|
523
718
|
|
|
524
|
-
Use
|
|
719
|
+
Use Redis, Valkey, or DynamoDB for the response store backend. 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.
|
|
525
720
|
|
|
526
721
|
#### API Configuration
|
|
527
722
|
|
|
@@ -613,7 +808,7 @@ Configure tracing and observability for monitoring agent execution.
|
|
|
613
808
|
|
|
614
809
|
- **Type**
|
|
615
810
|
- **Field**: `trace.type`
|
|
616
|
-
- **Options**: `langfuse`, `openllmetry`
|
|
811
|
+
- **Options**: `langfuse`, `openllmetry`, `logfire`
|
|
617
812
|
- **Default**: `langfuse`
|
|
618
813
|
- **Description**: Type of tracing provider to use
|
|
619
814
|
- **Environment Variable**: `AK_TRACE__TYPE`
|
|
@@ -665,31 +860,54 @@ trace:
|
|
|
665
860
|
type: openllmetry
|
|
666
861
|
```
|
|
667
862
|
|
|
863
|
+
**Pydantic Logfire Setup:**
|
|
864
|
+
|
|
865
|
+
To use Logfire for tracing, install the logfire extra:
|
|
866
|
+
|
|
867
|
+
```bash
|
|
868
|
+
pip install agentkernel[logfire]
|
|
869
|
+
```
|
|
870
|
+
|
|
871
|
+
Configure the Logfire write token via an environment variable (optional — without a token, Logfire
|
|
872
|
+
runs locally and does not ship traces):
|
|
873
|
+
|
|
874
|
+
```bash
|
|
875
|
+
export LOGFIRE_TOKEN=your-write-token
|
|
876
|
+
```
|
|
877
|
+
|
|
878
|
+
Enable tracing in your configuration:
|
|
879
|
+
|
|
880
|
+
```yaml
|
|
881
|
+
trace:
|
|
882
|
+
enabled: true
|
|
883
|
+
type: logfire
|
|
884
|
+
```
|
|
885
|
+
|
|
668
886
|
#### Test Configuration
|
|
669
887
|
|
|
670
|
-
Configure test comparison modes for automated testing.
|
|
888
|
+
Configure test comparison modes for automated testing. Test configuration is separate from the application configuration: it is **not** part of `config.yaml`. It lives in its own `test-config.yaml` file and is only loaded when the testing utilities (`agentkernel.test`) are used — see the [Test Configuration (test-config.yaml)](#test-configuration-test-configyaml) section for file resolution, environment variables, and migration notes.
|
|
671
889
|
|
|
672
890
|
- **Mode**
|
|
673
|
-
- **Field**: `
|
|
891
|
+
- **Field**: `mode`
|
|
674
892
|
- **Options**: `fuzzy`, `judge`, `fallback`
|
|
675
893
|
- **Default**: `fallback`
|
|
676
894
|
- **Description**: Test comparison mode
|
|
677
895
|
- **Environment Variable**: `AK_TEST__MODE`
|
|
678
896
|
|
|
679
897
|
- **Judge Model**
|
|
680
|
-
- **Field**: `
|
|
898
|
+
- **Field**: `judge.model`
|
|
681
899
|
- **Default**: `gpt-4o-mini`
|
|
682
900
|
- **Description**: LLM model for judge evaluation
|
|
683
901
|
- **Environment Variable**: `AK_TEST__JUDGE__MODEL`
|
|
684
902
|
|
|
685
903
|
- **Judge Provider**
|
|
686
|
-
- **Field**: `
|
|
904
|
+
- **Field**: `judge.provider`
|
|
687
905
|
- **Default**: `openai`
|
|
688
906
|
- **Description**: LLM provider for judge evaluation
|
|
689
907
|
- **Environment Variable**: `AK_TEST__JUDGE__PROVIDER`
|
|
690
908
|
|
|
691
909
|
- **Judge Embedding Model**
|
|
692
|
-
- **Field**: `
|
|
910
|
+
- **Field**: `judge.embedding_model`
|
|
693
911
|
- **Default**: `text-embedding-3-small`
|
|
694
912
|
- **Description**: Embedding model for similarity evaluation
|
|
695
913
|
- **Environment Variable**: `AK_TEST__JUDGE__EMBEDDING_MODEL`
|
|
@@ -700,12 +918,12 @@ Configure test comparison modes for automated testing.
|
|
|
700
918
|
- `fallback`: Tries fuzzy first, falls back to judge if fuzzy fails
|
|
701
919
|
|
|
702
920
|
```yaml
|
|
703
|
-
test
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
921
|
+
# test-config.yaml (separate file — not config.yaml)
|
|
922
|
+
mode: fallback
|
|
923
|
+
judge:
|
|
924
|
+
model: gpt-4o-mini
|
|
925
|
+
provider: openai
|
|
926
|
+
embedding_model: text-embedding-3-small
|
|
709
927
|
```
|
|
710
928
|
|
|
711
929
|
#### Guardrails Configuration
|
|
@@ -861,6 +1079,77 @@ guardrail:
|
|
|
861
1079
|
pii: true
|
|
862
1080
|
```
|
|
863
1081
|
|
|
1082
|
+
#### Sandbox Configuration
|
|
1083
|
+
|
|
1084
|
+
Enable the sandbox capability to let agents execute code and shell commands in an isolated,
|
|
1085
|
+
permission-bounded environment. When enabled, agents automatically gain sandbox tools
|
|
1086
|
+
(`run_code`, `run_command`, `write_sandbox_file`, `read_sandbox_file`, `check_sandbox_task`,
|
|
1087
|
+
`list_sandbox_sessions`, `new_sandbox_session`, `destroy_sandbox_session`) and the usage
|
|
1088
|
+
guidance is injected into their system prompt.
|
|
1089
|
+
|
|
1090
|
+
Minimal single-backend form (a `default` profile is synthesized from `type` + its config block):
|
|
1091
|
+
|
|
1092
|
+
```yaml
|
|
1093
|
+
sandbox:
|
|
1094
|
+
enabled: true
|
|
1095
|
+
type: local_subprocess # provider short name, or a dotted path to a SandboxProvider subclass
|
|
1096
|
+
local_subprocess: {}
|
|
1097
|
+
broker:
|
|
1098
|
+
flavor: thread # thread (local default) | embedded
|
|
1099
|
+
```
|
|
1100
|
+
|
|
1101
|
+
Full form with explicit workload profiles (provider + lifetime + policy + identity):
|
|
1102
|
+
|
|
1103
|
+
```yaml
|
|
1104
|
+
sandbox:
|
|
1105
|
+
enabled: true
|
|
1106
|
+
agents: [coder] # optional: attach tools/prompt only to these agents; omit = all
|
|
1107
|
+
default_profile: workspace
|
|
1108
|
+
principal_resolver: null # optional dotted path to a PrincipalResolver; null = agent identity
|
|
1109
|
+
tool_output_max_chars: 8000
|
|
1110
|
+
broker:
|
|
1111
|
+
flavor: thread
|
|
1112
|
+
wait_timeout: 60.0 # seconds before a sync wait promotes to a background task (0 = always)
|
|
1113
|
+
profiles:
|
|
1114
|
+
workspace:
|
|
1115
|
+
type: docker # container-isolated; needs the sandbox-docker extra + a Docker daemon
|
|
1116
|
+
scope: per_session # per_call | per_session | per_runtime
|
|
1117
|
+
idle_timeout: 1800 # seconds of inactivity before the sandbox is reset on next touch
|
|
1118
|
+
identity:
|
|
1119
|
+
mode: agent # agent | user
|
|
1120
|
+
policy:
|
|
1121
|
+
network_egress: deny # allow | deny | allowlist
|
|
1122
|
+
cpu: 1.0
|
|
1123
|
+
memory_mb: 512
|
|
1124
|
+
timeout: 30.0 # per-execution wall-clock seconds (always enforced)
|
|
1125
|
+
strict: true # fail closed when the provider can't enforce a policy dimension
|
|
1126
|
+
docker:
|
|
1127
|
+
image: python:3.12-slim
|
|
1128
|
+
```
|
|
1129
|
+
|
|
1130
|
+
Key fields:
|
|
1131
|
+
|
|
1132
|
+
- **`enabled`** (`AK_SANDBOX__ENABLED`, default `false`) — master switch; inert when off.
|
|
1133
|
+
- **`agents`** — agent names the tools/prompt attach to; omit for all agents.
|
|
1134
|
+
- **`type`** (per profile) — `local_subprocess` (no isolation; dev/test), `docker`
|
|
1135
|
+
(container isolation; `sandbox-docker` extra), `e2b` (managed micro-VMs; `e2b` extra),
|
|
1136
|
+
`daytona` (cloud containers; `daytona` extra), `ec2_ssm` (attach to an existing EC2
|
|
1137
|
+
instance via SSM; `aws` extra), or a dotted path to your own `SandboxProvider`.
|
|
1138
|
+
- **`scope`** — `per_call` (fresh per execution), `per_session` (persists across turns),
|
|
1139
|
+
`per_runtime` (one shared sandbox per profile).
|
|
1140
|
+
- **`environment`** — `managed` (default; the provider creates and disposes sandboxes) or
|
|
1141
|
+
`attached` (deliberately connect to an existing environment the framework never owns,
|
|
1142
|
+
e.g. an EC2 instance via `ec2_ssm`; requires the provider's `attach_to` and is validated
|
|
1143
|
+
against the provider's lifecycle capabilities at startup).
|
|
1144
|
+
- **`policy`** — network egress, filesystem paths, cpu/memory, timeout; enforced per provider,
|
|
1145
|
+
fail-closed under `strict`.
|
|
1146
|
+
- **`identity.mode`** + **`principal_resolver`** — run code under the agent's or the invoking
|
|
1147
|
+
user's identity.
|
|
1148
|
+
- **`broker.flavor`** — `thread` (default, for CLI/REST) or `embedded` (inline/synchronous).
|
|
1149
|
+
|
|
1150
|
+
See the [Sandbox guide](https://kernel.yaala.ai/docs/next/advanced/sandbox) for the full
|
|
1151
|
+
reference and the `examples/sandbox` and `examples/sandbox/identity` examples.
|
|
1152
|
+
|
|
864
1153
|
#### Messaging Platform Integrations
|
|
865
1154
|
|
|
866
1155
|
Configure integrations with messaging platforms.
|
|
@@ -951,13 +1240,16 @@ export AK_API__PORT=8000
|
|
|
951
1240
|
export AK_A2A__ENABLED=true
|
|
952
1241
|
export AK_MCP__ENABLED=false
|
|
953
1242
|
export AK_TRACE__ENABLED=true
|
|
954
|
-
export AK_TRACE__TYPE=langfuse # or openllmetry
|
|
1243
|
+
export AK_TRACE__TYPE=langfuse # or openllmetry, logfire
|
|
955
1244
|
# For Langfuse:
|
|
956
1245
|
# export LANGFUSE_PUBLIC_KEY=pk-lf-...
|
|
957
1246
|
# export LANGFUSE_SECRET_KEY=sk-lf-...
|
|
958
1247
|
# export LANGFUSE_HOST=https://cloud.langfuse.com
|
|
959
1248
|
# For OpenLLMetry:
|
|
960
1249
|
# export TRACELOOP_API_KEY=your-api-key
|
|
1250
|
+
# For Logfire:
|
|
1251
|
+
# export LOGFIRE_TOKEN=your-write-token
|
|
1252
|
+
# Test harness (loaded from the separate test-config.yaml — see Test Configuration)
|
|
961
1253
|
export AK_TEST__MODE=fallback # Options: fuzzy, judge, fallback
|
|
962
1254
|
export AK_TEST__JUDGE__MODEL=gpt-4o-mini
|
|
963
1255
|
export AK_TEST__JUDGE__PROVIDER=openai
|
|
@@ -1002,13 +1294,15 @@ AK_API__PORT=8080
|
|
|
1002
1294
|
AK_A2A__ENABLED=true
|
|
1003
1295
|
AK_A2A__URL=http://localhost:8080/a2a
|
|
1004
1296
|
AK_TRACE__ENABLED=true
|
|
1005
|
-
AK_TRACE__TYPE=langfuse # or openllmetry
|
|
1297
|
+
AK_TRACE__TYPE=langfuse # or openllmetry, logfire
|
|
1006
1298
|
# Langfuse credentials (if using langfuse):
|
|
1007
1299
|
# LANGFUSE_PUBLIC_KEY=pk-lf-...
|
|
1008
1300
|
# LANGFUSE_SECRET_KEY=sk-lf-...
|
|
1009
1301
|
# LANGFUSE_HOST=https://cloud.langfuse.com
|
|
1010
1302
|
# OpenLLMetry credentials (if using openllmetry):
|
|
1011
1303
|
# TRACELOOP_API_KEY=your-api-key
|
|
1304
|
+
# Logfire credentials (if using logfire):
|
|
1305
|
+
# LOGFIRE_TOKEN=your-write-token
|
|
1012
1306
|
```
|
|
1013
1307
|
|
|
1014
1308
|
#### config.yaml
|
|
@@ -1020,24 +1314,37 @@ session:
|
|
|
1020
1314
|
url: redis://localhost:6379
|
|
1021
1315
|
ttl: 604800
|
|
1022
1316
|
prefix: "ak:sessions:"
|
|
1317
|
+
thread: # optional — enables Conversation Thread Support (user_id becomes required on chat requests)
|
|
1318
|
+
type: redis
|
|
1319
|
+
redis:
|
|
1320
|
+
url: redis://localhost:6379
|
|
1321
|
+
ttl: 2592000
|
|
1322
|
+
prefix: "ak:thread:"
|
|
1023
1323
|
execution:
|
|
1024
1324
|
mode: rest_sync
|
|
1025
1325
|
queues:
|
|
1026
1326
|
input:
|
|
1027
|
-
url: https://
|
|
1327
|
+
url: https://queue.example.com/<accountno>/<queuename>
|
|
1028
1328
|
max_receive_count: 3
|
|
1329
|
+
no_of_consumers: 5 # Containerized deployments only, ignored by serverless deployments
|
|
1029
1330
|
output:
|
|
1030
|
-
url: https://
|
|
1331
|
+
url: https://queue.example.com/<accountno>/<queuename>
|
|
1031
1332
|
max_receive_count: 3
|
|
1333
|
+
no_of_consumers: 5 # Containerized deployments only, ignored by serverless deployments
|
|
1334
|
+
# batch_size is set by the deployment tooling — set via AK_EXECUTION__QUEUES__BATCH_SIZE, never here
|
|
1032
1335
|
response_store:
|
|
1033
1336
|
type: redis
|
|
1034
1337
|
retry_count: 5
|
|
1035
1338
|
delay: 5
|
|
1036
|
-
redis: # if this is given, then dynamodb response store
|
|
1339
|
+
redis: # if this is given, then valkey/dynamodb response store parts cannot be given
|
|
1037
1340
|
url: redis://localhost:6379
|
|
1038
1341
|
prefix: "ak:responses:"
|
|
1039
1342
|
ttl: 3600
|
|
1040
|
-
|
|
1343
|
+
valkey: # if this is given, then redis/dynamodb response store parts cannot be given (requires the `valkey` extra)
|
|
1344
|
+
url: valkey://localhost:6379
|
|
1345
|
+
prefix: "ak:responses:"
|
|
1346
|
+
ttl: 3600
|
|
1347
|
+
dynamodb: # if this is given, then redis/valkey response store parts cannot be given
|
|
1041
1348
|
table_name: table-name
|
|
1042
1349
|
table_arn: table-arn
|
|
1043
1350
|
ttl: 3600
|
|
@@ -1058,12 +1365,8 @@ mcp:
|
|
|
1058
1365
|
trace:
|
|
1059
1366
|
enabled: true
|
|
1060
1367
|
type: langfuse
|
|
1061
|
-
test
|
|
1062
|
-
|
|
1063
|
-
judge:
|
|
1064
|
-
model: gpt-4o-mini
|
|
1065
|
-
provider: openai
|
|
1066
|
-
embedding_model: text-embedding-3-small
|
|
1368
|
+
# Note: test configuration is no longer set here — it lives in a separate
|
|
1369
|
+
# test-config.yaml file (see the Test Configuration section)
|
|
1067
1370
|
guardrail:
|
|
1068
1371
|
input:
|
|
1069
1372
|
enabled: false
|
|
@@ -1132,14 +1435,6 @@ gmail:
|
|
|
1132
1435
|
"enabled": true,
|
|
1133
1436
|
"type": "langfuse"
|
|
1134
1437
|
},
|
|
1135
|
-
"test": {
|
|
1136
|
-
"mode": "fallback",
|
|
1137
|
-
"judge": {
|
|
1138
|
-
"model": "gpt-4o-mini",
|
|
1139
|
-
"provider": "openai",
|
|
1140
|
-
"embedding_model": "text-embedding-3-small"
|
|
1141
|
-
}
|
|
1142
|
-
},
|
|
1143
1438
|
"guardrail": {
|
|
1144
1439
|
"input": {
|
|
1145
1440
|
"enabled": false,
|
|
@@ -1187,6 +1482,39 @@ gmail:
|
|
|
1187
1482
|
- Configuration file values override built-in defaults
|
|
1188
1483
|
- Nested fields use underscore (`_`) delimiter in environment variables
|
|
1189
1484
|
|
|
1485
|
+
### Test Configuration (test-config.yaml)
|
|
1486
|
+
|
|
1487
|
+
Test harness configuration (comparison mode and judge 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
|
+
|
|
1489
|
+
**test-config.yaml:**
|
|
1490
|
+
|
|
1491
|
+
```yaml
|
|
1492
|
+
mode: fallback
|
|
1493
|
+
judge:
|
|
1494
|
+
model: gpt-4o-mini
|
|
1495
|
+
provider: openai
|
|
1496
|
+
embedding_model: text-embedding-3-small
|
|
1497
|
+
```
|
|
1498
|
+
|
|
1499
|
+
Note that the file is un-nested — there is no top-level `test:` key. If the file is missing, defaults apply silently (fuzzy and fallback tests need no configuration file at all).
|
|
1500
|
+
|
|
1501
|
+
**Override the test config file path:**
|
|
1502
|
+
|
|
1503
|
+
```bash
|
|
1504
|
+
export AK_TEST_CONFIG_PATH_OVERRIDE=/path/to/test-config.yaml
|
|
1505
|
+
```
|
|
1506
|
+
|
|
1507
|
+
**Environment variables** use the `AK_TEST__` prefix and override `test-config.yaml` values:
|
|
1508
|
+
|
|
1509
|
+
```bash
|
|
1510
|
+
export AK_TEST__MODE=fallback # Options: fuzzy, judge, fallback
|
|
1511
|
+
export AK_TEST__JUDGE__MODEL=gpt-4o-mini
|
|
1512
|
+
export AK_TEST__JUDGE__PROVIDER=openai
|
|
1513
|
+
export AK_TEST__JUDGE__EMBEDDING_MODEL=text-embedding-3-small
|
|
1514
|
+
```
|
|
1515
|
+
|
|
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
|
+
|
|
1190
1518
|
## Extensibility
|
|
1191
1519
|
|
|
1192
1520
|
### Custom Framework Adapters
|
|
@@ -1228,6 +1556,7 @@ Sessions maintain state across agent interactions. Framework adapters manage the
|
|
|
1228
1556
|
- `"langgraph"` — LangGraph session data
|
|
1229
1557
|
- `"openai"` — OpenAI Agents SDK session data
|
|
1230
1558
|
- `"adk"` — Google ADK session data
|
|
1559
|
+
- `"pydanticai"` — Pydantic AI session data (message history)
|
|
1231
1560
|
|
|
1232
1561
|
Access the session in your runner:
|
|
1233
1562
|
|
|
@@ -1293,3 +1622,4 @@ SPDX-License-Identifier: Apache-2.0
|
|
|
1293
1622
|
## Contributing
|
|
1294
1623
|
|
|
1295
1624
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
1625
|
+
|