agentkernel 0.2.10__tar.gz → 0.2.12__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 (104) hide show
  1. {agentkernel-0.2.10 → agentkernel-0.2.12}/PKG-INFO +224 -17
  2. {agentkernel-0.2.10 → agentkernel-0.2.12}/README.md +208 -8
  3. {agentkernel-0.2.10 → agentkernel-0.2.12}/pyproject.toml +21 -11
  4. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/api/a2a/a2a.py +1 -3
  5. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/api/handler.py +15 -36
  6. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/api/http.py +56 -5
  7. agentkernel-0.2.12/src/agentkernel/auth/__init__.py +14 -0
  8. agentkernel-0.2.12/src/agentkernel/auth/handler.py +69 -0
  9. agentkernel-0.2.12/src/agentkernel/azure.py +8 -0
  10. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/base.py +157 -71
  11. agentkernel-0.2.12/src/agentkernel/core/builder.py +147 -0
  12. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/config.py +29 -10
  13. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/hooks.py +2 -6
  14. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/runtime.py +77 -50
  15. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/service.py +1 -4
  16. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/session/__init__.py +1 -1
  17. agentkernel-0.2.12/src/agentkernel/core/session/cosmosdb.py +345 -0
  18. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/session/dynamodb.py +1 -4
  19. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/session/redis.py +1 -4
  20. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/deployment/aws/__init__.py +2 -1
  21. agentkernel-0.2.12/src/agentkernel/deployment/aws/akauthorizer.py +101 -0
  22. agentkernel-0.2.12/src/agentkernel/deployment/aws/aklambda.py +254 -0
  23. agentkernel-0.2.12/src/agentkernel/deployment/azure/__init__.py +12 -0
  24. agentkernel-0.2.12/src/agentkernel/deployment/azure/akfunction.py +149 -0
  25. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/framework/adk/adk.py +5 -13
  26. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/framework/crewai/crewai.py +7 -11
  27. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/framework/langgraph/langgraph.py +8 -11
  28. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/framework/openai/openai.py +15 -24
  29. agentkernel-0.2.12/src/agentkernel/guardrail/bedrock.py +294 -0
  30. agentkernel-0.2.12/src/agentkernel/guardrail/guardrail.py +92 -0
  31. agentkernel-0.2.12/src/agentkernel/guardrail/openai.py +213 -0
  32. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/gmail/gmail_chat.py +7 -21
  33. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/slack/slack_chat.py +4 -10
  34. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/telegram/telegram_chat.py +1 -3
  35. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/whatsapp/whatsapp_chat.py +4 -12
  36. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/test/test.py +3 -9
  37. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/langfuse/langgraph.py +2 -6
  38. agentkernel-0.2.12/src/agentkernel/trace/openllmetry/__init__.py +0 -0
  39. agentkernel-0.2.10/src/agentkernel/core/builder.py +0 -119
  40. agentkernel-0.2.10/src/agentkernel/deployment/aws/aklambda.py +0 -103
  41. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/__init__.py +0 -0
  42. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/adk.py +0 -0
  43. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/api/__init__.py +0 -0
  44. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/api/a2a/__init__.py +0 -0
  45. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/api/a2a/handler.py +0 -0
  46. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/api/mcp/__init__.py +0 -0
  47. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/api/mcp/akmcp.py +0 -0
  48. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/aws.py +0 -0
  49. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/cli/__init__.py +0 -0
  50. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/cli/cli.py +0 -0
  51. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/__init__.py +0 -0
  52. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/model.py +0 -0
  53. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/module.py +0 -0
  54. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/session/base.py +0 -0
  55. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/session/in_memory.py +0 -0
  56. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/session/serde.py +0 -0
  57. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/util/config_yaml_util.py +0 -0
  58. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/core/util/key_value_cache.py +0 -0
  59. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/crewai.py +0 -0
  60. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/deployment/__init__.py +0 -0
  61. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/framework/__init__.py +0 -0
  62. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/framework/adk/__init__.py +0 -0
  63. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/framework/crewai/__init__.py +0 -0
  64. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/framework/langgraph/__init__.py +0 -0
  65. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/framework/openai/__init__.py +0 -0
  66. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/gmail.py +0 -0
  67. {agentkernel-0.2.10/src/agentkernel/trace/langfuse → agentkernel-0.2.12/src/agentkernel/guardrail}/__init__.py +0 -0
  68. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/instagram.py +0 -0
  69. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/__init__.py +0 -0
  70. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/gmail/README.md +0 -0
  71. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/gmail/__init__.py +0 -0
  72. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/instagram/README.md +0 -0
  73. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/instagram/__init__.py +0 -0
  74. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/instagram/instagram_chat.py +0 -0
  75. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/messenger/README.md +0 -0
  76. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/messenger/__init__.py +0 -0
  77. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/messenger/messenger_chat.py +0 -0
  78. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/slack/README.md +0 -0
  79. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/slack/__init__.py +0 -0
  80. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/telegram/README.md +0 -0
  81. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/telegram/__init__.py +0 -0
  82. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/whatsapp/README.md +0 -0
  83. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/integration/whatsapp/__init__.py +0 -0
  84. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/langgraph.py +0 -0
  85. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/mcp.py +0 -0
  86. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/messenger.py +0 -0
  87. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/openai.py +0 -0
  88. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/slack.py +0 -0
  89. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/telegram.py +0 -0
  90. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/test/__init__.py +0 -0
  91. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/__init__.py +0 -0
  92. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/base.py +0 -0
  93. {agentkernel-0.2.10/src/agentkernel/trace/openllmetry → agentkernel-0.2.12/src/agentkernel/trace/langfuse}/__init__.py +0 -0
  94. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/langfuse/adk.py +0 -0
  95. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/langfuse/crewai.py +0 -0
  96. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/langfuse/langfuse.py +0 -0
  97. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/langfuse/openai.py +0 -0
  98. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/openllmetry/adk.py +0 -0
  99. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/openllmetry/crewai.py +0 -0
  100. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/openllmetry/langgraph.py +0 -0
  101. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/openllmetry/openai.py +0 -0
  102. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/openllmetry/openllmetry.py +0 -0
  103. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/trace/trace.py +0 -0
  104. {agentkernel-0.2.10 → agentkernel-0.2.12}/src/agentkernel/whatsapp.py +0 -0
@@ -1,11 +1,11 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: agentkernel
3
- Version: 0.2.10
3
+ Version: 0.2.12
4
4
  Summary: Agent Kernel - Unified AI Agents Runtime
5
5
  Author: Yaala Labs
6
6
  Author-email: Yaala Labs <agentkernel@yaalalabs.com>
7
- License: MIT
8
- Requires-Dist: deprecated>=1.3.1
7
+ License: Apache-2.0
8
+ Requires-Dist: deprecated>=1.2.18
9
9
  Requires-Dist: pydantic>=2.11.7
10
10
  Requires-Dist: pydantic-settings>=2.10.1
11
11
  Requires-Dist: pyyaml>=6.0.2
@@ -17,7 +17,11 @@ Requires-Dist: openinference-instrumentation-google-adk>=0.1.6 ; extra == 'adk'
17
17
  Requires-Dist: fastapi>=0.118.0 ; extra == 'api'
18
18
  Requires-Dist: uvicorn>=0.37.0 ; extra == 'api'
19
19
  Requires-Dist: gunicorn>=23.0.0 ; extra == 'api'
20
+ Requires-Dist: pyjwt>=2.0.0 ; extra == 'auth'
20
21
  Requires-Dist: boto3>=1.41.4 ; extra == 'aws'
22
+ Requires-Dist: azure-functions>=1.24.0 ; extra == 'azure'
23
+ Requires-Dist: azure-data-tables>=12.4.0 ; extra == 'azure'
24
+ Requires-Dist: azure-core>=1.26.0 ; extra == 'azure'
21
25
  Requires-Dist: crewai>=0.150.0 ; extra == 'crewai'
22
26
  Requires-Dist: openinference-instrumentation-crewai>=0.1.16 ; extra == 'crewai'
23
27
  Requires-Dist: openinference-instrumentation-litellm>=0.1.28 ; extra == 'crewai'
@@ -28,14 +32,15 @@ Requires-Dist: google-api-python-client>=2.0.0 ; extra == 'gmail'
28
32
  Requires-Dist: httpx>=0.27.0 ; extra == 'instagram'
29
33
  Requires-Dist: langfuse>=3.9.2 ; extra == 'langfuse'
30
34
  Requires-Dist: nest-asyncio>=1.6.0 ; extra == 'langfuse'
31
- Requires-Dist: langgraph~=0.6.2 ; extra == 'langgraph'
32
- Requires-Dist: langchain~=0.3.27 ; extra == 'langgraph'
33
- Requires-Dist: langchain-community~=0.3.27 ; extra == 'langgraph'
34
- Requires-Dist: litellm~=1.74.3 ; extra == 'langgraph'
35
+ Requires-Dist: langgraph~=1.0.5 ; extra == 'langgraph'
36
+ Requires-Dist: langchain~=1.2.3 ; extra == 'langgraph'
37
+ Requires-Dist: langchain-community~=0.4.1 ; extra == 'langgraph'
38
+ Requires-Dist: litellm~=1.74.9 ; extra == 'langgraph'
35
39
  Requires-Dist: fastmcp>=2.12.4 ; extra == 'mcp'
36
40
  Requires-Dist: httpx>=0.27.0 ; extra == 'messenger'
37
- Requires-Dist: openai-agents>=0.6.3 ; extra == 'openai'
41
+ Requires-Dist: openai-agents>=0.6.5 ; extra == 'openai'
38
42
  Requires-Dist: openinference-instrumentation-openai-agents>=1.4.0 ; extra == 'openai'
43
+ Requires-Dist: openai-guardrails>=0.2.1 ; extra == 'openai'
39
44
  Requires-Dist: traceloop-sdk>=0.48.0 ; extra == 'openllmetry'
40
45
  Requires-Dist: redis>=7.1.0 ; extra == 'redis'
41
46
  Requires-Dist: slack-bolt==1.22.0 ; extra == 'slack'
@@ -52,11 +57,13 @@ Requires-Dist: datasets>=2.14.0 ; extra == 'test'
52
57
  Requires-Dist: pandas>=2.0.0 ; extra == 'test'
53
58
  Requires-Dist: litellm>=1.74.9 ; extra == 'test'
54
59
  Requires-Dist: httpx>=0.27.0 ; extra == 'whatsapp'
55
- Requires-Python: >=3.12
60
+ Requires-Python: >=3.12, <3.14
56
61
  Provides-Extra: a2a
57
62
  Provides-Extra: adk
58
63
  Provides-Extra: api
64
+ Provides-Extra: auth
59
65
  Provides-Extra: aws
66
+ Provides-Extra: azure
60
67
  Provides-Extra: cli
61
68
  Provides-Extra: crewai
62
69
  Provides-Extra: gmail
@@ -79,15 +86,18 @@ Description-Content-Type: text/markdown
79
86
  [![PyPI version](https://badge.fury.io/py/agentkernel.svg)](https://badge.fury.io/py/agentkernel)
80
87
  [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
81
88
 
82
- Agent Kernel is a lightweight runtime and adapter layer for building and running AI agents across multiple frameworks and running within a unified execution environment. Migrate your existing agents to Agent Kernel and instantly utilize pre-built execution and testing capabilities.
89
+ Agent Kernel is a lightweight **multi-cloud AI agent runtime** and adapter layer for building and running AI agents across multiple frameworks and cloud providers. Deploy the same agent code to **AWS or Azure** without modification. Migrate your existing agents to Agent Kernel and instantly utilize pre-built execution and testing capabilities.
90
+
91
+ **Supported Cloud Platforms:** AWS, Azure
83
92
 
84
93
  ## Features
85
94
 
86
95
  - **Unified API**: Common abstractions (Agent, Runner, Session, Module, Runtime) across frameworks
87
96
  - **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK
88
- - **Session Management**: Built-in session abstraction for conversational state
89
- - **Flexible Deployment**: Interactive CLI for local development and testing, AWS Lambda handler for serverless deployment, AWS ECS Fargate deployment
90
- - **Pluggable Architecture**: Easy to extend with custom framework adapters
97
+ - **Multi-Cloud Deployment**: Deploy to AWS (Lambda, ECS/Fargate) or Azure (Functions, Container Apps) with the same code
98
+ - **Session Management**: Built-in session abstraction with multi-cloud storage (Redis, DynamoDB, Cosmos DB)
99
+ - **Flexible Deployment**: Interactive CLI, REST API, serverless (AWS Lambda, Azure Functions), containerized (AWS ECS, Azure Container Apps)
100
+ - **Pluggable Architecture**: Easy to extend with custom framework adapters and cloud providers
91
101
  - **MCP Server**: Built-in Model Context Protocol server for exposing agents as MCP tools and exposing any custom tool
92
102
  - **A2A Server**: Built-in Agent-to-Agent communication server for exposing agents with a simple configuration change
93
103
  - **REST API**: Built-in REST API server for agent interaction
@@ -230,7 +240,11 @@ Then interact with your agents:
230
240
  (researcher) >> What is the latest news on AI?
231
241
  ```
232
242
 
233
- ## AWS Lambda Deployment
243
+ ## Multi-Cloud Deployment
244
+
245
+ Deploy your agents to AWS or Azure using the built-in cloud deployment handlers.
246
+
247
+ ### AWS Lambda Deployment
234
248
 
235
249
  Deploy your agents as serverless functions using the built-in Lambda handler.
236
250
 
@@ -247,6 +261,23 @@ OpenAIModule([assistant])
247
261
  handler = Lambda.handler
248
262
  ```
249
263
 
264
+ ### Azure Functions Deployment
265
+
266
+ Deploy your agents as Azure Functions using the built-in Azure handler.
267
+
268
+ ```python
269
+ from openai import OpenAI
270
+ from agents import Agent as OpenAIAgent
271
+ from agentkernel.azure import AzureFunctions
272
+ from agentkernel.openai import OpenAIModule
273
+
274
+ client = OpenAI()
275
+ assistant = OpenAIAgent(name="assistant")
276
+
277
+ OpenAIModule([assistant])
278
+ handler = AzureFunctions.handler
279
+ ```
280
+
250
281
  **Request Format:**
251
282
 
252
283
  ```json
@@ -306,11 +337,11 @@ Supported formats: `.yaml`, `.yml`, `.json`
306
337
 
307
338
  #### Session Store
308
339
 
309
- Configure where agent sessions are stored.
340
+ Configure where agent sessions are stored (supports multi-cloud storage backends).
310
341
 
311
342
  - **Field**: `session.type`
312
343
  - **Type**: string
313
- - **Options**: `in_memory`, `redis`
344
+ - **Options**: `in_memory`, `redis`, `dynamodb` (AWS), `cosmosdb` (Azure)
314
345
  - **Default**: `in_memory`
315
346
  - **Environment Variable**: `AK_SESSION__TYPE`
316
347
 
@@ -516,6 +547,138 @@ test:
516
547
  embedding_model: text-embedding-3-small
517
548
  ```
518
549
 
550
+ #### Guardrails Configuration
551
+
552
+ Configure input and output guardrails to validate agent requests and responses for safety and compliance.
553
+
554
+ - **Input Guardrails**
555
+ - **Enabled**
556
+ - **Field**: `guardrail.input.enabled`
557
+ - **Default**: `false`
558
+ - **Description**: Enable input validation guardrails
559
+ - **Environment Variable**: `AK_GUARDRAIL__INPUT__ENABLED`
560
+
561
+ - **Type**
562
+ - **Field**: `guardrail.input.type`
563
+ - **Default**: `openai`
564
+ - **Options**: `openai`, `bedrock`
565
+ - **Description**: Guardrail provider type
566
+ - **Environment Variable**: `AK_GUARDRAIL__INPUT__TYPE`
567
+
568
+ - **Config Path**
569
+ - **Field**: `guardrail.input.config_path`
570
+ - **Default**: `None`
571
+ - **Description**: Path to guardrail configuration JSON file (OpenAI only)
572
+ - **Environment Variable**: `AK_GUARDRAIL__INPUT__CONFIG_PATH`
573
+
574
+ - **Model**
575
+ - **Field**: `guardrail.input.model`
576
+ - **Default**: `gpt-4o-mini`
577
+ - **Description**: LLM model to use for guardrail validation (OpenAI only)
578
+ - **Environment Variable**: `AK_GUARDRAIL__INPUT__MODEL`
579
+
580
+ - **ID**
581
+ - **Field**: `guardrail.input.id`
582
+ - **Default**: `None`
583
+ - **Description**: AWS Bedrock guardrail ID (Bedrock only)
584
+ - **Environment Variable**: `AK_GUARDRAIL__INPUT__ID`
585
+
586
+ - **Version**
587
+ - **Field**: `guardrail.input.version`
588
+ - **Default**: `DRAFT`
589
+ - **Description**: AWS Bedrock guardrail version (Bedrock only)
590
+ - **Environment Variable**: `AK_GUARDRAIL__INPUT__VERSION`
591
+
592
+ - **Output Guardrails**
593
+ - **Enabled**
594
+ - **Field**: `guardrail.output.enabled`
595
+ - **Default**: `false`
596
+ - **Description**: Enable output validation guardrails
597
+ - **Environment Variable**: `AK_GUARDRAIL__OUTPUT__ENABLED`
598
+
599
+ - **Type**
600
+ - **Field**: `guardrail.output.type`
601
+ - **Default**: `openai`
602
+ - **Options**: `openai`, `bedrock`
603
+ - **Description**: Guardrail provider type
604
+ - **Environment Variable**: `AK_GUARDRAIL__OUTPUT__TYPE`
605
+
606
+ - **Config Path**
607
+ - **Field**: `guardrail.output.config_path`
608
+ - **Default**: `None`
609
+ - **Description**: Path to guardrail configuration JSON file (OpenAI only)
610
+ - **Environment Variable**: `AK_GUARDRAIL__OUTPUT__CONFIG_PATH`
611
+
612
+ - **Model**
613
+ - **Field**: `guardrail.output.model`
614
+ - **Default**: `gpt-4o-mini`
615
+ - **Description**: LLM model to use for guardrail validation (OpenAI only)
616
+ - **Environment Variable**: `AK_GUARDRAIL__OUTPUT__MODEL`
617
+
618
+ - **ID**
619
+ - **Field**: `guardrail.output.id`
620
+ - **Default**: `None`
621
+ - **Description**: AWS Bedrock guardrail ID (Bedrock only)
622
+ - **Environment Variable**: `AK_GUARDRAIL__OUTPUT__ID`
623
+
624
+ - **Version**
625
+ - **Field**: `guardrail.output.version`
626
+ - **Default**: `DRAFT`
627
+ - **Description**: AWS Bedrock guardrail version (Bedrock only)
628
+ - **Environment Variable**: `AK_GUARDRAIL__OUTPUT__VERSION`
629
+
630
+ **Guardrail Setup:**
631
+
632
+ To use OpenAI guardrails, install the openai-guardrails package:
633
+
634
+ ```bash
635
+ pip install agentkernel[openai]
636
+ ```
637
+
638
+ To use AWS Bedrock guardrails, install the AWS package:
639
+
640
+ ```bash
641
+ pip install agentkernel[aws]
642
+ ```
643
+
644
+ Create guardrail configuration:
645
+
646
+ **For OpenAI:** Create configuration files following the [OpenAI Guardrails format](https://guardrails.openai.com/).
647
+
648
+ **For Bedrock:** Create a guardrail in AWS Bedrock and note the guardrail ID and version.
649
+
650
+ Configure guardrails in your configuration:
651
+
652
+ **OpenAI Example:**
653
+ ```yaml
654
+ guardrail:
655
+ input:
656
+ enabled: true
657
+ type: openai
658
+ model: gpt-4o-mini
659
+ config_path: /path/to/guardrails_input.json
660
+ output:
661
+ enabled: true
662
+ type: openai
663
+ model: gpt-4o-mini
664
+ config_path: /path/to/guardrails_output.json
665
+ ```
666
+
667
+ **Bedrock Example:**
668
+ ```yaml
669
+ guardrail:
670
+ input:
671
+ enabled: true
672
+ type: bedrock
673
+ id: your-guardrail-id
674
+ version: "1" # or "DRAFT"
675
+ output:
676
+ enabled: true
677
+ type: bedrock
678
+ id: your-guardrail-id
679
+ version: "1"
680
+ ```
681
+
519
682
  #### Messaging Platform Integrations
520
683
 
521
684
  Configure integrations with messaging platforms.
@@ -617,6 +780,15 @@ export AK_TEST__MODE=fallback # Options: fuzzy, judge, fallback
617
780
  export AK_TEST__JUDGE__MODEL=gpt-4o-mini
618
781
  export AK_TEST__JUDGE__PROVIDER=openai
619
782
  export AK_TEST__JUDGE__EMBEDDING_MODEL=text-embedding-3-small
783
+ # Guardrails configuration
784
+ export AK_GUARDRAIL__INPUT__ENABLED=false
785
+ export AK_GUARDRAIL__INPUT__TYPE=openai
786
+ export AK_GUARDRAIL__INPUT__MODEL=gpt-4o-mini
787
+ export AK_GUARDRAIL__INPUT__CONFIG_PATH=/path/to/guardrails_input.json
788
+ export AK_GUARDRAIL__OUTPUT__ENABLED=false
789
+ export AK_GUARDRAIL__OUTPUT__TYPE=openai
790
+ export AK_GUARDRAIL__OUTPUT__MODEL=gpt-4o-mini
791
+ export AK_GUARDRAIL__OUTPUT__CONFIG_PATH=/path/to/guardrails_output.json
620
792
  # Messaging platforms (optional)
621
793
  export AK_SLACK__AGENT=my-agent
622
794
  export AK_WHATSAPP__AGENT=my-agent
@@ -686,6 +858,17 @@ test:
686
858
  model: gpt-4o-mini
687
859
  provider: openai
688
860
  embedding_model: text-embedding-3-small
861
+ guardrail:
862
+ input:
863
+ enabled: false
864
+ type: openai
865
+ model: gpt-4o-mini
866
+ config_path: /path/to/guardrails_input.json
867
+ output:
868
+ enabled: false
869
+ type: openai
870
+ model: gpt-4o-mini
871
+ config_path: /path/to/guardrails_output.json
689
872
  slack:
690
873
  agent: my-agent
691
874
  agent_acknowledgement: "Processing your request..."
@@ -748,6 +931,20 @@ gmail:
748
931
  "embedding_model": "text-embedding-3-small"
749
932
  }
750
933
  },
934
+ "guardrail": {
935
+ "input": {
936
+ "enabled": false,
937
+ "type": "openai",
938
+ "model": "gpt-4o-mini",
939
+ "config_path": "/path/to/guardrails_input.json"
940
+ },
941
+ "output": {
942
+ "enabled": false,
943
+ "type": "openai",
944
+ "model": "gpt-4o-mini",
945
+ "config_path": "/path/to/guardrails_output.json"
946
+ }
947
+ },
751
948
  "slack": {
752
949
  "agent": "my-agent",
753
950
  "agent_acknowledgement": "Processing your request..."
@@ -867,7 +1064,17 @@ The project uses:
867
1064
 
868
1065
  ## License
869
1066
 
870
- MIT License - see LICENSE file for details.
1067
+ Unless otherwise specified, all content, including all source code files and documentation files in this repository are:
1068
+
1069
+ Copyright (c) 2025-2026 Yaala Labs.
1070
+
1071
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
1072
+
1073
+ http://www.apache.org/licenses/LICENSE-2.0
1074
+
1075
+ Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
1076
+
1077
+ SPDX-License-Identifier: Apache-2.0
871
1078
 
872
1079
  ## Support
873
1080
 
@@ -3,15 +3,18 @@
3
3
  [![PyPI version](https://badge.fury.io/py/agentkernel.svg)](https://badge.fury.io/py/agentkernel)
4
4
  [![Python 3.12+](https://img.shields.io/badge/python-3.12+-blue.svg)](https://www.python.org/downloads/)
5
5
 
6
- Agent Kernel is a lightweight runtime and adapter layer for building and running AI agents across multiple frameworks and running within a unified execution environment. Migrate your existing agents to Agent Kernel and instantly utilize pre-built execution and testing capabilities.
6
+ Agent Kernel is a lightweight **multi-cloud AI agent runtime** and adapter layer for building and running AI agents across multiple frameworks and cloud providers. Deploy the same agent code to **AWS or Azure** without modification. Migrate your existing agents to Agent Kernel and instantly utilize pre-built execution and testing capabilities.
7
+
8
+ **Supported Cloud Platforms:** AWS, Azure
7
9
 
8
10
  ## Features
9
11
 
10
12
  - **Unified API**: Common abstractions (Agent, Runner, Session, Module, Runtime) across frameworks
11
13
  - **Multi-Framework Support**: OpenAI Agents SDK, CrewAI, LangGraph, Google ADK
12
- - **Session Management**: Built-in session abstraction for conversational state
13
- - **Flexible Deployment**: Interactive CLI for local development and testing, AWS Lambda handler for serverless deployment, AWS ECS Fargate deployment
14
- - **Pluggable Architecture**: Easy to extend with custom framework adapters
14
+ - **Multi-Cloud Deployment**: Deploy to AWS (Lambda, ECS/Fargate) or Azure (Functions, Container Apps) with the same code
15
+ - **Session Management**: Built-in session abstraction with multi-cloud storage (Redis, DynamoDB, Cosmos DB)
16
+ - **Flexible Deployment**: Interactive CLI, REST API, serverless (AWS Lambda, Azure Functions), containerized (AWS ECS, Azure Container Apps)
17
+ - **Pluggable Architecture**: Easy to extend with custom framework adapters and cloud providers
15
18
  - **MCP Server**: Built-in Model Context Protocol server for exposing agents as MCP tools and exposing any custom tool
16
19
  - **A2A Server**: Built-in Agent-to-Agent communication server for exposing agents with a simple configuration change
17
20
  - **REST API**: Built-in REST API server for agent interaction
@@ -154,7 +157,11 @@ Then interact with your agents:
154
157
  (researcher) >> What is the latest news on AI?
155
158
  ```
156
159
 
157
- ## AWS Lambda Deployment
160
+ ## Multi-Cloud Deployment
161
+
162
+ Deploy your agents to AWS or Azure using the built-in cloud deployment handlers.
163
+
164
+ ### AWS Lambda Deployment
158
165
 
159
166
  Deploy your agents as serverless functions using the built-in Lambda handler.
160
167
 
@@ -171,6 +178,23 @@ OpenAIModule([assistant])
171
178
  handler = Lambda.handler
172
179
  ```
173
180
 
181
+ ### Azure Functions Deployment
182
+
183
+ Deploy your agents as Azure Functions using the built-in Azure handler.
184
+
185
+ ```python
186
+ from openai import OpenAI
187
+ from agents import Agent as OpenAIAgent
188
+ from agentkernel.azure import AzureFunctions
189
+ from agentkernel.openai import OpenAIModule
190
+
191
+ client = OpenAI()
192
+ assistant = OpenAIAgent(name="assistant")
193
+
194
+ OpenAIModule([assistant])
195
+ handler = AzureFunctions.handler
196
+ ```
197
+
174
198
  **Request Format:**
175
199
 
176
200
  ```json
@@ -230,11 +254,11 @@ Supported formats: `.yaml`, `.yml`, `.json`
230
254
 
231
255
  #### Session Store
232
256
 
233
- Configure where agent sessions are stored.
257
+ Configure where agent sessions are stored (supports multi-cloud storage backends).
234
258
 
235
259
  - **Field**: `session.type`
236
260
  - **Type**: string
237
- - **Options**: `in_memory`, `redis`
261
+ - **Options**: `in_memory`, `redis`, `dynamodb` (AWS), `cosmosdb` (Azure)
238
262
  - **Default**: `in_memory`
239
263
  - **Environment Variable**: `AK_SESSION__TYPE`
240
264
 
@@ -440,6 +464,138 @@ test:
440
464
  embedding_model: text-embedding-3-small
441
465
  ```
442
466
 
467
+ #### Guardrails Configuration
468
+
469
+ Configure input and output guardrails to validate agent requests and responses for safety and compliance.
470
+
471
+ - **Input Guardrails**
472
+ - **Enabled**
473
+ - **Field**: `guardrail.input.enabled`
474
+ - **Default**: `false`
475
+ - **Description**: Enable input validation guardrails
476
+ - **Environment Variable**: `AK_GUARDRAIL__INPUT__ENABLED`
477
+
478
+ - **Type**
479
+ - **Field**: `guardrail.input.type`
480
+ - **Default**: `openai`
481
+ - **Options**: `openai`, `bedrock`
482
+ - **Description**: Guardrail provider type
483
+ - **Environment Variable**: `AK_GUARDRAIL__INPUT__TYPE`
484
+
485
+ - **Config Path**
486
+ - **Field**: `guardrail.input.config_path`
487
+ - **Default**: `None`
488
+ - **Description**: Path to guardrail configuration JSON file (OpenAI only)
489
+ - **Environment Variable**: `AK_GUARDRAIL__INPUT__CONFIG_PATH`
490
+
491
+ - **Model**
492
+ - **Field**: `guardrail.input.model`
493
+ - **Default**: `gpt-4o-mini`
494
+ - **Description**: LLM model to use for guardrail validation (OpenAI only)
495
+ - **Environment Variable**: `AK_GUARDRAIL__INPUT__MODEL`
496
+
497
+ - **ID**
498
+ - **Field**: `guardrail.input.id`
499
+ - **Default**: `None`
500
+ - **Description**: AWS Bedrock guardrail ID (Bedrock only)
501
+ - **Environment Variable**: `AK_GUARDRAIL__INPUT__ID`
502
+
503
+ - **Version**
504
+ - **Field**: `guardrail.input.version`
505
+ - **Default**: `DRAFT`
506
+ - **Description**: AWS Bedrock guardrail version (Bedrock only)
507
+ - **Environment Variable**: `AK_GUARDRAIL__INPUT__VERSION`
508
+
509
+ - **Output Guardrails**
510
+ - **Enabled**
511
+ - **Field**: `guardrail.output.enabled`
512
+ - **Default**: `false`
513
+ - **Description**: Enable output validation guardrails
514
+ - **Environment Variable**: `AK_GUARDRAIL__OUTPUT__ENABLED`
515
+
516
+ - **Type**
517
+ - **Field**: `guardrail.output.type`
518
+ - **Default**: `openai`
519
+ - **Options**: `openai`, `bedrock`
520
+ - **Description**: Guardrail provider type
521
+ - **Environment Variable**: `AK_GUARDRAIL__OUTPUT__TYPE`
522
+
523
+ - **Config Path**
524
+ - **Field**: `guardrail.output.config_path`
525
+ - **Default**: `None`
526
+ - **Description**: Path to guardrail configuration JSON file (OpenAI only)
527
+ - **Environment Variable**: `AK_GUARDRAIL__OUTPUT__CONFIG_PATH`
528
+
529
+ - **Model**
530
+ - **Field**: `guardrail.output.model`
531
+ - **Default**: `gpt-4o-mini`
532
+ - **Description**: LLM model to use for guardrail validation (OpenAI only)
533
+ - **Environment Variable**: `AK_GUARDRAIL__OUTPUT__MODEL`
534
+
535
+ - **ID**
536
+ - **Field**: `guardrail.output.id`
537
+ - **Default**: `None`
538
+ - **Description**: AWS Bedrock guardrail ID (Bedrock only)
539
+ - **Environment Variable**: `AK_GUARDRAIL__OUTPUT__ID`
540
+
541
+ - **Version**
542
+ - **Field**: `guardrail.output.version`
543
+ - **Default**: `DRAFT`
544
+ - **Description**: AWS Bedrock guardrail version (Bedrock only)
545
+ - **Environment Variable**: `AK_GUARDRAIL__OUTPUT__VERSION`
546
+
547
+ **Guardrail Setup:**
548
+
549
+ To use OpenAI guardrails, install the openai-guardrails package:
550
+
551
+ ```bash
552
+ pip install agentkernel[openai]
553
+ ```
554
+
555
+ To use AWS Bedrock guardrails, install the AWS package:
556
+
557
+ ```bash
558
+ pip install agentkernel[aws]
559
+ ```
560
+
561
+ Create guardrail configuration:
562
+
563
+ **For OpenAI:** Create configuration files following the [OpenAI Guardrails format](https://guardrails.openai.com/).
564
+
565
+ **For Bedrock:** Create a guardrail in AWS Bedrock and note the guardrail ID and version.
566
+
567
+ Configure guardrails in your configuration:
568
+
569
+ **OpenAI Example:**
570
+ ```yaml
571
+ guardrail:
572
+ input:
573
+ enabled: true
574
+ type: openai
575
+ model: gpt-4o-mini
576
+ config_path: /path/to/guardrails_input.json
577
+ output:
578
+ enabled: true
579
+ type: openai
580
+ model: gpt-4o-mini
581
+ config_path: /path/to/guardrails_output.json
582
+ ```
583
+
584
+ **Bedrock Example:**
585
+ ```yaml
586
+ guardrail:
587
+ input:
588
+ enabled: true
589
+ type: bedrock
590
+ id: your-guardrail-id
591
+ version: "1" # or "DRAFT"
592
+ output:
593
+ enabled: true
594
+ type: bedrock
595
+ id: your-guardrail-id
596
+ version: "1"
597
+ ```
598
+
443
599
  #### Messaging Platform Integrations
444
600
 
445
601
  Configure integrations with messaging platforms.
@@ -541,6 +697,15 @@ export AK_TEST__MODE=fallback # Options: fuzzy, judge, fallback
541
697
  export AK_TEST__JUDGE__MODEL=gpt-4o-mini
542
698
  export AK_TEST__JUDGE__PROVIDER=openai
543
699
  export AK_TEST__JUDGE__EMBEDDING_MODEL=text-embedding-3-small
700
+ # Guardrails configuration
701
+ export AK_GUARDRAIL__INPUT__ENABLED=false
702
+ export AK_GUARDRAIL__INPUT__TYPE=openai
703
+ export AK_GUARDRAIL__INPUT__MODEL=gpt-4o-mini
704
+ export AK_GUARDRAIL__INPUT__CONFIG_PATH=/path/to/guardrails_input.json
705
+ export AK_GUARDRAIL__OUTPUT__ENABLED=false
706
+ export AK_GUARDRAIL__OUTPUT__TYPE=openai
707
+ export AK_GUARDRAIL__OUTPUT__MODEL=gpt-4o-mini
708
+ export AK_GUARDRAIL__OUTPUT__CONFIG_PATH=/path/to/guardrails_output.json
544
709
  # Messaging platforms (optional)
545
710
  export AK_SLACK__AGENT=my-agent
546
711
  export AK_WHATSAPP__AGENT=my-agent
@@ -610,6 +775,17 @@ test:
610
775
  model: gpt-4o-mini
611
776
  provider: openai
612
777
  embedding_model: text-embedding-3-small
778
+ guardrail:
779
+ input:
780
+ enabled: false
781
+ type: openai
782
+ model: gpt-4o-mini
783
+ config_path: /path/to/guardrails_input.json
784
+ output:
785
+ enabled: false
786
+ type: openai
787
+ model: gpt-4o-mini
788
+ config_path: /path/to/guardrails_output.json
613
789
  slack:
614
790
  agent: my-agent
615
791
  agent_acknowledgement: "Processing your request..."
@@ -672,6 +848,20 @@ gmail:
672
848
  "embedding_model": "text-embedding-3-small"
673
849
  }
674
850
  },
851
+ "guardrail": {
852
+ "input": {
853
+ "enabled": false,
854
+ "type": "openai",
855
+ "model": "gpt-4o-mini",
856
+ "config_path": "/path/to/guardrails_input.json"
857
+ },
858
+ "output": {
859
+ "enabled": false,
860
+ "type": "openai",
861
+ "model": "gpt-4o-mini",
862
+ "config_path": "/path/to/guardrails_output.json"
863
+ }
864
+ },
675
865
  "slack": {
676
866
  "agent": "my-agent",
677
867
  "agent_acknowledgement": "Processing your request..."
@@ -791,7 +981,17 @@ The project uses:
791
981
 
792
982
  ## License
793
983
 
794
- MIT License - see LICENSE file for details.
984
+ Unless otherwise specified, all content, including all source code files and documentation files in this repository are:
985
+
986
+ Copyright (c) 2025-2026 Yaala Labs.
987
+
988
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
989
+
990
+ http://www.apache.org/licenses/LICENSE-2.0
991
+
992
+ Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
993
+
994
+ SPDX-License-Identifier: Apache-2.0
795
995
 
796
996
  ## Support
797
997