agentkernel 0.9.4__tar.gz → 0.10.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.9.4/README.md → agentkernel-0.10.0/PKG-INFO +352 -56
- agentkernel-0.9.4/PKG-INFO → agentkernel-0.10.0/README.md +195 -200
- agentkernel-0.10.0/pyproject.toml +277 -0
- agentkernel-0.10.0/src/agentkernel/a2ui/__init__.py +10 -0
- agentkernel-0.10.0/src/agentkernel/a2ui/hook.py +176 -0
- agentkernel-0.10.0/src/agentkernel/api/a2a/a2a.py +190 -0
- agentkernel-0.10.0/src/agentkernel/api/a2a/handler.py +96 -0
- agentkernel-0.10.0/src/agentkernel/api/handler.py +184 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/api/http.py +58 -38
- agentkernel-0.10.0/src/agentkernel/api/mcp/akmcp.py +156 -0
- agentkernel-0.10.0/src/agentkernel/api/mcp/auth.py +123 -0
- agentkernel-0.10.0/src/agentkernel/claude.py +8 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/cli/cli.py +49 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/__init__.py +11 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/base.py +105 -11
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/builder.py +65 -12
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/chat_service.py +112 -62
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/config.py +691 -134
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/event.py +81 -20
- agentkernel-0.10.0/src/agentkernel/core/model.py +811 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/module.py +2 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/multimodal/hooks.py +2 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/multimodal/source.py +2 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/multimodal/storage/base.py +3 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/multimodal/storage/dynamodb.py +1 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/multimodal/storage/in_memory.py +2 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/multimodal/storage/redis.py +1 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/multimodal/storage/session_cache.py +1 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/multimodal/storage/storage_manager.py +6 -7
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/multimodal/tools.py +1 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/paused_run.py +34 -13
- agentkernel-0.10.0/src/agentkernel/core/realtime/__init__.py +4 -0
- agentkernel-0.10.0/src/agentkernel/core/realtime/pcm.py +46 -0
- agentkernel-0.10.0/src/agentkernel/core/realtime/runner.py +97 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/runtime.py +57 -22
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/service.py +9 -11
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/session/base.py +4 -5
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/session/dynamodb.py +3 -4
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/session/firestore.py +1 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/session/in_memory.py +6 -7
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/session/redis_like.py +6 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/session/serde.py +2 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/tool.py +43 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/async_bridge.py +3 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/config_yaml_util.py +6 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/driver/base.py +4 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/driver/cosmosdb.py +1 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/driver/dynamodb.py +63 -9
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/driver/firestore.py +3 -4
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/driver/redis_like.py +58 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/driver/s3.py +3 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/factory.py +3 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/key_value_cache.py +66 -12
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/pagination.py +4 -5
- agentkernel-0.10.0/src/agentkernel/core/util/payload.py +124 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/picklable.py +2 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/containerized/akagentrunner.py +65 -12
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/containerized/akoutputconsumer.py +16 -26
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/containerized/core/api/websocket_api.py +91 -86
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/containerized/core/sqs_consumer.py +12 -5
- agentkernel-0.10.0/src/agentkernel/deployment/aws/containerized/ecs_io_handler.py +90 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/core/raw_queue_consumer.py +5 -5
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/core/sqs_handler.py +28 -27
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/core/websocket_service.py +61 -15
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/akagentrunner.py +15 -18
- agentkernel-0.10.0/src/agentkernel/deployment/aws/serverless/akauthorizer.py +176 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/aklambda.py +25 -9
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/akresponsehandler.py +20 -19
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/akwsconnectionhandler.py +8 -16
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/core/event_translator.py +8 -7
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/core/router/common.py +5 -4
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/core/router/rest_lambda.py +68 -47
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/core/router/ws_lambda.py +101 -75
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/core/sqs_consumer.py +5 -5
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/core/webhook_host.py +27 -9
- agentkernel-0.10.0/src/agentkernel/deployment/azure/akfunction.py +88 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/gcp/__init__.py +0 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/gcp/akcloudrun.py +1 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/adk/__init__.py +1 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/adk/adk.py +279 -29
- agentkernel-0.10.0/src/agentkernel/framework/claude/__init__.py +16 -0
- agentkernel-0.10.0/src/agentkernel/framework/claude/claude.py +1206 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/crewai/crewai.py +3 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/langgraph/langgraph.py +29 -14
- agentkernel-0.10.0/src/agentkernel/framework/maf/__init__.py +16 -0
- agentkernel-0.10.0/src/agentkernel/framework/maf/maf.py +872 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/openai/__init__.py +1 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/openai/openai.py +266 -21
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/pydanticai/pydanticai.py +4 -4
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/smolagents/smolagents.py +3 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/guardrail/walledai.py +3 -2
- agentkernel-0.10.0/src/agentkernel/identity/__init__.py +58 -0
- agentkernel-0.10.0/src/agentkernel/identity/errors.py +14 -0
- agentkernel-0.10.0/src/agentkernel/identity/provider/__init__.py +1 -0
- agentkernel-0.10.0/src/agentkernel/identity/provider/base.py +81 -0
- agentkernel-0.10.0/src/agentkernel/identity/provider/cognito.py +86 -0
- agentkernel-0.10.0/src/agentkernel/identity/provider/entra.py +90 -0
- agentkernel-0.10.0/src/agentkernel/identity/provider/factory.py +95 -0
- agentkernel-0.10.0/src/agentkernel/identity/provider/firebase.py +61 -0
- agentkernel-0.10.0/src/agentkernel/identity/provider/oidc.py +332 -0
- agentkernel-0.10.0/src/agentkernel/identity/provider/request.py +132 -0
- agentkernel-0.10.0/src/agentkernel/identity/provider/roles.py +122 -0
- agentkernel-0.10.0/src/agentkernel/identity/provider/static.py +83 -0
- agentkernel-0.10.0/src/agentkernel/identity/provider/testing.py +122 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/adapter/__init__.py +6 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/adapter/base.py +136 -16
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/adapter/factory.py +1 -2
- agentkernel-0.10.0/src/agentkernel/integration/adapter/gateway.py +84 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/adapter/meta.py +5 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/adapter/poller.py +1 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/adapter/producer.py +30 -12
- agentkernel-0.10.0/src/agentkernel/integration/adapter/registry.py +50 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/adapter/route_matcher.py +6 -5
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/adapter/routes.py +2 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/adapter/testing.py +10 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/adapter/webhook.py +16 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/agui/__init__.py +1 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/agui/handler.py +45 -36
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/agui/mapping.py +3 -0
- agentkernel-0.10.0/src/agentkernel/integration/agui/queue_handler.py +226 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/agui/run_input.py +114 -18
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/agui/state.py +4 -5
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/gmail/README.md +1 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/gmail/adapter.py +47 -18
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/instagram/adapter.py +38 -18
- agentkernel-0.10.0/src/agentkernel/integration/livekit/__init__.py +14 -0
- agentkernel-0.10.0/src/agentkernel/integration/livekit/adapter.py +653 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/messenger/README.md +2 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/messenger/adapter.py +38 -18
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/slack/adapter.py +57 -21
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/teams/adapter.py +34 -27
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/telegram/README.md +1 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/telegram/adapter.py +34 -23
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/manager.py +27 -20
- agentkernel-0.10.0/src/agentkernel/integration/thread/model.py +138 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/naming.py +1 -1
- agentkernel-0.10.0/src/agentkernel/integration/thread/recorder.py +139 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/store/base.py +5 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/store/cosmosdb.py +5 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/store/dynamodb.py +7 -8
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/store/firestore.py +5 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/store/in_memory.py +7 -7
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/store/redis_like.py +5 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/thread_chat.py +100 -56
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/whatsapp/README.md +1 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/whatsapp/adapter.py +40 -21
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/base.py +7 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/chroma.py +4 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/knowledgebuilder.py +6 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/neo4j.py +5 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/okf/capability.py +8 -7
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/okf/manager.py +19 -18
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/okf/parser.py +2 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/okf/prompts.py +6 -5
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/okf/roles.py +10 -9
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/okf/tools.py +3 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/starburst.py +10 -12
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/store/local.py +1 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/store/s3.py +4 -4
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/testing.py +12 -11
- agentkernel-0.9.4/src/agentkernel/trace/__init__.py → agentkernel-0.10.0/src/agentkernel/maf.py +1 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/__init__.py +3 -1
- agentkernel-0.10.0/src/agentkernel/pipeline/agent_runner.py +460 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/consumer.py +17 -13
- agentkernel-0.10.0/src/agentkernel/pipeline/envelope.py +67 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/integration_delivery.py +7 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/io_handler.py +101 -36
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/producer.py +6 -6
- agentkernel-0.10.0/src/agentkernel/pipeline/realtime_pool.py +528 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/request_handler.py +217 -47
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/response_handler.py +137 -41
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/response_store/base.py +39 -9
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/response_store/dynamodb.py +7 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/response_store/factory.py +4 -4
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/response_store/in_memory.py +19 -19
- agentkernel-0.10.0/src/agentkernel/pipeline/response_store/redis.py +10 -0
- agentkernel-0.10.0/src/agentkernel/pipeline/response_store/redis_like.py +195 -0
- agentkernel-0.10.0/src/agentkernel/pipeline/response_store/testing.py +133 -0
- agentkernel-0.10.0/src/agentkernel/pipeline/response_store/valkey.py +10 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/thread_runner.py +3 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/transport/base.py +6 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/transport/bookkeeping.py +3 -4
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/transport/in_memory.py +11 -11
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/transport/kafka.py +19 -19
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/transport/nats.py +14 -14
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/transport/sqs.py +35 -20
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/ws/base.py +10 -10
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/ws/endpoint.py +9 -5
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/ws/gateway.py +20 -23
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/ws/handler.py +66 -41
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/ws/push.py +29 -10
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/ws/registry.py +7 -7
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/__init__.py +4 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/base.py +22 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/broker/base.py +8 -8
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/broker/embedded.py +3 -5
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/broker/queue.py +11 -9
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/broker/queue_worker.py +42 -5
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/broker/thread.py +11 -8
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/broker/wire.py +2 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/broker/worker.py +124 -11
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/errors.py +29 -5
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/factory.py +2 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/hooks.py +2 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/manager.py +146 -31
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/model.py +45 -2
- agentkernel-0.10.0/src/agentkernel/sandbox/packages.py +222 -0
- agentkernel-0.10.0/src/agentkernel/sandbox/permission.py +82 -0
- agentkernel-0.10.0/src/agentkernel/sandbox/principal.py +52 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/providers/daytona.py +70 -27
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/providers/docker.py +62 -26
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/providers/e2b.py +69 -30
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/providers/ec2_ssm.py +28 -12
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/providers/kubernetes.py +185 -33
- agentkernel-0.10.0/src/agentkernel/sandbox/providers/process.py +66 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/testing.py +6 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/tools.py +113 -14
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/handler.py +24 -25
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/manager.py +62 -36
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/model.py +14 -9
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/provider/base.py +3 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/provider/eventbridge.py +7 -7
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/provider/local.py +7 -7
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/store/base.py +3 -4
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/store/dynamodb.py +4 -5
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/store/in_memory.py +4 -4
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/store/redis_like.py +4 -5
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/timing.py +2 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/tools.py +27 -19
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/secret/__init__.py +2 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/secret/base.py +10 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/secret/cache.py +1 -2
- agentkernel-0.10.0/src/agentkernel/secret/errors.py +20 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/secret/factory.py +5 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/secret/manager.py +22 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/secret/providers/aws_ssm.py +6 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/secret/providers/env.py +5 -2
- agentkernel-0.10.0/src/agentkernel/secret/providers/kubernetes.py +116 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/secret/testing.py +6 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/ak-add-capabilities/SKILL.md +437 -105
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/ak-add-capabilities/evals/evals.json +84 -4
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/ak-add-integration/SKILL.md +22 -12
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/ak-add-integration/evals/evals.json +1 -1
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/ak-build/SKILL.md +88 -3
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/ak-build/evals/evals.json +54 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/ak-cloud-deploy/SKILL.md +254 -109
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/ak-cloud-deploy/evals/evals.json +17 -6
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/ak-init/SKILL.md +60 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/ak-init/evals/evals.json +35 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/ak-test/SKILL.md +14 -12
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/ak-test/evals/evals.json +2 -2
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/test/__init__.py +8 -0
- agentkernel-0.10.0/src/agentkernel/trace/__init__.py +10 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/base.py +25 -0
- agentkernel-0.10.0/src/agentkernel/trace/cloudwatch/claude.py +40 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/cloudwatch/cloudwatch.py +36 -5
- agentkernel-0.10.0/src/agentkernel/trace/cloudwatch/fetch.py +185 -0
- agentkernel-0.10.0/src/agentkernel/trace/cloudwatch/maf.py +33 -0
- agentkernel-0.10.0/src/agentkernel/trace/fetch.py +447 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/langfuse/adk.py +8 -4
- agentkernel-0.10.0/src/agentkernel/trace/langfuse/claude.py +44 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/langfuse/crewai.py +8 -4
- agentkernel-0.10.0/src/agentkernel/trace/langfuse/fetch.py +102 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/langfuse/langfuse.py +42 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/langfuse/langgraph.py +8 -4
- agentkernel-0.10.0/src/agentkernel/trace/langfuse/maf.py +42 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/langfuse/openai.py +8 -4
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/langfuse/pydanticai.py +8 -4
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/langfuse/smolagents.py +38 -34
- agentkernel-0.10.0/src/agentkernel/trace/logfire/claude.py +37 -0
- agentkernel-0.10.0/src/agentkernel/trace/logfire/fetch.py +122 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/logfire/logfire.py +42 -1
- agentkernel-0.10.0/src/agentkernel/trace/logfire/maf.py +32 -0
- agentkernel-0.10.0/src/agentkernel/trace/openllmetry/claude.py +55 -0
- agentkernel-0.10.0/src/agentkernel/trace/openllmetry/fetch.py +122 -0
- agentkernel-0.10.0/src/agentkernel/trace/openllmetry/maf.py +30 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/openllmetry/openllmetry.py +34 -5
- agentkernel-0.10.0/src/agentkernel/trace/testing.py +164 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/trace.py +57 -0
- agentkernel-0.9.4/pyproject.toml +0 -251
- agentkernel-0.9.4/src/agentkernel/api/a2a/a2a.py +0 -109
- agentkernel-0.9.4/src/agentkernel/api/a2a/handler.py +0 -76
- agentkernel-0.9.4/src/agentkernel/api/handler.py +0 -155
- agentkernel-0.9.4/src/agentkernel/api/mcp/akmcp.py +0 -76
- agentkernel-0.9.4/src/agentkernel/auth/__init__.py +0 -15
- agentkernel-0.9.4/src/agentkernel/auth/authoriser.py +0 -56
- agentkernel-0.9.4/src/agentkernel/auth/handler.py +0 -71
- agentkernel-0.9.4/src/agentkernel/auth.py +0 -1
- agentkernel-0.9.4/src/agentkernel/core/model.py +0 -466
- agentkernel-0.9.4/src/agentkernel/deployment/aws/containerized/ecs_io_handler.py +0 -86
- agentkernel-0.9.4/src/agentkernel/deployment/aws/serverless/akauthorizer.py +0 -138
- agentkernel-0.9.4/src/agentkernel/deployment/azure/akfunction.py +0 -82
- agentkernel-0.9.4/src/agentkernel/deployment/gcp/akauthorizer.py +0 -29
- agentkernel-0.9.4/src/agentkernel/integration/thread/model.py +0 -69
- agentkernel-0.9.4/src/agentkernel/integration/thread/recorder.py +0 -66
- agentkernel-0.9.4/src/agentkernel/pipeline/agent_runner.py +0 -246
- agentkernel-0.9.4/src/agentkernel/pipeline/envelope.py +0 -40
- agentkernel-0.9.4/src/agentkernel/pipeline/response_store/redis.py +0 -54
- agentkernel-0.9.4/src/agentkernel/pipeline/response_store/valkey.py +0 -54
- agentkernel-0.9.4/src/agentkernel/sandbox/principal.py +0 -39
- agentkernel-0.9.4/src/agentkernel/secret/errors.py +0 -13
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/adk.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/agui.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/api/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/api/a2a/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/api/mcp/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/aws.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/azure.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/cli/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/cli/ak.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/hooks.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/logger.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/multimodal/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/multimodal/factory.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/multimodal/storage/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/session/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/session/cosmosdb.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/session/redis.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/session/valkey.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/driver/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/driver/redis.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/driver/valkey.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/core/util/error_util.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/crewai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/containerized/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/containerized/core/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/containerized/core/api/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/containerized/core/api/rest_api.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/core/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/core/response_store/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/core/response_store/dynamodb.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/core/response_store/factory.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/core/response_store/redis.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/core/response_store/valkey.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/core/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/aws/serverless/core/router/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/azure/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/common/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/common/response_store.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/common/rest_handler.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/common/thread_runner.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/deployment/common/websocket_service.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/crewai/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/langgraph/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/pydanticai/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/framework/smolagents/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/gcp.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/gmail.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/guardrail/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/guardrail/bedrock.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/guardrail/guardrail.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/guardrail/openai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/instagram.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/gmail/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/instagram/README.md +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/instagram/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/messenger/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/slack/README.md +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/slack/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/teams/README.md +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/teams/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/telegram/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/store/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/store/redis.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/thread/store/valkey.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/integration/whatsapp/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/document.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/errors.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/model.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/okf/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/okf/model.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/store/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/knowledgebase/store/base.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/langgraph.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/mcp.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/messenger.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/openai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/response_store/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/testing.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/transport/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pipeline/ws/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/pydanticai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/broker/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/providers/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/sandbox/providers/local_subprocess.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/errors.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/provider/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/store/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/store/redis.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/schedule/store/valkey.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/secret/providers/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/skills/skills.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/slack.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/smolagents.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/teams.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/telegram.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/test/config.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/test/core/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/test/core/evaluator/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/test/core/evaluator/base.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/test/core/evaluator/deepeval.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/test/core/evaluator/jev.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/test/core/evaluator/opik.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/test/test.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/thread.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/cloudwatch/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/cloudwatch/adk.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/cloudwatch/crewai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/cloudwatch/langgraph.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/cloudwatch/openai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/cloudwatch/pydanticai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/cloudwatch/sigv4.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/cloudwatch/smolagents.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/langfuse/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/logfire/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/logfire/adk.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/logfire/crewai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/logfire/langgraph.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/logfire/openai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/logfire/pydanticai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/logfire/smolagents.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/openllmetry/__init__.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/openllmetry/adk.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/openllmetry/crewai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/openllmetry/langgraph.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/openllmetry/openai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/openllmetry/pydanticai.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/trace/openllmetry/smolagents.py +0 -0
- {agentkernel-0.9.4 → agentkernel-0.10.0}/src/agentkernel/whatsapp.py +0 -0
|
@@ -1,3 +1,160 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: agentkernel
|
|
3
|
+
Version: 0.10.0
|
|
4
|
+
Summary: Agent Kernel - Unified AI Agents Runtime
|
|
5
|
+
Author: Yaala Labs
|
|
6
|
+
Author-email: Yaala Labs <agentkernel@yaalalabs.com>
|
|
7
|
+
License: Apache-2.0
|
|
8
|
+
Requires-Dist: pydantic>=2.11.7,<3.0.0
|
|
9
|
+
Requires-Dist: pydantic-settings>=2.10.1,<3.0.0
|
|
10
|
+
Requires-Dist: pyyaml>=6.0.2,<7.0.0
|
|
11
|
+
Requires-Dist: singleton-type>=0.0.5,<0.1.0
|
|
12
|
+
Requires-Dist: a2a-sdk[http-server]==1.2.3 ; extra == 'a2a'
|
|
13
|
+
Requires-Dist: fastapi>=0.118.0,<0.142.0 ; extra == 'a2a'
|
|
14
|
+
Requires-Dist: uvicorn>=0.37.0,<0.53.0 ; extra == 'a2a'
|
|
15
|
+
Requires-Dist: google-adk>=2.7.0,<3.0.0 ; extra == 'adk'
|
|
16
|
+
Requires-Dist: litellm>=1.95.0,<1.96 ; extra == 'adk'
|
|
17
|
+
Requires-Dist: openinference-instrumentation-google-adk>=0.1.6,<0.2.0 ; extra == 'adk'
|
|
18
|
+
Requires-Dist: ag-ui-protocol>=0.1.16,<0.2.0 ; extra == 'agui'
|
|
19
|
+
Requires-Dist: fastapi>=0.118.0,<0.142.0 ; extra == 'api'
|
|
20
|
+
Requires-Dist: uvicorn>=0.37.0,<0.53.0 ; extra == 'api'
|
|
21
|
+
Requires-Dist: gunicorn>=23.0.0,<27.0.0 ; extra == 'api'
|
|
22
|
+
Requires-Dist: httpx>=0.27.0,<0.29.0 ; extra == 'api'
|
|
23
|
+
Requires-Dist: pyjwt>=2.15.0,<3.0.0 ; extra == 'auth'
|
|
24
|
+
Requires-Dist: cryptography>=42.0,<51.0.0 ; extra == 'auth'
|
|
25
|
+
Requires-Dist: httpx>=0.27.0,<0.29.0 ; extra == 'auth'
|
|
26
|
+
Requires-Dist: boto3>=1.41.4,<2.0.0 ; extra == 'aws'
|
|
27
|
+
Requires-Dist: azure-functions>=1.24.0,<3.0.0 ; extra == 'azure'
|
|
28
|
+
Requires-Dist: azure-data-tables>=12.4.0,<13.0.0 ; extra == 'azure'
|
|
29
|
+
Requires-Dist: azure-core>=1.26.0,<2.0.0 ; extra == 'azure'
|
|
30
|
+
Requires-Dist: chromadb>=0.4.0,<2.0.0 ; extra == 'chromadb'
|
|
31
|
+
Requires-Dist: claude-agent-sdk>=0.2.165,<0.3 ; extra == 'claude'
|
|
32
|
+
Requires-Dist: openinference-instrumentation-claude-agent-sdk>=0.1.20,<0.2.0 ; extra == 'claude'
|
|
33
|
+
Requires-Dist: opentelemetry-sdk>=1.30.0,<2.0.0 ; extra == 'cloudwatch'
|
|
34
|
+
Requires-Dist: opentelemetry-exporter-otlp-proto-http>=1.30.0,<2.0.0 ; extra == 'cloudwatch'
|
|
35
|
+
Requires-Dist: botocore>=1.41.4,<2.0.0 ; extra == 'cloudwatch'
|
|
36
|
+
Requires-Dist: requests>=2.32.0,<3.0.0 ; extra == 'cloudwatch'
|
|
37
|
+
Requires-Dist: crewai>=1.15.0,<2.0.0 ; extra == 'crewai'
|
|
38
|
+
Requires-Dist: openinference-instrumentation-crewai>=0.1.16,<2.0.0 ; extra == 'crewai'
|
|
39
|
+
Requires-Dist: openinference-instrumentation-litellm>=0.1.28,<0.2.0 ; extra == 'crewai'
|
|
40
|
+
Requires-Dist: croniter>=3.0,<7.0.0 ; extra == 'cron'
|
|
41
|
+
Requires-Dist: daytona>=0.198.0,<0.199 ; extra == 'daytona'
|
|
42
|
+
Requires-Dist: e2b-code-interpreter>=2.8.0,<3.0.0 ; extra == 'e2b'
|
|
43
|
+
Requires-Dist: google-cloud-firestore>=2.19.0,<3.0.0 ; extra == 'gcp'
|
|
44
|
+
Requires-Dist: google-auth>=2.0.0,<3.0.0 ; extra == 'gmail'
|
|
45
|
+
Requires-Dist: google-auth-oauthlib>=1.0.0,<2.0.0 ; extra == 'gmail'
|
|
46
|
+
Requires-Dist: google-auth-httplib2>=0.2.0,<0.5.0 ; extra == 'gmail'
|
|
47
|
+
Requires-Dist: google-api-python-client>=2.0.0,<3.0.0 ; extra == 'gmail'
|
|
48
|
+
Requires-Dist: httpx>=0.27.0,<0.29.0 ; extra == 'instagram'
|
|
49
|
+
Requires-Dist: fastapi>=0.118.0,<0.142.0 ; extra == 'instagram'
|
|
50
|
+
Requires-Dist: typesafe-sdk>=0.7.2,<0.8 ; extra == 'jev'
|
|
51
|
+
Requires-Dist: confluent-kafka>=2.15.0,<3.0.0 ; extra == 'kafka'
|
|
52
|
+
Requires-Dist: kubernetes>=29.0.0,<37.0.0 ; extra == 'kubernetes'
|
|
53
|
+
Requires-Dist: langfuse>=4.2.0,<5.0.0 ; extra == 'langfuse'
|
|
54
|
+
Requires-Dist: nest-asyncio>=1.6.0,<2.0.0 ; extra == 'langfuse'
|
|
55
|
+
Requires-Dist: langgraph>=1.2.14,<1.3 ; extra == 'langgraph'
|
|
56
|
+
Requires-Dist: langgraph-prebuilt~=1.1.0 ; extra == 'langgraph'
|
|
57
|
+
Requires-Dist: langchain~=1.3.10 ; extra == 'langgraph'
|
|
58
|
+
Requires-Dist: langchain-community~=0.4.1 ; extra == 'langgraph'
|
|
59
|
+
Requires-Dist: litellm>=1.95.0,<1.96 ; extra == 'langgraph'
|
|
60
|
+
Requires-Dist: livekit-api>=0.4.0,<2.0.0 ; extra == 'livekit'
|
|
61
|
+
Requires-Dist: livekit>=0.18.0,<2.0.0 ; extra == 'livekit'
|
|
62
|
+
Requires-Dist: logfire>=4.31.0,<5.0.0 ; extra == 'logfire'
|
|
63
|
+
Requires-Dist: httpx>=0.27.0,<0.29.0 ; extra == 'logfire'
|
|
64
|
+
Requires-Dist: agent-framework-core>=1.20.0,<2 ; extra == 'maf'
|
|
65
|
+
Requires-Dist: fastmcp>=3.4.10,<4.0.0 ; extra == 'mcp'
|
|
66
|
+
Requires-Dist: httpx>=0.27.0,<0.29.0 ; extra == 'messenger'
|
|
67
|
+
Requires-Dist: fastapi>=0.118.0,<0.142.0 ; extra == 'messenger'
|
|
68
|
+
Requires-Dist: litellm>=1.95.0,<2.0.0 ; extra == 'multimodal'
|
|
69
|
+
Requires-Dist: python-multipart>=0.0.12,<0.1.0 ; extra == 'multimodal'
|
|
70
|
+
Requires-Dist: nats-py>=2.15.0,<3.0.0 ; extra == 'nats'
|
|
71
|
+
Requires-Dist: neo4j>=5.0.0,<7.0.0 ; extra == 'neo4j'
|
|
72
|
+
Requires-Dist: openai-agents>=0.20.0,<0.21 ; extra == 'openai'
|
|
73
|
+
Requires-Dist: openinference-instrumentation-openai-agents>=1.4.0,<3.0.0 ; extra == 'openai'
|
|
74
|
+
Requires-Dist: openai-guardrails>=0.2.1,<0.4.0 ; extra == 'openai'
|
|
75
|
+
Requires-Dist: traceloop-sdk>=0.61.0,<0.63.0 ; extra == 'openllmetry'
|
|
76
|
+
Requires-Dist: httpx>=0.27.0,<0.29.0 ; extra == 'openllmetry'
|
|
77
|
+
Requires-Dist: opik>=1.7.0,<3.0.0 ; extra == 'opik'
|
|
78
|
+
Requires-Dist: pydantic-ai-slim~=2.13.0 ; extra == 'pydanticai'
|
|
79
|
+
Requires-Dist: openinference-instrumentation-pydantic-ai>=0.1.17,<0.2.0 ; extra == 'pydanticai'
|
|
80
|
+
Requires-Dist: redis>=7.1.0,<9.0.0 ; extra == 'redis'
|
|
81
|
+
Requires-Dist: docker>=7.0.0,<8.0.0 ; extra == 'sandbox-docker'
|
|
82
|
+
Requires-Dist: slack-bolt==1.22.0 ; extra == 'slack'
|
|
83
|
+
Requires-Dist: httpx>=0.27.0,<0.29.0 ; extra == 'slack'
|
|
84
|
+
Requires-Dist: fastapi>=0.118.0,<0.142.0 ; extra == 'slack'
|
|
85
|
+
Requires-Dist: aiohttp>=3.14.4,<4.0.0 ; extra == 'slack'
|
|
86
|
+
Requires-Dist: smolagents>=1.26.0,<2.0.0 ; extra == 'smolagents'
|
|
87
|
+
Requires-Dist: botbuilder-core>=4.17.0,<5.0.0 ; extra == 'teams'
|
|
88
|
+
Requires-Dist: botbuilder-schema>=4.17.0,<5.0.0 ; extra == 'teams'
|
|
89
|
+
Requires-Dist: aiohttp>=3.14.4,<4.0.0 ; extra == 'teams'
|
|
90
|
+
Requires-Dist: msal>=1.31.1,<2.0.0 ; extra == 'teams'
|
|
91
|
+
Requires-Dist: httpx>=0.27.0,<0.29.0 ; extra == 'teams'
|
|
92
|
+
Requires-Dist: fastapi>=0.118.0,<0.142.0 ; extra == 'teams'
|
|
93
|
+
Requires-Dist: httpx>=0.27.0,<0.29.0 ; extra == 'telegram'
|
|
94
|
+
Requires-Dist: fastapi>=0.118.0,<0.142.0 ; extra == 'telegram'
|
|
95
|
+
Requires-Dist: pytest>=8.4.1,<10.0.0 ; extra == 'test'
|
|
96
|
+
Requires-Dist: pytest-asyncio>=1.2.0,<2.0.0 ; extra == 'test'
|
|
97
|
+
Requires-Dist: pytest-cov>=6.2.1,<8.0.0 ; extra == 'test'
|
|
98
|
+
Requires-Dist: pytest-html>=4.1.1,<5.0.0 ; extra == 'test'
|
|
99
|
+
Requires-Dist: pytest-order>=1.3.0,<2.0.0 ; extra == 'test'
|
|
100
|
+
Requires-Dist: deepeval>=4.1.4,<5.0.0 ; extra == 'test'
|
|
101
|
+
Requires-Dist: litellm>=1.95.0,<2.0.0 ; extra == 'test'
|
|
102
|
+
Requires-Dist: litellm>=1.95.0,<2.0.0 ; extra == 'thread'
|
|
103
|
+
Requires-Dist: trino>=0.337.0,<0.340.0 ; extra == 'trino'
|
|
104
|
+
Requires-Dist: valkey>=6.0.0,<7.0.0 ; extra == 'valkey'
|
|
105
|
+
Requires-Dist: walledai>=4.9.3,<5.0.0 ; extra == 'walledai'
|
|
106
|
+
Requires-Dist: httpx>=0.27.0,<0.29.0 ; extra == 'whatsapp'
|
|
107
|
+
Requires-Dist: fastapi>=0.118.0,<0.142.0 ; extra == 'whatsapp'
|
|
108
|
+
Requires-Python: >=3.12, <3.14
|
|
109
|
+
Provides-Extra: a2a
|
|
110
|
+
Provides-Extra: adk
|
|
111
|
+
Provides-Extra: agui
|
|
112
|
+
Provides-Extra: api
|
|
113
|
+
Provides-Extra: auth
|
|
114
|
+
Provides-Extra: aws
|
|
115
|
+
Provides-Extra: azure
|
|
116
|
+
Provides-Extra: chromadb
|
|
117
|
+
Provides-Extra: claude
|
|
118
|
+
Provides-Extra: cli
|
|
119
|
+
Provides-Extra: cloudwatch
|
|
120
|
+
Provides-Extra: crewai
|
|
121
|
+
Provides-Extra: cron
|
|
122
|
+
Provides-Extra: daytona
|
|
123
|
+
Provides-Extra: e2b
|
|
124
|
+
Provides-Extra: gcp
|
|
125
|
+
Provides-Extra: gmail
|
|
126
|
+
Provides-Extra: instagram
|
|
127
|
+
Provides-Extra: jev
|
|
128
|
+
Provides-Extra: kafka
|
|
129
|
+
Provides-Extra: kubernetes
|
|
130
|
+
Provides-Extra: langfuse
|
|
131
|
+
Provides-Extra: langgraph
|
|
132
|
+
Provides-Extra: livekit
|
|
133
|
+
Provides-Extra: logfire
|
|
134
|
+
Provides-Extra: maf
|
|
135
|
+
Provides-Extra: mcp
|
|
136
|
+
Provides-Extra: messenger
|
|
137
|
+
Provides-Extra: multimodal
|
|
138
|
+
Provides-Extra: nats
|
|
139
|
+
Provides-Extra: neo4j
|
|
140
|
+
Provides-Extra: openai
|
|
141
|
+
Provides-Extra: openllmetry
|
|
142
|
+
Provides-Extra: opik
|
|
143
|
+
Provides-Extra: pydanticai
|
|
144
|
+
Provides-Extra: redis
|
|
145
|
+
Provides-Extra: sandbox-docker
|
|
146
|
+
Provides-Extra: slack
|
|
147
|
+
Provides-Extra: smolagents
|
|
148
|
+
Provides-Extra: teams
|
|
149
|
+
Provides-Extra: telegram
|
|
150
|
+
Provides-Extra: test
|
|
151
|
+
Provides-Extra: thread
|
|
152
|
+
Provides-Extra: trino
|
|
153
|
+
Provides-Extra: valkey
|
|
154
|
+
Provides-Extra: walledai
|
|
155
|
+
Provides-Extra: whatsapp
|
|
156
|
+
Description-Content-Type: text/markdown
|
|
157
|
+
|
|
1
158
|
# Agent Kernel
|
|
2
159
|
|
|
3
160
|
[](https://badge.fury.io/py/agentkernel)
|
|
@@ -8,71 +165,75 @@ Agent Kernel is a lightweight **AI agent runtime** and adapter layer for buildin
|
|
|
8
165
|
## Features
|
|
9
166
|
|
|
10
167
|
- **Unified API**: Common abstractions (Agent, Runner, Session, Module, Runtime) across frameworks
|
|
11
|
-
- **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK, Smolagents, and
|
|
168
|
+
- **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK, Smolagents, Pydantic AI, Microsoft Agent Framework, and the Claude Agent SDK
|
|
12
169
|
- **Session Management**: Built-in session abstraction with pluggable storage backends
|
|
13
170
|
- **Knowledge Bases**: Unified, capability-declaring `KnowledgeBase` interface with ChromaDB, Neo4j, Starburst/Trino and Open Knowledge Format bundle (local directory or S3) backends via `KnowledgeBuilder`
|
|
14
171
|
- **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
|
|
15
|
-
- **
|
|
172
|
+
- **Identity and Access**: One configured identity provider (any OIDC issuer such as Auth0, Keycloak or Okta, Amazon Cognito, Microsoft Entra ID, Firebase, a static credential map, or your own by dotted path) authenticates every surface; tools, hooks, threads and scheduled tasks see the same `Principal`, and a role mapper derives roles from groups and claims
|
|
173
|
+
- **Secret Resolution**: `SecretManager` resolves API keys and passwords environment-first, falling back to a pluggable provider (`env`, `aws_ssm` for AWS SSM Parameter Store, `kubernetes` for Kubernetes Secrets mounted into the pod, or your own) with a TTL'd process cache
|
|
16
174
|
- **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
|
|
17
|
-
- **Human in the Loop**: Pause a run for a person's approval or answer and resume from their decision — `status: "PAUSED"` with HTTP 202, a `resume` block carrying `approved`/`denied`/`cancelled` decisions, supported on OpenAI Agents SDK, LangGraph, Pydantic AI
|
|
175
|
+
- **Human in the Loop**: Pause a run for a person's approval or answer and resume from their decision — `status: "PAUSED"` with HTTP 202, a `resume` block carrying `approved`/`denied`/`cancelled` decisions, supported on OpenAI Agents SDK, LangGraph, Pydantic AI, Google ADK and Microsoft Agent Framework over REST, streaming and AG-UI
|
|
18
176
|
- **Flexible Deployment**: Interactive CLI, REST API, serverless, or containerized deployment — see the "Multi-Cloud Deployment" section below
|
|
19
177
|
- **Pluggable Architecture**: Easy to extend with custom framework adapters
|
|
20
178
|
- **MCP Server**: Built-in Model Context Protocol server for exposing agents as MCP tools and exposing any custom tool
|
|
21
179
|
- **A2A Server**: Built-in Agent-to-Agent communication server for exposing agents with a simple configuration change
|
|
22
180
|
- **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
|
|
181
|
+
- **A2UI**: Label a JSON reply as [A2UI](https://a2ui.org/) from two config keys, so a client receives a generative-UI document as an object with its format named rather than a string to parse twice
|
|
23
182
|
- **REST API**: Built-in REST API server for agent interaction
|
|
24
183
|
- **Test Automation**: Built-in test suite for testing agents
|
|
25
184
|
|
|
26
185
|
## Installation
|
|
27
186
|
|
|
28
187
|
```bash
|
|
29
|
-
|
|
188
|
+
uv init --python 3.12 my-agent
|
|
189
|
+
cd my-agent
|
|
190
|
+
uv add agentkernel
|
|
30
191
|
```
|
|
31
192
|
|
|
32
193
|
Install optional knowledge base extras as needed:
|
|
33
194
|
|
|
34
195
|
```bash
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
196
|
+
uv add "agentkernel[chromadb]"
|
|
197
|
+
uv add "agentkernel[neo4j]"
|
|
198
|
+
uv add "agentkernel[trino]"
|
|
38
199
|
```
|
|
39
200
|
|
|
40
201
|
Open Knowledge Format bundles need no extra - `pyyaml` is a core dependency. Serving a bundle from S3
|
|
41
|
-
uses the `aws` extra: `
|
|
202
|
+
uses the `aws` extra: `uv add "agentkernel[aws]"`.
|
|
42
203
|
|
|
43
204
|
For LLM-based thread naming with Conversation Thread Support:
|
|
44
205
|
|
|
45
206
|
```bash
|
|
46
|
-
|
|
207
|
+
uv add "agentkernel[thread]"
|
|
47
208
|
```
|
|
48
209
|
|
|
49
210
|
For the AG-UI server (`AGUIRequestHandler`):
|
|
50
211
|
|
|
51
212
|
```bash
|
|
52
|
-
|
|
213
|
+
uv add "agentkernel[agui]"
|
|
53
214
|
```
|
|
54
215
|
|
|
55
216
|
For the sandbox providers (the `local_subprocess` provider needs no extra; `ec2_ssm` rides
|
|
56
217
|
the `aws` extra):
|
|
57
218
|
|
|
58
219
|
```bash
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
220
|
+
uv add "agentkernel[sandbox-docker]" # docker provider
|
|
221
|
+
uv add "agentkernel[kubernetes]" # kubernetes provider (pod per sandbox)
|
|
222
|
+
uv add "agentkernel[e2b]" # e2b cloud provider
|
|
223
|
+
uv add "agentkernel[daytona]" # daytona cloud provider
|
|
224
|
+
uv add "agentkernel[aws]" # ec2_ssm provider (boto3)
|
|
64
225
|
```
|
|
65
226
|
|
|
66
227
|
For the `aws_ssm` secret provider (AWS SSM Parameter Store):
|
|
67
228
|
|
|
68
229
|
```bash
|
|
69
|
-
|
|
230
|
+
uv add "agentkernel[aws]"
|
|
70
231
|
```
|
|
71
232
|
|
|
72
233
|
For cron parsing with the Scheduling capability (the `eventbridge` provider rides the `aws` extra):
|
|
73
234
|
|
|
74
235
|
```bash
|
|
75
|
-
|
|
236
|
+
uv add "agentkernel[cron]"
|
|
76
237
|
```
|
|
77
238
|
|
|
78
239
|
**Requirements:**
|
|
@@ -195,7 +356,7 @@ Agent Kernel includes an interactive CLI for local development and testing.
|
|
|
195
356
|
**Usage:**
|
|
196
357
|
|
|
197
358
|
```bash
|
|
198
|
-
python demo.py
|
|
359
|
+
uv run python demo.py
|
|
199
360
|
```
|
|
200
361
|
|
|
201
362
|
Then interact with your agents:
|
|
@@ -231,7 +392,7 @@ handler = Lambda.handler
|
|
|
231
392
|
|
|
232
393
|
**Note that this is just the simple serverless version. A more advanced serverless deployment mode, which uses queues for scalability, is also available. For queue-backed execution modes and response-store configuration, see the [AWS Serverless Deployment](https://github.com/yaalalabs/agent-kernel/tree/develop/docs/docs/deployment/aws-serverless.md) guide.**
|
|
233
394
|
|
|
234
|
-
The AWS serverless handler accepts both a direct `BaseRunRequest` payload and the normalized `BaseRequest` envelope. If a flat run payload is provided, Agent Kernel generates a `request_id` and normalizes it before processing.
|
|
395
|
+
The AWS serverless handler accepts both a direct `BaseRunRequest` payload and the normalized `BaseRequest` envelope. If a flat run payload is provided, Agent Kernel generates a `request_id` and normalizes it before processing. The caller is never named in the payload: the API Gateway authorizer (`handler = APIGatewayAuthorizer().handle`, configured by the `identity` block) establishes the principal and the handler puts it on the request; see [Identity and Access](https://kernel.yaala.ai/docs/advanced/identity-and-access).
|
|
235
396
|
|
|
236
397
|
Accepted payloads:
|
|
237
398
|
|
|
@@ -246,7 +407,6 @@ Accepted payloads:
|
|
|
246
407
|
```json
|
|
247
408
|
{
|
|
248
409
|
"request_id": "req-123",
|
|
249
|
-
"user_id": "user-123",
|
|
250
410
|
"body": {
|
|
251
411
|
"prompt": "Hello agent",
|
|
252
412
|
"agent": "assistant",
|
|
@@ -277,7 +437,6 @@ handler = AzureFunctions.handler
|
|
|
277
437
|
```json
|
|
278
438
|
{
|
|
279
439
|
"request_id": "req-123",
|
|
280
|
-
"user_id": "user-123",
|
|
281
440
|
"body": {
|
|
282
441
|
"prompt": "Hello agent",
|
|
283
442
|
"agent": "assistant",
|
|
@@ -394,6 +553,55 @@ Supported formats: `.yaml`, `.yml`, `.json`
|
|
|
394
553
|
- **Description**: System/root logger level (INFO, DEBUG, ERROR, WARNING, CRITICAL)
|
|
395
554
|
- **Environment Variable**: `AK_LOGGING__SYSTEM__LEVEL`
|
|
396
555
|
|
|
556
|
+
#### Identity
|
|
557
|
+
|
|
558
|
+
The `identity` block selects the one identity provider every surface (REST, WebSocket, AG-UI, MCP, A2A,
|
|
559
|
+
the CLI) authenticates through, and the role mapper that derives roles from what it asserts. Without the
|
|
560
|
+
block every request runs as the anonymous principal. The thread, schedule and AG-UI handlers and the
|
|
561
|
+
WebSocket modes refuse to start without it. Full reference: [Identity and Access](https://kernel.yaala.ai/docs/next/advanced/identity-and-access).
|
|
562
|
+
|
|
563
|
+
Auth0 is an `oidc` configuration: the tenant's issuer with the trailing slash, the API identifier as
|
|
564
|
+
the audience, and the namespaced claim an Auth0 Action sets as the groups path:
|
|
565
|
+
|
|
566
|
+
```yaml
|
|
567
|
+
identity:
|
|
568
|
+
provider:
|
|
569
|
+
type: oidc
|
|
570
|
+
issuer: https://<tenant>.<region>.auth0.com/ # or the custom domain; trailing slash included, as Auth0 issues it
|
|
571
|
+
audience: <the API identifier of your Auth0 API>
|
|
572
|
+
claims:
|
|
573
|
+
groups: https://<your namespace>/roles # the namespaced claim an Auth0 Action sets; omit if you set none
|
|
574
|
+
```
|
|
575
|
+
|
|
576
|
+
- **Field**: `identity.provider.type`
|
|
577
|
+
- **Type**: string
|
|
578
|
+
- **Default**: `oidc`
|
|
579
|
+
- **Description**: `oidc` (any OpenID Connect issuer: Auth0, Keycloak, Okta, ...), `cognito`, `entra`, `firebase`, `static`, or a dotted path to an `IdentityProvider` subclass. `oidc`, `cognito`, `entra` and `firebase` need the `auth` extra (`agentkernel[auth]`).
|
|
580
|
+
- **Environment Variable**: `AK_IDENTITY__PROVIDER__TYPE`
|
|
581
|
+
|
|
582
|
+
- **Field**: `identity.provider.issuer`, `identity.provider.audience`
|
|
583
|
+
- **Type**: string
|
|
584
|
+
- **Description**: The issuer URL and the audience a token must carry. Both are required by `oidc` (Auth0: `https://<tenant>.<region>.auth0.com/` with the trailing slash, and the API identifier); `cognito` and `entra` take the audience (the app client id, the application id) and derive the issuer; `firebase` derives both.
|
|
585
|
+
- **Environment Variable**: `AK_IDENTITY__PROVIDER__ISSUER`, `AK_IDENTITY__PROVIDER__AUDIENCE`
|
|
586
|
+
|
|
587
|
+
- **Field**: `identity.provider.jwks_uri`, `identity.provider.algorithms`, `identity.provider.leeway`, `identity.provider.required_claims`
|
|
588
|
+
- **Description**: The JWK set URL (discovered from the issuer when omitted), the allowed signing algorithms (default `[RS256, ES256]`; an empty list, `none`, an unknown name or a symmetric one fails startup), the clock skew in seconds (default `30`) and extra claims a token must carry.
|
|
589
|
+
|
|
590
|
+
- **Field**: `identity.provider.claims.subject`, `identity.provider.claims.groups`
|
|
591
|
+
- **Type**: string (a claim name, a namespaced name such as `https://acme.com/roles`, or dotted segments such as `realm_access.roles`)
|
|
592
|
+
- **Default**: `sub`, `groups`
|
|
593
|
+
- **Description**: Where the provider reads the subject and the group list.
|
|
594
|
+
|
|
595
|
+
- **Field**: `identity.provider.cognito` (`region`, `user_pool_id`, `token_use`), `identity.provider.entra` (`tenant_id`), `identity.provider.firebase` (`project_id`)
|
|
596
|
+
- **Description**: The settings of the matching built-in provider. `token_use` is `access` (default) or `id`; any other value fails startup.
|
|
597
|
+
|
|
598
|
+
- **Field**: `identity.provider.static.principals`
|
|
599
|
+
- **Type**: mapping of secret key to principal (`subject`, `kind`, `groups`, `roles`, `claims`)
|
|
600
|
+
- **Description**: The `static` provider's credentials. Each key names a secret resolved through the secret capability when the provider is built (the environment first), so no credential value is written in the file; a key with no secret, or an empty map, fails startup. An entry's `roles` are issued directly; a role mapper replaces them.
|
|
601
|
+
|
|
602
|
+
- **Field**: `identity.role_mapper.type`, `identity.role_mapper.mapping`, `identity.role_mapper.claims`, `identity.role_mapper.pass_through`
|
|
603
|
+
- **Description**: Optional. `mapping` (default) maps group names to roles, and the string or list values of the claim paths listed in `claims` (default `[]`: groups only, since a user sets many of their own claims), then appends the `pass_through` claim's value as roles; a dotted path selects a `RoleMapper` subclass, which reads settings of its own from `model_extra`. Without a mapper only a `static` entry's own roles exist. Nothing enforces roles yet.
|
|
604
|
+
|
|
397
605
|
#### Session Store
|
|
398
606
|
|
|
399
607
|
Configure where agent sessions are stored (supports multi-cloud storage backends).
|
|
@@ -455,9 +663,10 @@ available on AWS ElastiCache at a lower price point than the Redis OSS engine:
|
|
|
455
663
|
Mounting `AgentThreadRequestHandler` (from `agentkernel.thread`) instead of the default REST handler
|
|
456
664
|
enables persistent, named conversation threads keyed by `session_id`: it serves the standard chat routes
|
|
457
665
|
with thread recording, plus the read routes (`GET /api/v1/threads` and
|
|
458
|
-
`GET /api/v1/threads/{session_id}
|
|
459
|
-
|
|
460
|
-
|
|
666
|
+
`GET /api/v1/threads/{session_id}`). The handler requires an `identity` block: every thread belongs to the
|
|
667
|
+
authenticated principal, an anonymous request is a 401, and the listing returns the caller's own threads
|
|
668
|
+
(there is no `user_id` field or query parameter). The `thread` block in the configuration only selects
|
|
669
|
+
the store backend and naming. A thread is auto-created on a session's first request. Sending
|
|
461
670
|
`thread_name` on any chat request sets or renames the thread's display name and locks it against automatic
|
|
462
671
|
naming. Threads created without an explicit `thread_name` are
|
|
463
672
|
named by a pluggable naming strategy — by default an LLM call derives a concise title from the first prompt
|
|
@@ -476,7 +685,7 @@ mode additionally require `multimodal.enabled: true` with a shared attachment st
|
|
|
476
685
|
- **Field**: `thread.naming.model`
|
|
477
686
|
- **Type**: string
|
|
478
687
|
- **Default**: `gpt-4o-mini`
|
|
479
|
-
- **Description**: LiteLLM model used to generate thread names (requires the `thread` extra — `
|
|
688
|
+
- **Description**: LiteLLM model used to generate thread names (requires the `thread` extra — `uv add "agentkernel[thread]"` — and an API key in the environment; falls back to a truncated prompt prefix otherwise)
|
|
480
689
|
- **Environment Variable**: `AK_THREAD__NAMING__MODEL`
|
|
481
690
|
|
|
482
691
|
- **Auto-name Max Length**
|
|
@@ -510,7 +719,7 @@ Required when `thread.type=redis`:
|
|
|
510
719
|
|
|
511
720
|
##### Valkey Thread Store
|
|
512
721
|
|
|
513
|
-
Required when `thread.type=valkey`. Requires the `valkey` extra (`
|
|
722
|
+
Required when `thread.type=valkey`. Requires the `valkey` extra (`uv add "agentkernel[valkey]"`):
|
|
514
723
|
|
|
515
724
|
- **URL**
|
|
516
725
|
- **Field**: `thread.valkey.url`
|
|
@@ -597,9 +806,10 @@ execution pipeline. The block also injects five agent tools (`create_schedule`,
|
|
|
597
806
|
`get_schedule`, `update_schedule`, `delete_schedule`). The management routes
|
|
598
807
|
(`GET`/`PUT`/`DELETE /api/v1/schedules`) are not mounted from config: the application mounts
|
|
599
808
|
`ScheduleRESTRequestHandler` itself — `IOHandler.run(handlers=[ScheduleRESTRequestHandler()])` —
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
809
|
+
and the handler requires an `identity` block. Every scheduling request needs an authenticated principal:
|
|
810
|
+
it is the owner the task is stored under and that later reads and changes are checked against (an
|
|
811
|
+
anonymous management request is a 401, an anonymous chat request with a `schedule` block a 403; there is
|
|
812
|
+
no `user_id` field). A bare `schedule:` block works for local development: its defaults are the
|
|
603
813
|
`local` provider and the `in_memory` store. See `examples/api/schedule-openai`.
|
|
604
814
|
|
|
605
815
|
- **Provider Type**
|
|
@@ -700,16 +910,27 @@ failure raises `SecretError` even with a `default`. The capability is always ava
|
|
|
700
910
|
- **Type**: string
|
|
701
911
|
- **Default**: `env`
|
|
702
912
|
- **Options**: `env` (the process environment), `aws_ssm` (AWS SSM Parameter Store; requires
|
|
703
|
-
`secret.prefix` and the `aws` extra — `OPENAI_API_KEY` is read from `/ak/<prefix>/openai_api_key`),
|
|
704
|
-
|
|
913
|
+
`secret.prefix` and the `aws` extra — `OPENAI_API_KEY` is read from `/ak/<prefix>/openai_api_key`),
|
|
914
|
+
`kubernetes` (one file per key from Kubernetes Secrets mounted under
|
|
915
|
+
`secret.provider.kubernetes.mount_path`, standard library only, no API calls), or a dotted path to a
|
|
916
|
+
`SecretProvider` subclass
|
|
705
917
|
- **Environment Variable**: `AK_SECRET__PROVIDER__TYPE`
|
|
706
918
|
|
|
919
|
+
- **Kubernetes Mount Path**
|
|
920
|
+
- **Field**: `secret.provider.kubernetes.mount_path`
|
|
921
|
+
- **Type**: string (absolute path)
|
|
922
|
+
- **Default**: `/var/run/secrets/agentkernel`
|
|
923
|
+
- **Description**: Directory the Kubernetes Secrets are mounted under, one subdirectory per Secret
|
|
924
|
+
(`<mount_path>/<secret-name>/<KEY>`). The Helm chart's `secretStore` mounts under the default. Read only by
|
|
925
|
+
the `kubernetes` provider
|
|
926
|
+
- **Environment Variable**: `AK_SECRET__PROVIDER__KUBERNETES__MOUNT_PATH`
|
|
927
|
+
|
|
707
928
|
- **Prefix**
|
|
708
929
|
- **Field**: `secret.prefix`
|
|
709
930
|
- **Type**: string
|
|
710
931
|
- **Default**: `""`
|
|
711
932
|
- **Description**: Deployment scope providers namespace secrets under; a single path segment. Required by
|
|
712
|
-
`aws_ssm`, ignored by `env`. Injected by the AWS Terraform modules when `ssm_enabled = true`
|
|
933
|
+
`aws_ssm`, ignored by `env` and `kubernetes`. Injected by the AWS Terraform modules when `ssm_enabled = true`
|
|
713
934
|
- **Environment Variable**: `AK_SECRET__PREFIX`
|
|
714
935
|
|
|
715
936
|
- **Cache TTL**
|
|
@@ -726,11 +947,27 @@ Configure queue-backed and serverless execution behavior.
|
|
|
726
947
|
|
|
727
948
|
- **Execution Mode**
|
|
728
949
|
- **Field**: `execution.mode`
|
|
729
|
-
- **Options**: `rest_sync`, `rest_async`, `
|
|
730
|
-
- **Default**: `None`
|
|
731
|
-
- **Description**:
|
|
950
|
+
- **Options**: `rest_sync`, `rest_async`, `async`, `realtime`
|
|
951
|
+
- **Default**: `None` (runs as `rest_sync`)
|
|
952
|
+
- **Description**: How a request is invoked: `rest_sync` (REST, wait for the reply), `rest_async`
|
|
953
|
+
(REST, submit then poll), `async` (WebSocket only), `realtime` (persistent realtime sockets, e.g.
|
|
954
|
+
the LiveKit voice gateway). `stream` was removed and fails at config load with `AKConfigError`:
|
|
955
|
+
set `mode: rest_sync` with `message_type: delta` for SSE over REST, or `mode: async` with
|
|
956
|
+
`message_type: delta` for chunks over WebSocket
|
|
732
957
|
- **Environment Variable**: `AK_EXECUTION__MODE`
|
|
733
958
|
|
|
959
|
+
- **Message Type**
|
|
960
|
+
- **Field**: `execution.message_type`
|
|
961
|
+
- **Options**: `complete`, `delta`
|
|
962
|
+
- **Default**: `None` (resolves to `delta` for `realtime`, `complete` otherwise)
|
|
963
|
+
- **Description**: How much of the reply each delivered message carries. `complete` sends the whole
|
|
964
|
+
reply in one message (JSON under `rest_sync`, one `CHAT_RESPONSE` under `async`); `delta` sends one
|
|
965
|
+
message per chunk (SSE under `rest_sync`, one `STREAM_CHUNK` per chunk ending with `done: true`
|
|
966
|
+
under `async`). `rest_async` + `delta` and `realtime` + `complete` fail at config load. AWS
|
|
967
|
+
Lambda (REST router init) and the ECS queue-mode `ECSIOHandler` (startup) refuse `rest_sync` +
|
|
968
|
+
`delta`; use `async` + `delta` there
|
|
969
|
+
- **Environment Variable**: `AK_EXECUTION__MESSAGE_TYPE`
|
|
970
|
+
|
|
734
971
|
- **Queues**
|
|
735
972
|
- **Field**: `execution.queues`
|
|
736
973
|
- **Description**: Queue settings used by the queue execution pipeline (in-process by default, or serverless/containerized backends)
|
|
@@ -1022,6 +1259,12 @@ Configure the REST API server (if using the API module).
|
|
|
1022
1259
|
- **Description**: List of agent names to expose as MCP tools
|
|
1023
1260
|
- **Environment Variable**: `AK_MCP__AGENTS` (comma-separated)
|
|
1024
1261
|
|
|
1262
|
+
- **URL**
|
|
1263
|
+
- **Field**: `mcp.url`
|
|
1264
|
+
- **Default**: `http://localhost:8000/mcp`
|
|
1265
|
+
- **Description**: Public URL of the MCP endpoint. With an OpenID-family identity provider the 401 points at the RFC 9728 resource metadata the app serves at `<origin>/.well-known/oauth-protected-resource/mcp/`, naming this URL as the resource; set it to the address clients use (behind a proxy, the public one)
|
|
1266
|
+
- **Environment Variable**: `AK_MCP__URL`
|
|
1267
|
+
|
|
1025
1268
|
- **Stateless HTTP**
|
|
1026
1269
|
- **Field**: `mcp.stateless_http`
|
|
1027
1270
|
- **Default**: `false`
|
|
@@ -1037,10 +1280,13 @@ Configure the REST API server (if using the API module).
|
|
|
1037
1280
|
Mounting `AGUIRequestHandler` (from `agentkernel.agui`, requires the `agentkernel[agui]` extra — `pip
|
|
1038
1281
|
install "agentkernel[agui]"`) is what enables the [AG-UI protocol](https://github.com/ag-ui-protocol/ag-ui)
|
|
1039
1282
|
surface; the `agui` block only parameterizes it, and it never switches the surface on by itself.
|
|
1040
|
-
`
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1283
|
+
Mount `AGUIPipelineRequestHandler` through `IOHandler.run(handlers=[...])` instead to run the agent
|
|
1284
|
+
on the queue pipeline rather than inside the SSE request; same routes and events, and it refuses to
|
|
1285
|
+
start unless the configured stores can serve a run from the runner process.
|
|
1286
|
+
`AGUIRequestHandler` refuses to construct without an `identity` block and answers an anonymous request
|
|
1287
|
+
with a 401, since AG-UI runs agents on a caller's behalf and has no anonymous mode. Only agents whose runner declares
|
|
1288
|
+
`supports_streaming = True` are reachable (currently OpenAI Agents SDK, LangGraph, Google ADK, Pydantic AI
|
|
1289
|
+
and Microsoft Agent Framework — not CrewAI or Smolagents). See `examples/api/agui`.
|
|
1044
1290
|
|
|
1045
1291
|
- **Agents**
|
|
1046
1292
|
- **Field**: `agui.agents`
|
|
@@ -1078,6 +1324,27 @@ Pydantic AI — not CrewAI or Smolagents). See `examples/api/agui`.
|
|
|
1078
1324
|
- **Default**: unset (every agent gets the tools)
|
|
1079
1325
|
- **Environment Variable**: `AK_AGUI__CLIENT_CONTEXT__AGENTS` (comma-separated)
|
|
1080
1326
|
|
|
1327
|
+
#### A2UI Configuration
|
|
1328
|
+
|
|
1329
|
+
Labels a JSON reply as [A2UI](https://a2ui.org/) so a client receives the document as an object with
|
|
1330
|
+
its format named, instead of a JSON string it has to parse a second time. Agent Kernel supplies the
|
|
1331
|
+
media type and nothing else — the component catalog belongs in your agent's instructions, because it
|
|
1332
|
+
has to match the components your frontend implements. The block does not reach a streamed run
|
|
1333
|
+
(`execution.message_type: delta`) or an agent configured with a framework `output_type`; both are told to
|
|
1334
|
+
write their own post-hook. See `examples/api/a2ui-openai`.
|
|
1335
|
+
|
|
1336
|
+
- **Enabled**
|
|
1337
|
+
- **Field**: `a2ui.enabled`
|
|
1338
|
+
- **Default**: `false`
|
|
1339
|
+
- **Description**: Master switch. When off, no hook runs and no reply is labelled
|
|
1340
|
+
- **Environment Variable**: `AK_A2UI__ENABLED`
|
|
1341
|
+
|
|
1342
|
+
- **Agents**
|
|
1343
|
+
- **Field**: `a2ui.agents`
|
|
1344
|
+
- **Default**: unset (every agent's JSON replies are labelled)
|
|
1345
|
+
- **Description**: Agent names whose JSON replies are labelled `application/a2ui+json`. Naming an agent is the declaration that it emits A2UI; a reply from it that does not parse as JSON is left alone
|
|
1346
|
+
- **Environment Variable**: `AK_A2UI__AGENTS` (comma-separated)
|
|
1347
|
+
|
|
1081
1348
|
#### Trace (Observability) Configuration
|
|
1082
1349
|
|
|
1083
1350
|
Configure tracing and observability for monitoring agent execution.
|
|
@@ -1100,7 +1367,7 @@ Configure tracing and observability for monitoring agent execution.
|
|
|
1100
1367
|
To use Langfuse for tracing, install the langfuse extra:
|
|
1101
1368
|
|
|
1102
1369
|
```bash
|
|
1103
|
-
|
|
1370
|
+
uv add "agentkernel[langfuse]"
|
|
1104
1371
|
```
|
|
1105
1372
|
|
|
1106
1373
|
Configure Langfuse credentials via environment variables:
|
|
@@ -1124,7 +1391,7 @@ trace:
|
|
|
1124
1391
|
To use OpenLLMetry for tracing, install the openllmetry extra:
|
|
1125
1392
|
|
|
1126
1393
|
```bash
|
|
1127
|
-
|
|
1394
|
+
uv add "agentkernel[openllmetry]"
|
|
1128
1395
|
```
|
|
1129
1396
|
|
|
1130
1397
|
Configure Traceloop credentials via environment variables:
|
|
@@ -1147,7 +1414,7 @@ trace:
|
|
|
1147
1414
|
To use Logfire for tracing, install the logfire extra:
|
|
1148
1415
|
|
|
1149
1416
|
```bash
|
|
1150
|
-
|
|
1417
|
+
uv add "agentkernel[logfire]"
|
|
1151
1418
|
```
|
|
1152
1419
|
|
|
1153
1420
|
Configure the Logfire write token via an environment variable (optional — without a token, Logfire
|
|
@@ -1170,7 +1437,7 @@ trace:
|
|
|
1170
1437
|
To send traces to Amazon CloudWatch (via AWS X-Ray, searchable in Transaction Search), install the cloudwatch extra:
|
|
1171
1438
|
|
|
1172
1439
|
```bash
|
|
1173
|
-
|
|
1440
|
+
uv add "agentkernel[cloudwatch]"
|
|
1174
1441
|
```
|
|
1175
1442
|
|
|
1176
1443
|
Spans are exported over OTLP to the X-Ray endpoint of your region, signed with the standard AWS credential
|
|
@@ -1191,6 +1458,24 @@ trace:
|
|
|
1191
1458
|
type: cloudwatch
|
|
1192
1459
|
```
|
|
1193
1460
|
|
|
1461
|
+
**Fetching spans back (trace evaluation):**
|
|
1462
|
+
|
|
1463
|
+
Every built-in tracer can read recorded spans back through one provider-neutral filter, so production traces can be
|
|
1464
|
+
evaluated offline:
|
|
1465
|
+
|
|
1466
|
+
```python
|
|
1467
|
+
from datetime import timedelta
|
|
1468
|
+
|
|
1469
|
+
from agentkernel.trace import SpanKind, Trace
|
|
1470
|
+
|
|
1471
|
+
tool_calls = Trace.get().fetch_spans(last=timedelta(hours=6), kinds=[SpanKind.TOOL])
|
|
1472
|
+
traces = Trace.get().fetch_traces(session_id="session-123", last=timedelta(hours=24))
|
|
1473
|
+
```
|
|
1474
|
+
|
|
1475
|
+
Spans are returned oldest first as `FetchedSpan` objects. See the
|
|
1476
|
+
[Traceability docs](https://kernel.yaala.ai/docs/advanced/traceability) and the `examples/aws-serverless/openai-langfuse-trace-evaluation`
|
|
1477
|
+
example. Custom tracers that override `fetch_spans` can be checked with `agentkernel.trace.testing.TraceFetchContract`.
|
|
1478
|
+
|
|
1194
1479
|
#### Test Configuration
|
|
1195
1480
|
|
|
1196
1481
|
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.
|
|
@@ -1227,7 +1512,7 @@ Configure test comparison modes for automated testing. Test configuration is sep
|
|
|
1227
1512
|
- **Environment Variable**: `AK_TEST__LLM__EMBEDDING_MODEL`
|
|
1228
1513
|
|
|
1229
1514
|
**Test Modes:**
|
|
1230
|
-
- `score`: Deterministic, offline string-match scoring via the configured evaluator (built-in `deepeval`: `Scorer.quasi_exact_match_score`; built-in `opik`: `LevenshteinRatio`, requires `
|
|
1515
|
+
- `score`: Deterministic, offline string-match scoring via the configured evaluator (built-in `deepeval`: `Scorer.quasi_exact_match_score`; built-in `opik`: `LevenshteinRatio`, requires `uv add "agentkernel[opik]"`; built-in `jev` has no score mode)
|
|
1231
1516
|
- `llm`: LLM-as-judge evaluation via the configured evaluator (built-in `deepeval` or `opik`: `GEval`; built-in `jev`: a TypeSafe JEV yes/no Noul question) for semantic similarity
|
|
1232
1517
|
- `fallback`: Tries score first, falls back to llm if score fails
|
|
1233
1518
|
|
|
@@ -1326,19 +1611,19 @@ Configure input and output guardrails to validate agent requests and responses f
|
|
|
1326
1611
|
To use OpenAI guardrails, install the openai-guardrails package:
|
|
1327
1612
|
|
|
1328
1613
|
```bash
|
|
1329
|
-
|
|
1614
|
+
uv add "agentkernel[openai]"
|
|
1330
1615
|
```
|
|
1331
1616
|
|
|
1332
1617
|
To use AWS Bedrock guardrails, install the AWS package:
|
|
1333
1618
|
|
|
1334
1619
|
```bash
|
|
1335
|
-
|
|
1620
|
+
uv add "agentkernel[aws]"
|
|
1336
1621
|
```
|
|
1337
1622
|
|
|
1338
1623
|
To use Walled AI guardrails, install the Walled AI package:
|
|
1339
1624
|
|
|
1340
1625
|
```bash
|
|
1341
|
-
|
|
1626
|
+
uv add "agentkernel[walledai]"
|
|
1342
1627
|
```
|
|
1343
1628
|
|
|
1344
1629
|
Create guardrail configuration:
|
|
@@ -1399,8 +1684,8 @@ guardrail:
|
|
|
1399
1684
|
Enable the sandbox capability to let agents execute code and shell commands in an isolated,
|
|
1400
1685
|
permission-bounded environment. When enabled, agents automatically gain sandbox tools
|
|
1401
1686
|
(`run_code`, `run_command`, `write_sandbox_file`, `read_sandbox_file`, `check_sandbox_task`,
|
|
1402
|
-
`list_sandbox_sessions`, `new_sandbox_session`, `destroy_sandbox_session
|
|
1403
|
-
guidance is injected into their system prompt.
|
|
1687
|
+
`list_sandbox_sessions`, `new_sandbox_session`, `destroy_sandbox_session`, plus `install_packages`
|
|
1688
|
+
when a profile permits package installs) and the usage guidance is injected into their system prompt.
|
|
1404
1689
|
|
|
1405
1690
|
Minimal single-backend form (a `default` profile is synthesized from `type` + its config block):
|
|
1406
1691
|
|
|
@@ -1438,6 +1723,9 @@ sandbox:
|
|
|
1438
1723
|
memory_mb: 512
|
|
1439
1724
|
timeout: 30.0 # per-execution wall-clock seconds (always enforced)
|
|
1440
1725
|
strict: true # fail closed when the provider can't enforce a policy dimension
|
|
1726
|
+
languages: [python] # run_code allowlist; omitted = provider-declared; [] = no run_code
|
|
1727
|
+
package_install: # omitted = installs denied; present = install_packages permitted
|
|
1728
|
+
ecosystems: [python]
|
|
1441
1729
|
docker:
|
|
1442
1730
|
image: python:3.12-slim
|
|
1443
1731
|
```
|
|
@@ -1447,7 +1735,8 @@ Key fields:
|
|
|
1447
1735
|
- **`enabled`** (`AK_SANDBOX__ENABLED`, default `false`) — master switch; inert when off.
|
|
1448
1736
|
- **`agents`** — agent names the tools/prompt attach to; omit for all agents.
|
|
1449
1737
|
- **`type`** (per profile) — `local_subprocess` (no isolation; dev/test), `docker`
|
|
1450
|
-
(container isolation; `sandbox-docker` extra), `
|
|
1738
|
+
(container isolation; `sandbox-docker` extra), `kubernetes` (pod per sandbox; `kubernetes`
|
|
1739
|
+
extra), `e2b` (managed micro-VMs; `e2b` extra),
|
|
1451
1740
|
`daytona` (cloud containers; `daytona` extra), `ec2_ssm` (attach to an existing EC2
|
|
1452
1741
|
instance via SSM; `aws` extra), or a dotted path to your own `SandboxProvider`.
|
|
1453
1742
|
- **`scope`** — `per_call` (fresh per execution), `per_session` (persists across turns),
|
|
@@ -1457,10 +1746,15 @@ Key fields:
|
|
|
1457
1746
|
e.g. an EC2 instance via `ec2_ssm`; requires the provider's `attach_to` and is validated
|
|
1458
1747
|
against the provider's lifecycle capabilities at startup).
|
|
1459
1748
|
- **`policy`** — network egress, filesystem paths, cpu/memory, timeout; enforced per provider,
|
|
1460
|
-
fail-closed under `strict`.
|
|
1749
|
+
fail-closed under `strict`. Also the permissions: `languages` (which `run_code` languages are
|
|
1750
|
+
allowed) and `package_install` (whether `install_packages` is allowed, and for which ecosystems).
|
|
1751
|
+
A provider's `package_installers` sets the installer command per ecosystem (default `pip install`),
|
|
1752
|
+
and on `docker`/`kubernetes`/`ec2_ssm` its `language_runtimes` sets the interpreter per language (default `python -c`; on `ec2_ssm` each argv reads the code from stdin, default `python3 -`).
|
|
1461
1753
|
- **`identity.mode`** + **`principal_resolver`** — run code under the agent's or the invoking
|
|
1462
|
-
user's identity
|
|
1463
|
-
|
|
1754
|
+
user's identity; the default resolver reads the run's `Principal`, so `user` mode needs no custom
|
|
1755
|
+
resolver once an `identity` block authenticates the caller.
|
|
1756
|
+
- **`broker.flavor`** — `thread` (default, for CLI/REST), `embedded` (inline/synchronous), or
|
|
1757
|
+
`queue` (a separate `QueueBrokerWorker` fleet over a queue transport).
|
|
1464
1758
|
|
|
1465
1759
|
See the [Sandbox guide](https://kernel.yaala.ai/docs/advanced/sandbox) for the full
|
|
1466
1760
|
reference and the `examples/sandbox` and `examples/sandbox/identity` examples.
|
|
@@ -1864,7 +2158,7 @@ gmail:
|
|
|
1864
2158
|
|
|
1865
2159
|
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.
|
|
1866
2160
|
|
|
1867
|
-
The `evaluator` field accepts three built-in short names — `deepeval` (default, `
|
|
2161
|
+
The `evaluator` field accepts three built-in short names — `deepeval` (default, `uv add "agentkernel[test]"`) or `opik` (`uv add "agentkernel[opik]"`, [Opik](https://www.comet.com/docs/opik/) by Comet, runs entirely locally with `OPIK_TRACK_DISABLE` set so no Opik Cloud account or API key is needed) or `jev` (`uv add "agentkernel[jev]"`, hosted [TypeSafe JEV](https://docs.typesafe.ai) judge; `mode: llm` only, needs `TYPESAFE_API_KEY`, and sends the comparison text to `api.typesafe.ai`) — or a dotted path to your own `AKEvaluator` subclass.
|
|
1868
2162
|
|
|
1869
2163
|
**test-config.yaml:**
|
|
1870
2164
|
|
|
@@ -1937,6 +2231,8 @@ Sessions maintain state across agent interactions. Framework adapters manage the
|
|
|
1937
2231
|
- `"openai"` — OpenAI Agents SDK session data
|
|
1938
2232
|
- `"adk"` — Google ADK session data
|
|
1939
2233
|
- `"pydanticai"` — Pydantic AI session data (message history)
|
|
2234
|
+
- `"maf"` — Microsoft Agent Framework session data (`AgentSession` snapshot)
|
|
2235
|
+
- `"claude"` — Claude Agent SDK session data (each agent's Claude session id and transcript)
|
|
1940
2236
|
|
|
1941
2237
|
Access the session in your runner:
|
|
1942
2238
|
|
|
@@ -1956,14 +2252,14 @@ def run(self, agent, prompt, session):
|
|
|
1956
2252
|
|
|
1957
2253
|
**Requirements:**
|
|
1958
2254
|
- Python 3.12+
|
|
1959
|
-
- uv 0.8.0+
|
|
2255
|
+
- uv 0.8.0+
|
|
1960
2256
|
|
|
1961
2257
|
**Setup:**
|
|
1962
2258
|
|
|
1963
2259
|
```bash
|
|
1964
2260
|
git clone https://github.com/yaalalabs/agent-kernel.git
|
|
1965
2261
|
cd agent-kernel/ak-py
|
|
1966
|
-
uv sync
|
|
2262
|
+
uv sync
|
|
1967
2263
|
```
|
|
1968
2264
|
|
|
1969
2265
|
**Run Tests:**
|