agentscope-runtime 0.1.2__py3-none-any.whl → 0.1.3__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.
Files changed (22) hide show
  1. agentscope_runtime/engine/agents/agentscope_agent/agent.py +105 -50
  2. agentscope_runtime/engine/agents/agentscope_agent/hooks.py +16 -3
  3. agentscope_runtime/engine/helpers/helper.py +33 -0
  4. agentscope_runtime/engine/runner.py +33 -1
  5. agentscope_runtime/engine/schemas/agent_schemas.py +208 -13
  6. agentscope_runtime/engine/services/context_manager.py +7 -1
  7. agentscope_runtime/engine/services/rag_service.py +134 -40
  8. agentscope_runtime/engine/services/reme_personal_memory_service.py +106 -0
  9. agentscope_runtime/engine/services/reme_task_memory_service.py +11 -0
  10. agentscope_runtime/sandbox/box/browser/browser_sandbox.py +25 -0
  11. agentscope_runtime/sandbox/box/sandbox.py +60 -7
  12. agentscope_runtime/sandbox/box/shared/routers/mcp_utils.py +20 -2
  13. agentscope_runtime/sandbox/client/http_client.py +1 -1
  14. agentscope_runtime/sandbox/manager/server/app.py +87 -13
  15. agentscope_runtime/sandbox/tools/mcp_tool.py +1 -1
  16. agentscope_runtime/version.py +1 -1
  17. {agentscope_runtime-0.1.2.dist-info → agentscope_runtime-0.1.3.dist-info}/METADATA +54 -3
  18. {agentscope_runtime-0.1.2.dist-info → agentscope_runtime-0.1.3.dist-info}/RECORD +22 -20
  19. {agentscope_runtime-0.1.2.dist-info → agentscope_runtime-0.1.3.dist-info}/WHEEL +0 -0
  20. {agentscope_runtime-0.1.2.dist-info → agentscope_runtime-0.1.3.dist-info}/entry_points.txt +0 -0
  21. {agentscope_runtime-0.1.2.dist-info → agentscope_runtime-0.1.3.dist-info}/licenses/LICENSE +0 -0
  22. {agentscope_runtime-0.1.2.dist-info → agentscope_runtime-0.1.3.dist-info}/top_level.txt +0 -0
@@ -1,5 +1,7 @@
1
1
  # -*- coding: utf-8 -*-
2
+ import atexit
2
3
  import logging
4
+ import signal
3
5
  from typing import Any, Optional
4
6
 
5
7
  from ..enums import SandboxType
@@ -26,6 +28,7 @@ class Sandbox:
26
28
  """
27
29
  Initialize the sandbox interface.
28
30
  """
31
+ self.base_url = base_url
29
32
  if base_url:
30
33
  self.embed_mode = False
31
34
  self.manager_api = SandboxManager(
@@ -60,17 +63,67 @@ class Sandbox:
60
63
  self.sandbox_type = sandbox_type
61
64
  self.timeout = timeout
62
65
 
66
+ # Clean up function enabled in embed mode
67
+ if self.embed_mode:
68
+ atexit.register(self._cleanup)
69
+ self._register_signal_handlers()
70
+
71
+ def _register_signal_handlers(self) -> None:
72
+ """
73
+ Register signal handlers for graceful shutdown and cleanup.
74
+ Handles SIGINT (Ctrl+C) and, if available, SIGTERM to ensure that
75
+ the sandbox is properly cleaned up when the process receives these
76
+ signals. On platforms where SIGTERM is not available (e.g.,
77
+ Windows), only SIGINT is handled.
78
+ """
79
+
80
+ def _handler(signum, frame): # pylint: disable=unused-argument
81
+ logger.debug(
82
+ f"Received signal {signum}, stopping Sandbox"
83
+ f" {self.sandbox_id}...",
84
+ )
85
+ self._cleanup()
86
+ raise SystemExit(0)
87
+
88
+ # Windows does not support SIGTERM
89
+ if hasattr(signal, "SIGTERM"):
90
+ signals = [signal.SIGINT, signal.SIGTERM]
91
+ else:
92
+ signals = [signal.SIGINT]
93
+
94
+ for sig in signals:
95
+ try:
96
+ signal.signal(sig, _handler)
97
+ except Exception as e:
98
+ logger.warning(f"Cannot register handler for {sig}: {e}")
99
+
100
+ def _cleanup(self):
101
+ """
102
+ Clean up resources associated with the sandbox.
103
+ This method is called when the sandbox receives termination signals
104
+ (such as SIGINT or SIGTERM) in embed mode, or when exiting a context
105
+ manager block. In embed mode, it calls the manager API's __exit__
106
+ method to clean up all resources. Otherwise, it releases the
107
+ specific sandbox instance.
108
+ """
109
+ try:
110
+ # Remote not need to close the embed_manager
111
+ if self.embed_mode:
112
+ # Clean all
113
+ self.manager_api.__exit__(None, None, None)
114
+ else:
115
+ # Clean the specific sandbox
116
+ self.manager_api.release(self.sandbox_id)
117
+ except Exception as e:
118
+ logger.error(
119
+ f"Cleanup {self.sandbox_id} error: {e}",
120
+ )
121
+
63
122
  def __enter__(self):
64
123
  return self
65
124
 
66
125
  def __exit__(self, exc_type, exc_value, traceback):
67
- # Remote not need to close the embed_manager
68
- if self.embed_mode:
69
- # Clean all
70
- self.manager_api.__exit__(exc_type, exc_value, traceback)
71
- else:
72
- # Clean the specific sandbox
73
- self.manager_api.release(self.sandbox_id)
126
+ self._cleanup()
74
127
 
75
128
  @property
76
129
  def sandbox_id(self) -> str:
@@ -41,6 +41,8 @@ class MCPSessionHandler:
41
41
  command=command,
42
42
  args=self.config.get("args", []),
43
43
  env={**os.environ, **self.config.get("env", {})},
44
+ # cwd=self.config.get("cwd"), # Disabled
45
+ encoding=self.config.get("encoding", "utf-8"),
44
46
  )
45
47
 
46
48
  streams = await self._exit_stack.enter_async_context(
@@ -52,12 +54,28 @@ class MCPSessionHandler:
52
54
  "streamableHttp",
53
55
  ]:
54
56
  streams = await self._exit_stack.enter_async_context(
55
- streamablehttp_client(url=self.config["url"]),
57
+ streamablehttp_client(
58
+ url=self.config["url"],
59
+ headers=self.config.get("headers"),
60
+ timeout=self.config.get("timeout", 30),
61
+ sse_read_timeout=self.config.get(
62
+ "sse_read_timeout",
63
+ 60 * 5,
64
+ ),
65
+ ),
56
66
  )
57
67
  streams = (streams[0], streams[1])
58
68
  else:
59
69
  streams = await self._exit_stack.enter_async_context(
60
- sse_client(url=self.config["url"]),
70
+ sse_client(
71
+ url=self.config["url"],
72
+ headers=self.config.get("headers"),
73
+ timeout=self.config.get("timeout", 30),
74
+ sse_read_timeout=self.config.get(
75
+ "sse_read_timeout",
76
+ 60 * 5,
77
+ ),
78
+ ),
61
79
  )
62
80
  session = await self._exit_stack.enter_async_context(
63
81
  ClientSession(*streams),
@@ -195,7 +195,7 @@ class SandboxHttpClient:
195
195
  mcp_tools = response.json()
196
196
  mcp_tools["generic"] = self.generic_tools
197
197
  if tool_type:
198
- return {tool_type: mcp_tools.get(tool_type, [])}
198
+ return {tool_type: mcp_tools.get(tool_type, {})}
199
199
  return mcp_tools
200
200
  except requests.exceptions.RequestException as e:
201
201
  logging.error(f"An error occurred: {e}")
@@ -1,11 +1,14 @@
1
1
  # -*- coding: utf-8 -*-
2
2
  # pylint: disable=protected-access, unused-argument
3
+ import asyncio
3
4
  import inspect
4
5
  import logging
5
6
 
6
7
  from typing import Optional
7
8
 
9
+ import websockets
8
10
  from fastapi import FastAPI, HTTPException, Request, Depends
11
+ from fastapi import WebSocket, WebSocketDisconnect
9
12
  from fastapi.middleware.cors import CORSMiddleware
10
13
  from fastapi.responses import JSONResponse
11
14
  from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
@@ -43,7 +46,7 @@ app.add_middleware(
43
46
  security = HTTPBearer(auto_error=False)
44
47
 
45
48
  # Global SandboxManager instance
46
- _runtime_manager: Optional[SandboxManager] = None
49
+ _sandbox_manager: Optional[SandboxManager] = None
47
50
  _config: Optional[SandboxManagerEnvConfig] = None
48
51
 
49
52
 
@@ -108,17 +111,17 @@ def verify_token(
108
111
  return credentials
109
112
 
110
113
 
111
- def get_runtime_manager():
114
+ def get_sandbox_manager():
112
115
  """Get or create the global SandboxManager instance"""
113
- global _runtime_manager
114
- if _runtime_manager is None:
116
+ global _sandbox_manager
117
+ if _sandbox_manager is None:
115
118
  settings = get_settings()
116
119
  config = get_config()
117
- _runtime_manager = SandboxManager(
120
+ _sandbox_manager = SandboxManager(
118
121
  config=config,
119
122
  default_type=settings.DEFAULT_SANDBOX_TYPE,
120
123
  )
121
- return _runtime_manager
124
+ return _sandbox_manager
122
125
 
123
126
 
124
127
  def create_endpoint(method):
@@ -168,18 +171,18 @@ def register_routes(_app, instance):
168
171
  @app.on_event("startup")
169
172
  async def startup_event():
170
173
  """Initialize the SandboxManager on startup"""
171
- get_runtime_manager()
172
- register_routes(app, _runtime_manager)
174
+ get_sandbox_manager()
175
+ register_routes(app, _sandbox_manager)
173
176
 
174
177
 
175
178
  @app.on_event("shutdown")
176
179
  async def shutdown_event():
177
180
  """Cleanup resources on shutdown"""
178
- global _runtime_manager
181
+ global _sandbox_manager
179
182
  settings = get_settings()
180
- if _runtime_manager and settings.AUTO_CLEANUP:
181
- _runtime_manager.cleanup()
182
- _runtime_manager = None
183
+ if _sandbox_manager and settings.AUTO_CLEANUP:
184
+ _sandbox_manager.cleanup()
185
+ _sandbox_manager = None
183
186
 
184
187
 
185
188
  @app.get(
@@ -191,10 +194,81 @@ async def health_check():
191
194
  """Health check endpoint"""
192
195
  return HealthResponse(
193
196
  status="healthy",
194
- version=_runtime_manager.default_type.value,
197
+ version=_sandbox_manager.default_type.value,
195
198
  )
196
199
 
197
200
 
201
+ @app.websocket("/browser/{sandbox_id}/cast")
202
+ async def websocket_endpoint(
203
+ websocket: WebSocket,
204
+ sandbox_id: str,
205
+ ):
206
+ global _sandbox_manager
207
+
208
+ await websocket.accept()
209
+
210
+ container_json = _sandbox_manager.container_mapping.get(
211
+ sandbox_id,
212
+ )
213
+ service_address = None
214
+ if container_json:
215
+ service_address = container_json.get("front_browser_ws")
216
+
217
+ logger.debug(f"service_address: {service_address}")
218
+
219
+ if not service_address:
220
+ await websocket.close(code=1001)
221
+ return
222
+
223
+ try:
224
+ query_params = websocket.query_params
225
+ target_url = service_address
226
+ if query_params:
227
+ query_string = str(query_params)
228
+ if "?" in target_url:
229
+ target_url += "&" + query_string
230
+ else:
231
+ target_url += "?" + query_string
232
+
233
+ logger.info(f"Connecting to target with URL: {target_url}")
234
+
235
+ # Connect to the target WebSocket server
236
+ async with websockets.connect(target_url) as target_ws:
237
+ # Forward messages from client to target server
238
+ async def forward_to_service():
239
+ try:
240
+ async for message in websocket.iter_text():
241
+ await target_ws.send(message)
242
+ except WebSocketDisconnect:
243
+ logger.debug(
244
+ f"WebSocket disconnected from client for sandbox"
245
+ f" {sandbox_id}",
246
+ )
247
+ await target_ws.close()
248
+
249
+ # Forward messages from target server to client
250
+ async def forward_to_client():
251
+ try:
252
+ async for message in target_ws:
253
+ await websocket.send_text(message)
254
+ except websockets.exceptions.ConnectionClosed:
255
+ logger.debug(
256
+ f"WebSocket disconnected from service for sandbox"
257
+ f" {sandbox_id}",
258
+ )
259
+ await websocket.close()
260
+
261
+ # Run both tasks concurrently
262
+ await asyncio.gather(forward_to_service(), forward_to_client())
263
+
264
+ except Exception as e:
265
+ logger.error(f"Error in sandbox {sandbox_id}: {e}")
266
+ await websocket.close()
267
+
268
+
269
+ # TODO: add socketio relay endpoint for filesystem
270
+
271
+
198
272
  def setup_logging(log_level: str):
199
273
  """Setup logging configuration based on log level"""
200
274
  # Convert string to logging level
@@ -145,7 +145,7 @@ class MCPConfigConverter:
145
145
  overwrite=False,
146
146
  )
147
147
  for server_name in self.server_configs["mcpServers"]:
148
- tools = box.list_tools(tool_type=server_name).get(server_name, [])
148
+ tools = box.list_tools(tool_type=server_name).get(server_name, {})
149
149
  for tool_name, tool_info in tools.items():
150
150
  if self.whitelist and tool_name not in self.whitelist:
151
151
  continue
@@ -1,2 +1,2 @@
1
1
  # -*- coding: utf-8 -*-
2
- __version__ = "v0.1.2"
2
+ __version__ = "v0.1.3"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: agentscope-runtime
3
- Version: 0.1.2
3
+ Version: 0.1.3
4
4
  Summary: A production-ready runtime framework for agent applications, providing secure sandboxed execution environments and scalable deployment solutions with multi-framework support.
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -30,11 +30,11 @@ Requires-Dist: dotenv>=0.9.9; extra == "sandbox"
30
30
  Requires-Dist: kubernetes>=33.1.0; extra == "sandbox"
31
31
  Requires-Dist: shortuuid>=1.0.13; extra == "sandbox"
32
32
  Provides-Extra: agentscope
33
- Requires-Dist: agentscope==1.0.0; extra == "agentscope"
33
+ Requires-Dist: agentscope>=1.0.1; extra == "agentscope"
34
34
  Provides-Extra: langgraph
35
35
  Requires-Dist: langgraph>=0.5.3; extra == "langgraph"
36
36
  Provides-Extra: agno
37
- Requires-Dist: agno>=1.7.5; extra == "agno"
37
+ Requires-Dist: agno<2.0.0,>=1.7.5; extra == "agno"
38
38
  Provides-Extra: a2a
39
39
  Requires-Dist: a2a-sdk>=0.3.0; extra == "a2a"
40
40
  Provides-Extra: autogen
@@ -45,6 +45,17 @@ Requires-Dist: langchain>=0.3.25; extra == "langchain-rag"
45
45
  Requires-Dist: pymilvus>=2.6.0; extra == "langchain-rag"
46
46
  Requires-Dist: langchain-community>=0.3.27; extra == "langchain-rag"
47
47
  Requires-Dist: langchain-milvus>=0.2.1; extra == "langchain-rag"
48
+ Requires-Dist: bs4>=0.0.2; extra == "langchain-rag"
49
+ Provides-Extra: llamaindex-rag
50
+ Requires-Dist: llama-index>=0.13.4; extra == "llamaindex-rag"
51
+ Requires-Dist: pymilvus>=2.6.0; extra == "llamaindex-rag"
52
+ Requires-Dist: llama-index-vector-stores-milvus>=0.9.1; extra == "llamaindex-rag"
53
+ Requires-Dist: llama-index-readers-web>=0.5.1; extra == "llamaindex-rag"
54
+ Requires-Dist: llama-index-embeddings-langchain>=0.4.0; extra == "llamaindex-rag"
55
+ Requires-Dist: langchain-community>=0.3.27; extra == "llamaindex-rag"
56
+ Requires-Dist: bs4>=0.0.2; extra == "llamaindex-rag"
57
+ Provides-Extra: memory-ext
58
+ Requires-Dist: reme-ai==0.1.8; python_full_version >= "3.12" and extra == "memory-ext"
48
59
  Dynamic: license-file
49
60
 
50
61
  <div align="center">
@@ -391,3 +402,43 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
391
402
  See the License for the specific language governing permissions and
392
403
  limitations under the License.
393
404
  ```
405
+
406
+ ## Contributors ✨
407
+ <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
408
+ [![All Contributors](https://img.shields.io/badge/all_contributors-7-orange.svg?style=flat-square)](#contributors-)
409
+ <!-- ALL-CONTRIBUTORS-BADGE:END -->
410
+
411
+ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
412
+
413
+ <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
414
+ <!-- prettier-ignore-start -->
415
+ <!-- markdownlint-disable -->
416
+ <table>
417
+ <tbody>
418
+ <tr>
419
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/rayrayraykk"><img src="https://avatars.githubusercontent.com/u/39145382?v=4?s=100" width="100px;" alt="Weirui Kuang"/><br /><sub><b>Weirui Kuang</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=rayrayraykk" title="Code">💻</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3Arayrayraykk" title="Reviewed Pull Requests">👀</a> <a href="#maintenance-rayrayraykk" title="Maintenance">🚧</a> <a href="#projectManagement-rayrayraykk" title="Project Management">📆</a></td>
420
+ <td align="center" valign="top" width="14.28%"><a href="http://www.bruceluo.net/"><img src="https://avatars.githubusercontent.com/u/7297307?v=4?s=100" width="100px;" alt="Bruce Luo"/><br /><sub><b>Bruce Luo</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=zhilingluo" title="Code">💻</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3Azhilingluo" title="Reviewed Pull Requests">👀</a> <a href="#example-zhilingluo" title="Examples">💡</a></td>
421
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/zzhangpurdue"><img src="https://avatars.githubusercontent.com/u/5746653?v=4?s=100" width="100px;" alt="Zhicheng Zhang"/><br /><sub><b>Zhicheng Zhang</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=zzhangpurdue" title="Code">💻</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3Azzhangpurdue" title="Reviewed Pull Requests">👀</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=zzhangpurdue" title="Documentation">📖</a></td>
422
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/ericczq"><img src="https://avatars.githubusercontent.com/u/116273607?v=4?s=100" width="100px;" alt="ericczq"/><br /><sub><b>ericczq</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=ericczq" title="Code">💻</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=ericczq" title="Documentation">📖</a></td>
423
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/qbc2016"><img src="https://avatars.githubusercontent.com/u/22984042?v=4?s=100" width="100px;" alt="qbc"/><br /><sub><b>qbc</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3Aqbc2016" title="Reviewed Pull Requests">👀</a></td>
424
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/rankesterc"><img src="https://avatars.githubusercontent.com/u/114560457?v=4?s=100" width="100px;" alt="Ran Chen"/><br /><sub><b>Ran Chen</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=rankesterc" title="Code">💻</a></td>
425
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/jinliyl"><img src="https://avatars.githubusercontent.com/u/6469360?v=4?s=100" width="100px;" alt="jinliyl"/><br /><sub><b>jinliyl</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=jinliyl" title="Code">💻</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=jinliyl" title="Documentation">📖</a></td>
426
+ </tr>
427
+ </tbody>
428
+ <tfoot>
429
+ <tr>
430
+ <td align="center" size="13px" colspan="7">
431
+ <img src="https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg">
432
+ <a href="https://all-contributors.js.org/docs/en/bot/usage">Add your contributions</a>
433
+ </img>
434
+ </td>
435
+ </tr>
436
+ </tfoot>
437
+ </table>
438
+
439
+ <!-- markdownlint-restore -->
440
+ <!-- prettier-ignore-end -->
441
+
442
+ <!-- ALL-CONTRIBUTORS-LIST:END -->
443
+
444
+ This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
@@ -1,7 +1,7 @@
1
1
  agentscope_runtime/__init__.py,sha256=LMAUeUpPo2qzqh3zyZ-JJwc8GrsiT9b-yNhQMxlKmfE,84
2
- agentscope_runtime/version.py,sha256=pjOHhrefLzD0n2nmWmav13ebodq8-tis_BR3y2DzMgA,47
2
+ agentscope_runtime/version.py,sha256=FmA99VK3xnyfLKQZeXt91eE7FldXtbGI0ya61y0h_Rs,47
3
3
  agentscope_runtime/engine/__init__.py,sha256=jsvYM1LlZVP4EFzsE5uu5ycgBU9CVnug7UyTzBmpX5g,213
4
- agentscope_runtime/engine/runner.py,sha256=HhOjfAgao-b5vzSZh6pckVhx0K32qs868dvRE3Z56TA,5686
4
+ agentscope_runtime/engine/runner.py,sha256=fQ4bNRqjXERLZlzA3cF_eJDdyc76Ug-V7st8BoixUtg,6754
5
5
  agentscope_runtime/engine/agents/__init__.py,sha256=xHp7FY6QM-nAhQAECi7xzrJkRkYZpAa5_zHRhO6Zogc,54
6
6
  agentscope_runtime/engine/agents/agno_agent.py,sha256=c2f575gc5ZOWGvrdjObo7IGSbM1Si0JQGxKpqtMSf14,6716
7
7
  agentscope_runtime/engine/agents/autogen_agent.py,sha256=HbtvN8554FnkgMHX418sMgIM-hp7OVCUR2YJybRMKxI,7693
@@ -9,8 +9,8 @@ agentscope_runtime/engine/agents/base_agent.py,sha256=fGf4MNKmfm_fsU2orTPLpt7TT5
9
9
  agentscope_runtime/engine/agents/langgraph_agent.py,sha256=05Z5js7g9Dxy-MWj0W00jOtFMNnHzSPjlP3WIIVHTtQ,1416
10
10
  agentscope_runtime/engine/agents/llm_agent.py,sha256=0hG_FRtAxmlljmI51GT7ui_7wjjHO03wckx9bNKra8Y,1356
11
11
  agentscope_runtime/engine/agents/agentscope_agent/__init__.py,sha256=lt1NJEDuBWaX1n-bqMbQR6Uol7-fFUuyeuHy8FQrzWk,97
12
- agentscope_runtime/engine/agents/agentscope_agent/agent.py,sha256=Tp3OJi0r8aU1juXKF8fT9dCfaL2w3_sqQcSBuThndUM,11983
13
- agentscope_runtime/engine/agents/agentscope_agent/hooks.py,sha256=iX2xY3UDtiC1ilzvyHL4kLWKB4xH-iQ4o3erh5HVpXo,5444
12
+ agentscope_runtime/engine/agents/agentscope_agent/agent.py,sha256=kuQfz1QbltD2wCsOVp75Qrn4q7EmIfnDm6FECCoGl5k,14754
13
+ agentscope_runtime/engine/agents/agentscope_agent/hooks.py,sha256=iqx-TOQLXUQlQHc2cKjsDfgjO9UWw00AeS3wTymkfYE,5984
14
14
  agentscope_runtime/engine/deployers/__init__.py,sha256=2eUo6uvloMt4AstmalkwcBgR7gPyppNqlmjld0Ztpxk,103
15
15
  agentscope_runtime/engine/deployers/base.py,sha256=0bb3zQiVE1jTMG0NCsjhcSeP7lhnbn1KPQRx1H5hues,494
16
16
  agentscope_runtime/engine/deployers/local_deployer.py,sha256=LaxGzSMW4aoF717GheYno7N38Y66ifIO4Zt2qRkT_Qg,20691
@@ -20,23 +20,25 @@ agentscope_runtime/engine/deployers/adapter/a2a/__init__.py,sha256=3D6TxH-seVfR7
20
20
  agentscope_runtime/engine/deployers/adapter/a2a/a2a_adapter_utils.py,sha256=VZ4f7Ne9sRWFiLhuxoKDhwSpsxZTg_uLygoOlI-KlEA,11441
21
21
  agentscope_runtime/engine/deployers/adapter/a2a/a2a_agent_adapter.py,sha256=h7wwl2CiKcGUxhKkrWN7DpaIpTltoRm-6ETS_fJHmEk,2147
22
22
  agentscope_runtime/engine/deployers/adapter/a2a/a2a_protocol_adapter.py,sha256=eDBDu3WTLjZ6TWA3jG48EIos1kZqiKHBXPSVzfNvniM,1905
23
- agentscope_runtime/engine/helpers/helper.py,sha256=KkP48xd3-4n054Y1WhNHFJ9BT9NhPyReLGV5O5-PIuo,3591
23
+ agentscope_runtime/engine/helpers/helper.py,sha256=EizXyBl00VscBx7pVOr65qsu4YnNLKAq8eYbRqAXctA,4547
24
24
  agentscope_runtime/engine/llms/__init__.py,sha256=UV_lqTcsvcihP2OWERLWjiEbcSDbfieD-rFYRWX2xA0,84
25
25
  agentscope_runtime/engine/llms/base_llm.py,sha256=Vvxlqom35qaSLYSyyh3hj-XsoyFxcf5BqXbvFBnbNE4,1664
26
26
  agentscope_runtime/engine/llms/qwen_llm.py,sha256=_J-PpwSrKNSmQzO6KNzJlMd5t4m47YVKXp0fl-KYQmA,1271
27
27
  agentscope_runtime/engine/misc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
28
  agentscope_runtime/engine/schemas/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
29
- agentscope_runtime/engine/schemas/agent_schemas.py,sha256=N4uPXeL6v6lrCy7EiFo02VbvxgfYv-2fNFAqwU1ohoI,14663
29
+ agentscope_runtime/engine/schemas/agent_schemas.py,sha256=9PSCAuz33dEpE0_cNfOJKSK8ocOprofiR2YYfGezDyo,21194
30
30
  agentscope_runtime/engine/schemas/context.py,sha256=Qd2ee4HCYNmD5VHsacrScdpNq8q2aJwsRtsrBZarI9M,1550
31
31
  agentscope_runtime/engine/services/__init__.py,sha256=SAsmwIr8etoUbqz5W1K2pH5ONlFzooXMQ0UFXTXfHwM,271
32
32
  agentscope_runtime/engine/services/base.py,sha256=g2hTc3ivj2MPjnsu5_09m6_MZ3KDHBfiYKu4F2pLA1I,2096
33
- agentscope_runtime/engine/services/context_manager.py,sha256=93U0rBBDC6jwl_rARtCq7K-Q42zoVGxnxD7Xv1f5yo0,4947
33
+ agentscope_runtime/engine/services/context_manager.py,sha256=NO5ma4WWJFW6oZW65ddTR7EOz-kL4eNImwPxXVESmmM,5221
34
34
  agentscope_runtime/engine/services/environment_manager.py,sha256=Bd3vmgX5KkN9gTY60o7Pozpsw0S8etpSJns63woSlDU,1347
35
35
  agentscope_runtime/engine/services/manager.py,sha256=r-TcHti8sEMXjZbwPWlG32J8iiMHUXuUJmAiwPvgn_Q,6282
36
36
  agentscope_runtime/engine/services/memory_service.py,sha256=EHsvNPMXsH1B8LZY0zZKzYMvDHzaP18edKv9uimM98k,7889
37
- agentscope_runtime/engine/services/rag_service.py,sha256=mqcKByt0t7MWA2m86vTyNhO-E49djZcPwAqb3GehQQM,2668
37
+ agentscope_runtime/engine/services/rag_service.py,sha256=iPmQtFXG5_mva4GFQi4V2Buscj6MXlPtxzYMoqZ6k9U,5614
38
38
  agentscope_runtime/engine/services/redis_memory_service.py,sha256=2A6ouYghs80jby_MUcwiKfCScmYUbIcYsMlmEMynuqg,5708
39
39
  agentscope_runtime/engine/services/redis_session_history_service.py,sha256=Zo7H0QtUZRKXh07JHcvtZfmEqbmidEsTGkhGfk1aLQE,5042
40
+ agentscope_runtime/engine/services/reme_personal_memory_service.py,sha256=Cmd0FpHulv8h5IXWKnymHMViXSr2Z8dFtXDj3d8y4Vo,2962
41
+ agentscope_runtime/engine/services/reme_task_memory_service.py,sha256=d1QV9e1ifAQIO4Kr-Q9gzx7OhKH_CkUhuyygHRLprWo,338
40
42
  agentscope_runtime/engine/services/sandbox_service.py,sha256=IzVg5BtDEfqFrVy7SnE3GDYXVXc0jzv9XIl0mFYHWDk,6082
41
43
  agentscope_runtime/engine/services/session_history_service.py,sha256=CLDMHNja6k7VrTQMkQDf24uP-aSGV5sdBjG5A0t_c64,8044
42
44
  agentscope_runtime/engine/tracing/__init__.py,sha256=DuM6Zp_IJ-ixgTTomtrMbpcYiMJOHMrJHwKIqcLzrfA,1133
@@ -51,12 +53,12 @@ agentscope_runtime/sandbox/enums.py,sha256=zGSs3A3SsxjqmSrArn9qEWGO594cYahOHPnG8
51
53
  agentscope_runtime/sandbox/mcp_server.py,sha256=UT3aRZqyeHqEhhm-wZ0Ilhew3eDMHzz9DCN6Qb-eKFk,6012
52
54
  agentscope_runtime/sandbox/registry.py,sha256=E4APDpk1oxhJCh8dEIDjZ1DtQJ-mPaRGYXr3AbTsnmc,4191
53
55
  agentscope_runtime/sandbox/box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
54
- agentscope_runtime/sandbox/box/sandbox.py,sha256=pk00BPiMbYco53TpmjmNP2ImzfujdrI6xOnuKg_RWzw,3310
56
+ agentscope_runtime/sandbox/box/sandbox.py,sha256=PQk0mljUvrErTsm0aQdd8UggghEvpEE0uPU3pLjY6a4,5220
55
57
  agentscope_runtime/sandbox/box/base/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
56
58
  agentscope_runtime/sandbox/box/base/base_sandbox.py,sha256=zhQLTRtdpktNw7UpWeMKwEd5oWn_L-VUIIY9_IiBT9M,1002
57
59
  agentscope_runtime/sandbox/box/base/box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
58
60
  agentscope_runtime/sandbox/box/browser/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
59
- agentscope_runtime/sandbox/box/browser/browser_sandbox.py,sha256=AbV8GTlyG1o2NvvvPpeRexnOSkcLWfAkT19UeXlVeKc,4871
61
+ agentscope_runtime/sandbox/box/browser/browser_sandbox.py,sha256=KDYnGUbWataXknI_mZfE46goh8p3JtIwFQvQ569iaEg,5599
60
62
  agentscope_runtime/sandbox/box/browser/box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
63
  agentscope_runtime/sandbox/box/dummy/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
62
64
  agentscope_runtime/sandbox/box/dummy/dummy_sandbox.py,sha256=Bqy3M_0Rj2iNSlOX2S1wVgffaVj0qAUhdxawRbNHB7w,668
@@ -70,7 +72,7 @@ agentscope_runtime/sandbox/box/shared/dependencies/deps.py,sha256=pavJWhin5Dbc1f
70
72
  agentscope_runtime/sandbox/box/shared/routers/__init__.py,sha256=QokVfRhfBftiXktqpn3iqdKcSz7TcSn-4Kbf4QhOUXs,273
71
73
  agentscope_runtime/sandbox/box/shared/routers/generic.py,sha256=OP3aRmswIMj73DeDX4GqsoY1n3oQZ_Ncjxexhj-_xYg,4497
72
74
  agentscope_runtime/sandbox/box/shared/routers/mcp.py,sha256=_2492A88qba3hUPV67oexfWm-mHEFcr9ygzW-Qqhyi0,6046
73
- agentscope_runtime/sandbox/box/shared/routers/mcp_utils.py,sha256=t7AqIMuUlhjFY7pIm7gWeCuxoEKXYs2IzVjnY8mcuoA,4992
75
+ agentscope_runtime/sandbox/box/shared/routers/mcp_utils.py,sha256=aQEUimxeeve-A-VKx99YeMR4nw7KRpGqzIpMiyNU9dQ,5865
74
76
  agentscope_runtime/sandbox/box/shared/routers/runtime_watcher.py,sha256=v4jAGYtJaYsRJaSTv7e7hmDLHWVAtJqnSnpPq-kFcmU,5344
75
77
  agentscope_runtime/sandbox/box/shared/routers/workspace.py,sha256=cQMbWNQG7ojHZfWN0xFqEivhlpQO4qEDo3amkhVHUBg,9748
76
78
  agentscope_runtime/sandbox/box/training_box/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -85,7 +87,7 @@ agentscope_runtime/sandbox/box/training_box/environments/bfcl/bfcl_env.py,sha256
85
87
  agentscope_runtime/sandbox/box/training_box/environments/bfcl/env_handler.py,sha256=T-W9w4nKI7_BXgF9caqV3KMeX5d6yvdfhQu0o2oWTUE,30114
86
88
  agentscope_runtime/sandbox/box/training_box/src/trajectory.py,sha256=cFr3uVUPq5gHKPa6ALi7QCLBVkgYOyPgyJrOzgBHf3k,7885
87
89
  agentscope_runtime/sandbox/client/__init__.py,sha256=KiNsTToc1jICqCC1BcH762jZgHuOkCPiG32oXGo6dQE,176
88
- agentscope_runtime/sandbox/client/http_client.py,sha256=YqITjeq4fySWSDr39DAG80NpRfD0--Ndupr7hMqL7RA,17954
90
+ agentscope_runtime/sandbox/client/http_client.py,sha256=Edu3ZoYJTX_VAMuSDJg_DQ0GiEtZ2jWN1fkcLu3FtMI,17954
89
91
  agentscope_runtime/sandbox/client/training_client.py,sha256=MYfI06MeyIelwjY4QllVL4exhSCMNpdMudGi2ctVL28,7675
90
92
  agentscope_runtime/sandbox/custom/__init__.py,sha256=wpu0DlzdLohYzOVM9yZloIWid3w_ME6dPtOjCZKbRZ8,463
91
93
  agentscope_runtime/sandbox/custom/custom_sandbox.py,sha256=2-HZRUlZcvv-YZh9NrHBByKamhVowwZ_drGJSAwKM8c,971
@@ -107,7 +109,7 @@ agentscope_runtime/sandbox/manager/container_clients/base_client.py,sha256=_uvxR
107
109
  agentscope_runtime/sandbox/manager/container_clients/docker_client.py,sha256=rmm2mUDfot81kQ7H6O5fI0QHXvCDOsepUdlNnC5ouVU,13407
108
110
  agentscope_runtime/sandbox/manager/container_clients/kubernetes_client.py,sha256=1LRlE53bfkGIFQxhZ5yGRAjqm9ilajmoNjLavCD8X5E,20884
109
111
  agentscope_runtime/sandbox/manager/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
- agentscope_runtime/sandbox/manager/server/app.py,sha256=JcIF8P8TRuVPkdaM2ibY8izNmBIo7Wv9ivifMYdCUSI,7874
112
+ agentscope_runtime/sandbox/manager/server/app.py,sha256=4JujdShc8FUEHLjwuFEO8kTAKAlBfWOcDmebBj22TyM,10295
111
113
  agentscope_runtime/sandbox/manager/server/config.py,sha256=rIRKI_GHmyt3Wty_ujUya_vSw_ij-rRkerqiQPG_yzU,2423
112
114
  agentscope_runtime/sandbox/manager/server/models.py,sha256=rCibF0HsotFcqsQVTSUoOTJCFQU3oqKvpOiWMWIRLyY,304
113
115
  agentscope_runtime/sandbox/manager/storage/__init__.py,sha256=jGmpfXV1E2X7AqkGeF1xu1EHiSTvbH3TSIviLbKBFh4,210
@@ -120,7 +122,7 @@ agentscope_runtime/sandbox/model/container.py,sha256=w2X970bk0C7lLdpq0bk2BJzanVs
120
122
  agentscope_runtime/sandbox/model/manager_config.py,sha256=P2T0lT_uVlyh2tOcTpJo-zsiS9J7eJ5Voipb9GMFHiw,5118
121
123
  agentscope_runtime/sandbox/tools/__init__.py,sha256=ioRqvKFLma8Vq0ePwOR5MekijpcHs2USNYA4Dnr-e6M,287
122
124
  agentscope_runtime/sandbox/tools/function_tool.py,sha256=mH4dq3M26pdk-XqxIm1wtsvQz5i8SXcP4Gz0-7_L7cQ,10309
123
- agentscope_runtime/sandbox/tools/mcp_tool.py,sha256=yaEwWLeuLVxlZhhCXVHMxZPCod1bwGHo8W_rNkgKOpI,6063
125
+ agentscope_runtime/sandbox/tools/mcp_tool.py,sha256=jayFnAoB_cZNwqViRjn0kmcfmYQslTTQVlpBVXdjxfE,6063
124
126
  agentscope_runtime/sandbox/tools/sandbox_tool.py,sha256=wHkgixb0dy6DexXbfXVOKUFfLL9QOI2H5oiQ2NntoWM,3067
125
127
  agentscope_runtime/sandbox/tools/tool.py,sha256=f2-14tP1V2Vgw5krr0q-uEM3lOAQUF6GdttqYdZkIdI,7361
126
128
  agentscope_runtime/sandbox/tools/utils.py,sha256=QksPQK-2DszaQsRw4Srug5hEwrf6hothf-Xp8a1056c,2098
@@ -130,9 +132,9 @@ agentscope_runtime/sandbox/tools/browser/__init__.py,sha256=gXQx3tXclYqAhPDrXb1-
130
132
  agentscope_runtime/sandbox/tools/browser/tool.py,sha256=EJ-uhHX9oIb4Q-hXQhTS-7VRJ-AdCRWXb9HVdOQ5JAc,19206
131
133
  agentscope_runtime/sandbox/tools/filesystem/__init__.py,sha256=AJK88YU0ceJe99H7T-on2tgaow4ujqGJ1jwv0sd1TtE,607
132
134
  agentscope_runtime/sandbox/tools/filesystem/tool.py,sha256=CPsl4TMf76BOSQtG1dqDcVdymciKhMknIG5FffoI2Eg,9847
133
- agentscope_runtime-0.1.2.dist-info/licenses/LICENSE,sha256=3MckDTgiTJ0E6cxo8FeamFVEFiwz3XJWsriuTtRJzxY,11337
134
- agentscope_runtime-0.1.2.dist-info/METADATA,sha256=DIu328pONBuGKlDk9PQzw74ROl3ab7aqZ1811nOStD0,15012
135
- agentscope_runtime-0.1.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
136
- agentscope_runtime-0.1.2.dist-info/entry_points.txt,sha256=SGQZqgozJYj1yJtiyzqiJ2_iYmDvTl2lexxmXENY3wE,223
137
- agentscope_runtime-0.1.2.dist-info/top_level.txt,sha256=0YHketA7WcMmRmF-3lUzedeTOnP7iL77h-ekb-iG720,19
138
- agentscope_runtime-0.1.2.dist-info/RECORD,,
135
+ agentscope_runtime-0.1.3.dist-info/licenses/LICENSE,sha256=3MckDTgiTJ0E6cxo8FeamFVEFiwz3XJWsriuTtRJzxY,11337
136
+ agentscope_runtime-0.1.3.dist-info/METADATA,sha256=HH6QUvmCNZZFv-h5x3AYb5Uc0YM6qtUpft-rHHigs4Y,20318
137
+ agentscope_runtime-0.1.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
138
+ agentscope_runtime-0.1.3.dist-info/entry_points.txt,sha256=SGQZqgozJYj1yJtiyzqiJ2_iYmDvTl2lexxmXENY3wE,223
139
+ agentscope_runtime-0.1.3.dist-info/top_level.txt,sha256=0YHketA7WcMmRmF-3lUzedeTOnP7iL77h-ekb-iG720,19
140
+ agentscope_runtime-0.1.3.dist-info/RECORD,,