agentkernel 0.6.1__tar.gz → 0.7.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 (250) hide show
  1. {agentkernel-0.6.1 → agentkernel-0.7.0}/PKG-INFO +361 -45
  2. {agentkernel-0.6.1 → agentkernel-0.7.0}/README.md +345 -44
  3. {agentkernel-0.6.1 → agentkernel-0.7.0}/pyproject.toml +28 -2
  4. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/__init__.py +0 -5
  5. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/api/__init__.py +1 -0
  6. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/api/handler.py +6 -0
  7. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/api/http.py +9 -0
  8. agentkernel-0.7.0/src/agentkernel/api/thread.py +107 -0
  9. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/__init__.py +1 -0
  10. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/base.py +2 -2
  11. agentkernel-0.7.0/src/agentkernel/core/builder.py +132 -0
  12. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/chat_service.py +113 -9
  13. agentkernel-0.7.0/src/agentkernel/core/config.py +627 -0
  14. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/hooks.py +4 -1
  15. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/model.py +86 -22
  16. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/multimodal/hooks.py +44 -24
  17. agentkernel-0.7.0/src/agentkernel/core/multimodal/storage/dynamodb.py +108 -0
  18. agentkernel-0.7.0/src/agentkernel/core/multimodal/storage/redis.py +66 -0
  19. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/multimodal/storage/storage_manager.py +22 -10
  20. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/runtime.py +31 -10
  21. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/service.py +5 -3
  22. agentkernel-0.7.0/src/agentkernel/core/session/cosmosdb.py +125 -0
  23. agentkernel-0.7.0/src/agentkernel/core/session/dynamodb.py +117 -0
  24. agentkernel-0.7.0/src/agentkernel/core/session/firestore.py +112 -0
  25. agentkernel-0.7.0/src/agentkernel/core/session/redis.py +95 -0
  26. agentkernel-0.7.0/src/agentkernel/core/session/valkey.py +95 -0
  27. agentkernel-0.7.0/src/agentkernel/core/thread/__init__.py +16 -0
  28. agentkernel-0.7.0/src/agentkernel/core/thread/authoriser.py +28 -0
  29. agentkernel-0.7.0/src/agentkernel/core/thread/manager.py +288 -0
  30. agentkernel-0.7.0/src/agentkernel/core/thread/model.py +69 -0
  31. agentkernel-0.7.0/src/agentkernel/core/thread/naming.py +143 -0
  32. agentkernel-0.7.0/src/agentkernel/core/thread/store/__init__.py +5 -0
  33. agentkernel-0.7.0/src/agentkernel/core/thread/store/base.py +184 -0
  34. agentkernel-0.7.0/src/agentkernel/core/thread/store/cosmosdb.py +228 -0
  35. agentkernel-0.7.0/src/agentkernel/core/thread/store/dynamodb.py +256 -0
  36. agentkernel-0.7.0/src/agentkernel/core/thread/store/firestore.py +201 -0
  37. agentkernel-0.7.0/src/agentkernel/core/thread/store/in_memory.py +115 -0
  38. agentkernel-0.7.0/src/agentkernel/core/thread/store/redis.py +199 -0
  39. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/tool.py +31 -6
  40. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/util/config_yaml_util.py +20 -5
  41. agentkernel-0.7.0/src/agentkernel/core/util/driver/__init__.py +15 -0
  42. agentkernel-0.7.0/src/agentkernel/core/util/driver/base.py +67 -0
  43. agentkernel-0.7.0/src/agentkernel/core/util/driver/cosmosdb.py +222 -0
  44. agentkernel-0.7.0/src/agentkernel/core/util/driver/dynamodb.py +182 -0
  45. agentkernel-0.7.0/src/agentkernel/core/util/driver/firestore.py +151 -0
  46. agentkernel-0.7.0/src/agentkernel/core/util/driver/redis.py +18 -0
  47. agentkernel-0.7.0/src/agentkernel/core/util/driver/redis_like.py +298 -0
  48. agentkernel-0.7.0/src/agentkernel/core/util/driver/valkey.py +18 -0
  49. agentkernel-0.7.0/src/agentkernel/core/util/factory.py +64 -0
  50. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/__init__.py +2 -0
  51. agentkernel-0.7.0/src/agentkernel/deployment/aws/containerized/__init__.py +3 -0
  52. agentkernel-0.7.0/src/agentkernel/deployment/aws/containerized/akagentrunner.py +118 -0
  53. agentkernel-0.7.0/src/agentkernel/deployment/aws/containerized/akoutputconsumer.py +131 -0
  54. agentkernel-0.7.0/src/agentkernel/deployment/aws/containerized/core/__init__.py +1 -0
  55. agentkernel-0.7.0/src/agentkernel/deployment/aws/containerized/core/sqs_consumer.py +175 -0
  56. agentkernel-0.7.0/src/agentkernel/deployment/aws/containerized/ecs_io_handler.py +51 -0
  57. agentkernel-0.7.0/src/agentkernel/deployment/aws/containerized/ecs_queue_handler.py +39 -0
  58. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/core/response_store/dynamodb.py +5 -15
  59. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/core/response_store/handler.py +19 -1
  60. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/core/response_store/redis.py +5 -14
  61. agentkernel-0.7.0/src/agentkernel/deployment/aws/core/response_store/valkey.py +32 -0
  62. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/core/sqs_handler.py +80 -47
  63. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/serverless/akagentrunner.py +25 -13
  64. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/serverless/akresponsehandler.py +11 -9
  65. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/serverless/core/router/rest_lambda.py +2 -3
  66. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/serverless/core/router/ws_lambda.py +2 -3
  67. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/serverless/core/sqs_consumer.py +18 -4
  68. agentkernel-0.7.0/src/agentkernel/deployment/common/__init__.py +2 -0
  69. agentkernel-0.7.0/src/agentkernel/deployment/common/queue_consumer.py +55 -0
  70. agentkernel-0.7.0/src/agentkernel/deployment/common/queue_handler.py +84 -0
  71. agentkernel-0.7.0/src/agentkernel/deployment/common/queue_request_handler.py +185 -0
  72. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/common/response_store.py +32 -5
  73. agentkernel-0.7.0/src/agentkernel/deployment/common/thread_runner.py +90 -0
  74. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/framework/adk/adk.py +15 -4
  75. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/framework/crewai/crewai.py +145 -17
  76. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/framework/langgraph/langgraph.py +17 -9
  77. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/framework/openai/openai.py +9 -4
  78. agentkernel-0.7.0/src/agentkernel/framework/pydanticai/__init__.py +16 -0
  79. agentkernel-0.7.0/src/agentkernel/framework/pydanticai/pydanticai.py +376 -0
  80. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/framework/smolagents/smolagents.py +10 -5
  81. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/guardrail/bedrock.py +4 -7
  82. agentkernel-0.7.0/src/agentkernel/guardrail/guardrail.py +117 -0
  83. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/guardrail/openai.py +7 -6
  84. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/guardrail/walledai.py +37 -11
  85. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/gmail/gmail_chat.py +1 -1
  86. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/instagram/instagram_chat.py +1 -1
  87. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/messenger/messenger_chat.py +2 -2
  88. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/slack/slack_chat.py +3 -3
  89. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/teams/teams_chat.py +3 -2
  90. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/telegram/telegram_chat.py +1 -1
  91. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/whatsapp/whatsapp_chat.py +1 -1
  92. agentkernel-0.7.0/src/agentkernel/pydanticai.py +8 -0
  93. agentkernel-0.7.0/src/agentkernel/sandbox/__init__.py +45 -0
  94. agentkernel-0.7.0/src/agentkernel/sandbox/base.py +112 -0
  95. agentkernel-0.7.0/src/agentkernel/sandbox/broker/__init__.py +8 -0
  96. agentkernel-0.7.0/src/agentkernel/sandbox/broker/base.py +91 -0
  97. agentkernel-0.7.0/src/agentkernel/sandbox/broker/embedded.py +42 -0
  98. agentkernel-0.7.0/src/agentkernel/sandbox/broker/thread.py +171 -0
  99. agentkernel-0.7.0/src/agentkernel/sandbox/broker/worker.py +205 -0
  100. agentkernel-0.7.0/src/agentkernel/sandbox/errors.py +63 -0
  101. agentkernel-0.7.0/src/agentkernel/sandbox/factory.py +142 -0
  102. agentkernel-0.7.0/src/agentkernel/sandbox/hooks.py +149 -0
  103. agentkernel-0.7.0/src/agentkernel/sandbox/manager.py +463 -0
  104. agentkernel-0.7.0/src/agentkernel/sandbox/model.py +113 -0
  105. agentkernel-0.7.0/src/agentkernel/sandbox/principal.py +39 -0
  106. agentkernel-0.7.0/src/agentkernel/sandbox/providers/__init__.py +7 -0
  107. agentkernel-0.7.0/src/agentkernel/sandbox/providers/docker.py +203 -0
  108. agentkernel-0.7.0/src/agentkernel/sandbox/providers/local_subprocess.py +152 -0
  109. agentkernel-0.7.0/src/agentkernel/sandbox/testing.py +251 -0
  110. agentkernel-0.7.0/src/agentkernel/sandbox/tools.py +334 -0
  111. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/ak-add-capabilities/SKILL.md +251 -26
  112. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/ak-add-capabilities/evals/evals.json +92 -11
  113. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/ak-add-integration/SKILL.md +8 -8
  114. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/ak-add-integration/evals/evals.json +1 -1
  115. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/ak-build/SKILL.md +52 -3
  116. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/ak-build/evals/evals.json +26 -1
  117. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/ak-cloud-deploy/SKILL.md +184 -58
  118. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/ak-cloud-deploy/evals/evals.json +32 -1
  119. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/ak-init/SKILL.md +34 -13
  120. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/ak-init/evals/evals.json +19 -2
  121. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/ak-test/SKILL.md +4 -2
  122. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/ak-test/evals/evals.json +1 -1
  123. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/test/__init__.py +1 -0
  124. agentkernel-0.7.0/src/agentkernel/test/config.py +55 -0
  125. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/test/test.py +25 -5
  126. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/base.py +7 -0
  127. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/langfuse/langfuse.py +8 -0
  128. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/langfuse/langgraph.py +10 -6
  129. agentkernel-0.7.0/src/agentkernel/trace/langfuse/pydanticai.py +47 -0
  130. agentkernel-0.7.0/src/agentkernel/trace/logfire/adk.py +35 -0
  131. agentkernel-0.7.0/src/agentkernel/trace/logfire/crewai.py +37 -0
  132. agentkernel-0.7.0/src/agentkernel/trace/logfire/langgraph.py +32 -0
  133. agentkernel-0.7.0/src/agentkernel/trace/logfire/logfire.py +80 -0
  134. agentkernel-0.7.0/src/agentkernel/trace/logfire/openai.py +34 -0
  135. agentkernel-0.7.0/src/agentkernel/trace/logfire/pydanticai.py +34 -0
  136. agentkernel-0.7.0/src/agentkernel/trace/logfire/smolagents.py +32 -0
  137. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/openllmetry/openllmetry.py +8 -0
  138. agentkernel-0.7.0/src/agentkernel/trace/openllmetry/pydanticai.py +34 -0
  139. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/trace.py +32 -13
  140. agentkernel-0.6.1/src/agentkernel/core/builder.py +0 -152
  141. agentkernel-0.6.1/src/agentkernel/core/config.py +0 -334
  142. agentkernel-0.6.1/src/agentkernel/core/multimodal/storage/dynamodb.py +0 -190
  143. agentkernel-0.6.1/src/agentkernel/core/multimodal/storage/redis.py +0 -160
  144. agentkernel-0.6.1/src/agentkernel/core/session/cosmosdb.py +0 -345
  145. agentkernel-0.6.1/src/agentkernel/core/session/dynamodb.py +0 -261
  146. agentkernel-0.6.1/src/agentkernel/core/session/firestore.py +0 -244
  147. agentkernel-0.6.1/src/agentkernel/core/session/redis.py +0 -219
  148. agentkernel-0.6.1/src/agentkernel/guardrail/guardrail.py +0 -100
  149. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/adk.py +0 -0
  150. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/api/a2a/__init__.py +0 -0
  151. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/api/a2a/a2a.py +0 -0
  152. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/api/a2a/handler.py +0 -0
  153. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/api/mcp/__init__.py +0 -0
  154. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/api/mcp/akmcp.py +0 -0
  155. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/auth/__init__.py +0 -0
  156. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/auth/handler.py +0 -0
  157. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/auth.py +0 -0
  158. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/aws.py +0 -0
  159. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/azure.py +0 -0
  160. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/cli/__init__.py +0 -0
  161. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/cli/ak.py +0 -0
  162. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/cli/cli.py +0 -0
  163. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/logger.py +0 -0
  164. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/module.py +0 -0
  165. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/multimodal/__init__.py +0 -0
  166. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/multimodal/factory.py +0 -0
  167. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/multimodal/storage/__init__.py +0 -0
  168. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/multimodal/storage/base.py +0 -0
  169. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/multimodal/storage/in_memory.py +0 -0
  170. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/multimodal/storage/session_cache.py +0 -0
  171. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/multimodal/tools.py +0 -0
  172. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/session/__init__.py +0 -0
  173. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/session/base.py +0 -0
  174. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/session/in_memory.py +0 -0
  175. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/session/serde.py +0 -0
  176. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/util/error_util.py +0 -0
  177. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/core/util/key_value_cache.py +0 -0
  178. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/crewai.py +0 -0
  179. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/__init__.py +0 -0
  180. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/core/__init__.py +0 -0
  181. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/core/response_store/__init__.py +0 -0
  182. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/core/websocket_service.py +0 -0
  183. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/serverless/__init__.py +0 -0
  184. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/serverless/akauthorizer.py +0 -0
  185. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/serverless/aklambda.py +0 -0
  186. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/serverless/akwsconnectionhandler.py +0 -0
  187. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/serverless/core/__init__.py +0 -0
  188. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/serverless/core/router/__init__.py +0 -0
  189. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/aws/serverless/core/router/common.py +0 -0
  190. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/azure/__init__.py +0 -0
  191. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/azure/akfunction.py +0 -0
  192. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/common/websocket_connection_store.py +0 -0
  193. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/gcp/__init__.py +0 -0
  194. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/gcp/akauthorizer.py +0 -0
  195. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/deployment/gcp/akcloudrun.py +0 -0
  196. {agentkernel-0.6.1/src/agentkernel/deployment/common → agentkernel-0.7.0/src/agentkernel/framework}/__init__.py +0 -0
  197. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/framework/adk/__init__.py +0 -0
  198. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/framework/crewai/__init__.py +0 -0
  199. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/framework/langgraph/__init__.py +0 -0
  200. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/framework/openai/__init__.py +0 -0
  201. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/framework/smolagents/__init__.py +0 -0
  202. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/gcp.py +0 -0
  203. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/gmail.py +0 -0
  204. {agentkernel-0.6.1/src/agentkernel/framework → agentkernel-0.7.0/src/agentkernel/guardrail}/__init__.py +0 -0
  205. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/instagram.py +0 -0
  206. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/__init__.py +0 -0
  207. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/gmail/README.md +0 -0
  208. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/gmail/__init__.py +0 -0
  209. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/instagram/README.md +0 -0
  210. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/instagram/__init__.py +0 -0
  211. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/messenger/README.md +0 -0
  212. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/messenger/__init__.py +0 -0
  213. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/slack/README.md +0 -0
  214. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/slack/__init__.py +0 -0
  215. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/teams/README.md +0 -0
  216. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/teams/__init__.py +0 -0
  217. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/telegram/README.md +0 -0
  218. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/telegram/__init__.py +0 -0
  219. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/whatsapp/README.md +0 -0
  220. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/integration/whatsapp/__init__.py +0 -0
  221. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/knowledgebase/__init__.py +0 -0
  222. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/knowledgebase/base.py +0 -0
  223. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/knowledgebase/chroma.py +0 -0
  224. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/knowledgebase/knowledgebuilder.py +0 -0
  225. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/knowledgebase/neo4j.py +0 -0
  226. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/knowledgebase/starburst.py +0 -0
  227. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/langgraph.py +0 -0
  228. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/mcp.py +0 -0
  229. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/messenger.py +0 -0
  230. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/openai.py +0 -0
  231. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/__init__.py +0 -0
  232. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/skills/skills.py +0 -0
  233. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/slack.py +0 -0
  234. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/smolagents.py +0 -0
  235. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/teams.py +0 -0
  236. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/telegram.py +0 -0
  237. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/__init__.py +0 -0
  238. {agentkernel-0.6.1/src/agentkernel/guardrail → agentkernel-0.7.0/src/agentkernel/trace/langfuse}/__init__.py +0 -0
  239. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/langfuse/adk.py +0 -0
  240. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/langfuse/crewai.py +0 -0
  241. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/langfuse/openai.py +0 -0
  242. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/langfuse/smolagents.py +0 -0
  243. {agentkernel-0.6.1/src/agentkernel/trace/langfuse → agentkernel-0.7.0/src/agentkernel/trace/logfire}/__init__.py +0 -0
  244. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/openllmetry/__init__.py +0 -0
  245. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/openllmetry/adk.py +0 -0
  246. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/openllmetry/crewai.py +0 -0
  247. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/openllmetry/langgraph.py +0 -0
  248. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/openllmetry/openai.py +0 -0
  249. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/trace/openllmetry/smolagents.py +0 -0
  250. {agentkernel-0.6.1 → agentkernel-0.7.0}/src/agentkernel/whatsapp.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: agentkernel
3
- Version: 0.6.1
3
+ Version: 0.7.0
4
4
  Summary: Agent Kernel - Unified AI Agents Runtime
5
5
  Author: Yaala Labs
6
6
  Author-email: Yaala Labs <agentkernel@yaalalabs.com>
@@ -38,14 +38,20 @@ Requires-Dist: langgraph~=1.0.5 ; extra == 'langgraph'
38
38
  Requires-Dist: langchain~=1.2.3 ; extra == 'langgraph'
39
39
  Requires-Dist: langchain-community==0.4.1 ; extra == 'langgraph'
40
40
  Requires-Dist: litellm~=1.89.2 ; extra == 'langgraph'
41
+ Requires-Dist: logfire>=3.0 ; extra == 'logfire'
41
42
  Requires-Dist: fastmcp>=2.14.2,<3.0.0 ; extra == 'mcp'
42
43
  Requires-Dist: httpx>=0.27.0 ; extra == 'messenger'
44
+ Requires-Dist: litellm>=1.74.9 ; extra == 'multimodal'
45
+ Requires-Dist: python-multipart>=0.0.12 ; extra == 'multimodal'
43
46
  Requires-Dist: neo4j>=5.0.0 ; extra == 'neo4j'
44
47
  Requires-Dist: openai-agents>=0.6.5 ; extra == 'openai'
45
48
  Requires-Dist: openinference-instrumentation-openai-agents>=1.4.0 ; extra == 'openai'
46
49
  Requires-Dist: openai-guardrails>=0.2.1 ; extra == 'openai'
47
50
  Requires-Dist: traceloop-sdk>=0.61.0 ; extra == 'openllmetry'
51
+ Requires-Dist: pydantic-ai-slim~=2.13.0 ; extra == 'pydanticai'
52
+ Requires-Dist: openinference-instrumentation-pydantic-ai>=0.1.17 ; extra == 'pydanticai'
48
53
  Requires-Dist: redis>=7.1.0 ; extra == 'redis'
54
+ Requires-Dist: docker>=7.0.0 ; extra == 'sandbox-docker'
49
55
  Requires-Dist: slack-bolt==1.22.0 ; extra == 'slack'
50
56
  Requires-Dist: httpx>=0.27.0 ; extra == 'slack'
51
57
  Requires-Dist: smolagents>=1.0.0 ; extra == 'smolagents'
@@ -61,10 +67,13 @@ Requires-Dist: pytest-html>=4.1.1 ; extra == 'test'
61
67
  Requires-Dist: pytest-order>=1.3.0 ; extra == 'test'
62
68
  Requires-Dist: rapidfuzz>=3.14.1 ; extra == 'test'
63
69
  Requires-Dist: ragas>=0.4.1 ; extra == 'test'
70
+ Requires-Dist: langchain-community==0.4.1 ; extra == 'test'
64
71
  Requires-Dist: datasets>=2.14.0 ; extra == 'test'
65
72
  Requires-Dist: pandas>=2.0.0 ; extra == 'test'
66
73
  Requires-Dist: litellm>=1.89.2 ; extra == 'test'
74
+ Requires-Dist: litellm>=1.74.9 ; extra == 'thread'
67
75
  Requires-Dist: trino>=0.337.0 ; extra == 'trino'
76
+ Requires-Dist: valkey>=6.0.0 ; extra == 'valkey'
68
77
  Requires-Dist: walledai>=4.9.3 ; extra == 'walledai'
69
78
  Requires-Dist: httpx>=0.27.0 ; extra == 'whatsapp'
70
79
  Requires-Python: >=3.12, <3.14
@@ -82,18 +91,24 @@ Provides-Extra: gmail
82
91
  Provides-Extra: instagram
83
92
  Provides-Extra: langfuse
84
93
  Provides-Extra: langgraph
94
+ Provides-Extra: logfire
85
95
  Provides-Extra: mcp
86
96
  Provides-Extra: messenger
97
+ Provides-Extra: multimodal
87
98
  Provides-Extra: neo4j
88
99
  Provides-Extra: openai
89
100
  Provides-Extra: openllmetry
101
+ Provides-Extra: pydanticai
90
102
  Provides-Extra: redis
103
+ Provides-Extra: sandbox-docker
91
104
  Provides-Extra: slack
92
105
  Provides-Extra: smolagents
93
106
  Provides-Extra: teams
94
107
  Provides-Extra: telegram
95
108
  Provides-Extra: test
109
+ Provides-Extra: thread
96
110
  Provides-Extra: trino
111
+ Provides-Extra: valkey
97
112
  Provides-Extra: walledai
98
113
  Provides-Extra: whatsapp
99
114
  Description-Content-Type: text/markdown
@@ -103,19 +118,17 @@ Description-Content-Type: text/markdown
103
118
  [![PyPI version](https://badge.fury.io/py/agentkernel.svg)](https://badge.fury.io/py/agentkernel)
104
119
  [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
105
120
 
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.
107
-
108
- **Supported Cloud Platforms:** AWS, Azure, GCP
121
+ Agent Kernel is a lightweight **AI agent runtime** and adapter layer for building and running AI agents across multiple frameworks. Migrate your existing agents to Agent Kernel and instantly utilize pre-built execution and testing capabilities. Deploy the same agent code without modification — see the "Multi-Cloud Deployment" section below for supported platforms.
109
122
 
110
123
  ## Features
111
124
 
112
125
  - **Unified API**: Common abstractions (Agent, Runner, Session, Module, Runtime) across frameworks
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)
126
+ - **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK, Smolagents, and Pydantic AI
127
+ - **Session Management**: Built-in session abstraction with pluggable storage backends
116
128
  - **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)
118
- - **Pluggable Architecture**: Easy to extend with custom framework adapters and cloud providers
129
+ - **Sandbox**: Execute agent-generated code and shell commands in an isolated, permission-bounded environment with pluggable providers (`local_subprocess`, `docker`), workload profiles, policy enforcement, and per-user identity
130
+ - **Flexible Deployment**: Interactive CLI, REST API, serverless, or containerized deployment see the "Multi-Cloud Deployment" section below
131
+ - **Pluggable Architecture**: Easy to extend with custom framework adapters
119
132
  - **MCP Server**: Built-in Model Context Protocol server for exposing agents as MCP tools and exposing any custom tool
120
133
  - **A2A Server**: Built-in Agent-to-Agent communication server for exposing agents with a simple configuration change
121
134
  - **REST API**: Built-in REST API server for agent interaction
@@ -135,6 +148,18 @@ pip install "agentkernel[neo4j]"
135
148
  pip install "agentkernel[trino]"
136
149
  ```
137
150
 
151
+ For LLM-based thread naming with Conversation Thread Support:
152
+
153
+ ```bash
154
+ pip install "agentkernel[thread]"
155
+ ```
156
+
157
+ For the Docker sandbox provider (the `local_subprocess` provider needs no extra):
158
+
159
+ ```bash
160
+ pip install "agentkernel[sandbox-docker]"
161
+ ```
162
+
138
163
  **Requirements:**
139
164
  - Python 3.12+
140
165
 
@@ -268,7 +293,9 @@ Then interact with your agents:
268
293
 
269
294
  ## Multi-Cloud Deployment
270
295
 
271
- Deploy your agents to AWS or Azure using the built-in cloud deployment handlers.
296
+ **Supported Cloud Platforms:** AWS, Azure, GCP
297
+
298
+ Deploy your agents to AWS, Azure, or GCP using the built-in cloud deployment handlers.
272
299
 
273
300
  ### AWS Lambda Deployment
274
301
 
@@ -431,7 +458,7 @@ Configure where agent sessions are stored (supports multi-cloud storage backends
431
458
 
432
459
  - **Field**: `session.type`
433
460
  - **Type**: string
434
- - **Options**: `in_memory`, `redis`, `dynamodb` (AWS), `cosmosdb` (Azure), `firestore` (GCP)
461
+ - **Options**: `in_memory`, `redis`, `valkey` (AWS), `dynamodb` (AWS), `cosmosdb` (Azure), `firestore` (GCP)
435
462
  - **Default**: `in_memory`
436
463
  - **Environment Variable**: `AK_SESSION__TYPE`
437
464
 
@@ -457,6 +484,143 @@ Required when `session.type=redis`:
457
484
  - **Description**: Key prefix for session storage
458
485
  - **Environment Variable**: `AK_SESSION__REDIS__PREFIX`
459
486
 
487
+ ##### Valkey Configuration
488
+
489
+ Required when `session.type=valkey` (requires the `agentkernel[valkey]` extra). [Valkey](https://valkey.io/)
490
+ is the open-source, Linux Foundation-governed fork of Redis — wire-compatible with Redis and
491
+ available on AWS ElastiCache at a lower price point than the Redis OSS engine:
492
+
493
+ - **URL**
494
+ - **Field**: `session.valkey.url`
495
+ - **Default**: `valkey://localhost:6379`
496
+ - **Description**: Valkey connection URL. Use `valkeys://` for SSL
497
+ - **Environment Variable**: `AK_SESSION__VALKEY__URL`
498
+
499
+ - **TTL (Time to Live)**
500
+ - **Field**: `session.valkey.ttl`
501
+ - **Default**: `604800` (7 days)
502
+ - **Description**: Session TTL in seconds
503
+ - **Environment Variable**: `AK_SESSION__VALKEY__TTL`
504
+
505
+ - **Key Prefix**
506
+ - **Field**: `session.valkey.prefix`
507
+ - **Default**: `ak:sessions:`
508
+ - **Description**: Key prefix for session storage
509
+ - **Environment Variable**: `AK_SESSION__VALKEY__PREFIX`
510
+
511
+ #### Conversation Thread Support
512
+
513
+ Adding a `thread` block to the configuration turns on persistent, named conversation threads keyed by
514
+ `session_id`. Once enabled, `user_id` becomes required on every chat request, a thread is auto-created on a
515
+ session's first request, and history becomes readable over REST (`GET /api/v1/threads` and
516
+ `GET /api/v1/threads/{session_id}` — optionally protected by a pluggable `Authoriser`). Sending
517
+ `thread_name` on any chat request sets or renames the thread's display name and locks it against automatic
518
+ naming. Threads created without an explicit `thread_name` are
519
+ named by a pluggable naming strategy — by default an LLM call derives a concise title from the first prompt
520
+ (falling back to a prefix of the prompt when `litellm` or an API key is unavailable). Attachments in thread
521
+ mode additionally require `multimodal.enabled: true` with a shared attachment store (`in_memory`, `redis`, or
522
+ `dynamodb` — `session_cache` is rejected). See `examples/api/thread-openai` and
523
+ `examples/api/multimodal/thread-openai`.
524
+
525
+ - **Field**: `thread.type`
526
+ - **Type**: string
527
+ - **Options**: `memory`, `redis`, `dynamodb` (AWS), `firestore` (GCP), `cosmosdb` (Azure)
528
+ - **Default**: `memory`
529
+ - **Environment Variable**: `AK_THREAD__TYPE`
530
+
531
+ - **Naming Model**
532
+ - **Field**: `thread.naming.model`
533
+ - **Type**: string
534
+ - **Default**: `gpt-4o-mini`
535
+ - **Description**: LiteLLM model used to generate thread names (requires the `thread` extra — `pip install "agentkernel[thread]"` — and an API key in the environment; falls back to a truncated prompt prefix otherwise)
536
+ - **Environment Variable**: `AK_THREAD__NAMING__MODEL`
537
+
538
+ - **Auto-name Max Length**
539
+ - **Field**: `thread.naming.max_length`
540
+ - **Type**: integer
541
+ - **Default**: `80`
542
+ - **Description**: Maximum length of an auto-generated thread name
543
+ - **Environment Variable**: `AK_THREAD__NAMING__MAX_LENGTH`
544
+
545
+ ##### Redis Thread Store
546
+
547
+ Required when `thread.type=redis`:
548
+
549
+ - **URL**
550
+ - **Field**: `thread.redis.url`
551
+ - **Default**: `redis://localhost:6379`
552
+ - **Description**: Redis connection URL. Use `rediss://` for SSL
553
+ - **Environment Variable**: `AK_THREAD__REDIS__URL`
554
+
555
+ - **TTL (Time to Live)**
556
+ - **Field**: `thread.redis.ttl`
557
+ - **Default**: `2592000` (30 days)
558
+ - **Description**: Thread TTL in seconds (0 disables)
559
+ - **Environment Variable**: `AK_THREAD__REDIS__TTL`
560
+
561
+ - **Key Prefix**
562
+ - **Field**: `thread.redis.prefix`
563
+ - **Default**: `ak:thread:`
564
+ - **Description**: Key prefix for Redis thread storage
565
+ - **Environment Variable**: `AK_THREAD__REDIS__PREFIX`
566
+
567
+ ##### DynamoDB Thread Store
568
+
569
+ Used when `thread.type=dynamodb`:
570
+
571
+ - **Table Name**
572
+ - **Field**: `thread.dynamodb.table_name`
573
+ - **Default**: `ak-agent-threads`
574
+ - **Description**: DynamoDB table name. The table must have a partition key named `session_id` (S) and a sort key named `sk` (S)
575
+ - **Environment Variable**: `AK_THREAD__DYNAMODB__TABLE_NAME`
576
+
577
+ - **TTL (Time to Live)**
578
+ - **Field**: `thread.dynamodb.ttl`
579
+ - **Default**: `0` (disabled)
580
+ - **Description**: DynamoDB item TTL in seconds
581
+ - **Environment Variable**: `AK_THREAD__DYNAMODB__TTL`
582
+
583
+ ##### Firestore Thread Store
584
+
585
+ Used when `thread.type=firestore`:
586
+
587
+ - **Collection Name**
588
+ - **Field**: `thread.firestore.collection_name`
589
+ - **Default**: `ak-agent-threads`
590
+ - **Description**: Firestore collection name; each document ID is a `session_id`
591
+ - **Environment Variable**: `AK_THREAD__FIRESTORE__COLLECTION_NAME`
592
+
593
+ - **Project ID**
594
+ - **Field**: `thread.firestore.project_id`
595
+ - **Default**: `null` (inferred from Application Default Credentials)
596
+ - **Environment Variable**: `AK_THREAD__FIRESTORE__PROJECT_ID`
597
+
598
+ - **Database ID**
599
+ - **Field**: `thread.firestore.database_id`
600
+ - **Default**: `null` (the `(default)` database)
601
+ - **Environment Variable**: `AK_THREAD__FIRESTORE__DATABASE_ID`
602
+
603
+ - **TTL (Time to Live)**
604
+ - **Field**: `thread.firestore.ttl`
605
+ - **Default**: `0` (disabled)
606
+ - **Description**: Thread TTL in seconds
607
+ - **Environment Variable**: `AK_THREAD__FIRESTORE__TTL`
608
+
609
+ ##### Cosmos DB Thread Store
610
+
611
+ Required when `thread.type=cosmosdb`:
612
+
613
+ - **Connection String**
614
+ - **Field**: `thread.cosmosdb.connection_string`
615
+ - **Description**: Cosmos DB connection string (Azure Portal → Keys). Uses the Table API; entities are partitioned by `session_id`. No TTL support
616
+ - **Environment Variable**: `AK_THREAD__COSMOSDB__CONNECTION_STRING`
617
+
618
+ - **Table Name**
619
+ - **Field**: `thread.cosmosdb.table_name`
620
+ - **Default**: `akagentthreads`
621
+ - **Description**: Cosmos DB table name for thread storage
622
+ - **Environment Variable**: `AK_THREAD__COSMOSDB__TABLE_NAME`
623
+
460
624
  #### Execution Configuration
461
625
 
462
626
  Configure queue-backed and serverless execution behavior.
@@ -465,7 +629,7 @@ Configure queue-backed and serverless execution behavior.
465
629
  - **Field**: `execution.mode`
466
630
  - **Options**: `rest_sync`, `rest_async`, `stream`, `async`
467
631
  - **Default**: `None`
468
- - **Description**: Selects the Lambda execution mode
632
+ - **Description**: Selects the execution mode used for queue-backed and serverless request handling
469
633
  - **Environment Variable**: `AK_EXECUTION__MODE`
470
634
 
471
635
  - **Queues**
@@ -492,6 +656,24 @@ Configure queue-backed and serverless execution behavior.
492
656
  - **Default**: `3`
493
657
  - **Environment Variable**: `AK_EXECUTION__QUEUES__OUTPUT__MAX_RECEIVE_COUNT`
494
658
 
659
+ - **Input Queue Consumer Count**
660
+ - **Field**: `execution.queues.input.no_of_consumers`
661
+ - **Default**: `5`
662
+ - **Description**: Number of independent consumer threads that each poll the input queue in a continuous loop. Only used by containerized deployments — never set for serverless deployments, which have no consumer threads.
663
+ - **Environment Variable**: `AK_EXECUTION__QUEUES__INPUT__NO_OF_CONSUMERS`
664
+
665
+ - **Output Queue Consumer Count**
666
+ - **Field**: `execution.queues.output.no_of_consumers`
667
+ - **Default**: `5`
668
+ - **Description**: Number of independent consumer threads that each poll the output queue in a continuous loop. Only used by containerized deployments — never set for serverless deployments, which have no consumer threads.
669
+ - **Environment Variable**: `AK_EXECUTION__QUEUES__OUTPUT__NO_OF_CONSUMERS`
670
+
671
+ - **Queue Batch Size**
672
+ - **Field**: `execution.queues.batch_size`
673
+ - **Default**: `None`
674
+ - **Description**: Max number of messages fetched per receive call, shared by the input and output queues. Only used by containerized deployments — never set for serverless deployments, which control batch size differently. Controlled by the deployment tooling via env var `AK_EXECUTION__QUEUES__BATCH_SIZE` — do not set in `config.yaml`.
675
+ - **Environment Variable**: `AK_EXECUTION__QUEUES__BATCH_SIZE`
676
+
495
677
  - **Response Store**
496
678
  - **Field**: `execution.response_store`
497
679
  - **Description**: Response persistence settings used by the serverless response handler
@@ -516,12 +698,17 @@ Configure queue-backed and serverless execution behavior.
516
698
  - **Field**: `execution.response_store.redis`
517
699
  - **Environment Variables**: `AK_EXECUTION__RESPONSE_STORE__REDIS__URL`, `AK_EXECUTION__RESPONSE_STORE__REDIS__PREFIX`, `AK_EXECUTION__RESPONSE_STORE__REDIS__TTL`
518
700
 
701
+ - **Valkey Backend**
702
+ - **Field**: `execution.response_store.valkey`
703
+ - **Environment Variables**: `AK_EXECUTION__RESPONSE_STORE__VALKEY__URL`, `AK_EXECUTION__RESPONSE_STORE__VALKEY__PREFIX`, `AK_EXECUTION__RESPONSE_STORE__VALKEY__TTL`
704
+ - **Description**: Valkey-backed response storage (requires the `agentkernel[valkey]` extra)
705
+
519
706
  - **DynamoDB Backend**
520
707
  - **Field**: `execution.response_store.dynamodb`
521
708
  - **Environment Variables**: `AK_EXECUTION__RESPONSE_STORE__DYNAMODB__TABLE_NAME`, `AK_EXECUTION__RESPONSE_STORE__DYNAMODB__TTL`
522
709
  - **Description**: DynamoDB-backed response storage with table name and TTL
523
710
 
524
- Use either Redis or DynamoDB for the response store backend. The runtime accepts `BaseRunRequest` payloads directly, normalizes them internally when queueing is required, and uses `request_id` plus optional `user_id` as SQS message attributes.
711
+ Use Redis, Valkey, or DynamoDB for the response store backend. The runtime accepts `BaseRunRequest` payloads directly, normalizes them internally when queueing is required, and uses `request_id` plus optional `user_id` as queue message attributes.
525
712
 
526
713
  #### API Configuration
527
714
 
@@ -613,7 +800,7 @@ Configure tracing and observability for monitoring agent execution.
613
800
 
614
801
  - **Type**
615
802
  - **Field**: `trace.type`
616
- - **Options**: `langfuse`, `openllmetry`
803
+ - **Options**: `langfuse`, `openllmetry`, `logfire`
617
804
  - **Default**: `langfuse`
618
805
  - **Description**: Type of tracing provider to use
619
806
  - **Environment Variable**: `AK_TRACE__TYPE`
@@ -665,31 +852,54 @@ trace:
665
852
  type: openllmetry
666
853
  ```
667
854
 
855
+ **Pydantic Logfire Setup:**
856
+
857
+ To use Logfire for tracing, install the logfire extra:
858
+
859
+ ```bash
860
+ pip install agentkernel[logfire]
861
+ ```
862
+
863
+ Configure the Logfire write token via an environment variable (optional — without a token, Logfire
864
+ runs locally and does not ship traces):
865
+
866
+ ```bash
867
+ export LOGFIRE_TOKEN=your-write-token
868
+ ```
869
+
870
+ Enable tracing in your configuration:
871
+
872
+ ```yaml
873
+ trace:
874
+ enabled: true
875
+ type: logfire
876
+ ```
877
+
668
878
  #### Test Configuration
669
879
 
670
- Configure test comparison modes for automated testing.
880
+ Configure test comparison modes for automated testing. Test configuration is separate from the application configuration: it is **not** part of `config.yaml`. It lives in its own `test-config.yaml` file and is only loaded when the testing utilities (`agentkernel.test`) are used — see the [Test Configuration (test-config.yaml)](#test-configuration-test-configyaml) section for file resolution, environment variables, and migration notes.
671
881
 
672
882
  - **Mode**
673
- - **Field**: `test.mode`
883
+ - **Field**: `mode`
674
884
  - **Options**: `fuzzy`, `judge`, `fallback`
675
885
  - **Default**: `fallback`
676
886
  - **Description**: Test comparison mode
677
887
  - **Environment Variable**: `AK_TEST__MODE`
678
888
 
679
889
  - **Judge Model**
680
- - **Field**: `test.judge.model`
890
+ - **Field**: `judge.model`
681
891
  - **Default**: `gpt-4o-mini`
682
892
  - **Description**: LLM model for judge evaluation
683
893
  - **Environment Variable**: `AK_TEST__JUDGE__MODEL`
684
894
 
685
895
  - **Judge Provider**
686
- - **Field**: `test.judge.provider`
896
+ - **Field**: `judge.provider`
687
897
  - **Default**: `openai`
688
898
  - **Description**: LLM provider for judge evaluation
689
899
  - **Environment Variable**: `AK_TEST__JUDGE__PROVIDER`
690
900
 
691
901
  - **Judge Embedding Model**
692
- - **Field**: `test.judge.embedding_model`
902
+ - **Field**: `judge.embedding_model`
693
903
  - **Default**: `text-embedding-3-small`
694
904
  - **Description**: Embedding model for similarity evaluation
695
905
  - **Environment Variable**: `AK_TEST__JUDGE__EMBEDDING_MODEL`
@@ -700,12 +910,12 @@ Configure test comparison modes for automated testing.
700
910
  - `fallback`: Tries fuzzy first, falls back to judge if fuzzy fails
701
911
 
702
912
  ```yaml
703
- test:
704
- mode: fallback
705
- judge:
706
- model: gpt-4o-mini
707
- provider: openai
708
- embedding_model: text-embedding-3-small
913
+ # test-config.yaml (separate file — not config.yaml)
914
+ mode: fallback
915
+ judge:
916
+ model: gpt-4o-mini
917
+ provider: openai
918
+ embedding_model: text-embedding-3-small
709
919
  ```
710
920
 
711
921
  #### Guardrails Configuration
@@ -861,6 +1071,71 @@ guardrail:
861
1071
  pii: true
862
1072
  ```
863
1073
 
1074
+ #### Sandbox Configuration
1075
+
1076
+ Enable the sandbox capability to let agents execute code and shell commands in an isolated,
1077
+ permission-bounded environment. When enabled, agents automatically gain sandbox tools
1078
+ (`run_code`, `run_command`, `write_sandbox_file`, `read_sandbox_file`, `check_sandbox_task`,
1079
+ `list_sandbox_sessions`, `new_sandbox_session`, `destroy_sandbox_session`) and the usage
1080
+ guidance is injected into their system prompt.
1081
+
1082
+ Minimal single-backend form (a `default` profile is synthesized from `type` + its config block):
1083
+
1084
+ ```yaml
1085
+ sandbox:
1086
+ enabled: true
1087
+ type: local_subprocess # provider short name, or a dotted path to a SandboxProvider subclass
1088
+ local_subprocess: {}
1089
+ broker:
1090
+ flavor: thread # thread (local default) | embedded
1091
+ ```
1092
+
1093
+ Full form with explicit workload profiles (provider + lifetime + policy + identity):
1094
+
1095
+ ```yaml
1096
+ sandbox:
1097
+ enabled: true
1098
+ agents: [coder] # optional: attach tools/prompt only to these agents; omit = all
1099
+ default_profile: workspace
1100
+ principal_resolver: null # optional dotted path to a PrincipalResolver; null = agent identity
1101
+ tool_output_max_chars: 8000
1102
+ broker:
1103
+ flavor: thread
1104
+ wait_timeout: 60.0 # seconds before a sync wait promotes to a background task (0 = always)
1105
+ profiles:
1106
+ workspace:
1107
+ type: docker # container-isolated; needs the sandbox-docker extra + a Docker daemon
1108
+ scope: per_session # per_call | per_session | per_runtime
1109
+ idle_timeout: 1800 # seconds of inactivity before the sandbox is reset on next touch
1110
+ identity:
1111
+ mode: agent # agent | user
1112
+ policy:
1113
+ network_egress: deny # allow | deny | allowlist
1114
+ cpu: 1.0
1115
+ memory_mb: 512
1116
+ timeout: 30.0 # per-execution wall-clock seconds (always enforced)
1117
+ strict: true # fail closed when the provider can't enforce a policy dimension
1118
+ docker:
1119
+ image: python:3.12-slim
1120
+ ```
1121
+
1122
+ Key fields:
1123
+
1124
+ - **`enabled`** (`AK_SANDBOX__ENABLED`, default `false`) — master switch; inert when off.
1125
+ - **`agents`** — agent names the tools/prompt attach to; omit for all agents.
1126
+ - **`type`** (per profile) — `local_subprocess` (no isolation; dev/test), `docker`
1127
+ (container isolation; `sandbox-docker` extra), or a dotted path to your own `SandboxProvider`.
1128
+ - **`scope`** — `per_call` (fresh per execution), `per_session` (persists across turns),
1129
+ `per_runtime` (one shared sandbox per profile).
1130
+ - **`policy`** — network egress, filesystem paths, cpu/memory, timeout; enforced per provider,
1131
+ fail-closed under `strict`.
1132
+ - **`identity.mode`** + **`principal_resolver`** — run code under the agent's or the invoking
1133
+ user's identity.
1134
+ - **`broker.flavor`** — `thread` (default, for CLI/REST) or `embedded` (inline/synchronous).
1135
+
1136
+ See the [Sandbox guide](https://kernel.yaala.ai/docs/next/advanced/sandbox) for the full
1137
+ reference and the `examples/sandbox` and `examples/sandbox/identity` examples.
1138
+
864
1139
  #### Messaging Platform Integrations
865
1140
 
866
1141
  Configure integrations with messaging platforms.
@@ -951,13 +1226,16 @@ export AK_API__PORT=8000
951
1226
  export AK_A2A__ENABLED=true
952
1227
  export AK_MCP__ENABLED=false
953
1228
  export AK_TRACE__ENABLED=true
954
- export AK_TRACE__TYPE=langfuse # or openllmetry
1229
+ export AK_TRACE__TYPE=langfuse # or openllmetry, logfire
955
1230
  # For Langfuse:
956
1231
  # export LANGFUSE_PUBLIC_KEY=pk-lf-...
957
1232
  # export LANGFUSE_SECRET_KEY=sk-lf-...
958
1233
  # export LANGFUSE_HOST=https://cloud.langfuse.com
959
1234
  # For OpenLLMetry:
960
1235
  # export TRACELOOP_API_KEY=your-api-key
1236
+ # For Logfire:
1237
+ # export LOGFIRE_TOKEN=your-write-token
1238
+ # Test harness (loaded from the separate test-config.yaml — see Test Configuration)
961
1239
  export AK_TEST__MODE=fallback # Options: fuzzy, judge, fallback
962
1240
  export AK_TEST__JUDGE__MODEL=gpt-4o-mini
963
1241
  export AK_TEST__JUDGE__PROVIDER=openai
@@ -1002,13 +1280,15 @@ AK_API__PORT=8080
1002
1280
  AK_A2A__ENABLED=true
1003
1281
  AK_A2A__URL=http://localhost:8080/a2a
1004
1282
  AK_TRACE__ENABLED=true
1005
- AK_TRACE__TYPE=langfuse # or openllmetry
1283
+ AK_TRACE__TYPE=langfuse # or openllmetry, logfire
1006
1284
  # Langfuse credentials (if using langfuse):
1007
1285
  # LANGFUSE_PUBLIC_KEY=pk-lf-...
1008
1286
  # LANGFUSE_SECRET_KEY=sk-lf-...
1009
1287
  # LANGFUSE_HOST=https://cloud.langfuse.com
1010
1288
  # OpenLLMetry credentials (if using openllmetry):
1011
1289
  # TRACELOOP_API_KEY=your-api-key
1290
+ # Logfire credentials (if using logfire):
1291
+ # LOGFIRE_TOKEN=your-write-token
1012
1292
  ```
1013
1293
 
1014
1294
  #### config.yaml
@@ -1020,24 +1300,37 @@ session:
1020
1300
  url: redis://localhost:6379
1021
1301
  ttl: 604800
1022
1302
  prefix: "ak:sessions:"
1303
+ thread: # optional — enables Conversation Thread Support (user_id becomes required on chat requests)
1304
+ type: redis
1305
+ redis:
1306
+ url: redis://localhost:6379
1307
+ ttl: 2592000
1308
+ prefix: "ak:thread:"
1023
1309
  execution:
1024
1310
  mode: rest_sync
1025
1311
  queues:
1026
1312
  input:
1027
- url: https://sqs.<region>.amazonaws.com/<accountno>/<queuename>
1313
+ url: https://queue.example.com/<accountno>/<queuename>
1028
1314
  max_receive_count: 3
1315
+ no_of_consumers: 5 # Containerized deployments only, ignored by serverless deployments
1029
1316
  output:
1030
- url: https://sqs.<region>.amazonaws.com/<accountno>/<queuename>
1317
+ url: https://queue.example.com/<accountno>/<queuename>
1031
1318
  max_receive_count: 3
1319
+ no_of_consumers: 5 # Containerized deployments only, ignored by serverless deployments
1320
+ # batch_size is set by the deployment tooling — set via AK_EXECUTION__QUEUES__BATCH_SIZE, never here
1032
1321
  response_store:
1033
1322
  type: redis
1034
1323
  retry_count: 5
1035
1324
  delay: 5
1036
- redis: # if this is given, then dynamodb response store part cannot be given
1325
+ redis: # if this is given, then valkey/dynamodb response store parts cannot be given
1037
1326
  url: redis://localhost:6379
1038
1327
  prefix: "ak:responses:"
1039
1328
  ttl: 3600
1040
- dynamodb: # if this is given, then redis response store part cannot be given
1329
+ valkey: # if this is given, then redis/dynamodb response store parts cannot be given (requires the `valkey` extra)
1330
+ url: valkey://localhost:6379
1331
+ prefix: "ak:responses:"
1332
+ ttl: 3600
1333
+ dynamodb: # if this is given, then redis/valkey response store parts cannot be given
1041
1334
  table_name: table-name
1042
1335
  table_arn: table-arn
1043
1336
  ttl: 3600
@@ -1058,12 +1351,8 @@ mcp:
1058
1351
  trace:
1059
1352
  enabled: true
1060
1353
  type: langfuse
1061
- test:
1062
- mode: fallback
1063
- judge:
1064
- model: gpt-4o-mini
1065
- provider: openai
1066
- embedding_model: text-embedding-3-small
1354
+ # Note: test configuration is no longer set here — it lives in a separate
1355
+ # test-config.yaml file (see the Test Configuration section)
1067
1356
  guardrail:
1068
1357
  input:
1069
1358
  enabled: false
@@ -1132,14 +1421,6 @@ gmail:
1132
1421
  "enabled": true,
1133
1422
  "type": "langfuse"
1134
1423
  },
1135
- "test": {
1136
- "mode": "fallback",
1137
- "judge": {
1138
- "model": "gpt-4o-mini",
1139
- "provider": "openai",
1140
- "embedding_model": "text-embedding-3-small"
1141
- }
1142
- },
1143
1424
  "guardrail": {
1144
1425
  "input": {
1145
1426
  "enabled": false,
@@ -1187,6 +1468,39 @@ gmail:
1187
1468
  - Configuration file values override built-in defaults
1188
1469
  - Nested fields use underscore (`_`) delimiter in environment variables
1189
1470
 
1471
+ ### Test Configuration (test-config.yaml)
1472
+
1473
+ Test harness configuration (comparison mode and judge models) is separate from the application configuration. It is not part of `config.yaml` — it lives in its own `test-config.yaml` file, resolved from the current working directory, and is only loaded when the testing utilities (`agentkernel.test`) are used. A legacy `test:` section in `config.yaml` is ignored. See [Test Configuration](#test-configuration) under Configuration Options for the full list of fields and defaults.
1474
+
1475
+ **test-config.yaml:**
1476
+
1477
+ ```yaml
1478
+ mode: fallback
1479
+ judge:
1480
+ model: gpt-4o-mini
1481
+ provider: openai
1482
+ embedding_model: text-embedding-3-small
1483
+ ```
1484
+
1485
+ Note that the file is un-nested — there is no top-level `test:` key. If the file is missing, defaults apply silently (fuzzy and fallback tests need no configuration file at all).
1486
+
1487
+ **Override the test config file path:**
1488
+
1489
+ ```bash
1490
+ export AK_TEST_CONFIG_PATH_OVERRIDE=/path/to/test-config.yaml
1491
+ ```
1492
+
1493
+ **Environment variables** use the `AK_TEST__` prefix and override `test-config.yaml` values:
1494
+
1495
+ ```bash
1496
+ export AK_TEST__MODE=fallback # Options: fuzzy, judge, fallback
1497
+ export AK_TEST__JUDGE__MODEL=gpt-4o-mini
1498
+ export AK_TEST__JUDGE__PROVIDER=openai
1499
+ export AK_TEST__JUDGE__EMBEDDING_MODEL=text-embedding-3-small
1500
+ ```
1501
+
1502
+ > **Migration note:** Earlier versions read test configuration from a `test:` section in `config.yaml`. That section is now ignored — move its contents (un-nested, without the `test:` key) to a sibling `test-config.yaml`. The `AK_TEST__*` environment variables are unchanged, so CI pipelines that use them need no updates.
1503
+
1190
1504
  ## Extensibility
1191
1505
 
1192
1506
  ### Custom Framework Adapters
@@ -1228,6 +1542,7 @@ Sessions maintain state across agent interactions. Framework adapters manage the
1228
1542
  - `"langgraph"` — LangGraph session data
1229
1543
  - `"openai"` — OpenAI Agents SDK session data
1230
1544
  - `"adk"` — Google ADK session data
1545
+ - `"pydanticai"` — Pydantic AI session data (message history)
1231
1546
 
1232
1547
  Access the session in your runner:
1233
1548
 
@@ -1293,3 +1608,4 @@ SPDX-License-Identifier: Apache-2.0
1293
1608
  ## Contributing
1294
1609
 
1295
1610
  Contributions are welcome! Please feel free to submit a Pull Request.
1611
+