agentkernel 0.3.3__tar.gz → 0.5.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.3.3 → agentkernel-0.5.0}/PKG-INFO +81 -26
- {agentkernel-0.3.3 → agentkernel-0.5.0}/README.md +63 -21
- {agentkernel-0.3.3 → agentkernel-0.5.0}/pyproject.toml +26 -7
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/__init__.py +6 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/a2a/a2a.py +1 -1
- agentkernel-0.5.0/src/agentkernel/api/handler.py +87 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/http.py +0 -6
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/mcp/akmcp.py +4 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/auth/handler.py +1 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/cli/cli.py +5 -8
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/__init__.py +1 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/builder.py +5 -0
- agentkernel-0.5.0/src/agentkernel/core/chat_service.py +339 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/config.py +52 -7
- agentkernel-0.5.0/src/agentkernel/core/logger.py +99 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/model.py +34 -8
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/dynamodb.py +1 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/in_memory.py +1 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/redis.py +1 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/session_cache.py +1 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/storage_manager.py +1 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/tools.py +7 -4
- agentkernel-0.5.0/src/agentkernel/core/session/firestore.py +244 -0
- agentkernel-0.5.0/src/agentkernel/core/util/error_util.py +77 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/__init__.py +1 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/core/response_store/handler.py +2 -2
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/core/sqs_handler.py +68 -48
- agentkernel-0.5.0/src/agentkernel/deployment/aws/core/websocket_service.py +298 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/serverless/__init__.py +1 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/serverless/akagentrunner.py +42 -17
- agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/aklambda.py +89 -0
- agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/akresponsehandler.py +148 -0
- agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/akwsconnectionhandler.py +49 -0
- agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/core/__init__.py +2 -0
- agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/core/router/__init__.py +3 -0
- agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/core/router/common.py +83 -0
- agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/core/router/rest_lambda.py +382 -0
- agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/core/router/ws_lambda.py +538 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/serverless/core/sqs_consumer.py +2 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/azure/akfunction.py +12 -4
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/common/response_store.py +1 -1
- agentkernel-0.5.0/src/agentkernel/deployment/common/websocket_connection_store.py +63 -0
- agentkernel-0.5.0/src/agentkernel/deployment/gcp/__init__.py +13 -0
- agentkernel-0.5.0/src/agentkernel/deployment/gcp/akauthorizer.py +29 -0
- agentkernel-0.5.0/src/agentkernel/deployment/gcp/akcloudrun.py +77 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/adk/adk.py +16 -7
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/crewai/crewai.py +15 -5
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/langgraph/langgraph.py +31 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/openai/openai.py +4 -2
- agentkernel-0.5.0/src/agentkernel/framework/smolagents/__init__.py +16 -0
- agentkernel-0.5.0/src/agentkernel/framework/smolagents/smolagents.py +388 -0
- agentkernel-0.5.0/src/agentkernel/gcp.py +8 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/guardrail/bedrock.py +1 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/guardrail/openai.py +1 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/guardrail/walledai.py +0 -22
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/gmail/README.md +16 -4
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/messenger/README.md +16 -4
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/slack/slack_chat.py +2 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/telegram/README.md +16 -4
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/whatsapp/README.md +16 -4
- agentkernel-0.5.0/src/agentkernel/knowledgebase/__init__.py +1 -0
- agentkernel-0.5.0/src/agentkernel/knowledgebase/base.py +120 -0
- agentkernel-0.5.0/src/agentkernel/knowledgebase/chroma.py +124 -0
- agentkernel-0.5.0/src/agentkernel/knowledgebase/knowledgebuilder.py +190 -0
- agentkernel-0.5.0/src/agentkernel/knowledgebase/neo4j.py +156 -0
- agentkernel-0.5.0/src/agentkernel/knowledgebase/starburst.py +233 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-add-capabilities/SKILL.md +138 -22
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-add-capabilities/evals/evals.json +31 -2
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-add-integration/SKILL.md +55 -9
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-add-integration/evals/evals.json +14 -1
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-build/SKILL.md +44 -2
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-build/evals/evals.json +24 -1
- agentkernel-0.5.0/src/agentkernel/skills/ak-cloud-deploy/SKILL.md +822 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-cloud-deploy/evals/evals.json +108 -6
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-init/SKILL.md +29 -2
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-init/evals/evals.json +17 -2
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-test/SKILL.md +14 -6
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-test/evals/evals.json +5 -3
- agentkernel-0.5.0/src/agentkernel/smolagents.py +8 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/base.py +7 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/langfuse/adk.py +9 -4
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/langfuse/crewai.py +9 -4
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/langfuse/langfuse.py +8 -0
- agentkernel-0.5.0/src/agentkernel/trace/langfuse/langgraph.py +66 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/langfuse/openai.py +9 -4
- agentkernel-0.5.0/src/agentkernel/trace/langfuse/smolagents.py +34 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/openllmetry/openllmetry.py +8 -0
- agentkernel-0.5.0/src/agentkernel/trace/openllmetry/smolagents.py +29 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/trace.py +8 -0
- agentkernel-0.3.3/src/agentkernel/api/handler.py +0 -302
- agentkernel-0.3.3/src/agentkernel/deployment/aws/serverless/aklambda.py +0 -198
- agentkernel-0.3.3/src/agentkernel/deployment/aws/serverless/akresponsehandler.py +0 -88
- agentkernel-0.3.3/src/agentkernel/deployment/aws/serverless/core/__init__.py +0 -2
- agentkernel-0.3.3/src/agentkernel/deployment/aws/serverless/core/default_endpoints.py +0 -287
- agentkernel-0.3.3/src/agentkernel/deployment/common/chat_service.py +0 -142
- agentkernel-0.3.3/src/agentkernel/skills/ak-cloud-deploy/SKILL.md +0 -381
- agentkernel-0.3.3/src/agentkernel/trace/langfuse/langgraph.py +0 -60
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/adk.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/a2a/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/a2a/handler.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/mcp/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/auth/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/auth.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/aws.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/azure.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/cli/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/cli/ak.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/base.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/hooks.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/module.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/factory.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/hooks.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/base.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/runtime.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/service.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/base.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/cosmosdb.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/dynamodb.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/in_memory.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/redis.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/serde.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/tool.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/util/config_yaml_util.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/util/key_value_cache.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/crewai.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/core/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/core/response_store/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/core/response_store/dynamodb.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/core/response_store/redis.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/serverless/akauthorizer.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/azure/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/common/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/adk/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/crewai/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/langgraph/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/openai/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/gmail.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/guardrail/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/guardrail/guardrail.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/instagram.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/gmail/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/gmail/gmail_chat.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/instagram/README.md +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/instagram/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/instagram/instagram_chat.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/messenger/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/messenger/messenger_chat.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/slack/README.md +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/slack/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/teams/README.md +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/teams/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/teams/teams_chat.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/telegram/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/telegram/telegram_chat.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/whatsapp/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/whatsapp/whatsapp_chat.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/langgraph.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/mcp.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/messenger.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/openai.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/skills.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/slack.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/teams.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/telegram.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/test/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/test/test.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/langfuse/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/openllmetry/__init__.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/openllmetry/adk.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/openllmetry/crewai.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/openllmetry/langgraph.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/openllmetry/openai.py +0 -0
- {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/whatsapp.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: agentkernel
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.5.0
|
|
4
4
|
Summary: Agent Kernel - Unified AI Agents Runtime
|
|
5
5
|
Author: Yaala Labs
|
|
6
6
|
Author-email: Yaala Labs <agentkernel@yaalalabs.com>
|
|
@@ -22,23 +22,25 @@ Requires-Dist: boto3>=1.41.4 ; extra == 'aws'
|
|
|
22
22
|
Requires-Dist: azure-functions>=1.24.0 ; extra == 'azure'
|
|
23
23
|
Requires-Dist: azure-data-tables>=12.4.0 ; extra == 'azure'
|
|
24
24
|
Requires-Dist: azure-core>=1.26.0 ; extra == 'azure'
|
|
25
|
+
Requires-Dist: chromadb>=0.4.0 ; extra == 'chromadb'
|
|
25
26
|
Requires-Dist: crewai>=0.150.0 ; extra == 'crewai'
|
|
26
27
|
Requires-Dist: openinference-instrumentation-crewai>=0.1.16 ; extra == 'crewai'
|
|
27
28
|
Requires-Dist: openinference-instrumentation-litellm>=0.1.28 ; extra == 'crewai'
|
|
29
|
+
Requires-Dist: google-cloud-firestore>=2.19.0 ; extra == 'gcp'
|
|
28
30
|
Requires-Dist: google-auth>=2.0.0 ; extra == 'gmail'
|
|
29
31
|
Requires-Dist: google-auth-oauthlib>=1.0.0 ; extra == 'gmail'
|
|
30
32
|
Requires-Dist: google-auth-httplib2>=0.2.0 ; extra == 'gmail'
|
|
31
33
|
Requires-Dist: google-api-python-client>=2.0.0 ; extra == 'gmail'
|
|
32
34
|
Requires-Dist: httpx>=0.27.0 ; extra == 'instagram'
|
|
33
|
-
Requires-Dist: langfuse>=
|
|
35
|
+
Requires-Dist: langfuse>=4.2.0 ; extra == 'langfuse'
|
|
34
36
|
Requires-Dist: nest-asyncio>=1.6.0 ; extra == 'langfuse'
|
|
35
37
|
Requires-Dist: langgraph~=1.0.5 ; extra == 'langgraph'
|
|
36
38
|
Requires-Dist: langchain~=1.2.3 ; extra == 'langgraph'
|
|
37
39
|
Requires-Dist: langchain-community~=0.4.1 ; extra == 'langgraph'
|
|
38
40
|
Requires-Dist: litellm~=1.74.9 ; extra == 'langgraph'
|
|
39
|
-
Requires-Dist: fastmcp>=2.
|
|
41
|
+
Requires-Dist: fastmcp>=2.14.2,<3.0.0 ; extra == 'mcp'
|
|
40
42
|
Requires-Dist: httpx>=0.27.0 ; extra == 'messenger'
|
|
41
|
-
Requires-Dist:
|
|
43
|
+
Requires-Dist: neo4j>=5.0.0 ; extra == 'neo4j'
|
|
42
44
|
Requires-Dist: openai-agents>=0.6.5 ; extra == 'openai'
|
|
43
45
|
Requires-Dist: openinference-instrumentation-openai-agents>=1.4.0 ; extra == 'openai'
|
|
44
46
|
Requires-Dist: openai-guardrails>=0.2.1 ; extra == 'openai'
|
|
@@ -46,6 +48,11 @@ Requires-Dist: traceloop-sdk>=0.48.0 ; extra == 'openllmetry'
|
|
|
46
48
|
Requires-Dist: redis>=7.1.0 ; extra == 'redis'
|
|
47
49
|
Requires-Dist: slack-bolt==1.22.0 ; extra == 'slack'
|
|
48
50
|
Requires-Dist: httpx>=0.27.0 ; extra == 'slack'
|
|
51
|
+
Requires-Dist: smolagents>=1.0.0 ; extra == 'smolagents'
|
|
52
|
+
Requires-Dist: botbuilder-core>=4.17.0 ; extra == 'teams'
|
|
53
|
+
Requires-Dist: botbuilder-schema>=4.17.0 ; extra == 'teams'
|
|
54
|
+
Requires-Dist: msal>=1.31.1 ; extra == 'teams'
|
|
55
|
+
Requires-Dist: httpx>=0.27.0 ; extra == 'teams'
|
|
49
56
|
Requires-Dist: httpx>=0.27.0 ; extra == 'telegram'
|
|
50
57
|
Requires-Dist: pytest>=8.4.1 ; extra == 'test'
|
|
51
58
|
Requires-Dist: pytest-asyncio>=1.2.0 ; extra == 'test'
|
|
@@ -57,6 +64,7 @@ Requires-Dist: ragas>=0.4.1 ; extra == 'test'
|
|
|
57
64
|
Requires-Dist: datasets>=2.14.0 ; extra == 'test'
|
|
58
65
|
Requires-Dist: pandas>=2.0.0 ; extra == 'test'
|
|
59
66
|
Requires-Dist: litellm>=1.74.9 ; extra == 'test'
|
|
67
|
+
Requires-Dist: trino>=0.337.0 ; extra == 'trino'
|
|
60
68
|
Requires-Dist: walledai>=4.9.3 ; extra == 'walledai'
|
|
61
69
|
Requires-Dist: httpx>=0.27.0 ; extra == 'whatsapp'
|
|
62
70
|
Requires-Python: >=3.12, <3.14
|
|
@@ -66,21 +74,26 @@ Provides-Extra: api
|
|
|
66
74
|
Provides-Extra: auth
|
|
67
75
|
Provides-Extra: aws
|
|
68
76
|
Provides-Extra: azure
|
|
77
|
+
Provides-Extra: chromadb
|
|
69
78
|
Provides-Extra: cli
|
|
70
79
|
Provides-Extra: crewai
|
|
80
|
+
Provides-Extra: gcp
|
|
71
81
|
Provides-Extra: gmail
|
|
72
82
|
Provides-Extra: instagram
|
|
73
83
|
Provides-Extra: langfuse
|
|
74
84
|
Provides-Extra: langgraph
|
|
75
85
|
Provides-Extra: mcp
|
|
76
86
|
Provides-Extra: messenger
|
|
77
|
-
Provides-Extra:
|
|
87
|
+
Provides-Extra: neo4j
|
|
78
88
|
Provides-Extra: openai
|
|
79
89
|
Provides-Extra: openllmetry
|
|
80
90
|
Provides-Extra: redis
|
|
81
91
|
Provides-Extra: slack
|
|
92
|
+
Provides-Extra: smolagents
|
|
93
|
+
Provides-Extra: teams
|
|
82
94
|
Provides-Extra: telegram
|
|
83
95
|
Provides-Extra: test
|
|
96
|
+
Provides-Extra: trino
|
|
84
97
|
Provides-Extra: walledai
|
|
85
98
|
Provides-Extra: whatsapp
|
|
86
99
|
Description-Content-Type: text/markdown
|
|
@@ -90,17 +103,18 @@ Description-Content-Type: text/markdown
|
|
|
90
103
|
[](https://badge.fury.io/py/agentkernel)
|
|
91
104
|
[](https://www.python.org/downloads/)
|
|
92
105
|
|
|
93
|
-
Agent Kernel is a lightweight **multi-cloud AI agent runtime** and adapter layer for building and running AI agents across multiple frameworks and cloud providers. Deploy the same agent code to **AWS or
|
|
106
|
+
Agent Kernel is a lightweight **multi-cloud AI agent runtime** and adapter layer for building and running AI agents across multiple frameworks and cloud providers. Deploy the same agent code to **AWS, Azure, or GCP** without modification. Migrate your existing agents to Agent Kernel and instantly utilize pre-built execution and testing capabilities.
|
|
94
107
|
|
|
95
|
-
**Supported Cloud Platforms:** AWS, Azure
|
|
108
|
+
**Supported Cloud Platforms:** AWS, Azure, GCP
|
|
96
109
|
|
|
97
110
|
## Features
|
|
98
111
|
|
|
99
112
|
- **Unified API**: Common abstractions (Agent, Runner, Session, Module, Runtime) across frameworks
|
|
100
|
-
- **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK
|
|
101
|
-
- **Multi-Cloud Deployment**: Deploy to AWS (Lambda, ECS/Fargate)
|
|
102
|
-
- **Session Management**: Built-in session abstraction with multi-cloud storage (Redis, DynamoDB, Cosmos DB)
|
|
103
|
-
- **
|
|
113
|
+
- **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK, and Smolagents
|
|
114
|
+
- **Multi-Cloud Deployment**: Deploy to AWS (Lambda, ECS/Fargate), Azure (Functions, Container Apps), or GCP (Cloud Run serverless/containerized) with the same code
|
|
115
|
+
- **Session Management**: Built-in session abstraction with multi-cloud storage (Redis, DynamoDB, Cosmos DB, Firestore)
|
|
116
|
+
- **Knowledge Bases**: Unified `KnowledgeBase` interface with ChromaDB, Neo4j, and Starburst/Trino backends via `KnowledgeBuilder`
|
|
117
|
+
- **Flexible Deployment**: Interactive CLI, REST API, serverless (AWS Lambda, Azure Functions, GCP Cloud Run), containerized (AWS ECS, Azure Container Apps, GCP Cloud Run)
|
|
104
118
|
- **Pluggable Architecture**: Easy to extend with custom framework adapters and cloud providers
|
|
105
119
|
- **MCP Server**: Built-in Model Context Protocol server for exposing agents as MCP tools and exposing any custom tool
|
|
106
120
|
- **A2A Server**: Built-in Agent-to-Agent communication server for exposing agents with a simple configuration change
|
|
@@ -113,6 +127,14 @@ Agent Kernel is a lightweight **multi-cloud AI agent runtime** and adapter layer
|
|
|
113
127
|
pip install agentkernel
|
|
114
128
|
```
|
|
115
129
|
|
|
130
|
+
Install optional knowledge base extras as needed:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
pip install "agentkernel[chromadb]"
|
|
134
|
+
pip install "agentkernel[neo4j]"
|
|
135
|
+
pip install "agentkernel[trino]"
|
|
136
|
+
```
|
|
137
|
+
|
|
116
138
|
**Requirements:**
|
|
117
139
|
- Python 3.12+
|
|
118
140
|
|
|
@@ -337,6 +359,31 @@ Azure Functions also accepts the normalized envelope, and flat run payloads are
|
|
|
337
359
|
- `400` — No agent available
|
|
338
360
|
- `500` — Unexpected error
|
|
339
361
|
|
|
362
|
+
### GCP Cloud Run Deployment
|
|
363
|
+
|
|
364
|
+
Deploy your agents to GCP Cloud Run using the built-in `CloudRun` handler.
|
|
365
|
+
|
|
366
|
+
```python
|
|
367
|
+
from agentkernel.gcp import CloudRun
|
|
368
|
+
from agentkernel.openai import OpenAIModule
|
|
369
|
+
|
|
370
|
+
OpenAIModule([...])
|
|
371
|
+
|
|
372
|
+
@CloudRun.register("/app", method="GET")
|
|
373
|
+
def app_handler() -> dict:
|
|
374
|
+
return {"status": "ok"}
|
|
375
|
+
|
|
376
|
+
def main() -> None:
|
|
377
|
+
CloudRun.run()
|
|
378
|
+
|
|
379
|
+
if __name__ == "__main__":
|
|
380
|
+
main()
|
|
381
|
+
```
|
|
382
|
+
|
|
383
|
+
`CloudRun` is the GCP equivalent of `Lambda` (AWS) and `AzureFunctions` (Azure). It wraps `RESTAPI` and starts a FastAPI/uvicorn server. Custom routes are registered with `@CloudRun.register(path, method)`. Use `CloudRun.run()` instead of `RESTAPI.run()` when deploying to GCP.
|
|
384
|
+
|
|
385
|
+
For full Terraform deployment configuration, see [`ak-deployment/ak-gcp/`](https://github.com/yaalalabs/agent-kernel/tree/develop/ak-deployment/ak-gcp) or the [GCP deployment docs](https://github.com/yaalalabs/agent-kernel/tree/develop/docs/docs/deployment/gcp-serverless.md).
|
|
386
|
+
|
|
340
387
|
## Configuration
|
|
341
388
|
|
|
342
389
|
Agent Kernel can be configured via environment variables, `.env` files, or YAML/JSON configuration files.
|
|
@@ -364,13 +411,19 @@ Supported formats: `.yaml`, `.yml`, `.json`
|
|
|
364
411
|
|
|
365
412
|
### Configuration Options
|
|
366
413
|
|
|
367
|
-
####
|
|
414
|
+
#### Logging Configuration
|
|
415
|
+
|
|
416
|
+
- **Field**: `logging.ak.level`
|
|
417
|
+
- **Type**: string
|
|
418
|
+
- **Default**: `WARNING`
|
|
419
|
+
- **Description**: Agent Kernel logger level (INFO, DEBUG, ERROR, WARNING, CRITICAL)
|
|
420
|
+
- **Environment Variable**: `AK_LOGGING__AK__LEVEL`
|
|
368
421
|
|
|
369
|
-
- **Field**: `
|
|
370
|
-
- **Type**:
|
|
371
|
-
- **Default**: `
|
|
372
|
-
- **Description**:
|
|
373
|
-
- **Environment Variable**: `
|
|
422
|
+
- **Field**: `logging.system.level`
|
|
423
|
+
- **Type**: string
|
|
424
|
+
- **Default**: `WARNING`
|
|
425
|
+
- **Description**: System/root logger level (INFO, DEBUG, ERROR, WARNING, CRITICAL)
|
|
426
|
+
- **Environment Variable**: `AK_LOGGING__SYSTEM__LEVEL`
|
|
374
427
|
|
|
375
428
|
#### Session Store
|
|
376
429
|
|
|
@@ -378,7 +431,7 @@ Configure where agent sessions are stored (supports multi-cloud storage backends
|
|
|
378
431
|
|
|
379
432
|
- **Field**: `session.type`
|
|
380
433
|
- **Type**: string
|
|
381
|
-
- **Options**: `in_memory`, `redis`, `dynamodb` (AWS), `cosmosdb` (Azure)
|
|
434
|
+
- **Options**: `in_memory`, `redis`, `dynamodb` (AWS), `cosmosdb` (Azure), `firestore` (GCP)
|
|
382
435
|
- **Default**: `in_memory`
|
|
383
436
|
- **Environment Variable**: `AK_SESSION__TYPE`
|
|
384
437
|
|
|
@@ -538,10 +591,15 @@ Configure the REST API server (if using the API module).
|
|
|
538
591
|
- **Description**: List of agent names to expose as MCP tools
|
|
539
592
|
- **Environment Variable**: `AK_MCP__AGENTS` (comma-separated)
|
|
540
593
|
|
|
541
|
-
- **
|
|
542
|
-
- **Field**: `mcp.
|
|
543
|
-
- **Default**: `
|
|
544
|
-
- **
|
|
594
|
+
- **Stateless HTTP**
|
|
595
|
+
- **Field**: `mcp.stateless_http`
|
|
596
|
+
- **Default**: `false`
|
|
597
|
+
- **Description**: Run MCP in stateless HTTP mode (no `Mcp-Session-Id`)
|
|
598
|
+
- **Environment Variable**: `AK_MCP__STATELESS_HTTP`
|
|
599
|
+
|
|
600
|
+
- **Endpoint** (not configurable)
|
|
601
|
+
- The MCP server is always mounted at `/mcp` on the main API server.
|
|
602
|
+
- Full URL: `http://{api.host}:{api.port}/mcp` — use `api.port` / `AK_API__PORT` to change the port.
|
|
545
603
|
|
|
546
604
|
#### Trace (Observability) Configuration
|
|
547
605
|
|
|
@@ -956,7 +1014,6 @@ AK_TRACE__TYPE=langfuse # or openllmetry
|
|
|
956
1014
|
#### config.yaml
|
|
957
1015
|
|
|
958
1016
|
```yaml
|
|
959
|
-
debug: false
|
|
960
1017
|
session:
|
|
961
1018
|
type: redis
|
|
962
1019
|
redis:
|
|
@@ -998,7 +1055,6 @@ mcp:
|
|
|
998
1055
|
enabled: false
|
|
999
1056
|
expose_agents: false
|
|
1000
1057
|
agents: ["*"]
|
|
1001
|
-
url: http://localhost:8000/mcp
|
|
1002
1058
|
trace:
|
|
1003
1059
|
enabled: true
|
|
1004
1060
|
type: langfuse
|
|
@@ -1070,8 +1126,7 @@ gmail:
|
|
|
1070
1126
|
"mcp": {
|
|
1071
1127
|
"enabled": false,
|
|
1072
1128
|
"expose_agents": false,
|
|
1073
|
-
"agents": ["*"]
|
|
1074
|
-
"url": "http://localhost:8000/mcp"
|
|
1129
|
+
"agents": ["*"]
|
|
1075
1130
|
},
|
|
1076
1131
|
"trace": {
|
|
1077
1132
|
"enabled": true,
|
|
@@ -3,17 +3,18 @@
|
|
|
3
3
|
[](https://badge.fury.io/py/agentkernel)
|
|
4
4
|
[](https://www.python.org/downloads/)
|
|
5
5
|
|
|
6
|
-
Agent Kernel is a lightweight **multi-cloud AI agent runtime** and adapter layer for building and running AI agents across multiple frameworks and cloud providers. Deploy the same agent code to **AWS or
|
|
6
|
+
Agent Kernel is a lightweight **multi-cloud AI agent runtime** and adapter layer for building and running AI agents across multiple frameworks and cloud providers. Deploy the same agent code to **AWS, Azure, or GCP** without modification. Migrate your existing agents to Agent Kernel and instantly utilize pre-built execution and testing capabilities.
|
|
7
7
|
|
|
8
|
-
**Supported Cloud Platforms:** AWS, Azure
|
|
8
|
+
**Supported Cloud Platforms:** AWS, Azure, GCP
|
|
9
9
|
|
|
10
10
|
## Features
|
|
11
11
|
|
|
12
12
|
- **Unified API**: Common abstractions (Agent, Runner, Session, Module, Runtime) across frameworks
|
|
13
|
-
- **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK
|
|
14
|
-
- **Multi-Cloud Deployment**: Deploy to AWS (Lambda, ECS/Fargate)
|
|
15
|
-
- **Session Management**: Built-in session abstraction with multi-cloud storage (Redis, DynamoDB, Cosmos DB)
|
|
16
|
-
- **
|
|
13
|
+
- **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK, and Smolagents
|
|
14
|
+
- **Multi-Cloud Deployment**: Deploy to AWS (Lambda, ECS/Fargate), Azure (Functions, Container Apps), or GCP (Cloud Run serverless/containerized) with the same code
|
|
15
|
+
- **Session Management**: Built-in session abstraction with multi-cloud storage (Redis, DynamoDB, Cosmos DB, Firestore)
|
|
16
|
+
- **Knowledge Bases**: Unified `KnowledgeBase` interface with ChromaDB, Neo4j, and Starburst/Trino backends via `KnowledgeBuilder`
|
|
17
|
+
- **Flexible Deployment**: Interactive CLI, REST API, serverless (AWS Lambda, Azure Functions, GCP Cloud Run), containerized (AWS ECS, Azure Container Apps, GCP Cloud Run)
|
|
17
18
|
- **Pluggable Architecture**: Easy to extend with custom framework adapters and cloud providers
|
|
18
19
|
- **MCP Server**: Built-in Model Context Protocol server for exposing agents as MCP tools and exposing any custom tool
|
|
19
20
|
- **A2A Server**: Built-in Agent-to-Agent communication server for exposing agents with a simple configuration change
|
|
@@ -26,6 +27,14 @@ Agent Kernel is a lightweight **multi-cloud AI agent runtime** and adapter layer
|
|
|
26
27
|
pip install agentkernel
|
|
27
28
|
```
|
|
28
29
|
|
|
30
|
+
Install optional knowledge base extras as needed:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
pip install "agentkernel[chromadb]"
|
|
34
|
+
pip install "agentkernel[neo4j]"
|
|
35
|
+
pip install "agentkernel[trino]"
|
|
36
|
+
```
|
|
37
|
+
|
|
29
38
|
**Requirements:**
|
|
30
39
|
- Python 3.12+
|
|
31
40
|
|
|
@@ -250,6 +259,31 @@ Azure Functions also accepts the normalized envelope, and flat run payloads are
|
|
|
250
259
|
- `400` — No agent available
|
|
251
260
|
- `500` — Unexpected error
|
|
252
261
|
|
|
262
|
+
### GCP Cloud Run Deployment
|
|
263
|
+
|
|
264
|
+
Deploy your agents to GCP Cloud Run using the built-in `CloudRun` handler.
|
|
265
|
+
|
|
266
|
+
```python
|
|
267
|
+
from agentkernel.gcp import CloudRun
|
|
268
|
+
from agentkernel.openai import OpenAIModule
|
|
269
|
+
|
|
270
|
+
OpenAIModule([...])
|
|
271
|
+
|
|
272
|
+
@CloudRun.register("/app", method="GET")
|
|
273
|
+
def app_handler() -> dict:
|
|
274
|
+
return {"status": "ok"}
|
|
275
|
+
|
|
276
|
+
def main() -> None:
|
|
277
|
+
CloudRun.run()
|
|
278
|
+
|
|
279
|
+
if __name__ == "__main__":
|
|
280
|
+
main()
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
`CloudRun` is the GCP equivalent of `Lambda` (AWS) and `AzureFunctions` (Azure). It wraps `RESTAPI` and starts a FastAPI/uvicorn server. Custom routes are registered with `@CloudRun.register(path, method)`. Use `CloudRun.run()` instead of `RESTAPI.run()` when deploying to GCP.
|
|
284
|
+
|
|
285
|
+
For full Terraform deployment configuration, see [`ak-deployment/ak-gcp/`](https://github.com/yaalalabs/agent-kernel/tree/develop/ak-deployment/ak-gcp) or the [GCP deployment docs](https://github.com/yaalalabs/agent-kernel/tree/develop/docs/docs/deployment/gcp-serverless.md).
|
|
286
|
+
|
|
253
287
|
## Configuration
|
|
254
288
|
|
|
255
289
|
Agent Kernel can be configured via environment variables, `.env` files, or YAML/JSON configuration files.
|
|
@@ -277,13 +311,19 @@ Supported formats: `.yaml`, `.yml`, `.json`
|
|
|
277
311
|
|
|
278
312
|
### Configuration Options
|
|
279
313
|
|
|
280
|
-
####
|
|
314
|
+
#### Logging Configuration
|
|
315
|
+
|
|
316
|
+
- **Field**: `logging.ak.level`
|
|
317
|
+
- **Type**: string
|
|
318
|
+
- **Default**: `WARNING`
|
|
319
|
+
- **Description**: Agent Kernel logger level (INFO, DEBUG, ERROR, WARNING, CRITICAL)
|
|
320
|
+
- **Environment Variable**: `AK_LOGGING__AK__LEVEL`
|
|
281
321
|
|
|
282
|
-
- **Field**: `
|
|
283
|
-
- **Type**:
|
|
284
|
-
- **Default**: `
|
|
285
|
-
- **Description**:
|
|
286
|
-
- **Environment Variable**: `
|
|
322
|
+
- **Field**: `logging.system.level`
|
|
323
|
+
- **Type**: string
|
|
324
|
+
- **Default**: `WARNING`
|
|
325
|
+
- **Description**: System/root logger level (INFO, DEBUG, ERROR, WARNING, CRITICAL)
|
|
326
|
+
- **Environment Variable**: `AK_LOGGING__SYSTEM__LEVEL`
|
|
287
327
|
|
|
288
328
|
#### Session Store
|
|
289
329
|
|
|
@@ -291,7 +331,7 @@ Configure where agent sessions are stored (supports multi-cloud storage backends
|
|
|
291
331
|
|
|
292
332
|
- **Field**: `session.type`
|
|
293
333
|
- **Type**: string
|
|
294
|
-
- **Options**: `in_memory`, `redis`, `dynamodb` (AWS), `cosmosdb` (Azure)
|
|
334
|
+
- **Options**: `in_memory`, `redis`, `dynamodb` (AWS), `cosmosdb` (Azure), `firestore` (GCP)
|
|
295
335
|
- **Default**: `in_memory`
|
|
296
336
|
- **Environment Variable**: `AK_SESSION__TYPE`
|
|
297
337
|
|
|
@@ -451,10 +491,15 @@ Configure the REST API server (if using the API module).
|
|
|
451
491
|
- **Description**: List of agent names to expose as MCP tools
|
|
452
492
|
- **Environment Variable**: `AK_MCP__AGENTS` (comma-separated)
|
|
453
493
|
|
|
454
|
-
- **
|
|
455
|
-
- **Field**: `mcp.
|
|
456
|
-
- **Default**: `
|
|
457
|
-
- **
|
|
494
|
+
- **Stateless HTTP**
|
|
495
|
+
- **Field**: `mcp.stateless_http`
|
|
496
|
+
- **Default**: `false`
|
|
497
|
+
- **Description**: Run MCP in stateless HTTP mode (no `Mcp-Session-Id`)
|
|
498
|
+
- **Environment Variable**: `AK_MCP__STATELESS_HTTP`
|
|
499
|
+
|
|
500
|
+
- **Endpoint** (not configurable)
|
|
501
|
+
- The MCP server is always mounted at `/mcp` on the main API server.
|
|
502
|
+
- Full URL: `http://{api.host}:{api.port}/mcp` — use `api.port` / `AK_API__PORT` to change the port.
|
|
458
503
|
|
|
459
504
|
#### Trace (Observability) Configuration
|
|
460
505
|
|
|
@@ -869,7 +914,6 @@ AK_TRACE__TYPE=langfuse # or openllmetry
|
|
|
869
914
|
#### config.yaml
|
|
870
915
|
|
|
871
916
|
```yaml
|
|
872
|
-
debug: false
|
|
873
917
|
session:
|
|
874
918
|
type: redis
|
|
875
919
|
redis:
|
|
@@ -911,7 +955,6 @@ mcp:
|
|
|
911
955
|
enabled: false
|
|
912
956
|
expose_agents: false
|
|
913
957
|
agents: ["*"]
|
|
914
|
-
url: http://localhost:8000/mcp
|
|
915
958
|
trace:
|
|
916
959
|
enabled: true
|
|
917
960
|
type: langfuse
|
|
@@ -983,8 +1026,7 @@ gmail:
|
|
|
983
1026
|
"mcp": {
|
|
984
1027
|
"enabled": false,
|
|
985
1028
|
"expose_agents": false,
|
|
986
|
-
"agents": ["*"]
|
|
987
|
-
"url": "http://localhost:8000/mcp"
|
|
1029
|
+
"agents": ["*"]
|
|
988
1030
|
},
|
|
989
1031
|
"trace": {
|
|
990
1032
|
"enabled": true,
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "agentkernel"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.5.0"
|
|
8
8
|
description = "Agent Kernel - Unified AI Agents Runtime"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12,<3.14"
|
|
@@ -25,7 +25,7 @@ auth = [
|
|
|
25
25
|
"PyJWT>=2.0.0",
|
|
26
26
|
]
|
|
27
27
|
langfuse = [
|
|
28
|
-
"langfuse>=
|
|
28
|
+
"langfuse>=4.2.0",
|
|
29
29
|
"nest-asyncio>=1.6.0",
|
|
30
30
|
]
|
|
31
31
|
openllmetry = [
|
|
@@ -42,6 +42,9 @@ langgraph = [
|
|
|
42
42
|
"langchain_community~=0.4.1",
|
|
43
43
|
"litellm~=1.74.9"
|
|
44
44
|
]
|
|
45
|
+
smolagents = [
|
|
46
|
+
"smolagents>=1.0.0",
|
|
47
|
+
]
|
|
45
48
|
cli = [
|
|
46
49
|
|
|
47
50
|
]
|
|
@@ -57,6 +60,17 @@ azure = [
|
|
|
57
60
|
redis = [
|
|
58
61
|
"redis>=7.1.0",
|
|
59
62
|
]
|
|
63
|
+
|
|
64
|
+
neo4j = [
|
|
65
|
+
"neo4j>=5.0.0",
|
|
66
|
+
]
|
|
67
|
+
chromadb = [
|
|
68
|
+
"chromadb>=0.4.0",
|
|
69
|
+
]
|
|
70
|
+
trino = [
|
|
71
|
+
"trino>=0.337.0",
|
|
72
|
+
]
|
|
73
|
+
|
|
60
74
|
openai = [
|
|
61
75
|
"openai-agents>=0.6.5",
|
|
62
76
|
"openinference-instrumentation-openai-agents>=1.4.0",
|
|
@@ -91,12 +105,21 @@ instagram = [
|
|
|
91
105
|
telegram = [
|
|
92
106
|
"httpx>=0.27.0"
|
|
93
107
|
]
|
|
108
|
+
teams = [
|
|
109
|
+
"botbuilder-core>=4.17.0",
|
|
110
|
+
"botbuilder-schema>=4.17.0",
|
|
111
|
+
"msal>=1.31.1",
|
|
112
|
+
"httpx>=0.27.0",
|
|
113
|
+
]
|
|
94
114
|
gmail = [
|
|
95
115
|
"google-auth>=2.0.0",
|
|
96
116
|
"google-auth-oauthlib>=1.0.0",
|
|
97
117
|
"google-auth-httplib2>=0.2.0",
|
|
98
118
|
"google-api-python-client>=2.0.0",
|
|
99
119
|
]
|
|
120
|
+
gcp = [
|
|
121
|
+
"google-cloud-firestore>=2.19.0",
|
|
122
|
+
]
|
|
100
123
|
test = [
|
|
101
124
|
"pytest>=8.4.1",
|
|
102
125
|
"pytest-asyncio>=1.2.0",
|
|
@@ -113,10 +136,7 @@ a2a = [
|
|
|
113
136
|
"a2a-sdk[http-server]>=0.3.6",
|
|
114
137
|
]
|
|
115
138
|
mcp = [
|
|
116
|
-
"fastmcp>=2.
|
|
117
|
-
]
|
|
118
|
-
multimodal = [
|
|
119
|
-
"litellm>=1.74.9",
|
|
139
|
+
"fastmcp>=2.14.2,<3.0.0"
|
|
120
140
|
]
|
|
121
141
|
|
|
122
142
|
[project.scripts]
|
|
@@ -150,4 +170,3 @@ target-version = ["py312"]
|
|
|
150
170
|
|
|
151
171
|
[tool.pytest.ini_options]
|
|
152
172
|
addopts = "--cov=src --cov-report=term --cov-report=html --html=report.html"
|
|
153
|
-
|
|
@@ -5,7 +5,7 @@ This package provides a unified framework for working with different agent imple
|
|
|
5
5
|
It includes core functionality for agent execution, modular integration, and runtime management.
|
|
6
6
|
|
|
7
7
|
Features:
|
|
8
|
-
- Support for multiple agent frameworks (OpenAI, CrewAI, LangGraph)
|
|
8
|
+
- Support for multiple agent frameworks (OpenAI, CrewAI, LangGraph, Smolagents)
|
|
9
9
|
- Modular architecture for easy extension
|
|
10
10
|
- Unified runtime environment
|
|
11
11
|
- CLI interface for agent interaction
|
|
@@ -19,3 +19,8 @@ except importlib.metadata.PackageNotFoundError:
|
|
|
19
19
|
__version__ = "0.1.0"
|
|
20
20
|
|
|
21
21
|
from .core import *
|
|
22
|
+
|
|
23
|
+
# Auto-configure logging on import if not already configured (handled inside the "configure_from_config()" function)
|
|
24
|
+
from .core.logger import AKLogger
|
|
25
|
+
|
|
26
|
+
AKLogger.configure_from_config()
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from abc import ABC, abstractmethod
|
|
3
|
+
from typing import List, Optional
|
|
4
|
+
|
|
5
|
+
from fastapi import APIRouter, File, Form, UploadFile
|
|
6
|
+
from pydantic import ConfigDict
|
|
7
|
+
|
|
8
|
+
from ..core import Config
|
|
9
|
+
from ..core.chat_service import ChatService
|
|
10
|
+
from ..core.model import BaseChatRequest, BaseRunRequest
|
|
11
|
+
from ..core.runtime import Runtime
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class RESTRequestHandler(ABC):
|
|
15
|
+
@abstractmethod
|
|
16
|
+
def get_router(self) -> APIRouter:
|
|
17
|
+
"""
|
|
18
|
+
Returns the APIRouter instance which has configured routes
|
|
19
|
+
E.g.:
|
|
20
|
+
- GET /api/v1/agents: List available agents
|
|
21
|
+
|
|
22
|
+
router = APIRouter()
|
|
23
|
+
|
|
24
|
+
@router.get("/api/v1/agents")
|
|
25
|
+
def list_agents():
|
|
26
|
+
from ..core.runtime import Runtime
|
|
27
|
+
return {"agents": list(Runtime.current().agents().keys())}
|
|
28
|
+
|
|
29
|
+
"""
|
|
30
|
+
pass
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class AgentRESTRequestHandler(RESTRequestHandler):
|
|
34
|
+
"""
|
|
35
|
+
API routers that expose endpoints to interact with Agent Kernel.
|
|
36
|
+
Endpoints:
|
|
37
|
+
- GET /api/v1/agents: List available agents
|
|
38
|
+
- POST /api/v1/chat: Run an agent with a prompt
|
|
39
|
+
Payload JSON: { "prompt": str, "agent": str | null, "session_id": str | null }
|
|
40
|
+
"""
|
|
41
|
+
|
|
42
|
+
class BaseMultimodalRunRequest(BaseChatRequest):
|
|
43
|
+
"""Chat request with multipart file and image uploads (UploadFile format)."""
|
|
44
|
+
|
|
45
|
+
files: Optional[List[UploadFile]] = None
|
|
46
|
+
images: Optional[List[UploadFile]] = None
|
|
47
|
+
model_config = ConfigDict(extra="allow")
|
|
48
|
+
|
|
49
|
+
def __init__(self):
|
|
50
|
+
self._log = logging.getLogger("ak.api.agent")
|
|
51
|
+
self._max_file_size = Config.get().api.max_file_size
|
|
52
|
+
self.chat_service = ChatService(rest_api_mode=True)
|
|
53
|
+
|
|
54
|
+
def get_router(self) -> APIRouter:
|
|
55
|
+
"""
|
|
56
|
+
Returns the APIRouter instance.
|
|
57
|
+
"""
|
|
58
|
+
|
|
59
|
+
router = APIRouter()
|
|
60
|
+
|
|
61
|
+
@router.get("/api/v1/agents")
|
|
62
|
+
def list_agents():
|
|
63
|
+
return {"agents": list(Runtime.current().agents().keys())}
|
|
64
|
+
|
|
65
|
+
@router.post("/api/v1/chat")
|
|
66
|
+
async def run(body: BaseRunRequest):
|
|
67
|
+
return await self.chat_service.process_async_chat_request(req=body)
|
|
68
|
+
|
|
69
|
+
@router.post("/api/v1/chat-multipart")
|
|
70
|
+
async def run_multipart(
|
|
71
|
+
prompt: str = Form(...),
|
|
72
|
+
agent: Optional[str] = Form(None),
|
|
73
|
+
session_id: Optional[str] = Form(None),
|
|
74
|
+
files: Optional[List[UploadFile]] = File(None),
|
|
75
|
+
images: Optional[List[UploadFile]] = File(None),
|
|
76
|
+
):
|
|
77
|
+
# Construct BaseMultimodalRunRequest from form parameters
|
|
78
|
+
req = AgentRESTRequestHandler.BaseMultimodalRunRequest(
|
|
79
|
+
prompt=prompt,
|
|
80
|
+
agent=agent,
|
|
81
|
+
session_id=session_id,
|
|
82
|
+
files=files,
|
|
83
|
+
images=images,
|
|
84
|
+
)
|
|
85
|
+
return await self.chat_service.process_async_chat_request(req=req)
|
|
86
|
+
|
|
87
|
+
return router
|
|
@@ -9,12 +9,6 @@ from ..auth import AuthValidator, ValidationContext
|
|
|
9
9
|
from ..core.config import AKConfig
|
|
10
10
|
from .handler import AgentRESTRequestHandler, RESTRequestHandler
|
|
11
11
|
|
|
12
|
-
logging.basicConfig(
|
|
13
|
-
level=logging.DEBUG,
|
|
14
|
-
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
|
15
|
-
force=True,
|
|
16
|
-
)
|
|
17
|
-
|
|
18
12
|
|
|
19
13
|
class RESTAPI:
|
|
20
14
|
"""
|
|
@@ -59,7 +59,10 @@ class MCP:
|
|
|
59
59
|
if cls._built or not AKConfig.get().mcp.enabled:
|
|
60
60
|
return
|
|
61
61
|
if cls._fastmcp is None:
|
|
62
|
-
cls._fastmcp = FastMCP(
|
|
62
|
+
cls._fastmcp = FastMCP(
|
|
63
|
+
"Agent Kernel FastMCP Instance",
|
|
64
|
+
stateless_http=AKConfig.get().mcp.stateless_http,
|
|
65
|
+
)
|
|
63
66
|
if AKConfig.get().mcp.expose_agents:
|
|
64
67
|
agents: dict[str, Agent] = Runtime.current().agents()
|
|
65
68
|
for name, agent in agents.items():
|
|
@@ -3,17 +3,14 @@ import logging
|
|
|
3
3
|
import readline # Enables line editing and history features for input() in the CLI
|
|
4
4
|
|
|
5
5
|
from ..core import AgentService
|
|
6
|
+
from ..core.config import AKConfig
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
ak_logger = logging.getLogger("ak")
|
|
9
|
-
ak_logger.setLevel(logging.INFO)
|
|
10
|
-
ak_logger.propagate = False
|
|
8
|
+
ak_cli_logger = logging.getLogger("ak.cli")
|
|
11
9
|
|
|
12
|
-
if not
|
|
10
|
+
if not ak_cli_logger.handlers:
|
|
13
11
|
handler = logging.StreamHandler()
|
|
14
|
-
handler.setLevel(logging.INFO)
|
|
15
12
|
handler.setFormatter(logging.Formatter("\033[36m(kernel) >> %(message)s\033[0m"))
|
|
16
|
-
|
|
13
|
+
ak_cli_logger.addHandler(handler)
|
|
17
14
|
|
|
18
15
|
|
|
19
16
|
class CLI:
|
|
@@ -101,7 +98,7 @@ class CLI:
|
|
|
101
98
|
raise
|
|
102
99
|
except Exception as e:
|
|
103
100
|
self._print(f"Error: {e}")
|
|
104
|
-
|
|
101
|
+
ak_cli_logger.error("Exception in CLI run loop", exc_info=True)
|
|
105
102
|
|
|
106
103
|
@classmethod
|
|
107
104
|
def main(cls):
|