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