agentkernel 0.9.2__tar.gz → 0.9.3__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.2 → agentkernel-0.9.3}/PKG-INFO +5 -2
- {agentkernel-0.9.2 → agentkernel-0.9.3}/README.md +4 -1
- {agentkernel-0.9.2 → agentkernel-0.9.3}/pyproject.toml +4 -1
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/cli/cli.py +2 -2
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/base.py +115 -2
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/config.py +51 -0
- agentkernel-0.9.3/src/agentkernel/core/module.py +138 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/tool.py +41 -8
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/__init__.py +3 -3
- agentkernel-0.9.3/src/agentkernel/core/util/driver/s3.py +186 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/adk/adk.py +75 -34
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/crewai/crewai.py +15 -25
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/langgraph/langgraph.py +70 -30
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/openai/openai.py +20 -25
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/pydanticai/pydanticai.py +32 -24
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/smolagents/smolagents.py +19 -24
- agentkernel-0.9.3/src/agentkernel/knowledgebase/__init__.py +74 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/base.py +233 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/knowledgebase/chroma.py +6 -2
- agentkernel-0.9.3/src/agentkernel/knowledgebase/document.py +96 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/errors.py +47 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/knowledgebuilder.py +399 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/model.py +61 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/knowledgebase/neo4j.py +35 -8
- agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/__init__.py +38 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/capability.py +280 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/manager.py +969 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/model.py +115 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/parser.py +504 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/prompts.py +173 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/roles.py +177 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/tools.py +185 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/knowledgebase/starburst.py +29 -25
- agentkernel-0.9.3/src/agentkernel/knowledgebase/store/__init__.py +11 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/store/base.py +192 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/store/local.py +160 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/store/s3.py +166 -0
- agentkernel-0.9.3/src/agentkernel/knowledgebase/testing.py +697 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-add-capabilities/SKILL.md +117 -32
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-add-capabilities/evals/evals.json +28 -1
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-add-integration/SKILL.md +8 -8
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-add-integration/evals/evals.json +1 -1
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-build/SKILL.md +15 -1
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-build/evals/evals.json +1 -1
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-cloud-deploy/SKILL.md +26 -26
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-cloud-deploy/evals/evals.json +1 -1
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-init/SKILL.md +2 -2
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-init/evals/evals.json +2 -2
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-test/SKILL.md +2 -2
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-test/evals/evals.json +1 -1
- agentkernel-0.9.2/src/agentkernel/core/module.py +0 -95
- agentkernel-0.9.2/src/agentkernel/knowledgebase/__init__.py +0 -1
- agentkernel-0.9.2/src/agentkernel/knowledgebase/base.py +0 -120
- agentkernel-0.9.2/src/agentkernel/knowledgebase/knowledgebuilder.py +0 -190
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/adk.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/agui.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/a2a/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/a2a/a2a.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/a2a/handler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/handler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/http.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/mcp/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/mcp/akmcp.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/auth/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/auth/authoriser.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/auth/handler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/auth.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/aws.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/azure.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/cli/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/cli/ak.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/builder.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/chat_service.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/event.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/hooks.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/logger.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/model.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/factory.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/hooks.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/source.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/dynamodb.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/in_memory.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/redis.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/session_cache.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/storage_manager.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/tools.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/runtime.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/service.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/cosmosdb.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/dynamodb.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/firestore.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/in_memory.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/redis.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/redis_like.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/serde.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/valkey.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/async_bridge.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/config_yaml_util.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/cosmosdb.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/dynamodb.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/firestore.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/redis.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/redis_like.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/valkey.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/error_util.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/factory.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/key_value_cache.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/pagination.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/crewai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/akagentrunner.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/akoutputconsumer.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/core/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/core/api/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/core/api/rest_api.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/core/api/websocket_api.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/core/sqs_consumer.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/ecs_io_handler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/raw_queue_consumer.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/response_store/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/response_store/dynamodb.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/response_store/factory.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/response_store/redis.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/response_store/valkey.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/sqs_handler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/websocket_service.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/akagentrunner.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/akauthorizer.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/aklambda.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/akresponsehandler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/akwsconnectionhandler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/core/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/core/router/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/core/router/common.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/core/router/rest_lambda.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/core/router/ws_lambda.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/core/sqs_consumer.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/azure/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/azure/akfunction.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/common/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/common/response_store.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/common/rest_handler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/common/thread_runner.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/common/websocket_service.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/gcp/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/gcp/akauthorizer.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/gcp/akcloudrun.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/adk/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/crewai/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/langgraph/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/openai/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/pydanticai/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/smolagents/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/gcp.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/gmail.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/guardrail/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/guardrail/bedrock.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/guardrail/guardrail.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/guardrail/openai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/guardrail/walledai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/instagram.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/factory.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/meta.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/poller.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/producer.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/testing.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/webhook.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/agui/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/agui/handler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/agui/mapping.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/agui/run_input.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/agui/state.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/gmail/README.md +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/gmail/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/gmail/adapter.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/instagram/README.md +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/instagram/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/instagram/adapter.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/messenger/README.md +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/messenger/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/messenger/adapter.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/slack/README.md +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/slack/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/slack/adapter.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/teams/README.md +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/teams/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/teams/adapter.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/telegram/README.md +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/telegram/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/telegram/adapter.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/manager.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/model.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/naming.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/recorder.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/cosmosdb.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/dynamodb.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/firestore.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/in_memory.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/redis.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/redis_like.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/valkey.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/thread_chat.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/whatsapp/README.md +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/whatsapp/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/whatsapp/adapter.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/langgraph.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/mcp.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/messenger.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/openai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/agent_runner.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/consumer.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/envelope.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/io_handler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/producer.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/request_handler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_handler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/dynamodb.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/factory.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/in_memory.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/redis.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/valkey.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/testing.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/thread_runner.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/bookkeeping.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/in_memory.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/kafka.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/nats.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/sqs.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/endpoint.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/gateway.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/handler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/push.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/registry.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pydanticai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/embedded.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/queue.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/queue_worker.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/thread.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/wire.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/worker.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/errors.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/factory.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/hooks.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/manager.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/model.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/principal.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/daytona.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/docker.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/e2b.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/ec2_ssm.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/kubernetes.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/local_subprocess.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/testing.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/tools.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/errors.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/handler.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/manager.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/model.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/provider/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/provider/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/provider/eventbridge.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/provider/local.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/dynamodb.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/in_memory.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/redis.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/redis_like.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/valkey.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/timing.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/tools.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/skills.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/slack.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/smolagents.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/teams.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/telegram.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/config.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/core/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/core/evaluator/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/core/evaluator/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/core/evaluator/deepeval.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/core/evaluator/opik.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/test.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/thread.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/base.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/adk.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/crewai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/langfuse.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/langgraph.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/openai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/pydanticai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/smolagents.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/adk.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/crewai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/langgraph.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/logfire.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/openai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/pydanticai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/smolagents.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/__init__.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/adk.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/crewai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/langgraph.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/openai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/openllmetry.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/pydanticai.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/smolagents.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/trace.py +0 -0
- {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/whatsapp.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: agentkernel
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.3
|
|
4
4
|
Summary: Agent Kernel - Unified AI Agents Runtime
|
|
5
5
|
Author: Yaala Labs
|
|
6
6
|
Author-email: Yaala Labs <agentkernel@yaalalabs.com>
|
|
@@ -140,7 +140,7 @@ Agent Kernel is a lightweight **AI agent runtime** and adapter layer for buildin
|
|
|
140
140
|
- **Unified API**: Common abstractions (Agent, Runner, Session, Module, Runtime) across frameworks
|
|
141
141
|
- **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK, Smolagents, and Pydantic AI
|
|
142
142
|
- **Session Management**: Built-in session abstraction with pluggable storage backends
|
|
143
|
-
- **Knowledge Bases**: Unified `KnowledgeBase` interface with ChromaDB, Neo4j,
|
|
143
|
+
- **Knowledge Bases**: Unified, capability-declaring `KnowledgeBase` interface with ChromaDB, Neo4j, Starburst/Trino and Open Knowledge Format bundle (local directory or S3) backends via `KnowledgeBuilder`
|
|
144
144
|
- **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
|
|
145
145
|
- **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
|
|
146
146
|
- **Flexible Deployment**: Interactive CLI, REST API, serverless, or containerized deployment — see the "Multi-Cloud Deployment" section below
|
|
@@ -165,6 +165,9 @@ pip install "agentkernel[neo4j]"
|
|
|
165
165
|
pip install "agentkernel[trino]"
|
|
166
166
|
```
|
|
167
167
|
|
|
168
|
+
Open Knowledge Format bundles need no extra - `pyyaml` is a core dependency. Serving a bundle from S3
|
|
169
|
+
uses the `aws` extra: `pip install "agentkernel[aws]"`.
|
|
170
|
+
|
|
168
171
|
For LLM-based thread naming with Conversation Thread Support:
|
|
169
172
|
|
|
170
173
|
```bash
|
|
@@ -10,7 +10,7 @@ Agent Kernel is a lightweight **AI agent runtime** and adapter layer for buildin
|
|
|
10
10
|
- **Unified API**: Common abstractions (Agent, Runner, Session, Module, Runtime) across frameworks
|
|
11
11
|
- **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK, Smolagents, and Pydantic AI
|
|
12
12
|
- **Session Management**: Built-in session abstraction with pluggable storage backends
|
|
13
|
-
- **Knowledge Bases**: Unified `KnowledgeBase` interface with ChromaDB, Neo4j,
|
|
13
|
+
- **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
14
|
- **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
15
|
- **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
|
|
16
16
|
- **Flexible Deployment**: Interactive CLI, REST API, serverless, or containerized deployment — see the "Multi-Cloud Deployment" section below
|
|
@@ -35,6 +35,9 @@ pip install "agentkernel[neo4j]"
|
|
|
35
35
|
pip install "agentkernel[trino]"
|
|
36
36
|
```
|
|
37
37
|
|
|
38
|
+
Open Knowledge Format bundles need no extra - `pyyaml` is a core dependency. Serving a bundle from S3
|
|
39
|
+
uses the `aws` extra: `pip install "agentkernel[aws]"`.
|
|
40
|
+
|
|
38
41
|
For LLM-based thread naming with Conversation Thread Support:
|
|
39
42
|
|
|
40
43
|
```bash
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "agentkernel"
|
|
7
|
-
version = "0.9.
|
|
7
|
+
version = "0.9.3"
|
|
8
8
|
description = "Agent Kernel - Unified AI Agents Runtime"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12,<3.14"
|
|
@@ -230,3 +230,6 @@ target-version = ["py312"]
|
|
|
230
230
|
|
|
231
231
|
[tool.pytest.ini_options]
|
|
232
232
|
addopts = "--cov=src --cov-report=term --cov-report=html --html=report.html"
|
|
233
|
+
# CI runs everything; `-m "not slow"` is for a local run that should not spend a minute
|
|
234
|
+
# materialising a 10,000-concept bundle.
|
|
235
|
+
markers = ["slow: builds a large fixture on disk or otherwise takes tens of seconds"]
|
|
@@ -87,8 +87,8 @@ class CLI:
|
|
|
87
87
|
if not prompt.strip():
|
|
88
88
|
continue
|
|
89
89
|
if prompt.startswith("!"):
|
|
90
|
-
tokens = prompt.
|
|
91
|
-
command = tokens[0]
|
|
90
|
+
tokens = prompt.split()
|
|
91
|
+
command = tokens[0].lower() # only the command is case-insensitive; arguments are names
|
|
92
92
|
if command in ["!h", "!help"]:
|
|
93
93
|
self.help()
|
|
94
94
|
elif command in ["!c", "!clear"]:
|
|
@@ -5,7 +5,7 @@ import copy
|
|
|
5
5
|
import logging
|
|
6
6
|
import pickle
|
|
7
7
|
from abc import ABC, abstractmethod
|
|
8
|
-
from collections.abc import AsyncGenerator, Iterator, Mapping
|
|
8
|
+
from collections.abc import AsyncGenerator, Iterable, Iterator, Mapping
|
|
9
9
|
from enum import Enum
|
|
10
10
|
from typing import Any, ClassVar, Self, cast
|
|
11
11
|
|
|
@@ -362,6 +362,22 @@ class Runner(ABC):
|
|
|
362
362
|
exc_info=error,
|
|
363
363
|
)
|
|
364
364
|
|
|
365
|
+
@staticmethod
|
|
366
|
+
def _native_kwargs(options: Mapping[str, Any], **ak_owned: Any) -> dict[str, Any]:
|
|
367
|
+
"""
|
|
368
|
+
Builds the keyword arguments for a native framework run call from an agent's declared run options.
|
|
369
|
+
The declared options are copied first and the keys Agent Kernel owns are written last, so a declared
|
|
370
|
+
option can never displace a value the adapter populates itself (the same rule as `ak_tool_context` in
|
|
371
|
+
ADK and `messages` in LangGraph). The copy is shallow and per call: adjusting a value for one run never
|
|
372
|
+
touches the declared mapping.
|
|
373
|
+
:param options: The agent's declared run options (`Agent.run_options`, or an adapter's filtered view of it).
|
|
374
|
+
:param ak_owned: The keyword arguments the adapter populates itself; these win over `options`.
|
|
375
|
+
:return: A new dict holding the merged keyword arguments.
|
|
376
|
+
"""
|
|
377
|
+
kwargs = dict(options)
|
|
378
|
+
kwargs.update(ak_owned)
|
|
379
|
+
return kwargs
|
|
380
|
+
|
|
365
381
|
@abstractmethod
|
|
366
382
|
async def run(self, agent: Any, session: Session, requests: list[AgentRequest]) -> AgentReply:
|
|
367
383
|
"""
|
|
@@ -411,6 +427,13 @@ class Agent(ABC):
|
|
|
411
427
|
|
|
412
428
|
current_agent: ClassVar[contextvars.ContextVar["Agent | None"]] = contextvars.ContextVar("current_agent", default=None)
|
|
413
429
|
|
|
430
|
+
RESERVED_RUN_OPTIONS: ClassVar[Mapping[str, str]] = {}
|
|
431
|
+
"""
|
|
432
|
+
Native run-call keyword arguments this adapter populates itself or depends on for reply mapping, mapped to
|
|
433
|
+
the one-line reason a caller sees when declaring one through `Module.run_options`. Empty on the base class,
|
|
434
|
+
so a bring-your-own Agent reserves nothing.
|
|
435
|
+
"""
|
|
436
|
+
|
|
414
437
|
@classmethod
|
|
415
438
|
def current(cls) -> "Agent | None":
|
|
416
439
|
"""
|
|
@@ -430,6 +453,7 @@ class Agent(ABC):
|
|
|
430
453
|
self._runner: Runner = runner
|
|
431
454
|
self._pre_hooks: list[PreHook] = []
|
|
432
455
|
self._post_hooks: list[PostHook] = []
|
|
456
|
+
self._run_options: dict[str, Any] = {}
|
|
433
457
|
|
|
434
458
|
def __repr__(self) -> str:
|
|
435
459
|
"""
|
|
@@ -466,6 +490,28 @@ class Agent(ABC):
|
|
|
466
490
|
"""
|
|
467
491
|
return self._post_hooks
|
|
468
492
|
|
|
493
|
+
@property
|
|
494
|
+
def run_options(self) -> dict[str, Any]:
|
|
495
|
+
"""
|
|
496
|
+
Returns the framework-native keyword arguments merged into every native run call for this agent.
|
|
497
|
+
A live, mutable dict (the same contract as `pre_hooks`), declared through `Module.run_options` and never
|
|
498
|
+
persisted. Mutating it directly skips the reservation check entirely: a reserved key the runner writes itself
|
|
499
|
+
is overwritten, but one the adapter passes positionally raises the SDK's duplicate-argument error, and one
|
|
500
|
+
reserved only because it breaks the reply mapping is forwarded as given.
|
|
501
|
+
"""
|
|
502
|
+
return self._run_options
|
|
503
|
+
|
|
504
|
+
def validate_run_options(self, options: Mapping[str, Any]) -> None:
|
|
505
|
+
"""
|
|
506
|
+
Rejects run options that name a key this adapter reserves.
|
|
507
|
+
:param options: The run options about to be declared for this agent.
|
|
508
|
+
:raises ValueError: Naming the adapter, the agent, and every reserved key present with its reason.
|
|
509
|
+
"""
|
|
510
|
+
reserved = sorted(set(options) & set(self.RESERVED_RUN_OPTIONS))
|
|
511
|
+
if reserved:
|
|
512
|
+
details = "; ".join(f"'{key}': {self.RESERVED_RUN_OPTIONS[key]}" for key in reserved)
|
|
513
|
+
raise ValueError(f"Run option(s) reserved by the '{self.runner.name}' adapter for agent '{self.name}': {details}")
|
|
514
|
+
|
|
469
515
|
@contextlib.contextmanager
|
|
470
516
|
def _activate(self) -> Iterator[Self]:
|
|
471
517
|
"""
|
|
@@ -533,9 +579,76 @@ class Agent(ABC):
|
|
|
533
579
|
"""
|
|
534
580
|
from agentkernel.core.tool import SystemToolFactory
|
|
535
581
|
|
|
536
|
-
|
|
582
|
+
system_tools = SystemToolFactory.get_all(self.name)
|
|
583
|
+
self._warn_on_tool_name_collisions(system_tools)
|
|
584
|
+
|
|
585
|
+
for tool in system_tools:
|
|
537
586
|
self.attach_tool(tool.func)
|
|
538
587
|
|
|
588
|
+
def _warn_on_tool_name_collisions(self, system_tools: list[Any]) -> None:
|
|
589
|
+
"""
|
|
590
|
+
Warn when a system tool is about to shadow one the application already bound by hand.
|
|
591
|
+
|
|
592
|
+
Runs after the framework adapter has taken the built native agent, so tools the
|
|
593
|
+
application bound itself are already present and visible here. The collision is warned
|
|
594
|
+
about and then allowed: skipping would make newly enabling a capability silently do
|
|
595
|
+
nothing for this agent, which is the worse of the two failures. The cost is that both
|
|
596
|
+
tools reach the framework -- tolerated by some, rejected at bind time by others, with
|
|
597
|
+
this warning explaining why.
|
|
598
|
+
|
|
599
|
+
Entirely defensive: an adapter exposing no `tools` collection yields no warning, never
|
|
600
|
+
a raise.
|
|
601
|
+
|
|
602
|
+
:param system_tools: The SystemTool instances about to be attached.
|
|
603
|
+
:return: None.
|
|
604
|
+
"""
|
|
605
|
+
native = getattr(self, "agent", None)
|
|
606
|
+
existing = {name for name in (self._native_tool_name(tool) for tool in self._native_tools(native)) if name}
|
|
607
|
+
colliding = sorted(existing.intersection(tool.name for tool in system_tools))
|
|
608
|
+
if colliding:
|
|
609
|
+
_log.warning(
|
|
610
|
+
"Agent '%s' already has tools named %s; Agent Kernel is attaching system tools with the same names. "
|
|
611
|
+
"The agent will carry both. If this agent was wired by hand, remove the manual binding or the configuration that enables it.",
|
|
612
|
+
self.name,
|
|
613
|
+
colliding,
|
|
614
|
+
)
|
|
615
|
+
|
|
616
|
+
@staticmethod
|
|
617
|
+
def _native_tools(native: Any) -> Iterable[Any]:
|
|
618
|
+
"""
|
|
619
|
+
Return whatever the native agent holds its tools in, as something iterable.
|
|
620
|
+
|
|
621
|
+
Smolagents keys its tools by name -- `SmolagentsAgent._append_tools` writes
|
|
622
|
+
`agent.tools[name] = tool` -- so iterating the attribute directly yields names, not
|
|
623
|
+
tools. The keys are the names this warning is looking for, so the mapping is taken
|
|
624
|
+
through `keys()` and :meth:`_native_tool_name` accepts a bare string.
|
|
625
|
+
|
|
626
|
+
Anything that is neither a mapping nor a sequence yields nothing rather than raising,
|
|
627
|
+
which is what makes this method's caller safe against an adapter that means something
|
|
628
|
+
else entirely by `tools`.
|
|
629
|
+
|
|
630
|
+
:param native: The framework's own agent object, or None.
|
|
631
|
+
:return: The tools or tool names to inspect; empty when there are none to read.
|
|
632
|
+
"""
|
|
633
|
+
tools = getattr(native, "tools", None)
|
|
634
|
+
if isinstance(tools, Mapping):
|
|
635
|
+
return tools.keys()
|
|
636
|
+
if isinstance(tools, (list, tuple, set, frozenset)):
|
|
637
|
+
return tools
|
|
638
|
+
return ()
|
|
639
|
+
|
|
640
|
+
@staticmethod
|
|
641
|
+
def _native_tool_name(tool: Any) -> str | None:
|
|
642
|
+
"""
|
|
643
|
+
Name one tool the framework already holds.
|
|
644
|
+
|
|
645
|
+
:param tool: A tool object, or the name a mapping-shaped collection keyed it by.
|
|
646
|
+
:return: The tool's name, or None when it cannot be named.
|
|
647
|
+
"""
|
|
648
|
+
if isinstance(tool, str):
|
|
649
|
+
return tool
|
|
650
|
+
return getattr(tool, "name", None) or getattr(tool, "__name__", None)
|
|
651
|
+
|
|
539
652
|
@staticmethod
|
|
540
653
|
def _append_tools(agent: Any, wrapped: list[Any]) -> None:
|
|
541
654
|
"""
|
|
@@ -406,6 +406,52 @@ class _ScheduleConfig(BaseModel):
|
|
|
406
406
|
)
|
|
407
407
|
|
|
408
408
|
|
|
409
|
+
class _OKFDatabaseConfig(BaseModel):
|
|
410
|
+
"""One Open Knowledge Format bundle and the agents that may reach it.
|
|
411
|
+
|
|
412
|
+
Permission is per (agent, database): an agent may produce into one bundle and only consume
|
|
413
|
+
another, and both hold at once.
|
|
414
|
+
|
|
415
|
+
The three role lists default to None rather than an empty list, so an omitted role reads as
|
|
416
|
+
"not declared" rather than "declared empty". At least one of them must name an agent; that
|
|
417
|
+
rule is enforced in OKFRoleRegistry.from_config rather than here, because a field validator
|
|
418
|
+
cannot see which database key it belongs to and so could not name it in the error."""
|
|
419
|
+
|
|
420
|
+
type: str = Field(description="Document store for this bundle: 'local', 's3', or a dotted path to a DocumentStore subclass")
|
|
421
|
+
uri: str = Field(
|
|
422
|
+
description="Bundle location passed to the resolved store: a filesystem path, an s3://bucket/prefix URI, or the store's own location string"
|
|
423
|
+
)
|
|
424
|
+
description: Optional[str] = Field(
|
|
425
|
+
default=None,
|
|
426
|
+
description="Human-readable description of this bundle, surfaced to the agent in its instructions and through get_schemas",
|
|
427
|
+
)
|
|
428
|
+
refresh_seconds: Optional[float] = Field(
|
|
429
|
+
default=300.0,
|
|
430
|
+
description="How stale the bundle manifest may get before the next operation re-walks the store; null disables automatic refresh",
|
|
431
|
+
)
|
|
432
|
+
consumer: Optional[list[str]] = Field(default=None, description="Agent names granted read access to this bundle")
|
|
433
|
+
producer: Optional[list[str]] = Field(
|
|
434
|
+
default=None,
|
|
435
|
+
description="Agent names granted read and write access, instructed to add new knowledge to this bundle",
|
|
436
|
+
)
|
|
437
|
+
curator: Optional[list[str]] = Field(
|
|
438
|
+
default=None,
|
|
439
|
+
description="Agent names granted read and write access, instructed to review and maintain existing knowledge in this bundle",
|
|
440
|
+
)
|
|
441
|
+
|
|
442
|
+
|
|
443
|
+
class _OKFConfig(BaseModel):
|
|
444
|
+
"""Configuration for the Open Knowledge Format capability.
|
|
445
|
+
|
|
446
|
+
The presence of the block is the enablement signal; naming an agent in a role is the
|
|
447
|
+
deliberate opt-in, and the block does nothing without at least one."""
|
|
448
|
+
|
|
449
|
+
databases: dict[str, _OKFDatabaseConfig] = Field(
|
|
450
|
+
default_factory=dict,
|
|
451
|
+
description="OKF bundles keyed by backend name; the key is what agents pass as the 'backend' argument to the knowledge-base tools",
|
|
452
|
+
)
|
|
453
|
+
|
|
454
|
+
|
|
409
455
|
class _TraceConfig(BaseModel):
|
|
410
456
|
enabled: bool = Field(default=False, description="Enable tracing")
|
|
411
457
|
type: str = Field(
|
|
@@ -914,6 +960,11 @@ class AKConfig(YamlBaseSettingsModified):
|
|
|
914
960
|
description="Scheduling capability configurations (trigger provider, task store, tool scoping). Absent = the capability is disabled.",
|
|
915
961
|
)
|
|
916
962
|
|
|
963
|
+
okf: Optional[_OKFConfig] = Field(
|
|
964
|
+
default=None,
|
|
965
|
+
description="Open Knowledge Format capability configurations (bundles and the agents that consume, produce, or curate them). Absent = the capability is disabled.",
|
|
966
|
+
)
|
|
967
|
+
|
|
917
968
|
trace: _TraceConfig = Field(description="Tracing related configurations", default_factory=_TraceConfig)
|
|
918
969
|
guardrail: _GuardrailConfig = Field(description="Guardrail related configurations", default_factory=_GuardrailConfig)
|
|
919
970
|
sandbox: _SandboxConfig = Field(description="Sandbox capability configurations", default_factory=_SandboxConfig)
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
from abc import ABC, abstractmethod
|
|
2
|
+
from typing import Any, List, Self
|
|
3
|
+
|
|
4
|
+
from ..core.hooks import PostHook, PreHook
|
|
5
|
+
from .base import Agent
|
|
6
|
+
from .runtime import Runtime
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class Module(ABC):
|
|
10
|
+
"""
|
|
11
|
+
Module is the base class for all agent modules.
|
|
12
|
+
|
|
13
|
+
An agent module is a Python module containing a set of agents built using a supported agent
|
|
14
|
+
framework. Agent Kernel provides an implementation of the Module class for each supported agent
|
|
15
|
+
framework, allowing the agents to be registered and managed in a framework-agnostic manner.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
def __init__(self):
|
|
19
|
+
"""
|
|
20
|
+
Initializes a Module instance.
|
|
21
|
+
"""
|
|
22
|
+
self._agents = []
|
|
23
|
+
|
|
24
|
+
@property
|
|
25
|
+
def agents(self) -> list[Agent]:
|
|
26
|
+
"""
|
|
27
|
+
Returns the list of agents in the module.
|
|
28
|
+
"""
|
|
29
|
+
return self._agents
|
|
30
|
+
|
|
31
|
+
def unload(self):
|
|
32
|
+
"""
|
|
33
|
+
Unloads and deregisters all agents in the module
|
|
34
|
+
"""
|
|
35
|
+
for agent in self._agents:
|
|
36
|
+
Runtime.current().deregister(agent)
|
|
37
|
+
self._agents.clear()
|
|
38
|
+
|
|
39
|
+
def get_agent(self, name: str) -> Agent | None:
|
|
40
|
+
"""
|
|
41
|
+
Returns an agent by name from the module.
|
|
42
|
+
:param name: The name of the agent to retrieve.
|
|
43
|
+
:return: The agent with the specified name, or None if not found.
|
|
44
|
+
"""
|
|
45
|
+
for agent in self._agents:
|
|
46
|
+
if agent.name == name:
|
|
47
|
+
return agent
|
|
48
|
+
return None
|
|
49
|
+
|
|
50
|
+
@abstractmethod
|
|
51
|
+
def _wrap(self, agent: Any, agents: List[Any]) -> Agent:
|
|
52
|
+
"""
|
|
53
|
+
Wraps an agent in a framework-specific wrapper.
|
|
54
|
+
:param agent: The agent to wrap.
|
|
55
|
+
:return: The wrapped agent.
|
|
56
|
+
"""
|
|
57
|
+
raise NotImplementedError
|
|
58
|
+
|
|
59
|
+
@abstractmethod
|
|
60
|
+
def load(self, agents: list[Any]) -> "Module":
|
|
61
|
+
"""
|
|
62
|
+
Loads and registers all agents to the runtime by replacing the current agents.
|
|
63
|
+
:param agents: List of agents to load.
|
|
64
|
+
"""
|
|
65
|
+
self.unload()
|
|
66
|
+
registered = []
|
|
67
|
+
for agent in agents:
|
|
68
|
+
try:
|
|
69
|
+
wrapped = self._wrap(agent, agents)
|
|
70
|
+
Runtime.current().register(wrapped)
|
|
71
|
+
registered.append(wrapped)
|
|
72
|
+
except Exception:
|
|
73
|
+
self._agents = registered
|
|
74
|
+
self.unload()
|
|
75
|
+
raise
|
|
76
|
+
self._agents = registered
|
|
77
|
+
return self
|
|
78
|
+
|
|
79
|
+
def pre_hook(self, agent: Any, hooks: list[PreHook]) -> Self:
|
|
80
|
+
"""
|
|
81
|
+
Attaches pre-execution hooks to the agent. Chained like `post_hook` / `run_options`.
|
|
82
|
+
:param agent: The native framework agent to attach hooks to.
|
|
83
|
+
:param hooks: List of pre-execution hooks to attach.
|
|
84
|
+
:return: This module, for chaining.
|
|
85
|
+
:raises ValueError: If the agent is not loaded in this module.
|
|
86
|
+
"""
|
|
87
|
+
self._wrapped(agent).pre_hooks.extend(hooks)
|
|
88
|
+
return self
|
|
89
|
+
|
|
90
|
+
def post_hook(self, agent: Any, hooks: list[PostHook]) -> Self:
|
|
91
|
+
"""
|
|
92
|
+
Attaches post-execution hooks to the agent. Chained like `pre_hook` / `run_options`.
|
|
93
|
+
:param agent: The native framework agent to attach hooks to.
|
|
94
|
+
:param hooks: List of post-execution hooks to attach.
|
|
95
|
+
:return: This module, for chaining.
|
|
96
|
+
:raises ValueError: If the agent is not loaded in this module.
|
|
97
|
+
"""
|
|
98
|
+
self._wrapped(agent).post_hooks.extend(hooks)
|
|
99
|
+
return self
|
|
100
|
+
|
|
101
|
+
def run_options(self, agent: Any, **options: Any) -> Self:
|
|
102
|
+
"""
|
|
103
|
+
Declares framework-native run options for one loaded agent, merged into every native run call the
|
|
104
|
+
adapter makes for it (keyword arguments of the framework's own run API, such as OpenAI's `hooks`,
|
|
105
|
+
`run_config` and `max_turns`). Repeated calls merge, the later call winning per key. Chained like
|
|
106
|
+
`pre_hook` / `post_hook`.
|
|
107
|
+
:param agent: The native framework agent the options are for.
|
|
108
|
+
:param options: The framework-native keyword arguments to declare.
|
|
109
|
+
:return: This module, for chaining.
|
|
110
|
+
:raises ValueError: If the agent is not loaded in this module, or an option names a key the adapter reserves.
|
|
111
|
+
"""
|
|
112
|
+
wrapped = self._wrapped(agent)
|
|
113
|
+
wrapped.validate_run_options(options)
|
|
114
|
+
wrapped.run_options.update(options)
|
|
115
|
+
return self
|
|
116
|
+
|
|
117
|
+
def _wrapped(self, agent: Any) -> Agent:
|
|
118
|
+
"""
|
|
119
|
+
Returns the Agent Kernel agent wrapping a native framework agent loaded in this module.
|
|
120
|
+
:param agent: The native framework agent.
|
|
121
|
+
:return: The wrapped agent.
|
|
122
|
+
:raises ValueError: If the agent is not loaded in this module.
|
|
123
|
+
"""
|
|
124
|
+
name = self._native_agent_name(agent)
|
|
125
|
+
wrapped = self.get_agent(name)
|
|
126
|
+
if wrapped is None:
|
|
127
|
+
raise ValueError(f"Agent '{name}' is not loaded in this module")
|
|
128
|
+
return wrapped
|
|
129
|
+
|
|
130
|
+
def _native_agent_name(self, agent: Any) -> str:
|
|
131
|
+
"""
|
|
132
|
+
Returns the Agent Kernel agent name a native framework agent was registered under.
|
|
133
|
+
The default is the native agent's `name`; adapters whose rule differs override it (CrewAI names agents
|
|
134
|
+
by `role`, smolagents falls back to a fixed name).
|
|
135
|
+
:param agent: The native framework agent.
|
|
136
|
+
:return: The registered agent name.
|
|
137
|
+
"""
|
|
138
|
+
return agent.name
|
|
@@ -205,6 +205,15 @@ class SystemToolFactory:
|
|
|
205
205
|
|
|
206
206
|
tools.extend(get_schedule_tools())
|
|
207
207
|
|
|
208
|
+
# Deliberately not passed through _agent_allowed: that helper reads a flat `agents`
|
|
209
|
+
# list, and OKF's scoping is per (agent, database) and lives in its own role registry.
|
|
210
|
+
# Passing the block would silently allow every agent, since it has no `agents` field.
|
|
211
|
+
okf_config = getattr(AKConfig.get(), "okf", None)
|
|
212
|
+
if okf_config is not None:
|
|
213
|
+
from ..knowledgebase.okf.tools import OKFToolFactory
|
|
214
|
+
|
|
215
|
+
tools.extend(OKFToolFactory.get_tools(agent_name))
|
|
216
|
+
|
|
208
217
|
agui_config = getattr(AKConfig.get(), "agui", None)
|
|
209
218
|
state_config = getattr(agui_config, "state", None)
|
|
210
219
|
if state_config and state_config.enabled and SystemToolFactory._agent_allowed(state_config, agent_name):
|
|
@@ -220,24 +229,48 @@ class SystemToolFactory:
|
|
|
220
229
|
|
|
221
230
|
return tools
|
|
222
231
|
|
|
232
|
+
@staticmethod
|
|
233
|
+
def get_prompt_sections(agent_name: str | None = None) -> list[str]:
|
|
234
|
+
"""
|
|
235
|
+
Collect the prompt sections capabilities contribute directly, outside any tool.
|
|
236
|
+
|
|
237
|
+
A capability whose instructions describe the capability itself rather than one of its
|
|
238
|
+
tools belongs here: the text is written into the agent's system prompt instead of being
|
|
239
|
+
carried on a `SystemTool.description`, which the frameworks never read.
|
|
240
|
+
|
|
241
|
+
:param agent_name: When given, sections are scoped to that agent.
|
|
242
|
+
:return: The non-empty sections, in the order they are appended to the prompt.
|
|
243
|
+
"""
|
|
244
|
+
sections: list[str] = []
|
|
245
|
+
|
|
246
|
+
# Lazily imported behind the same enabled-check the tools branch uses, so a process
|
|
247
|
+
# with no `okf` block never pays for the knowledgebase tier.
|
|
248
|
+
okf_config = getattr(AKConfig.get(), "okf", None)
|
|
249
|
+
if okf_config is not None:
|
|
250
|
+
from ..knowledgebase.okf.prompts import OKFPromptComposer
|
|
251
|
+
|
|
252
|
+
sections.append(OKFPromptComposer.for_agent(agent_name))
|
|
253
|
+
|
|
254
|
+
return [section for section in sections if section]
|
|
255
|
+
|
|
223
256
|
@staticmethod
|
|
224
257
|
def get_system_prompt_suffix(agent_name: str | None = None) -> str:
|
|
225
258
|
"""
|
|
226
|
-
Generate the system prompt suffix
|
|
259
|
+
Generate the system prompt suffix from the enabled capabilities.
|
|
227
260
|
|
|
228
|
-
|
|
229
|
-
|
|
261
|
+
Two sources are concatenated: the descriptions of the enabled system tools, and the
|
|
262
|
+
sections capabilities contribute directly via :meth:`get_prompt_sections`.
|
|
230
263
|
|
|
231
264
|
:param agent_name: When given, capabilities restricted via their `agents` config
|
|
232
265
|
list contribute to the suffix only for the named agent.
|
|
233
|
-
:return: A string containing the concatenated
|
|
234
|
-
|
|
266
|
+
:return: A string containing the concatenated sections, or an empty string when no
|
|
267
|
+
capability contributes anything.
|
|
235
268
|
"""
|
|
236
269
|
|
|
237
270
|
tools: List[SystemTool] = SystemToolFactory.get_all(agent_name)
|
|
238
271
|
|
|
239
|
-
if tools is None or len(tools) == 0:
|
|
240
|
-
return ""
|
|
241
272
|
# A capability may carry its whole prompt section on one tool and leave the
|
|
242
273
|
# others' descriptions empty (the sandbox pattern) — skip the empties.
|
|
243
|
-
|
|
274
|
+
sections = [tool.description for tool in tools or [] if tool.description]
|
|
275
|
+
sections.extend(SystemToolFactory.get_prompt_sections(agent_name))
|
|
276
|
+
return "\n".join(sections)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""
|
|
2
|
-
Shared
|
|
3
|
-
and
|
|
2
|
+
Shared connection drivers for the Session, Multimodal, Response Store, Thread,
|
|
3
|
+
and Knowledge Base backends.
|
|
4
4
|
|
|
5
5
|
Drivers own the connection lifecycle (client creation, lazy connect, retry,
|
|
6
6
|
health-check/reconnect, TTL plumbing) and a generic command surface; data
|
|
@@ -9,7 +9,7 @@ never read AKConfig — all connection parameters are explicit constructor
|
|
|
9
9
|
arguments.
|
|
10
10
|
|
|
11
11
|
This package intentionally has no eager imports: ``redis``, ``valkey``,
|
|
12
|
-
``azure-data-tables``, and ``google-cloud-firestore`` are optional
|
|
12
|
+
``boto3``, ``azure-data-tables``, and ``google-cloud-firestore`` are optional
|
|
13
13
|
dependencies, so consumers import the concrete module directly, e.g.
|
|
14
14
|
``from agentkernel.core.util.driver.redis import RedisDriver``.
|
|
15
15
|
"""
|