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.
Files changed (347) hide show
  1. {agentkernel-0.9.2 → agentkernel-0.9.3}/PKG-INFO +5 -2
  2. {agentkernel-0.9.2 → agentkernel-0.9.3}/README.md +4 -1
  3. {agentkernel-0.9.2 → agentkernel-0.9.3}/pyproject.toml +4 -1
  4. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/cli/cli.py +2 -2
  5. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/base.py +115 -2
  6. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/config.py +51 -0
  7. agentkernel-0.9.3/src/agentkernel/core/module.py +138 -0
  8. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/tool.py +41 -8
  9. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/__init__.py +3 -3
  10. agentkernel-0.9.3/src/agentkernel/core/util/driver/s3.py +186 -0
  11. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/adk/adk.py +75 -34
  12. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/crewai/crewai.py +15 -25
  13. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/langgraph/langgraph.py +70 -30
  14. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/openai/openai.py +20 -25
  15. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/pydanticai/pydanticai.py +32 -24
  16. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/smolagents/smolagents.py +19 -24
  17. agentkernel-0.9.3/src/agentkernel/knowledgebase/__init__.py +74 -0
  18. agentkernel-0.9.3/src/agentkernel/knowledgebase/base.py +233 -0
  19. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/knowledgebase/chroma.py +6 -2
  20. agentkernel-0.9.3/src/agentkernel/knowledgebase/document.py +96 -0
  21. agentkernel-0.9.3/src/agentkernel/knowledgebase/errors.py +47 -0
  22. agentkernel-0.9.3/src/agentkernel/knowledgebase/knowledgebuilder.py +399 -0
  23. agentkernel-0.9.3/src/agentkernel/knowledgebase/model.py +61 -0
  24. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/knowledgebase/neo4j.py +35 -8
  25. agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/__init__.py +38 -0
  26. agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/capability.py +280 -0
  27. agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/manager.py +969 -0
  28. agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/model.py +115 -0
  29. agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/parser.py +504 -0
  30. agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/prompts.py +173 -0
  31. agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/roles.py +177 -0
  32. agentkernel-0.9.3/src/agentkernel/knowledgebase/okf/tools.py +185 -0
  33. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/knowledgebase/starburst.py +29 -25
  34. agentkernel-0.9.3/src/agentkernel/knowledgebase/store/__init__.py +11 -0
  35. agentkernel-0.9.3/src/agentkernel/knowledgebase/store/base.py +192 -0
  36. agentkernel-0.9.3/src/agentkernel/knowledgebase/store/local.py +160 -0
  37. agentkernel-0.9.3/src/agentkernel/knowledgebase/store/s3.py +166 -0
  38. agentkernel-0.9.3/src/agentkernel/knowledgebase/testing.py +697 -0
  39. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-add-capabilities/SKILL.md +117 -32
  40. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-add-capabilities/evals/evals.json +28 -1
  41. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-add-integration/SKILL.md +8 -8
  42. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-add-integration/evals/evals.json +1 -1
  43. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-build/SKILL.md +15 -1
  44. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-build/evals/evals.json +1 -1
  45. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-cloud-deploy/SKILL.md +26 -26
  46. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-cloud-deploy/evals/evals.json +1 -1
  47. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-init/SKILL.md +2 -2
  48. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-init/evals/evals.json +2 -2
  49. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-test/SKILL.md +2 -2
  50. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/ak-test/evals/evals.json +1 -1
  51. agentkernel-0.9.2/src/agentkernel/core/module.py +0 -95
  52. agentkernel-0.9.2/src/agentkernel/knowledgebase/__init__.py +0 -1
  53. agentkernel-0.9.2/src/agentkernel/knowledgebase/base.py +0 -120
  54. agentkernel-0.9.2/src/agentkernel/knowledgebase/knowledgebuilder.py +0 -190
  55. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/__init__.py +0 -0
  56. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/adk.py +0 -0
  57. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/agui.py +0 -0
  58. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/__init__.py +0 -0
  59. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/a2a/__init__.py +0 -0
  60. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/a2a/a2a.py +0 -0
  61. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/a2a/handler.py +0 -0
  62. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/handler.py +0 -0
  63. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/http.py +0 -0
  64. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/mcp/__init__.py +0 -0
  65. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/api/mcp/akmcp.py +0 -0
  66. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/auth/__init__.py +0 -0
  67. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/auth/authoriser.py +0 -0
  68. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/auth/handler.py +0 -0
  69. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/auth.py +0 -0
  70. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/aws.py +0 -0
  71. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/azure.py +0 -0
  72. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/cli/__init__.py +0 -0
  73. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/cli/ak.py +0 -0
  74. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/__init__.py +0 -0
  75. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/builder.py +0 -0
  76. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/chat_service.py +0 -0
  77. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/event.py +0 -0
  78. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/hooks.py +0 -0
  79. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/logger.py +0 -0
  80. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/model.py +0 -0
  81. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/__init__.py +0 -0
  82. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/factory.py +0 -0
  83. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/hooks.py +0 -0
  84. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/source.py +0 -0
  85. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/__init__.py +0 -0
  86. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/base.py +0 -0
  87. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/dynamodb.py +0 -0
  88. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/in_memory.py +0 -0
  89. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/redis.py +0 -0
  90. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/session_cache.py +0 -0
  91. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/storage/storage_manager.py +0 -0
  92. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/multimodal/tools.py +0 -0
  93. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/runtime.py +0 -0
  94. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/service.py +0 -0
  95. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/__init__.py +0 -0
  96. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/base.py +0 -0
  97. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/cosmosdb.py +0 -0
  98. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/dynamodb.py +0 -0
  99. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/firestore.py +0 -0
  100. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/in_memory.py +0 -0
  101. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/redis.py +0 -0
  102. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/redis_like.py +0 -0
  103. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/serde.py +0 -0
  104. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/session/valkey.py +0 -0
  105. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/async_bridge.py +0 -0
  106. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/config_yaml_util.py +0 -0
  107. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/base.py +0 -0
  108. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/cosmosdb.py +0 -0
  109. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/dynamodb.py +0 -0
  110. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/firestore.py +0 -0
  111. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/redis.py +0 -0
  112. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/redis_like.py +0 -0
  113. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/driver/valkey.py +0 -0
  114. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/error_util.py +0 -0
  115. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/factory.py +0 -0
  116. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/key_value_cache.py +0 -0
  117. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/core/util/pagination.py +0 -0
  118. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/crewai.py +0 -0
  119. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/__init__.py +0 -0
  120. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/__init__.py +0 -0
  121. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/__init__.py +0 -0
  122. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/akagentrunner.py +0 -0
  123. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/akoutputconsumer.py +0 -0
  124. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/core/__init__.py +0 -0
  125. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/core/api/__init__.py +0 -0
  126. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/core/api/rest_api.py +0 -0
  127. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/core/api/websocket_api.py +0 -0
  128. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/core/sqs_consumer.py +0 -0
  129. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/containerized/ecs_io_handler.py +0 -0
  130. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/__init__.py +0 -0
  131. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/raw_queue_consumer.py +0 -0
  132. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/response_store/__init__.py +0 -0
  133. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/response_store/dynamodb.py +0 -0
  134. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/response_store/factory.py +0 -0
  135. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/response_store/redis.py +0 -0
  136. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/response_store/valkey.py +0 -0
  137. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/sqs_handler.py +0 -0
  138. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/core/websocket_service.py +0 -0
  139. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/__init__.py +0 -0
  140. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/akagentrunner.py +0 -0
  141. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/akauthorizer.py +0 -0
  142. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/aklambda.py +0 -0
  143. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/akresponsehandler.py +0 -0
  144. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/akwsconnectionhandler.py +0 -0
  145. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/core/__init__.py +0 -0
  146. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/core/router/__init__.py +0 -0
  147. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/core/router/common.py +0 -0
  148. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/core/router/rest_lambda.py +0 -0
  149. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/core/router/ws_lambda.py +0 -0
  150. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/aws/serverless/core/sqs_consumer.py +0 -0
  151. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/azure/__init__.py +0 -0
  152. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/azure/akfunction.py +0 -0
  153. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/common/__init__.py +0 -0
  154. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/common/response_store.py +0 -0
  155. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/common/rest_handler.py +0 -0
  156. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/common/thread_runner.py +0 -0
  157. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/common/websocket_service.py +0 -0
  158. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/gcp/__init__.py +0 -0
  159. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/gcp/akauthorizer.py +0 -0
  160. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/deployment/gcp/akcloudrun.py +0 -0
  161. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/__init__.py +0 -0
  162. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/adk/__init__.py +0 -0
  163. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/crewai/__init__.py +0 -0
  164. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/langgraph/__init__.py +0 -0
  165. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/openai/__init__.py +0 -0
  166. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/pydanticai/__init__.py +0 -0
  167. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/framework/smolagents/__init__.py +0 -0
  168. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/gcp.py +0 -0
  169. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/gmail.py +0 -0
  170. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/guardrail/__init__.py +0 -0
  171. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/guardrail/bedrock.py +0 -0
  172. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/guardrail/guardrail.py +0 -0
  173. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/guardrail/openai.py +0 -0
  174. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/guardrail/walledai.py +0 -0
  175. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/instagram.py +0 -0
  176. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/__init__.py +0 -0
  177. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/__init__.py +0 -0
  178. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/base.py +0 -0
  179. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/factory.py +0 -0
  180. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/meta.py +0 -0
  181. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/poller.py +0 -0
  182. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/producer.py +0 -0
  183. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/testing.py +0 -0
  184. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/adapter/webhook.py +0 -0
  185. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/agui/__init__.py +0 -0
  186. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/agui/handler.py +0 -0
  187. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/agui/mapping.py +0 -0
  188. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/agui/run_input.py +0 -0
  189. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/agui/state.py +0 -0
  190. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/gmail/README.md +0 -0
  191. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/gmail/__init__.py +0 -0
  192. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/gmail/adapter.py +0 -0
  193. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/instagram/README.md +0 -0
  194. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/instagram/__init__.py +0 -0
  195. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/instagram/adapter.py +0 -0
  196. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/messenger/README.md +0 -0
  197. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/messenger/__init__.py +0 -0
  198. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/messenger/adapter.py +0 -0
  199. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/slack/README.md +0 -0
  200. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/slack/__init__.py +0 -0
  201. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/slack/adapter.py +0 -0
  202. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/teams/README.md +0 -0
  203. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/teams/__init__.py +0 -0
  204. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/teams/adapter.py +0 -0
  205. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/telegram/README.md +0 -0
  206. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/telegram/__init__.py +0 -0
  207. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/telegram/adapter.py +0 -0
  208. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/__init__.py +0 -0
  209. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/manager.py +0 -0
  210. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/model.py +0 -0
  211. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/naming.py +0 -0
  212. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/recorder.py +0 -0
  213. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/__init__.py +0 -0
  214. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/base.py +0 -0
  215. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/cosmosdb.py +0 -0
  216. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/dynamodb.py +0 -0
  217. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/firestore.py +0 -0
  218. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/in_memory.py +0 -0
  219. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/redis.py +0 -0
  220. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/redis_like.py +0 -0
  221. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/store/valkey.py +0 -0
  222. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/thread/thread_chat.py +0 -0
  223. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/whatsapp/README.md +0 -0
  224. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/whatsapp/__init__.py +0 -0
  225. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/integration/whatsapp/adapter.py +0 -0
  226. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/langgraph.py +0 -0
  227. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/mcp.py +0 -0
  228. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/messenger.py +0 -0
  229. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/openai.py +0 -0
  230. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/__init__.py +0 -0
  231. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/agent_runner.py +0 -0
  232. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/consumer.py +0 -0
  233. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/envelope.py +0 -0
  234. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/io_handler.py +0 -0
  235. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/producer.py +0 -0
  236. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/request_handler.py +0 -0
  237. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_handler.py +0 -0
  238. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/__init__.py +0 -0
  239. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/base.py +0 -0
  240. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/dynamodb.py +0 -0
  241. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/factory.py +0 -0
  242. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/in_memory.py +0 -0
  243. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/redis.py +0 -0
  244. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/response_store/valkey.py +0 -0
  245. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/testing.py +0 -0
  246. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/thread_runner.py +0 -0
  247. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/__init__.py +0 -0
  248. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/base.py +0 -0
  249. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/bookkeeping.py +0 -0
  250. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/in_memory.py +0 -0
  251. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/kafka.py +0 -0
  252. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/nats.py +0 -0
  253. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/transport/sqs.py +0 -0
  254. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/__init__.py +0 -0
  255. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/base.py +0 -0
  256. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/endpoint.py +0 -0
  257. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/gateway.py +0 -0
  258. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/handler.py +0 -0
  259. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/push.py +0 -0
  260. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pipeline/ws/registry.py +0 -0
  261. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/pydanticai.py +0 -0
  262. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/__init__.py +0 -0
  263. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/base.py +0 -0
  264. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/__init__.py +0 -0
  265. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/base.py +0 -0
  266. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/embedded.py +0 -0
  267. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/queue.py +0 -0
  268. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/queue_worker.py +0 -0
  269. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/thread.py +0 -0
  270. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/wire.py +0 -0
  271. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/broker/worker.py +0 -0
  272. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/errors.py +0 -0
  273. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/factory.py +0 -0
  274. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/hooks.py +0 -0
  275. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/manager.py +0 -0
  276. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/model.py +0 -0
  277. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/principal.py +0 -0
  278. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/__init__.py +0 -0
  279. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/daytona.py +0 -0
  280. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/docker.py +0 -0
  281. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/e2b.py +0 -0
  282. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/ec2_ssm.py +0 -0
  283. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/kubernetes.py +0 -0
  284. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/providers/local_subprocess.py +0 -0
  285. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/testing.py +0 -0
  286. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/sandbox/tools.py +0 -0
  287. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/__init__.py +0 -0
  288. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/errors.py +0 -0
  289. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/handler.py +0 -0
  290. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/manager.py +0 -0
  291. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/model.py +0 -0
  292. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/provider/__init__.py +0 -0
  293. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/provider/base.py +0 -0
  294. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/provider/eventbridge.py +0 -0
  295. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/provider/local.py +0 -0
  296. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/__init__.py +0 -0
  297. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/base.py +0 -0
  298. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/dynamodb.py +0 -0
  299. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/in_memory.py +0 -0
  300. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/redis.py +0 -0
  301. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/redis_like.py +0 -0
  302. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/store/valkey.py +0 -0
  303. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/timing.py +0 -0
  304. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/schedule/tools.py +0 -0
  305. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/__init__.py +0 -0
  306. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/skills/skills.py +0 -0
  307. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/slack.py +0 -0
  308. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/smolagents.py +0 -0
  309. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/teams.py +0 -0
  310. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/telegram.py +0 -0
  311. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/__init__.py +0 -0
  312. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/config.py +0 -0
  313. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/core/__init__.py +0 -0
  314. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/core/evaluator/__init__.py +0 -0
  315. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/core/evaluator/base.py +0 -0
  316. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/core/evaluator/deepeval.py +0 -0
  317. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/core/evaluator/opik.py +0 -0
  318. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/test/test.py +0 -0
  319. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/thread.py +0 -0
  320. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/__init__.py +0 -0
  321. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/base.py +0 -0
  322. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/__init__.py +0 -0
  323. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/adk.py +0 -0
  324. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/crewai.py +0 -0
  325. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/langfuse.py +0 -0
  326. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/langgraph.py +0 -0
  327. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/openai.py +0 -0
  328. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/pydanticai.py +0 -0
  329. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/langfuse/smolagents.py +0 -0
  330. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/__init__.py +0 -0
  331. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/adk.py +0 -0
  332. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/crewai.py +0 -0
  333. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/langgraph.py +0 -0
  334. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/logfire.py +0 -0
  335. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/openai.py +0 -0
  336. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/pydanticai.py +0 -0
  337. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/logfire/smolagents.py +0 -0
  338. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/__init__.py +0 -0
  339. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/adk.py +0 -0
  340. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/crewai.py +0 -0
  341. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/langgraph.py +0 -0
  342. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/openai.py +0 -0
  343. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/openllmetry.py +0 -0
  344. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/pydanticai.py +0 -0
  345. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/openllmetry/smolagents.py +0 -0
  346. {agentkernel-0.9.2 → agentkernel-0.9.3}/src/agentkernel/trace/trace.py +0 -0
  347. {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.2
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, and Starburst/Trino backends via `KnowledgeBuilder`
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, and Starburst/Trino backends via `KnowledgeBuilder`
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.2"
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.lower().split()
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
- for tool in SystemToolFactory.get_all(self.name):
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 based on enabled tools.
259
+ Generate the system prompt suffix from the enabled capabilities.
227
260
 
228
- This method retrieves all enabled system tools and constructs a suffix string
229
- containing their descriptions, which can be appended to the system prompt for agents.
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 descriptions of all enabled tools,
234
- or an empty string if no tools are enabled.
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
- return "\n".join(tool.description for tool in tools if tool.description)
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 database connection drivers for the Session, Multimodal, Response Store,
3
- and Thread backends.
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
  """