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.
Files changed (182) hide show
  1. {agentkernel-0.3.3 → agentkernel-0.5.0}/PKG-INFO +81 -26
  2. {agentkernel-0.3.3 → agentkernel-0.5.0}/README.md +63 -21
  3. {agentkernel-0.3.3 → agentkernel-0.5.0}/pyproject.toml +26 -7
  4. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/__init__.py +6 -1
  5. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/a2a/a2a.py +1 -1
  6. agentkernel-0.5.0/src/agentkernel/api/handler.py +87 -0
  7. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/http.py +0 -6
  8. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/mcp/akmcp.py +4 -1
  9. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/auth/handler.py +1 -1
  10. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/cli/cli.py +5 -8
  11. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/__init__.py +1 -0
  12. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/builder.py +5 -0
  13. agentkernel-0.5.0/src/agentkernel/core/chat_service.py +339 -0
  14. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/config.py +52 -7
  15. agentkernel-0.5.0/src/agentkernel/core/logger.py +99 -0
  16. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/model.py +34 -8
  17. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/dynamodb.py +1 -1
  18. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/in_memory.py +1 -1
  19. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/redis.py +1 -1
  20. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/session_cache.py +1 -1
  21. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/storage_manager.py +1 -1
  22. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/tools.py +7 -4
  23. agentkernel-0.5.0/src/agentkernel/core/session/firestore.py +244 -0
  24. agentkernel-0.5.0/src/agentkernel/core/util/error_util.py +77 -0
  25. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/__init__.py +1 -1
  26. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/core/response_store/handler.py +2 -2
  27. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/core/sqs_handler.py +68 -48
  28. agentkernel-0.5.0/src/agentkernel/deployment/aws/core/websocket_service.py +298 -0
  29. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/serverless/__init__.py +1 -0
  30. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/serverless/akagentrunner.py +42 -17
  31. agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/aklambda.py +89 -0
  32. agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/akresponsehandler.py +148 -0
  33. agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/akwsconnectionhandler.py +49 -0
  34. agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/core/__init__.py +2 -0
  35. agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/core/router/__init__.py +3 -0
  36. agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/core/router/common.py +83 -0
  37. agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/core/router/rest_lambda.py +382 -0
  38. agentkernel-0.5.0/src/agentkernel/deployment/aws/serverless/core/router/ws_lambda.py +538 -0
  39. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/serverless/core/sqs_consumer.py +2 -0
  40. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/azure/akfunction.py +12 -4
  41. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/common/response_store.py +1 -1
  42. agentkernel-0.5.0/src/agentkernel/deployment/common/websocket_connection_store.py +63 -0
  43. agentkernel-0.5.0/src/agentkernel/deployment/gcp/__init__.py +13 -0
  44. agentkernel-0.5.0/src/agentkernel/deployment/gcp/akauthorizer.py +29 -0
  45. agentkernel-0.5.0/src/agentkernel/deployment/gcp/akcloudrun.py +77 -0
  46. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/adk/adk.py +16 -7
  47. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/crewai/crewai.py +15 -5
  48. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/langgraph/langgraph.py +31 -1
  49. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/openai/openai.py +4 -2
  50. agentkernel-0.5.0/src/agentkernel/framework/smolagents/__init__.py +16 -0
  51. agentkernel-0.5.0/src/agentkernel/framework/smolagents/smolagents.py +388 -0
  52. agentkernel-0.5.0/src/agentkernel/gcp.py +8 -0
  53. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/guardrail/bedrock.py +1 -1
  54. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/guardrail/openai.py +1 -1
  55. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/guardrail/walledai.py +0 -22
  56. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/gmail/README.md +16 -4
  57. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/messenger/README.md +16 -4
  58. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/slack/slack_chat.py +2 -1
  59. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/telegram/README.md +16 -4
  60. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/whatsapp/README.md +16 -4
  61. agentkernel-0.5.0/src/agentkernel/knowledgebase/__init__.py +1 -0
  62. agentkernel-0.5.0/src/agentkernel/knowledgebase/base.py +120 -0
  63. agentkernel-0.5.0/src/agentkernel/knowledgebase/chroma.py +124 -0
  64. agentkernel-0.5.0/src/agentkernel/knowledgebase/knowledgebuilder.py +190 -0
  65. agentkernel-0.5.0/src/agentkernel/knowledgebase/neo4j.py +156 -0
  66. agentkernel-0.5.0/src/agentkernel/knowledgebase/starburst.py +233 -0
  67. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-add-capabilities/SKILL.md +138 -22
  68. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-add-capabilities/evals/evals.json +31 -2
  69. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-add-integration/SKILL.md +55 -9
  70. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-add-integration/evals/evals.json +14 -1
  71. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-build/SKILL.md +44 -2
  72. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-build/evals/evals.json +24 -1
  73. agentkernel-0.5.0/src/agentkernel/skills/ak-cloud-deploy/SKILL.md +822 -0
  74. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-cloud-deploy/evals/evals.json +108 -6
  75. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-init/SKILL.md +29 -2
  76. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-init/evals/evals.json +17 -2
  77. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-test/SKILL.md +14 -6
  78. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/ak-test/evals/evals.json +5 -3
  79. agentkernel-0.5.0/src/agentkernel/smolagents.py +8 -0
  80. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/base.py +7 -0
  81. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/langfuse/adk.py +9 -4
  82. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/langfuse/crewai.py +9 -4
  83. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/langfuse/langfuse.py +8 -0
  84. agentkernel-0.5.0/src/agentkernel/trace/langfuse/langgraph.py +66 -0
  85. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/langfuse/openai.py +9 -4
  86. agentkernel-0.5.0/src/agentkernel/trace/langfuse/smolagents.py +34 -0
  87. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/openllmetry/openllmetry.py +8 -0
  88. agentkernel-0.5.0/src/agentkernel/trace/openllmetry/smolagents.py +29 -0
  89. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/trace.py +8 -0
  90. agentkernel-0.3.3/src/agentkernel/api/handler.py +0 -302
  91. agentkernel-0.3.3/src/agentkernel/deployment/aws/serverless/aklambda.py +0 -198
  92. agentkernel-0.3.3/src/agentkernel/deployment/aws/serverless/akresponsehandler.py +0 -88
  93. agentkernel-0.3.3/src/agentkernel/deployment/aws/serverless/core/__init__.py +0 -2
  94. agentkernel-0.3.3/src/agentkernel/deployment/aws/serverless/core/default_endpoints.py +0 -287
  95. agentkernel-0.3.3/src/agentkernel/deployment/common/chat_service.py +0 -142
  96. agentkernel-0.3.3/src/agentkernel/skills/ak-cloud-deploy/SKILL.md +0 -381
  97. agentkernel-0.3.3/src/agentkernel/trace/langfuse/langgraph.py +0 -60
  98. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/adk.py +0 -0
  99. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/__init__.py +0 -0
  100. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/a2a/__init__.py +0 -0
  101. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/a2a/handler.py +0 -0
  102. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/api/mcp/__init__.py +0 -0
  103. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/auth/__init__.py +0 -0
  104. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/auth.py +0 -0
  105. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/aws.py +0 -0
  106. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/azure.py +0 -0
  107. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/cli/__init__.py +0 -0
  108. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/cli/ak.py +0 -0
  109. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/base.py +0 -0
  110. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/hooks.py +0 -0
  111. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/module.py +0 -0
  112. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/__init__.py +0 -0
  113. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/factory.py +0 -0
  114. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/hooks.py +0 -0
  115. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/__init__.py +0 -0
  116. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/multimodal/storage/base.py +0 -0
  117. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/runtime.py +0 -0
  118. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/service.py +0 -0
  119. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/__init__.py +0 -0
  120. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/base.py +0 -0
  121. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/cosmosdb.py +0 -0
  122. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/dynamodb.py +0 -0
  123. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/in_memory.py +0 -0
  124. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/redis.py +0 -0
  125. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/session/serde.py +0 -0
  126. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/tool.py +0 -0
  127. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/util/config_yaml_util.py +0 -0
  128. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/core/util/key_value_cache.py +0 -0
  129. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/crewai.py +0 -0
  130. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/__init__.py +0 -0
  131. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/core/__init__.py +0 -0
  132. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/core/response_store/__init__.py +0 -0
  133. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/core/response_store/dynamodb.py +0 -0
  134. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/core/response_store/redis.py +0 -0
  135. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/aws/serverless/akauthorizer.py +0 -0
  136. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/azure/__init__.py +0 -0
  137. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/deployment/common/__init__.py +0 -0
  138. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/__init__.py +0 -0
  139. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/adk/__init__.py +0 -0
  140. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/crewai/__init__.py +0 -0
  141. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/langgraph/__init__.py +0 -0
  142. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/framework/openai/__init__.py +0 -0
  143. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/gmail.py +0 -0
  144. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/guardrail/__init__.py +0 -0
  145. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/guardrail/guardrail.py +0 -0
  146. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/instagram.py +0 -0
  147. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/__init__.py +0 -0
  148. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/gmail/__init__.py +0 -0
  149. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/gmail/gmail_chat.py +0 -0
  150. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/instagram/README.md +0 -0
  151. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/instagram/__init__.py +0 -0
  152. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/instagram/instagram_chat.py +0 -0
  153. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/messenger/__init__.py +0 -0
  154. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/messenger/messenger_chat.py +0 -0
  155. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/slack/README.md +0 -0
  156. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/slack/__init__.py +0 -0
  157. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/teams/README.md +0 -0
  158. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/teams/__init__.py +0 -0
  159. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/teams/teams_chat.py +0 -0
  160. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/telegram/__init__.py +0 -0
  161. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/telegram/telegram_chat.py +0 -0
  162. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/whatsapp/__init__.py +0 -0
  163. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/integration/whatsapp/whatsapp_chat.py +0 -0
  164. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/langgraph.py +0 -0
  165. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/mcp.py +0 -0
  166. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/messenger.py +0 -0
  167. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/openai.py +0 -0
  168. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/__init__.py +0 -0
  169. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/skills/skills.py +0 -0
  170. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/slack.py +0 -0
  171. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/teams.py +0 -0
  172. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/telegram.py +0 -0
  173. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/test/__init__.py +0 -0
  174. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/test/test.py +0 -0
  175. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/__init__.py +0 -0
  176. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/langfuse/__init__.py +0 -0
  177. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/openllmetry/__init__.py +0 -0
  178. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/openllmetry/adk.py +0 -0
  179. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/openllmetry/crewai.py +0 -0
  180. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/openllmetry/langgraph.py +0 -0
  181. {agentkernel-0.3.3 → agentkernel-0.5.0}/src/agentkernel/trace/openllmetry/openai.py +0 -0
  182. {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.3
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>=3.9.2 ; extra == '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.12.4 ; extra == 'mcp'
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: litellm>=1.74.9 ; extra == 'multimodal'
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: multimodal
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
  [![PyPI version](https://badge.fury.io/py/agentkernel.svg)](https://badge.fury.io/py/agentkernel)
91
104
  [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](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 Azure** without modification. Migrate your existing agents to Agent Kernel and instantly utilize pre-built execution and testing capabilities.
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) or Azure (Functions, Container Apps) with the same code
102
- - **Session Management**: Built-in session abstraction with multi-cloud storage (Redis, DynamoDB, Cosmos DB)
103
- - **Flexible Deployment**: Interactive CLI, REST API, serverless (AWS Lambda, Azure Functions), containerized (AWS ECS, Azure Container Apps)
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
- #### Debug Mode
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**: `debug`
370
- - **Type**: boolean
371
- - **Default**: `false`
372
- - **Description**: Enable debug mode across the library
373
- - **Environment Variable**: `AK_DEBUG`
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
- - **URL**
542
- - **Field**: `mcp.url`
543
- - **Default**: `http://localhost:8000/mcp`
544
- - **Environment Variable**: `AK_MCP__URL`
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
  [![PyPI version](https://badge.fury.io/py/agentkernel.svg)](https://badge.fury.io/py/agentkernel)
4
4
  [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](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 Azure** without modification. Migrate your existing agents to Agent Kernel and instantly utilize pre-built execution and testing capabilities.
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) or Azure (Functions, Container Apps) with the same code
15
- - **Session Management**: Built-in session abstraction with multi-cloud storage (Redis, DynamoDB, Cosmos DB)
16
- - **Flexible Deployment**: Interactive CLI, REST API, serverless (AWS Lambda, Azure Functions), containerized (AWS ECS, Azure Container Apps)
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
- #### Debug Mode
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**: `debug`
283
- - **Type**: boolean
284
- - **Default**: `false`
285
- - **Description**: Enable debug mode across the library
286
- - **Environment Variable**: `AK_DEBUG`
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
- - **URL**
455
- - **Field**: `mcp.url`
456
- - **Default**: `http://localhost:8000/mcp`
457
- - **Environment Variable**: `AK_MCP__URL`
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.3.3"
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>=3.9.2",
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.12.4",
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()
@@ -31,7 +31,7 @@ class A2A:
31
31
  """
32
32
  Card built flag
33
33
  """
34
- _log = logging.getLogger(__name__)
34
+ _log = logging.getLogger("ak.a2a")
35
35
 
36
36
  class Executor(AgentExecutor):
37
37
 
@@ -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("Agent Kernel FastMCP Instance")
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():
@@ -7,7 +7,7 @@ from pydantic import BaseModel
7
7
  class ValidationContext(BaseModel):
8
8
  path: Optional[str] = None
9
9
  http_method: Optional[str] = None
10
- headers: Dict[str, str]
10
+ headers: Optional[Dict[str, Any]] = None
11
11
 
12
12
 
13
13
  class ValidationResult(BaseModel):
@@ -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
- # Configure logger only to print agent kernel logs
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 ak_logger.handlers:
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
- ak_logger.addHandler(handler)
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
- ak_logger.error("Exception in CLI run loop", exc_info=True)
101
+ ak_cli_logger.error("Exception in CLI run loop", exc_info=True)
105
102
 
106
103
  @classmethod
107
104
  def main(cls):
@@ -29,3 +29,4 @@ from .service import AgentService
29
29
  from .hooks import PreHook, PostHook
30
30
  from .tool import ToolContext, ToolBuilder
31
31
  from .util.key_value_cache import KeyValueCache
32
+ from .chat_service import ChatService