agentkit-sdk-python 0.7.11__py3-none-any.whl → 0.7.13__py3-none-any.whl
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.
- agentkit/apps/__init__.py +11 -0
- agentkit/apps/agent_server_app/agent_server_app.py +81 -17
- agentkit/apps/langgraph_server_app/__init__.py +5 -0
- agentkit/apps/langgraph_server_app/langgraph_server_app.py +741 -0
- agentkit/auth/admin.py +4 -1
- agentkit/frameworks/langgraph.py +91 -11
- agentkit/frameworks/migration.py +3 -0
- agentkit/frameworks/strands.py +2 -0
- agentkit/toolkit/cli/sandbox/cli_exec.py +89 -35
- agentkit/version.py +1 -1
- {agentkit_sdk_python-0.7.11.dist-info → agentkit_sdk_python-0.7.13.dist-info}/METADATA +2 -1
- {agentkit_sdk_python-0.7.11.dist-info → agentkit_sdk_python-0.7.13.dist-info}/RECORD +16 -14
- {agentkit_sdk_python-0.7.11.dist-info → agentkit_sdk_python-0.7.13.dist-info}/WHEEL +0 -0
- {agentkit_sdk_python-0.7.11.dist-info → agentkit_sdk_python-0.7.13.dist-info}/entry_points.txt +0 -0
- {agentkit_sdk_python-0.7.11.dist-info → agentkit_sdk_python-0.7.13.dist-info}/licenses/LICENSE +0 -0
- {agentkit_sdk_python-0.7.11.dist-info → agentkit_sdk_python-0.7.13.dist-info}/top_level.txt +0 -0
agentkit/apps/__init__.py
CHANGED
|
@@ -17,6 +17,9 @@ from typing import TYPE_CHECKING
|
|
|
17
17
|
if TYPE_CHECKING:
|
|
18
18
|
from agentkit.apps.a2a_app.a2a_app import AgentkitA2aApp
|
|
19
19
|
from agentkit.apps.agent_server_app.agent_server_app import AgentkitAgentServerApp
|
|
20
|
+
from agentkit.apps.langgraph_server_app.langgraph_server_app import (
|
|
21
|
+
AgentkitLangGraphServerApp,
|
|
22
|
+
)
|
|
20
23
|
from agentkit.apps.mcp_app.mcp_app import AgentkitMCPApp
|
|
21
24
|
from agentkit.apps.simple_app.simple_app import AgentkitSimpleApp
|
|
22
25
|
|
|
@@ -28,6 +31,7 @@ def __getattr__(
|
|
|
28
31
|
| type["AgentkitMCPApp"]
|
|
29
32
|
| type["AgentkitSimpleApp"]
|
|
30
33
|
| type["AgentkitAgentServerApp"]
|
|
34
|
+
| type["AgentkitLangGraphServerApp"]
|
|
31
35
|
):
|
|
32
36
|
if name == "AgentkitA2aApp":
|
|
33
37
|
from agentkit.apps.a2a_app.a2a_app import AgentkitA2aApp
|
|
@@ -47,6 +51,12 @@ def __getattr__(
|
|
|
47
51
|
)
|
|
48
52
|
|
|
49
53
|
return AgentkitAgentServerApp
|
|
54
|
+
if name == "AgentkitLangGraphServerApp":
|
|
55
|
+
from agentkit.apps.langgraph_server_app.langgraph_server_app import (
|
|
56
|
+
AgentkitLangGraphServerApp,
|
|
57
|
+
)
|
|
58
|
+
|
|
59
|
+
return AgentkitLangGraphServerApp
|
|
50
60
|
raise AttributeError(f"module 'agentkit.apps' has no attribute '{name}'")
|
|
51
61
|
|
|
52
62
|
|
|
@@ -55,4 +65,5 @@ __all__ = [
|
|
|
55
65
|
"AgentkitMCPApp",
|
|
56
66
|
"AgentkitSimpleApp",
|
|
57
67
|
"AgentkitAgentServerApp",
|
|
68
|
+
"AgentkitLangGraphServerApp",
|
|
58
69
|
]
|
|
@@ -39,14 +39,22 @@ from google.adk.evaluation.local_eval_set_results_manager import (
|
|
|
39
39
|
)
|
|
40
40
|
from google.adk.evaluation.local_eval_sets_manager import LocalEvalSetsManager
|
|
41
41
|
from google.adk.memory.in_memory_memory_service import InMemoryMemoryService
|
|
42
|
+
from google.adk.runners import Runner
|
|
42
43
|
from google.adk.sessions.base_session_service import BaseSessionService
|
|
44
|
+
from google.adk.sessions.in_memory_session_service import InMemorySessionService
|
|
43
45
|
from google.adk.utils.context_utils import Aclosing
|
|
44
46
|
from google.genai import types
|
|
45
47
|
from opentelemetry import trace
|
|
46
48
|
from typing_extensions import override
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
from veadk
|
|
49
|
+
|
|
50
|
+
try: # pragma: no cover - exercised when users install veadk explicitly.
|
|
51
|
+
from veadk import Agent as VeadkAgent
|
|
52
|
+
from veadk.memory.short_term_memory import ShortTermMemory
|
|
53
|
+
from veadk.runner import Runner as VeadkRunner
|
|
54
|
+
except ImportError: # pragma: no cover - default migration path avoids veadk.
|
|
55
|
+
VeadkAgent = None # type: ignore[assignment]
|
|
56
|
+
ShortTermMemory = None # type: ignore[assignment,misc]
|
|
57
|
+
VeadkRunner = None # type: ignore[assignment]
|
|
50
58
|
|
|
51
59
|
from agentkit.apps.agent_server_app.middleware import (
|
|
52
60
|
AgentkitTelemetryHTTPMiddleware,
|
|
@@ -64,6 +72,65 @@ from agentkit.apps.base_app import BaseAgentkitApp
|
|
|
64
72
|
logger = logging.getLogger(__name__)
|
|
65
73
|
|
|
66
74
|
|
|
75
|
+
def _is_veadk_short_term_memory(value: Any) -> bool:
|
|
76
|
+
return ShortTermMemory is not None and isinstance(value, ShortTermMemory)
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def _is_veadk_agent(value: Any) -> bool:
|
|
80
|
+
return VeadkAgent is not None and isinstance(value, VeadkAgent)
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
def _resolve_session_service(
|
|
84
|
+
short_term_memory: BaseSessionService | Any | None,
|
|
85
|
+
) -> BaseSessionService:
|
|
86
|
+
if short_term_memory is None:
|
|
87
|
+
return InMemorySessionService()
|
|
88
|
+
if isinstance(short_term_memory, BaseSessionService):
|
|
89
|
+
return short_term_memory
|
|
90
|
+
if _is_veadk_short_term_memory(short_term_memory):
|
|
91
|
+
return short_term_memory.session_service
|
|
92
|
+
raise TypeError(
|
|
93
|
+
"short_term_memory must be a google.adk BaseSessionService, "
|
|
94
|
+
"a veadk ShortTermMemory, or None."
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def _resolve_memory_service(root_agent: BaseAgent) -> Any:
|
|
99
|
+
if _is_veadk_agent(root_agent):
|
|
100
|
+
long_term_memory = getattr(root_agent, "long_term_memory", None)
|
|
101
|
+
if long_term_memory:
|
|
102
|
+
return long_term_memory
|
|
103
|
+
return InMemoryMemoryService()
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def _create_a2a_runner(
|
|
107
|
+
*,
|
|
108
|
+
root_agent: BaseAgent,
|
|
109
|
+
short_term_memory: BaseSessionService | Any | None,
|
|
110
|
+
session_service: BaseSessionService,
|
|
111
|
+
memory_service: Any,
|
|
112
|
+
artifact_service: InMemoryArtifactService,
|
|
113
|
+
credential_service: InMemoryCredentialService,
|
|
114
|
+
) -> Any:
|
|
115
|
+
if VeadkRunner is not None and (
|
|
116
|
+
_is_veadk_agent(root_agent) or _is_veadk_short_term_memory(short_term_memory)
|
|
117
|
+
):
|
|
118
|
+
return VeadkRunner(
|
|
119
|
+
agent=root_agent,
|
|
120
|
+
short_term_memory=short_term_memory
|
|
121
|
+
if _is_veadk_short_term_memory(short_term_memory)
|
|
122
|
+
else None,
|
|
123
|
+
)
|
|
124
|
+
return Runner(
|
|
125
|
+
agent=root_agent,
|
|
126
|
+
app_name=root_agent.name,
|
|
127
|
+
session_service=session_service,
|
|
128
|
+
memory_service=memory_service,
|
|
129
|
+
artifact_service=artifact_service,
|
|
130
|
+
credential_service=credential_service,
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
|
|
67
134
|
async def _call_lifecycle_handler(handler: Any) -> None:
|
|
68
135
|
result = handler()
|
|
69
136
|
if inspect.isawaitable(result):
|
|
@@ -143,9 +210,6 @@ class AgentkitAgentServerApp(BaseAgentkitApp):
|
|
|
143
210
|
) -> None:
|
|
144
211
|
super().__init__()
|
|
145
212
|
|
|
146
|
-
if short_term_memory is None:
|
|
147
|
-
raise TypeError("short_term_memory is required.")
|
|
148
|
-
|
|
149
213
|
if app is not None and agent is not None:
|
|
150
214
|
raise TypeError("Only one of 'agent' or 'app' can be provided.")
|
|
151
215
|
|
|
@@ -154,6 +218,8 @@ class AgentkitAgentServerApp(BaseAgentkitApp):
|
|
|
154
218
|
raise TypeError("Either 'agent' or 'app' must be provided.")
|
|
155
219
|
|
|
156
220
|
root_agent = entry.root_agent if isinstance(entry, App) else entry
|
|
221
|
+
session_service = _resolve_session_service(short_term_memory)
|
|
222
|
+
memory_service = _resolve_memory_service(root_agent)
|
|
157
223
|
|
|
158
224
|
_artifact_service = InMemoryArtifactService()
|
|
159
225
|
_credential_service = InMemoryCredentialService()
|
|
@@ -163,12 +229,8 @@ class AgentkitAgentServerApp(BaseAgentkitApp):
|
|
|
163
229
|
|
|
164
230
|
self.server = AdkWebServer(
|
|
165
231
|
agent_loader=AgentKitAgentLoader(entry),
|
|
166
|
-
session_service=
|
|
167
|
-
|
|
168
|
-
else short_term_memory.session_service,
|
|
169
|
-
memory_service=root_agent.long_term_memory
|
|
170
|
-
if isinstance(root_agent, Agent) and root_agent.long_term_memory
|
|
171
|
-
else InMemoryMemoryService(),
|
|
232
|
+
session_service=session_service,
|
|
233
|
+
memory_service=memory_service,
|
|
172
234
|
artifact_service=_artifact_service,
|
|
173
235
|
credential_service=_credential_service,
|
|
174
236
|
eval_sets_manager=_eval_sets_manager,
|
|
@@ -176,11 +238,13 @@ class AgentkitAgentServerApp(BaseAgentkitApp):
|
|
|
176
238
|
agents_dir=".",
|
|
177
239
|
)
|
|
178
240
|
|
|
179
|
-
runner =
|
|
180
|
-
|
|
181
|
-
short_term_memory=short_term_memory
|
|
182
|
-
|
|
183
|
-
|
|
241
|
+
runner = _create_a2a_runner(
|
|
242
|
+
root_agent=root_agent,
|
|
243
|
+
short_term_memory=short_term_memory,
|
|
244
|
+
session_service=session_service,
|
|
245
|
+
memory_service=memory_service,
|
|
246
|
+
artifact_service=_artifact_service,
|
|
247
|
+
credential_service=_credential_service,
|
|
184
248
|
)
|
|
185
249
|
_a2a_server_app = to_a2a(agent=root_agent, runner=runner)
|
|
186
250
|
|