agentkernel 0.2.13__tar.gz → 0.3.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.
- {agentkernel-0.2.13 → agentkernel-0.3.0}/PKG-INFO +159 -5
- {agentkernel-0.2.13 → agentkernel-0.3.0}/README.md +154 -4
- {agentkernel-0.2.13 → agentkernel-0.3.0}/pyproject.toml +10 -1
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/api/handler.py +2 -4
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/auth/handler.py +6 -4
- agentkernel-0.3.0/src/agentkernel/auth.py +1 -0
- agentkernel-0.3.0/src/agentkernel/cli/ak.py +258 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/__init__.py +1 -1
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/base.py +36 -69
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/config.py +94 -2
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/model.py +64 -2
- agentkernel-0.3.0/src/agentkernel/core/multimodal/__init__.py +11 -0
- agentkernel-0.3.0/src/agentkernel/core/multimodal/factory.py +32 -0
- agentkernel-0.3.0/src/agentkernel/core/multimodal/hooks.py +244 -0
- agentkernel-0.3.0/src/agentkernel/core/multimodal/storage/__init__.py +8 -0
- agentkernel-0.3.0/src/agentkernel/core/multimodal/storage/base.py +59 -0
- agentkernel-0.3.0/src/agentkernel/core/multimodal/storage/dynamodb.py +186 -0
- agentkernel-0.3.0/src/agentkernel/core/multimodal/storage/in_memory.py +80 -0
- agentkernel-0.3.0/src/agentkernel/core/multimodal/storage/redis.py +159 -0
- agentkernel-0.3.0/src/agentkernel/core/multimodal/storage/session_cache.py +74 -0
- agentkernel-0.3.0/src/agentkernel/core/multimodal/storage/storage_manager.py +155 -0
- agentkernel-0.3.0/src/agentkernel/core/multimodal/tools.py +84 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/runtime.py +2 -59
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/tool.py +45 -4
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/deployment/aws/__init__.py +1 -2
- agentkernel-0.3.0/src/agentkernel/deployment/aws/core/__init__.py +3 -0
- agentkernel-0.3.0/src/agentkernel/deployment/aws/core/response_store/__init__.py +1 -0
- agentkernel-0.3.0/src/agentkernel/deployment/aws/core/response_store/dynamodb.py +39 -0
- agentkernel-0.3.0/src/agentkernel/deployment/aws/core/response_store/handler.py +88 -0
- agentkernel-0.3.0/src/agentkernel/deployment/aws/core/response_store/redis.py +41 -0
- agentkernel-0.3.0/src/agentkernel/deployment/aws/core/sqs_handler.py +216 -0
- agentkernel-0.3.0/src/agentkernel/deployment/aws/serverless/__init__.py +4 -0
- agentkernel-0.3.0/src/agentkernel/deployment/aws/serverless/akagentrunner.py +119 -0
- {agentkernel-0.2.13/src/agentkernel/deployment/aws → agentkernel-0.3.0/src/agentkernel/deployment/aws/serverless}/akauthorizer.py +1 -1
- {agentkernel-0.2.13/src/agentkernel/deployment/aws → agentkernel-0.3.0/src/agentkernel/deployment/aws/serverless}/aklambda.py +47 -103
- agentkernel-0.3.0/src/agentkernel/deployment/aws/serverless/akresponsehandler.py +88 -0
- agentkernel-0.3.0/src/agentkernel/deployment/aws/serverless/core/__init__.py +1 -0
- agentkernel-0.3.0/src/agentkernel/deployment/aws/serverless/core/default_endpoints.py +295 -0
- agentkernel-0.3.0/src/agentkernel/deployment/aws/serverless/core/sqs_consumer.py +72 -0
- agentkernel-0.3.0/src/agentkernel/deployment/azure/akfunction.py +72 -0
- agentkernel-0.3.0/src/agentkernel/deployment/common/chat_service.py +142 -0
- agentkernel-0.3.0/src/agentkernel/deployment/common/response_store.py +63 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/framework/adk/adk.py +25 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/framework/crewai/crewai.py +24 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/framework/langgraph/langgraph.py +46 -4
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/framework/openai/openai.py +25 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/guardrail/guardrail.py +8 -0
- agentkernel-0.3.0/src/agentkernel/guardrail/walledai.py +230 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/gmail/README.md +5 -3
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/instagram/README.md +31 -5
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/instagram/instagram_chat.py +101 -11
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/messenger/README.md +75 -22
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/messenger/messenger_chat.py +107 -11
- agentkernel-0.3.0/src/agentkernel/integration/teams/README.md +102 -0
- agentkernel-0.3.0/src/agentkernel/integration/teams/__init__.py +14 -0
- agentkernel-0.3.0/src/agentkernel/integration/teams/teams_chat.py +300 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/telegram/README.md +60 -4
- agentkernel-0.3.0/src/agentkernel/integration/telegram/telegram_chat.py +497 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/whatsapp/README.md +13 -6
- agentkernel-0.3.0/src/agentkernel/skills/__init__.py +7 -0
- agentkernel-0.3.0/src/agentkernel/skills/ak-add-capabilities/SKILL.md +539 -0
- agentkernel-0.3.0/src/agentkernel/skills/ak-add-capabilities/evals/evals.json +204 -0
- agentkernel-0.3.0/src/agentkernel/skills/ak-add-integration/SKILL.md +338 -0
- agentkernel-0.3.0/src/agentkernel/skills/ak-add-integration/evals/evals.json +100 -0
- agentkernel-0.3.0/src/agentkernel/skills/ak-build/SKILL.md +378 -0
- agentkernel-0.3.0/src/agentkernel/skills/ak-build/evals/evals.json +177 -0
- agentkernel-0.3.0/src/agentkernel/skills/ak-cloud-deploy/SKILL.md +381 -0
- agentkernel-0.3.0/src/agentkernel/skills/ak-cloud-deploy/evals/evals.json +133 -0
- agentkernel-0.3.0/src/agentkernel/skills/ak-init/SKILL.md +346 -0
- agentkernel-0.3.0/src/agentkernel/skills/ak-init/evals/evals.json +142 -0
- agentkernel-0.3.0/src/agentkernel/skills/ak-test/SKILL.md +330 -0
- agentkernel-0.3.0/src/agentkernel/skills/ak-test/evals/evals.json +131 -0
- agentkernel-0.3.0/src/agentkernel/skills/skills.py +197 -0
- agentkernel-0.3.0/src/agentkernel/teams.py +8 -0
- agentkernel-0.3.0/src/agentkernel/trace/openllmetry/__init__.py +0 -0
- agentkernel-0.2.13/src/agentkernel/deployment/azure/akfunction.py +0 -149
- agentkernel-0.2.13/src/agentkernel/integration/telegram/telegram_chat.py +0 -297
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/adk.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/api/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/api/a2a/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/api/a2a/a2a.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/api/a2a/handler.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/api/http.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/api/mcp/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/api/mcp/akmcp.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/auth/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/aws.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/azure.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/cli/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/cli/cli.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/builder.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/hooks.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/module.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/service.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/session/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/session/base.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/session/cosmosdb.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/session/dynamodb.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/session/in_memory.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/session/redis.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/session/serde.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/util/config_yaml_util.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/core/util/key_value_cache.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/crewai.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/deployment/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/deployment/azure/__init__.py +0 -0
- {agentkernel-0.2.13/src/agentkernel/framework → agentkernel-0.3.0/src/agentkernel/deployment/common}/__init__.py +0 -0
- {agentkernel-0.2.13/src/agentkernel/guardrail → agentkernel-0.3.0/src/agentkernel/framework}/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/framework/adk/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/framework/crewai/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/framework/langgraph/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/framework/openai/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/gmail.py +0 -0
- {agentkernel-0.2.13/src/agentkernel/trace/langfuse → agentkernel-0.3.0/src/agentkernel/guardrail}/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/guardrail/bedrock.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/guardrail/openai.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/instagram.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/gmail/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/gmail/gmail_chat.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/instagram/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/messenger/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/slack/README.md +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/slack/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/slack/slack_chat.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/telegram/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/whatsapp/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/integration/whatsapp/whatsapp_chat.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/langgraph.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/mcp.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/messenger.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/openai.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/slack.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/telegram.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/test/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/test/test.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/base.py +0 -0
- {agentkernel-0.2.13/src/agentkernel/trace/openllmetry → agentkernel-0.3.0/src/agentkernel/trace/langfuse}/__init__.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/langfuse/adk.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/langfuse/crewai.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/langfuse/langfuse.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/langfuse/langgraph.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/langfuse/openai.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/openllmetry/adk.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/openllmetry/crewai.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/openllmetry/langgraph.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/openllmetry/openai.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/openllmetry/openllmetry.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/trace/trace.py +0 -0
- {agentkernel-0.2.13 → agentkernel-0.3.0}/src/agentkernel/whatsapp.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: agentkernel
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.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,6 +38,7 @@ Requires-Dist: langchain-community~=0.4.1 ; extra == 'langgraph'
|
|
|
38
38
|
Requires-Dist: litellm~=1.74.9 ; extra == 'langgraph'
|
|
39
39
|
Requires-Dist: fastmcp>=2.12.4 ; extra == 'mcp'
|
|
40
40
|
Requires-Dist: httpx>=0.27.0 ; extra == 'messenger'
|
|
41
|
+
Requires-Dist: litellm>=1.74.9 ; extra == 'multimodal'
|
|
41
42
|
Requires-Dist: openai-agents>=0.6.5 ; extra == 'openai'
|
|
42
43
|
Requires-Dist: openinference-instrumentation-openai-agents>=1.4.0 ; extra == 'openai'
|
|
43
44
|
Requires-Dist: openai-guardrails>=0.2.1 ; extra == 'openai'
|
|
@@ -56,6 +57,7 @@ Requires-Dist: ragas>=0.4.1 ; extra == 'test'
|
|
|
56
57
|
Requires-Dist: datasets>=2.14.0 ; extra == 'test'
|
|
57
58
|
Requires-Dist: pandas>=2.0.0 ; extra == 'test'
|
|
58
59
|
Requires-Dist: litellm>=1.74.9 ; extra == 'test'
|
|
60
|
+
Requires-Dist: walledai>=4.9.3 ; extra == 'walledai'
|
|
59
61
|
Requires-Dist: httpx>=0.27.0 ; extra == 'whatsapp'
|
|
60
62
|
Requires-Python: >=3.12, <3.14
|
|
61
63
|
Provides-Extra: a2a
|
|
@@ -72,12 +74,14 @@ Provides-Extra: langfuse
|
|
|
72
74
|
Provides-Extra: langgraph
|
|
73
75
|
Provides-Extra: mcp
|
|
74
76
|
Provides-Extra: messenger
|
|
77
|
+
Provides-Extra: multimodal
|
|
75
78
|
Provides-Extra: openai
|
|
76
79
|
Provides-Extra: openllmetry
|
|
77
80
|
Provides-Extra: redis
|
|
78
81
|
Provides-Extra: slack
|
|
79
82
|
Provides-Extra: telegram
|
|
80
83
|
Provides-Extra: test
|
|
84
|
+
Provides-Extra: walledai
|
|
81
85
|
Provides-Extra: whatsapp
|
|
82
86
|
Description-Content-Type: text/markdown
|
|
83
87
|
|
|
@@ -261,6 +265,32 @@ OpenAIModule([assistant])
|
|
|
261
265
|
handler = Lambda.handler
|
|
262
266
|
```
|
|
263
267
|
|
|
268
|
+
**Note that this is just the simple serverless version. A more advanced serverless deployment mode, which uses queues for scalability, is also available. For queue-backed execution modes and response-store configuration, see the [AWS Serverless Deployment](https://github.com/yaalalabs/agent-kernel/tree/develop/docs/docs/deployment/aws-serverless.md) guide.**
|
|
269
|
+
|
|
270
|
+
The AWS serverless handler accepts both a direct `BaseRunRequest` payload and the normalized `BaseRequest` envelope. If a flat run payload is provided, Agent Kernel generates a `request_id` and normalizes it before processing.
|
|
271
|
+
|
|
272
|
+
Accepted payloads:
|
|
273
|
+
|
|
274
|
+
```json
|
|
275
|
+
{
|
|
276
|
+
"prompt": "Hello agent",
|
|
277
|
+
"agent": "assistant",
|
|
278
|
+
"session_id": "user-123"
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
```json
|
|
283
|
+
{
|
|
284
|
+
"request_id": "req-123",
|
|
285
|
+
"user_id": "user-123",
|
|
286
|
+
"body": {
|
|
287
|
+
"prompt": "Hello agent",
|
|
288
|
+
"agent": "assistant",
|
|
289
|
+
"session_id": "user-123"
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
```
|
|
293
|
+
|
|
264
294
|
### Azure Functions Deployment
|
|
265
295
|
|
|
266
296
|
Deploy your agents as Azure Functions using the built-in Azure handler.
|
|
@@ -282,11 +312,18 @@ handler = AzureFunctions.handler
|
|
|
282
312
|
|
|
283
313
|
```json
|
|
284
314
|
{
|
|
285
|
-
"
|
|
286
|
-
"
|
|
315
|
+
"request_id": "req-123",
|
|
316
|
+
"user_id": "user-123",
|
|
317
|
+
"body": {
|
|
318
|
+
"prompt": "Hello agent",
|
|
319
|
+
"agent": "assistant",
|
|
320
|
+
"session_id": "user-123"
|
|
321
|
+
}
|
|
287
322
|
}
|
|
288
323
|
```
|
|
289
324
|
|
|
325
|
+
Azure Functions also accepts the normalized envelope, and flat run payloads are normalized in the same way before the request reaches the agent runtime.
|
|
326
|
+
|
|
290
327
|
**Response Format:**
|
|
291
328
|
|
|
292
329
|
```json
|
|
@@ -367,6 +404,72 @@ Required when `session.type=redis`:
|
|
|
367
404
|
- **Description**: Key prefix for session storage
|
|
368
405
|
- **Environment Variable**: `AK_SESSION__REDIS__PREFIX`
|
|
369
406
|
|
|
407
|
+
#### Execution Configuration
|
|
408
|
+
|
|
409
|
+
Configure queue-backed and serverless execution behavior.
|
|
410
|
+
|
|
411
|
+
- **Execution Mode**
|
|
412
|
+
- **Field**: `execution.mode`
|
|
413
|
+
- **Options**: `rest_sync`, `rest_async`, `stream`, `async`
|
|
414
|
+
- **Default**: `None`
|
|
415
|
+
- **Description**: Selects the Lambda execution mode
|
|
416
|
+
- **Environment Variable**: `AK_EXECUTION__MODE`
|
|
417
|
+
|
|
418
|
+
- **Queues**
|
|
419
|
+
- **Field**: `execution.queues`
|
|
420
|
+
- **Description**: Queue settings used by serverless execution modes
|
|
421
|
+
|
|
422
|
+
- **Input Queue URL**
|
|
423
|
+
- **Field**: `execution.queues.input.url`
|
|
424
|
+
- **Default**: `None`
|
|
425
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__INPUT__URL`
|
|
426
|
+
|
|
427
|
+
- **Output Queue URL**
|
|
428
|
+
- **Field**: `execution.queues.output.url`
|
|
429
|
+
- **Default**: `None`
|
|
430
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__OUTPUT__URL`
|
|
431
|
+
|
|
432
|
+
- **Input Queue Max Receive Count**
|
|
433
|
+
- **Field**: `execution.queues.input.max_receive_count`
|
|
434
|
+
- **Default**: `3`
|
|
435
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__INPUT__MAX_RECEIVE_COUNT`
|
|
436
|
+
|
|
437
|
+
- **Output Queue Max Receive Count**
|
|
438
|
+
- **Field**: `execution.queues.output.max_receive_count`
|
|
439
|
+
- **Default**: `3`
|
|
440
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__OUTPUT__MAX_RECEIVE_COUNT`
|
|
441
|
+
|
|
442
|
+
- **Response Store**
|
|
443
|
+
- **Field**: `execution.response_store`
|
|
444
|
+
- **Description**: Response persistence settings used by the serverless response handler
|
|
445
|
+
|
|
446
|
+
- **Type**
|
|
447
|
+
- **Field**: `execution.response_store.type`
|
|
448
|
+
- **Description**: Response store backend selector configured in `config.yaml`; this value is not exported as an environment variable
|
|
449
|
+
|
|
450
|
+
- **Retry Count**
|
|
451
|
+
- **Field**: `execution.response_store.retry_count`
|
|
452
|
+
- **Default**: `5`
|
|
453
|
+
- **Description**: Number of lookup attempts when polling for a response
|
|
454
|
+
- **Environment Variable**: `AK_EXECUTION__RESPONSE_STORE__RETRY_COUNT`
|
|
455
|
+
|
|
456
|
+
- **Delay**
|
|
457
|
+
- **Field**: `execution.response_store.delay`
|
|
458
|
+
- **Default**: `5`
|
|
459
|
+
- **Description**: Delay in seconds between response lookup attempts
|
|
460
|
+
- **Environment Variable**: `AK_EXECUTION__RESPONSE_STORE__DELAY`
|
|
461
|
+
|
|
462
|
+
- **Redis Backend**
|
|
463
|
+
- **Field**: `execution.response_store.redis`
|
|
464
|
+
- **Environment Variables**: `AK_EXECUTION__RESPONSE_STORE__REDIS__URL`, `AK_EXECUTION__RESPONSE_STORE__REDIS__PREFIX`, `AK_EXECUTION__RESPONSE_STORE__REDIS__TTL`
|
|
465
|
+
|
|
466
|
+
- **DynamoDB Backend**
|
|
467
|
+
- **Field**: `execution.response_store.dynamodb`
|
|
468
|
+
- **Environment Variables**: `AK_EXECUTION__RESPONSE_STORE__DYNAMODB__TABLE_NAME`, `AK_EXECUTION__RESPONSE_STORE__DYNAMODB__TTL`
|
|
469
|
+
- **Description**: DynamoDB-backed response storage with table name and TTL
|
|
470
|
+
|
|
471
|
+
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.
|
|
472
|
+
|
|
370
473
|
#### API Configuration
|
|
371
474
|
|
|
372
475
|
Configure the REST API server (if using the API module).
|
|
@@ -561,7 +664,7 @@ Configure input and output guardrails to validate agent requests and responses f
|
|
|
561
664
|
- **Type**
|
|
562
665
|
- **Field**: `guardrail.input.type`
|
|
563
666
|
- **Default**: `openai`
|
|
564
|
-
- **Options**: `openai`, `bedrock`
|
|
667
|
+
- **Options**: `openai`, `bedrock`, `walledai`
|
|
565
668
|
- **Description**: Guardrail provider type
|
|
566
669
|
- **Environment Variable**: `AK_GUARDRAIL__INPUT__TYPE`
|
|
567
670
|
|
|
@@ -599,7 +702,7 @@ Configure input and output guardrails to validate agent requests and responses f
|
|
|
599
702
|
- **Type**
|
|
600
703
|
- **Field**: `guardrail.output.type`
|
|
601
704
|
- **Default**: `openai`
|
|
602
|
-
- **Options**: `openai`, `bedrock`
|
|
705
|
+
- **Options**: `openai`, `bedrock`, `walledai`
|
|
603
706
|
- **Description**: Guardrail provider type
|
|
604
707
|
- **Environment Variable**: `AK_GUARDRAIL__OUTPUT__TYPE`
|
|
605
708
|
|
|
@@ -641,12 +744,20 @@ To use AWS Bedrock guardrails, install the AWS package:
|
|
|
641
744
|
pip install agentkernel[aws]
|
|
642
745
|
```
|
|
643
746
|
|
|
747
|
+
To use Walled AI guardrails, install the Walled AI package:
|
|
748
|
+
|
|
749
|
+
```bash
|
|
750
|
+
pip install agentkernel[walledai]
|
|
751
|
+
```
|
|
752
|
+
|
|
644
753
|
Create guardrail configuration:
|
|
645
754
|
|
|
646
755
|
**For OpenAI:** Create configuration files following the [OpenAI Guardrails format](https://guardrails.openai.com/).
|
|
647
756
|
|
|
648
757
|
**For Bedrock:** Create a guardrail in AWS Bedrock and note the guardrail ID and version.
|
|
649
758
|
|
|
759
|
+
**For Walled AI:** Set `WALLED_API_KEY`, use guardrail type `walledai`, and control PII masking with `pii`.
|
|
760
|
+
|
|
650
761
|
Configure guardrails in your configuration:
|
|
651
762
|
|
|
652
763
|
**OpenAI Example:**
|
|
@@ -679,6 +790,19 @@ guardrail:
|
|
|
679
790
|
version: "1"
|
|
680
791
|
```
|
|
681
792
|
|
|
793
|
+
**Walled AI Example:**
|
|
794
|
+
```yaml
|
|
795
|
+
guardrail:
|
|
796
|
+
input:
|
|
797
|
+
enabled: true
|
|
798
|
+
type: walledai
|
|
799
|
+
pii: true
|
|
800
|
+
output:
|
|
801
|
+
enabled: true
|
|
802
|
+
type: walledai
|
|
803
|
+
pii: true
|
|
804
|
+
```
|
|
805
|
+
|
|
682
806
|
#### Messaging Platform Integrations
|
|
683
807
|
|
|
684
808
|
Configure integrations with messaging platforms.
|
|
@@ -789,6 +913,11 @@ export AK_GUARDRAIL__OUTPUT__ENABLED=false
|
|
|
789
913
|
export AK_GUARDRAIL__OUTPUT__TYPE=openai
|
|
790
914
|
export AK_GUARDRAIL__OUTPUT__MODEL=gpt-4o-mini
|
|
791
915
|
export AK_GUARDRAIL__OUTPUT__CONFIG_PATH=/path/to/guardrails_output.json
|
|
916
|
+
# Walled AI guardrails
|
|
917
|
+
export WALLED_API_KEY=your-walledai-api-key
|
|
918
|
+
export AK_GUARDRAIL__INPUT__PII=true
|
|
919
|
+
export AK_GUARDRAIL__OUTPUT__PII=true
|
|
920
|
+
export AK_DEBUG=true
|
|
792
921
|
# Messaging platforms (optional)
|
|
793
922
|
export AK_SLACK__AGENT=my-agent
|
|
794
923
|
export AK_WHATSAPP__AGENT=my-agent
|
|
@@ -834,6 +963,27 @@ session:
|
|
|
834
963
|
url: redis://localhost:6379
|
|
835
964
|
ttl: 604800
|
|
836
965
|
prefix: "ak:sessions:"
|
|
966
|
+
execution:
|
|
967
|
+
mode: rest_sync
|
|
968
|
+
queues:
|
|
969
|
+
input:
|
|
970
|
+
url: https://sqs.<region>.amazonaws.com/<accountno>/<queuename>
|
|
971
|
+
max_receive_count: 3
|
|
972
|
+
output:
|
|
973
|
+
url: https://sqs.<region>.amazonaws.com/<accountno>/<queuename>
|
|
974
|
+
max_receive_count: 3
|
|
975
|
+
response_store:
|
|
976
|
+
type: redis
|
|
977
|
+
retry_count: 5
|
|
978
|
+
delay: 5
|
|
979
|
+
redis: # if this is given, then dynamodb response store part cannot be given
|
|
980
|
+
url: redis://localhost:6379
|
|
981
|
+
prefix: "ak:responses:"
|
|
982
|
+
ttl: 3600
|
|
983
|
+
dynamodb: # if this is given, then redis response store part cannot be given
|
|
984
|
+
table_name: table-name
|
|
985
|
+
table_arn: table-arn
|
|
986
|
+
ttl: 3600
|
|
837
987
|
api:
|
|
838
988
|
host: 0.0.0.0
|
|
839
989
|
port: 8000
|
|
@@ -862,13 +1012,17 @@ guardrail:
|
|
|
862
1012
|
input:
|
|
863
1013
|
enabled: false
|
|
864
1014
|
type: openai
|
|
1015
|
+
pii: true
|
|
865
1016
|
model: gpt-4o-mini
|
|
866
1017
|
config_path: /path/to/guardrails_input.json
|
|
867
1018
|
output:
|
|
868
1019
|
enabled: false
|
|
869
1020
|
type: openai
|
|
1021
|
+
pii: true
|
|
870
1022
|
model: gpt-4o-mini
|
|
871
1023
|
config_path: /path/to/guardrails_output.json
|
|
1024
|
+
# For Walled AI, set type: walledai, WALLED_API_KEY,
|
|
1025
|
+
# and optionally use input/output pii (default: true) to enable/disable PII masking.
|
|
872
1026
|
slack:
|
|
873
1027
|
agent: my-agent
|
|
874
1028
|
agent_acknowledgement: "Processing your request..."
|
|
@@ -178,6 +178,32 @@ OpenAIModule([assistant])
|
|
|
178
178
|
handler = Lambda.handler
|
|
179
179
|
```
|
|
180
180
|
|
|
181
|
+
**Note that this is just the simple serverless version. A more advanced serverless deployment mode, which uses queues for scalability, is also available. For queue-backed execution modes and response-store configuration, see the [AWS Serverless Deployment](https://github.com/yaalalabs/agent-kernel/tree/develop/docs/docs/deployment/aws-serverless.md) guide.**
|
|
182
|
+
|
|
183
|
+
The AWS serverless handler accepts both a direct `BaseRunRequest` payload and the normalized `BaseRequest` envelope. If a flat run payload is provided, Agent Kernel generates a `request_id` and normalizes it before processing.
|
|
184
|
+
|
|
185
|
+
Accepted payloads:
|
|
186
|
+
|
|
187
|
+
```json
|
|
188
|
+
{
|
|
189
|
+
"prompt": "Hello agent",
|
|
190
|
+
"agent": "assistant",
|
|
191
|
+
"session_id": "user-123"
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
```json
|
|
196
|
+
{
|
|
197
|
+
"request_id": "req-123",
|
|
198
|
+
"user_id": "user-123",
|
|
199
|
+
"body": {
|
|
200
|
+
"prompt": "Hello agent",
|
|
201
|
+
"agent": "assistant",
|
|
202
|
+
"session_id": "user-123"
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
181
207
|
### Azure Functions Deployment
|
|
182
208
|
|
|
183
209
|
Deploy your agents as Azure Functions using the built-in Azure handler.
|
|
@@ -199,11 +225,18 @@ handler = AzureFunctions.handler
|
|
|
199
225
|
|
|
200
226
|
```json
|
|
201
227
|
{
|
|
202
|
-
"
|
|
203
|
-
"
|
|
228
|
+
"request_id": "req-123",
|
|
229
|
+
"user_id": "user-123",
|
|
230
|
+
"body": {
|
|
231
|
+
"prompt": "Hello agent",
|
|
232
|
+
"agent": "assistant",
|
|
233
|
+
"session_id": "user-123"
|
|
234
|
+
}
|
|
204
235
|
}
|
|
205
236
|
```
|
|
206
237
|
|
|
238
|
+
Azure Functions also accepts the normalized envelope, and flat run payloads are normalized in the same way before the request reaches the agent runtime.
|
|
239
|
+
|
|
207
240
|
**Response Format:**
|
|
208
241
|
|
|
209
242
|
```json
|
|
@@ -284,6 +317,72 @@ Required when `session.type=redis`:
|
|
|
284
317
|
- **Description**: Key prefix for session storage
|
|
285
318
|
- **Environment Variable**: `AK_SESSION__REDIS__PREFIX`
|
|
286
319
|
|
|
320
|
+
#### Execution Configuration
|
|
321
|
+
|
|
322
|
+
Configure queue-backed and serverless execution behavior.
|
|
323
|
+
|
|
324
|
+
- **Execution Mode**
|
|
325
|
+
- **Field**: `execution.mode`
|
|
326
|
+
- **Options**: `rest_sync`, `rest_async`, `stream`, `async`
|
|
327
|
+
- **Default**: `None`
|
|
328
|
+
- **Description**: Selects the Lambda execution mode
|
|
329
|
+
- **Environment Variable**: `AK_EXECUTION__MODE`
|
|
330
|
+
|
|
331
|
+
- **Queues**
|
|
332
|
+
- **Field**: `execution.queues`
|
|
333
|
+
- **Description**: Queue settings used by serverless execution modes
|
|
334
|
+
|
|
335
|
+
- **Input Queue URL**
|
|
336
|
+
- **Field**: `execution.queues.input.url`
|
|
337
|
+
- **Default**: `None`
|
|
338
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__INPUT__URL`
|
|
339
|
+
|
|
340
|
+
- **Output Queue URL**
|
|
341
|
+
- **Field**: `execution.queues.output.url`
|
|
342
|
+
- **Default**: `None`
|
|
343
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__OUTPUT__URL`
|
|
344
|
+
|
|
345
|
+
- **Input Queue Max Receive Count**
|
|
346
|
+
- **Field**: `execution.queues.input.max_receive_count`
|
|
347
|
+
- **Default**: `3`
|
|
348
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__INPUT__MAX_RECEIVE_COUNT`
|
|
349
|
+
|
|
350
|
+
- **Output Queue Max Receive Count**
|
|
351
|
+
- **Field**: `execution.queues.output.max_receive_count`
|
|
352
|
+
- **Default**: `3`
|
|
353
|
+
- **Environment Variable**: `AK_EXECUTION__QUEUES__OUTPUT__MAX_RECEIVE_COUNT`
|
|
354
|
+
|
|
355
|
+
- **Response Store**
|
|
356
|
+
- **Field**: `execution.response_store`
|
|
357
|
+
- **Description**: Response persistence settings used by the serverless response handler
|
|
358
|
+
|
|
359
|
+
- **Type**
|
|
360
|
+
- **Field**: `execution.response_store.type`
|
|
361
|
+
- **Description**: Response store backend selector configured in `config.yaml`; this value is not exported as an environment variable
|
|
362
|
+
|
|
363
|
+
- **Retry Count**
|
|
364
|
+
- **Field**: `execution.response_store.retry_count`
|
|
365
|
+
- **Default**: `5`
|
|
366
|
+
- **Description**: Number of lookup attempts when polling for a response
|
|
367
|
+
- **Environment Variable**: `AK_EXECUTION__RESPONSE_STORE__RETRY_COUNT`
|
|
368
|
+
|
|
369
|
+
- **Delay**
|
|
370
|
+
- **Field**: `execution.response_store.delay`
|
|
371
|
+
- **Default**: `5`
|
|
372
|
+
- **Description**: Delay in seconds between response lookup attempts
|
|
373
|
+
- **Environment Variable**: `AK_EXECUTION__RESPONSE_STORE__DELAY`
|
|
374
|
+
|
|
375
|
+
- **Redis Backend**
|
|
376
|
+
- **Field**: `execution.response_store.redis`
|
|
377
|
+
- **Environment Variables**: `AK_EXECUTION__RESPONSE_STORE__REDIS__URL`, `AK_EXECUTION__RESPONSE_STORE__REDIS__PREFIX`, `AK_EXECUTION__RESPONSE_STORE__REDIS__TTL`
|
|
378
|
+
|
|
379
|
+
- **DynamoDB Backend**
|
|
380
|
+
- **Field**: `execution.response_store.dynamodb`
|
|
381
|
+
- **Environment Variables**: `AK_EXECUTION__RESPONSE_STORE__DYNAMODB__TABLE_NAME`, `AK_EXECUTION__RESPONSE_STORE__DYNAMODB__TTL`
|
|
382
|
+
- **Description**: DynamoDB-backed response storage with table name and TTL
|
|
383
|
+
|
|
384
|
+
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.
|
|
385
|
+
|
|
287
386
|
#### API Configuration
|
|
288
387
|
|
|
289
388
|
Configure the REST API server (if using the API module).
|
|
@@ -478,7 +577,7 @@ Configure input and output guardrails to validate agent requests and responses f
|
|
|
478
577
|
- **Type**
|
|
479
578
|
- **Field**: `guardrail.input.type`
|
|
480
579
|
- **Default**: `openai`
|
|
481
|
-
- **Options**: `openai`, `bedrock`
|
|
580
|
+
- **Options**: `openai`, `bedrock`, `walledai`
|
|
482
581
|
- **Description**: Guardrail provider type
|
|
483
582
|
- **Environment Variable**: `AK_GUARDRAIL__INPUT__TYPE`
|
|
484
583
|
|
|
@@ -516,7 +615,7 @@ Configure input and output guardrails to validate agent requests and responses f
|
|
|
516
615
|
- **Type**
|
|
517
616
|
- **Field**: `guardrail.output.type`
|
|
518
617
|
- **Default**: `openai`
|
|
519
|
-
- **Options**: `openai`, `bedrock`
|
|
618
|
+
- **Options**: `openai`, `bedrock`, `walledai`
|
|
520
619
|
- **Description**: Guardrail provider type
|
|
521
620
|
- **Environment Variable**: `AK_GUARDRAIL__OUTPUT__TYPE`
|
|
522
621
|
|
|
@@ -558,12 +657,20 @@ To use AWS Bedrock guardrails, install the AWS package:
|
|
|
558
657
|
pip install agentkernel[aws]
|
|
559
658
|
```
|
|
560
659
|
|
|
660
|
+
To use Walled AI guardrails, install the Walled AI package:
|
|
661
|
+
|
|
662
|
+
```bash
|
|
663
|
+
pip install agentkernel[walledai]
|
|
664
|
+
```
|
|
665
|
+
|
|
561
666
|
Create guardrail configuration:
|
|
562
667
|
|
|
563
668
|
**For OpenAI:** Create configuration files following the [OpenAI Guardrails format](https://guardrails.openai.com/).
|
|
564
669
|
|
|
565
670
|
**For Bedrock:** Create a guardrail in AWS Bedrock and note the guardrail ID and version.
|
|
566
671
|
|
|
672
|
+
**For Walled AI:** Set `WALLED_API_KEY`, use guardrail type `walledai`, and control PII masking with `pii`.
|
|
673
|
+
|
|
567
674
|
Configure guardrails in your configuration:
|
|
568
675
|
|
|
569
676
|
**OpenAI Example:**
|
|
@@ -596,6 +703,19 @@ guardrail:
|
|
|
596
703
|
version: "1"
|
|
597
704
|
```
|
|
598
705
|
|
|
706
|
+
**Walled AI Example:**
|
|
707
|
+
```yaml
|
|
708
|
+
guardrail:
|
|
709
|
+
input:
|
|
710
|
+
enabled: true
|
|
711
|
+
type: walledai
|
|
712
|
+
pii: true
|
|
713
|
+
output:
|
|
714
|
+
enabled: true
|
|
715
|
+
type: walledai
|
|
716
|
+
pii: true
|
|
717
|
+
```
|
|
718
|
+
|
|
599
719
|
#### Messaging Platform Integrations
|
|
600
720
|
|
|
601
721
|
Configure integrations with messaging platforms.
|
|
@@ -706,6 +826,11 @@ export AK_GUARDRAIL__OUTPUT__ENABLED=false
|
|
|
706
826
|
export AK_GUARDRAIL__OUTPUT__TYPE=openai
|
|
707
827
|
export AK_GUARDRAIL__OUTPUT__MODEL=gpt-4o-mini
|
|
708
828
|
export AK_GUARDRAIL__OUTPUT__CONFIG_PATH=/path/to/guardrails_output.json
|
|
829
|
+
# Walled AI guardrails
|
|
830
|
+
export WALLED_API_KEY=your-walledai-api-key
|
|
831
|
+
export AK_GUARDRAIL__INPUT__PII=true
|
|
832
|
+
export AK_GUARDRAIL__OUTPUT__PII=true
|
|
833
|
+
export AK_DEBUG=true
|
|
709
834
|
# Messaging platforms (optional)
|
|
710
835
|
export AK_SLACK__AGENT=my-agent
|
|
711
836
|
export AK_WHATSAPP__AGENT=my-agent
|
|
@@ -751,6 +876,27 @@ session:
|
|
|
751
876
|
url: redis://localhost:6379
|
|
752
877
|
ttl: 604800
|
|
753
878
|
prefix: "ak:sessions:"
|
|
879
|
+
execution:
|
|
880
|
+
mode: rest_sync
|
|
881
|
+
queues:
|
|
882
|
+
input:
|
|
883
|
+
url: https://sqs.<region>.amazonaws.com/<accountno>/<queuename>
|
|
884
|
+
max_receive_count: 3
|
|
885
|
+
output:
|
|
886
|
+
url: https://sqs.<region>.amazonaws.com/<accountno>/<queuename>
|
|
887
|
+
max_receive_count: 3
|
|
888
|
+
response_store:
|
|
889
|
+
type: redis
|
|
890
|
+
retry_count: 5
|
|
891
|
+
delay: 5
|
|
892
|
+
redis: # if this is given, then dynamodb response store part cannot be given
|
|
893
|
+
url: redis://localhost:6379
|
|
894
|
+
prefix: "ak:responses:"
|
|
895
|
+
ttl: 3600
|
|
896
|
+
dynamodb: # if this is given, then redis response store part cannot be given
|
|
897
|
+
table_name: table-name
|
|
898
|
+
table_arn: table-arn
|
|
899
|
+
ttl: 3600
|
|
754
900
|
api:
|
|
755
901
|
host: 0.0.0.0
|
|
756
902
|
port: 8000
|
|
@@ -779,13 +925,17 @@ guardrail:
|
|
|
779
925
|
input:
|
|
780
926
|
enabled: false
|
|
781
927
|
type: openai
|
|
928
|
+
pii: true
|
|
782
929
|
model: gpt-4o-mini
|
|
783
930
|
config_path: /path/to/guardrails_input.json
|
|
784
931
|
output:
|
|
785
932
|
enabled: false
|
|
786
933
|
type: openai
|
|
934
|
+
pii: true
|
|
787
935
|
model: gpt-4o-mini
|
|
788
936
|
config_path: /path/to/guardrails_output.json
|
|
937
|
+
# For Walled AI, set type: walledai, WALLED_API_KEY,
|
|
938
|
+
# and optionally use input/output pii (default: true) to enable/disable PII masking.
|
|
789
939
|
slack:
|
|
790
940
|
agent: my-agent
|
|
791
941
|
agent_acknowledgement: "Processing your request..."
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "agentkernel"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.3.0"
|
|
8
8
|
description = "Agent Kernel - Unified AI Agents Runtime"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.12,<3.14"
|
|
@@ -67,6 +67,9 @@ adk = [
|
|
|
67
67
|
"litellm~=1.74.3",
|
|
68
68
|
"openinference-instrumentation-google-adk>=0.1.6",
|
|
69
69
|
]
|
|
70
|
+
walledai = [
|
|
71
|
+
"walledai>=4.9.3"
|
|
72
|
+
]
|
|
70
73
|
api = [
|
|
71
74
|
"fastapi>=0.118.0",
|
|
72
75
|
"uvicorn>=0.37.0",
|
|
@@ -112,6 +115,12 @@ a2a = [
|
|
|
112
115
|
mcp = [
|
|
113
116
|
"fastmcp>=2.12.4",
|
|
114
117
|
]
|
|
118
|
+
multimodal = [
|
|
119
|
+
"litellm>=1.74.9",
|
|
120
|
+
]
|
|
121
|
+
|
|
122
|
+
[project.scripts]
|
|
123
|
+
ak = "agentkernel.cli.ak:main"
|
|
115
124
|
|
|
116
125
|
[dependency-groups]
|
|
117
126
|
dev = [
|
|
@@ -15,6 +15,7 @@ from agentkernel.core.model import (
|
|
|
15
15
|
AgentRequestFile,
|
|
16
16
|
AgentRequestImage,
|
|
17
17
|
AgentRequestText,
|
|
18
|
+
BaseRunRequest,
|
|
18
19
|
)
|
|
19
20
|
|
|
20
21
|
from ..core import AgentService, Config
|
|
@@ -67,12 +68,9 @@ class AgentRESTRequestHandler(RESTRequestHandler):
|
|
|
67
68
|
name: str
|
|
68
69
|
mime_type: Optional[str] = None
|
|
69
70
|
|
|
70
|
-
class RunRequest(
|
|
71
|
+
class RunRequest(BaseRunRequest):
|
|
71
72
|
model_config = ConfigDict(extra="allow")
|
|
72
73
|
|
|
73
|
-
prompt: str
|
|
74
|
-
agent: Optional[str] = None
|
|
75
|
-
session_id: Optional[str] = None
|
|
76
74
|
files: Optional[List["AgentRESTRequestHandler.FileData"]] = None
|
|
77
75
|
images: Optional[List["AgentRESTRequestHandler.ImageData"]] = None
|
|
78
76
|
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import base64
|
|
2
|
-
import hashlib
|
|
3
|
-
import hmac
|
|
4
1
|
from abc import ABC, abstractmethod
|
|
5
2
|
from typing import Any, Dict, Optional
|
|
6
3
|
|
|
7
|
-
import jwt
|
|
8
4
|
from pydantic import BaseModel
|
|
9
5
|
|
|
10
6
|
|
|
@@ -43,6 +39,10 @@ class AuthValidator(ABC):
|
|
|
43
39
|
:param algorithm: Hash algorithm to use (default: sha256)
|
|
44
40
|
:return: True if signature is valid, False otherwise
|
|
45
41
|
"""
|
|
42
|
+
import base64
|
|
43
|
+
import hashlib
|
|
44
|
+
import hmac
|
|
45
|
+
|
|
46
46
|
mac = hmac.new(key=secret.encode(), msg=message, digestmod=getattr(hashlib, algorithm))
|
|
47
47
|
expected = base64.b64encode(mac.digest()).decode()
|
|
48
48
|
return hmac.compare_digest(expected, signature)
|
|
@@ -59,6 +59,8 @@ class AuthValidator(ABC):
|
|
|
59
59
|
:return: Decoded JWT claims dictionary
|
|
60
60
|
:raises: jwt exceptions if token is invalid
|
|
61
61
|
"""
|
|
62
|
+
import jwt
|
|
63
|
+
|
|
62
64
|
return jwt.decode(
|
|
63
65
|
token,
|
|
64
66
|
public_key,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from .auth import *
|