agentscope-runtime 1.0.2__tar.gz → 1.0.4__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.
- {agentscope_runtime-1.0.2/src/agentscope_runtime.egg-info → agentscope_runtime-1.0.4}/PKG-INFO +109 -29
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/README.md +105 -27
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/pyproject.toml +4 -2
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agentscope/stream.py +2 -9
- agentscope_runtime-1.0.4/src/agentscope_runtime/adapters/ms_agent_framework/message.py +205 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/adapters/ms_agent_framework/stream.py +418 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/adapters/utils.py +6 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/commands/deploy.py +383 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/collections/redis_mapping.py +4 -1
- agentscope_runtime-1.0.4/src/agentscope_runtime/common/container_clients/knative_client.py +466 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/__init__.py +4 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/app/agent_app.py +48 -5
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/constant.py +1 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/__init__.py +12 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/engine/deployers/adapter/a2a/__init__.py +32 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/engine/deployers/adapter/a2a/a2a_protocol_adapter.py +496 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/engine/deployers/adapter/a2a/a2a_registry.py +76 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/engine/deployers/adapter/a2a/nacos_a2a_registry.py +749 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/agentrun_deployer.py +2 -2
- agentscope_runtime-1.0.4/src/agentscope_runtime/engine/deployers/fc_deployer.py +1506 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/engine/deployers/knative_deployer.py +290 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/kubernetes_deployer.py +3 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/docker_image_utils/dockerfile_generator.py +8 -2
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/docker_image_utils/image_factory.py +5 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/engine/deployers/utils/net_utils.py +65 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/runner.py +17 -3
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/schemas/exception.py +24 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/agent_state/redis_state_service.py +61 -8
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/agent_state/state_service_factory.py +2 -5
- agentscope_runtime-1.0.4/src/agentscope_runtime/engine/services/memory/redis_memory_service.py +291 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/engine/services/session_history/redis_session_history_service.py +283 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/tracing/wrapper.py +18 -4
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/__init__.py +14 -6
- agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/base/__init__.py +4 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/base/base_sandbox.py +101 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/browser/__init__.py +4 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/browser/browser_sandbox.py +198 -2
- agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/filesystem/__init__.py +4 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/filesystem/filesystem_sandbox.py +99 -2
- agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/gui/__init__.py +4 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/gui/gui_sandbox.py +117 -1
- agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/mobile/__init__.py +4 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/mobile/mobile_sandbox.py +437 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/sandbox.py +98 -65
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/shared/routers/generic.py +36 -29
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/build.py +50 -57
- agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/client/__init__.py +10 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/client/async_http_client.py +339 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/client/base.py +74 -0
- agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/client/http_client.py +335 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/enums.py +7 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/manager/sandbox_manager.py +264 -4
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/manager/server/app.py +7 -1
- agentscope_runtime-1.0.4/src/agentscope_runtime/tools/utils/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/version.py +1 -1
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4/src/agentscope_runtime.egg-info}/PKG-INFO +109 -29
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime.egg-info/SOURCES.txt +12 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime.egg-info/requires.txt +3 -1
- agentscope_runtime-1.0.2/src/agentscope_runtime/engine/deployers/adapter/a2a/__init__.py +0 -2
- agentscope_runtime-1.0.2/src/agentscope_runtime/engine/deployers/adapter/a2a/a2a_protocol_adapter.py +0 -79
- agentscope_runtime-1.0.2/src/agentscope_runtime/engine/services/memory/redis_memory_service.py +0 -187
- agentscope_runtime-1.0.2/src/agentscope_runtime/engine/services/session_history/redis_session_history_service.py +0 -157
- agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/base/__init__.py +0 -4
- agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/base/base_sandbox.py +0 -51
- agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/browser/__init__.py +0 -4
- agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/filesystem/__init__.py +0 -4
- agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/gui/__init__.py +0 -4
- agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/mobile/__init__.py +0 -4
- agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/mobile/mobile_sandbox.py +0 -290
- agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/client/__init__.py +0 -5
- agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/client/http_client.py +0 -556
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/LICENSE +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/setup.cfg +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/setup.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agentscope/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agentscope/long_term_memory/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agentscope/long_term_memory/_long_term_memory_adapter.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agentscope/memory/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agentscope/memory/_memory_adapter.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agentscope/message.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agentscope/tool/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agentscope/tool/sandbox_tool.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agentscope/tool/tool.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agno/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agno/message.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/agno/stream.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/autogen/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/autogen/tool/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/autogen/tool/tool.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/langgraph/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/langgraph/message.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/langgraph/stream.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/adapters/text → agentscope_runtime-1.0.4/src/agentscope_runtime/adapters/ms_agent_framework}/__init__.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/common → agentscope_runtime-1.0.4/src/agentscope_runtime/adapters/text}/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/adapters/text/stream.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/cli.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/commands/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/commands/chat.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/commands/invoke.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/commands/list_cmd.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/commands/run.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/commands/sandbox.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/commands/status.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/commands/stop.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/commands/web.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/loaders/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/loaders/agent_loader.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/state/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/utils/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/utils/console.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/cli/utils/validators.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/common/container_clients → agentscope_runtime-1.0.4/src/agentscope_runtime/common}/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/collections/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/collections/base_mapping.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/collections/base_queue.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/collections/base_set.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/collections/in_memory_mapping.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/collections/in_memory_queue.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/collections/in_memory_set.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/collections/redis_queue.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/collections/redis_set.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/common/utils → agentscope_runtime-1.0.4/src/agentscope_runtime/common/container_clients}/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/container_clients/agentrun_client.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/container_clients/base_client.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/container_clients/docker_client.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/container_clients/fc_client.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/container_clients/kubernetes_client.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/engine/deployers → agentscope_runtime-1.0.4/src/agentscope_runtime/common}/utils/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/common/utils/lazy_loader.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/app/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/app/base_app.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/app/celery_mixin.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/adapter/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/adapter/a2a/a2a_adapter_utils.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/adapter/a2a/a2a_agent_adapter.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/adapter/protocol_adapter.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/adapter/responses/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/adapter/responses/response_api_adapter_utils.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/adapter/responses/response_api_agent_adapter.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/adapter/responses/response_api_protocol_adapter.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/base.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/cli_fc_deploy.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/local_deployer.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/modelstudio_deployer.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/state/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/state/manager.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/state/schema.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/engine/misc → agentscope_runtime-1.0.4/src/agentscope_runtime/engine/deployers/utils}/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/app_runner_utils.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/build_cache.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/deployment_modes.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/detached_app.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/docker_image_utils/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/docker_image_utils/docker_image_builder.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/k8s_utils.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/package.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/service_utils/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/service_utils/fastapi_factory.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/service_utils/fastapi_templates.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/service_utils/process_manager.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/templates/app_main.py.j2 +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/templates/runner_main.py.j2 +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/templates/standalone_main.py.j2 +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/deployers/utils/wheel_packager.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/helpers/agent_api_builder.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/helpers/runner.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/engine/schemas → agentscope_runtime-1.0.4/src/agentscope_runtime/engine/misc}/__init__.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/engine/services → agentscope_runtime-1.0.4/src/agentscope_runtime/engine/schemas}/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/schemas/agent_schemas.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/schemas/embedding.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/schemas/modelstudio_llm.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/schemas/oai_llm.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/schemas/realtime.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/schemas/response_api.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/schemas/session.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/engine/services/utils → agentscope_runtime-1.0.4/src/agentscope_runtime/engine/services}/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/agent_state/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/agent_state/state_service.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/base.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/memory/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/memory/mem0_memory_service.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/memory/memory_service.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/memory/memory_service_factory.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/memory/reme_personal_memory_service.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/memory/reme_task_memory_service.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/memory/tablestore_memory_service.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/sandbox/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/sandbox/sandbox_service.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/sandbox/sandbox_service_factory.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/service_factory.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/session_history/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/session_history/session_history_service.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/session_history/session_history_service_factory.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/session_history/tablestore_session_history_service.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box → agentscope_runtime-1.0.4/src/agentscope_runtime/engine/services/utils}/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/services/utils/tablestore_service_utils.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/tracing/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/tracing/asyncio_util.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/tracing/base.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/tracing/local_logging_handler.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/tracing/message_util.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/tracing/tracing_metric.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/engine/tracing/tracing_util.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/base → agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox}/box/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/agentbay/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/agentbay/agentbay_sandbox.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/browser → agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/base}/box/__init__.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/filesystem → agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/browser}/box/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/cloud/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/cloud/cloud_sandbox.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/dummy/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/dummy/dummy_sandbox.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/gui → agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/filesystem}/box/__init__.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/mobile → agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/gui}/box/__init__.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/shared → agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/mobile/box}/__init__.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/box/training_box/environments → agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/shared}/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/shared/app.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/shared/dependencies/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/shared/dependencies/deps.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/shared/routers/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/shared/routers/mcp.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/shared/routers/mcp_utils.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/shared/routers/runtime_watcher.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/shared/routers/workspace.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/training_box/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/training_box/base.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/training_box/env_service.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/sandbox/manager/server → agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/box/training_box/environments}/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/training_box/environments/appworld/appworld_env.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/training_box/environments/bfcl/bfcl_dataprocess.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/training_box/environments/bfcl/bfcl_env.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/training_box/environments/bfcl/env_handler.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/training_box/registry.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/training_box/src/trajectory.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/box/training_box/training_box.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/client/training_client.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/constant.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/custom/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/custom/custom_sandbox.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/custom/example.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/manager/__init__.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/tools/RAGs → agentscope_runtime-1.0.4/src/agentscope_runtime/sandbox/manager/server}/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/manager/server/config.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/manager/server/models.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/manager/storage/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/manager/storage/data_storage.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/manager/storage/local_storage.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/manager/storage/oss_storage.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/mcp_server.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/model/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/model/api.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/model/container.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/model/manager_config.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/registry.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/sandbox/utils.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/tools/cli → agentscope_runtime-1.0.4/src/agentscope_runtime/tools/RAGs}/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/RAGs/modelstudio_rag.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/RAGs/modelstudio_rag_lite.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/_constants.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/alipay/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/alipay/base.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/alipay/payment.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/alipay/subscribe.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/base.py +0 -0
- {agentscope_runtime-1.0.2/src/agentscope_runtime/tools/utils → agentscope_runtime-1.0.4/src/agentscope_runtime/tools/cli}/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/cli/modelstudio_mcp_server.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/async_image_to_video.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/async_image_to_video_wan25.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/async_speech_to_video.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/async_text_to_video.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/async_text_to_video_wan25.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/image_edit.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/image_edit_wan25.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/image_generation.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/image_generation_wan25.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/image_style_repaint.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/image_to_video.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/qwen_image_edit.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/qwen_image_generation.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/qwen_text_to_speech.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/speech_to_text.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/speech_to_video.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/generations/text_to_video.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/mcp_wrapper.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/realtime_clients/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/realtime_clients/asr_client.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/realtime_clients/azure_asr_client.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/realtime_clients/azure_tts_client.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/realtime_clients/modelstudio_asr_client.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/realtime_clients/modelstudio_tts_client.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/realtime_clients/realtime_tool.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/realtime_clients/tts_client.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/searches/__init__.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/searches/modelstudio_search.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/searches/modelstudio_search_lite.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/utils/api_key_util.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/utils/crypto_utils.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime/tools/utils/mcp_util.py +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime.egg-info/dependency_links.txt +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime.egg-info/entry_points.txt +0 -0
- {agentscope_runtime-1.0.2 → agentscope_runtime-1.0.4}/src/agentscope_runtime.egg-info/top_level.txt +0 -0
{agentscope_runtime-1.0.2/src/agentscope_runtime.egg-info → agentscope_runtime-1.0.4}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: agentscope-runtime
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.4
|
|
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
|
|
@@ -51,7 +51,7 @@ Requires-Dist: alibabacloud_tea_openapi>=0.4.0; extra == "ext"
|
|
|
51
51
|
Requires-Dist: alibabacloud-fc20230330>=4.4.0; extra == "ext"
|
|
52
52
|
Requires-Dist: tablestore-for-agent-memory>=1.1.0; extra == "ext"
|
|
53
53
|
Requires-Dist: langchain-community>=0.3.27; extra == "ext"
|
|
54
|
-
Requires-Dist: wuying-agentbay-sdk
|
|
54
|
+
Requires-Dist: wuying-agentbay-sdk<0.13.0,>=0.5.0; extra == "ext"
|
|
55
55
|
Requires-Dist: alipay-sdk-python; extra == "ext"
|
|
56
56
|
Requires-Dist: cryptography; extra == "ext"
|
|
57
57
|
Requires-Dist: gunicorn>=20.0.0; extra == "ext"
|
|
@@ -66,6 +66,8 @@ Requires-Dist: wheel; extra == "ext"
|
|
|
66
66
|
Requires-Dist: alibabacloud-credentials; extra == "ext"
|
|
67
67
|
Requires-Dist: PyYAML; extra == "ext"
|
|
68
68
|
Requires-Dist: agno>=2.3.8; extra == "ext"
|
|
69
|
+
Requires-Dist: nacos-sdk-python>=3.0.0; extra == "ext"
|
|
70
|
+
Requires-Dist: agent-framework>=1.0.0b251120; extra == "ext"
|
|
69
71
|
Dynamic: license-file
|
|
70
72
|
|
|
71
73
|
<div align="center">
|
|
@@ -73,6 +75,7 @@ Dynamic: license-file
|
|
|
73
75
|
# AgentScope Runtime v1.0
|
|
74
76
|
|
|
75
77
|
[](https://github.com/agentscope-ai/agentscope-runtime)
|
|
78
|
+
[](http://webui.runtime.agentscope.io/)
|
|
76
79
|
[](https://pypi.org/project/agentscope-runtime/)
|
|
77
80
|
[](https://pepy.tech/project/agentscope-runtime)
|
|
78
81
|
[](https://python.org)
|
|
@@ -90,6 +93,7 @@ Dynamic: license-file
|
|
|
90
93
|
[](https://qr.dingtalk.com/action/joingroup?code=v1,k1,OmDlBXpjW+I2vWjKDsjvI9dhcXjGZi3bQiojOq3dlDw=&_dt_no_comment=1&origin=11)
|
|
91
94
|
|
|
92
95
|
[[Cookbook]](https://runtime.agentscope.io/)
|
|
96
|
+
[[Try WebUI]](http://webui.runtime.agentscope.io/)
|
|
93
97
|
[[中文README]](README_zh.md)
|
|
94
98
|
[[Samples]](https://github.com/agentscope-ai/agentscope-samples)
|
|
95
99
|
|
|
@@ -105,6 +109,7 @@ Dynamic: license-file
|
|
|
105
109
|
|
|
106
110
|
## 🆕 NEWS
|
|
107
111
|
|
|
112
|
+
* **[2026-01]** Added **asynchronous sandbox** implementations (`BaseSandboxAsync`, `GuiSandboxAsync`, `BrowserSandboxAsync`, `FilesystemSandboxAsync`, `MobileSandboxAsync`) enabling non-blocking, concurrent tool execution in async program. Improved `run_ipython_cell` and `run_shell_command` methods with enhanced **concurrency and parallel execution** capabilities for more efficient sandbox operations.
|
|
108
113
|
* **[2025-12]** We have released **AgentScope Runtime v1.0**, introducing a unified “Agent as API” white-box development experience, with enhanced multi-agent collaboration, state persistence, and cross-framework integration. This release also streamlines abstractions and modules to ensure consistency between development and production environments. Please refer to the **[CHANGELOG](https://runtime.agentscope.io/en/CHANGELOG.html)** for full update details and migration guide.
|
|
109
114
|
|
|
110
115
|
---
|
|
@@ -124,11 +129,11 @@ Dynamic: license-file
|
|
|
124
129
|
>
|
|
125
130
|
> | Framework/Feature | Message/Event | Tool | Service |
|
|
126
131
|
> | ------------------------------------------------------------ | ------------- | ---- | ------- |
|
|
127
|
-
> | AgentScope
|
|
132
|
+
> | [AgentScope](https://runtime.agentscope.io/en/quickstart.html) | ✅ | ✅ | ✅ |
|
|
128
133
|
> | [LangGraph](https://runtime.agentscope.io/en/langgraph_guidelines.html) | ✅ | 🚧 | 🚧 |
|
|
129
|
-
> |
|
|
130
|
-
> | Microsoft Agent Framework | 🚧 | 🚧 | 🚧 |
|
|
134
|
+
> | [Microsoft Agent Framework](https://runtime.agentscope.io/en/ms_agent_framework_guidelines.html) | ✅ | ✅ | 🚧 |
|
|
131
135
|
> | [Agno](https://runtime.agentscope.io/en/agno_guidelines.html) | ✅ | ✅ | 🚧 |
|
|
136
|
+
> | AutoGen | 🚧 | ✅ | 🚧 |
|
|
132
137
|
|
|
133
138
|
---
|
|
134
139
|
|
|
@@ -328,15 +333,29 @@ These examples demonstrate how to create sandboxed environments and execute tool
|
|
|
328
333
|
|
|
329
334
|
> [!NOTE]
|
|
330
335
|
>
|
|
331
|
-
>
|
|
336
|
+
> If you want to run the sandbox locally, the current version requires Docker or Kubernetes to be installed and running. In the future, we will offer more public cloud deployment options, as well as other virtualization technologies. Please refer to [this tutorial](https://runtime.agentscope.io/en/sandbox.html) for more details.
|
|
332
337
|
>
|
|
333
338
|
> If you plan to use the sandbox on a large scale in production, we recommend deploying it directly in Alibaba Cloud for managed hosting: [One-click deploy sandbox on Alibaba Cloud](https://computenest.console.aliyun.com/service/instance/create/default?ServiceName=AgentScope%20Runtime%20%E6%B2%99%E7%AE%B1%E7%8E%AF%E5%A2%83)
|
|
334
339
|
|
|
340
|
+
> [!TIP]
|
|
341
|
+
> AgentScope Runtime provides **both synchronous** and **asynchronous** versions for each sandbox type
|
|
342
|
+
|
|
343
|
+
| Synchronous Class | Asynchronous Class |
|
|
344
|
+
| ------------------- | ------------------------ |
|
|
345
|
+
| `BaseSandbox` | `BaseSandboxAsync` |
|
|
346
|
+
| `GuiSandbox` | `GuiSandboxAsync` |
|
|
347
|
+
| `FilesystemSandbox` | `FilesystemSandboxAsync` |
|
|
348
|
+
| `BrowserSandbox` | `BrowserSandboxAsync` |
|
|
349
|
+
| `MobileSandbox` | `MobileSandboxAsync` |
|
|
350
|
+
| `TrainingSandbox` | - |
|
|
351
|
+
| `AgentbaySandbox` | - |
|
|
352
|
+
|
|
335
353
|
#### Base Sandbox
|
|
336
354
|
|
|
337
355
|
Use for running **Python code** or **shell commands** in an isolated environment.
|
|
338
356
|
|
|
339
357
|
```python
|
|
358
|
+
# --- Synchronous version ---
|
|
340
359
|
from agentscope_runtime.sandbox import BaseSandbox
|
|
341
360
|
|
|
342
361
|
with BaseSandbox() as box:
|
|
@@ -345,6 +364,15 @@ with BaseSandbox() as box:
|
|
|
345
364
|
print(box.run_ipython_cell(code="print('hi')")) # Run Python code
|
|
346
365
|
print(box.run_shell_command(command="echo hello")) # Run shell command
|
|
347
366
|
input("Press Enter to continue...")
|
|
367
|
+
|
|
368
|
+
# --- Asynchronous version ---
|
|
369
|
+
from agentscope_runtime.sandbox import BaseSandboxAsync
|
|
370
|
+
|
|
371
|
+
async with BaseSandboxAsync() as box:
|
|
372
|
+
# Default image is `agentscope/runtime-sandbox-base:latest`
|
|
373
|
+
print(await box.list_tools()) # List all available tools
|
|
374
|
+
print(await box.run_ipython_cell(code="print('hi')")) # Run Python code
|
|
375
|
+
print(await box.run_shell_command(command="echo hello")) # Run shell command
|
|
348
376
|
```
|
|
349
377
|
|
|
350
378
|
#### GUI Sandbox
|
|
@@ -354,14 +382,26 @@ Provides a **virtual desktop** environment for mouse, keyboard, and screen opera
|
|
|
354
382
|
<img src="https://img.alicdn.com/imgextra/i2/O1CN01df5SaM1xKFQP4KGBW_!!6000000006424-2-tps-2958-1802.png" alt="GUI Sandbox" width="800" height="500">
|
|
355
383
|
|
|
356
384
|
```python
|
|
385
|
+
# --- Synchronous version ---
|
|
357
386
|
from agentscope_runtime.sandbox import GuiSandbox
|
|
358
387
|
|
|
359
388
|
with GuiSandbox() as box:
|
|
360
389
|
# By default, pulls `agentscope/runtime-sandbox-gui:latest` from DockerHub
|
|
361
|
-
print(box.list_tools())
|
|
390
|
+
print(box.list_tools()) # List all available tools
|
|
362
391
|
print(box.desktop_url) # Web desktop access URL
|
|
363
392
|
print(box.computer_use(action="get_cursor_position")) # Get mouse cursor position
|
|
364
|
-
print(box.computer_use(action="get_screenshot"))
|
|
393
|
+
print(box.computer_use(action="get_screenshot")) # Capture screenshot
|
|
394
|
+
input("Press Enter to continue...")
|
|
395
|
+
|
|
396
|
+
# --- Asynchronous version ---
|
|
397
|
+
from agentscope_runtime.sandbox import GuiSandboxAsync
|
|
398
|
+
|
|
399
|
+
async with GuiSandboxAsync() as box:
|
|
400
|
+
# Default image is `agentscope/runtime-sandbox-gui:latest`
|
|
401
|
+
print(await box.list_tools()) # List all available tools
|
|
402
|
+
print(box.desktop_url) # Web desktop access URL
|
|
403
|
+
print(await box.computer_use(action="get_cursor_position")) # Get mouse cursor position
|
|
404
|
+
print(await box.computer_use(action="get_screenshot")) # Capture screenshot
|
|
365
405
|
input("Press Enter to continue...")
|
|
366
406
|
```
|
|
367
407
|
|
|
@@ -372,14 +412,25 @@ A GUI-based sandbox with **browser operations** inside an isolated sandbox.
|
|
|
372
412
|
<img src="https://img.alicdn.com/imgextra/i4/O1CN01OIq1dD1gAJMcm0RFR_!!6000000004101-2-tps-2734-1684.png" alt="GUI Sandbox" width="800" height="500">
|
|
373
413
|
|
|
374
414
|
```python
|
|
415
|
+
# --- Synchronous version ---
|
|
375
416
|
from agentscope_runtime.sandbox import BrowserSandbox
|
|
376
417
|
|
|
377
418
|
with BrowserSandbox() as box:
|
|
378
419
|
# By default, pulls `agentscope/runtime-sandbox-browser:latest` from DockerHub
|
|
379
|
-
print(box.list_tools())
|
|
420
|
+
print(box.list_tools()) # List all available tools
|
|
380
421
|
print(box.desktop_url) # Web desktop access URL
|
|
381
422
|
box.browser_navigate("https://www.google.com/") # Open a webpage
|
|
382
423
|
input("Press Enter to continue...")
|
|
424
|
+
|
|
425
|
+
# --- Asynchronous version ---
|
|
426
|
+
from agentscope_runtime.sandbox import BrowserSandboxAsync
|
|
427
|
+
|
|
428
|
+
async with BrowserSandboxAsync() as box:
|
|
429
|
+
# Default image is `agentscope/runtime-sandbox-browser:latest`
|
|
430
|
+
print(await box.list_tools()) # List all available tools
|
|
431
|
+
print(box.desktop_url) # Web desktop access URL
|
|
432
|
+
await box.browser_navigate("https://www.google.com/") # Open a webpage
|
|
433
|
+
input("Press Enter to continue...")
|
|
383
434
|
```
|
|
384
435
|
|
|
385
436
|
#### Filesystem Sandbox
|
|
@@ -389,13 +440,24 @@ A GUI-based sandbox with **file system operations** such as creating, reading, a
|
|
|
389
440
|
<img src="https://img.alicdn.com/imgextra/i3/O1CN01VocM961vK85gWbJIy_!!6000000006153-2-tps-2730-1686.png" alt="GUI Sandbox" width="800" height="500">
|
|
390
441
|
|
|
391
442
|
```python
|
|
392
|
-
|
|
443
|
+
# --- Synchronous version ---
|
|
444
|
+
from agentscope_runtime.sandbox import BrowserSandbox
|
|
393
445
|
|
|
394
|
-
with
|
|
395
|
-
# By default, pulls `agentscope/runtime-sandbox-
|
|
396
|
-
print(box.list_tools())
|
|
446
|
+
with BrowserSandbox() as box:
|
|
447
|
+
# By default, pulls `agentscope/runtime-sandbox-browser:latest` from DockerHub
|
|
448
|
+
print(box.list_tools()) # List all available tools
|
|
449
|
+
print(box.desktop_url) # Web desktop access URL
|
|
450
|
+
box.browser_navigate("https://www.google.com/") # Open a webpage
|
|
451
|
+
input("Press Enter to continue...")
|
|
452
|
+
|
|
453
|
+
# --- Asynchronous version ---
|
|
454
|
+
from agentscope_runtime.sandbox import BrowserSandboxAsync
|
|
455
|
+
|
|
456
|
+
async with BrowserSandboxAsync() as box:
|
|
457
|
+
# Default image is `agentscope/runtime-sandbox-browser:latest`
|
|
458
|
+
print(await box.list_tools()) # List all available tools
|
|
397
459
|
print(box.desktop_url) # Web desktop access URL
|
|
398
|
-
box.
|
|
460
|
+
await box.browser_navigate("https://www.google.com/") # Open a webpage
|
|
399
461
|
input("Press Enter to continue...")
|
|
400
462
|
```
|
|
401
463
|
|
|
@@ -420,16 +482,32 @@ Provides a **sandboxed Android emulator environment** that allows executing vari
|
|
|
420
482
|
- **Architecture Compatibility**:
|
|
421
483
|
When running on an ARM64/aarch64 architecture (e.g., Apple M-series chips), you may encounter compatibility or performance issues. It is recommended to run on an x86_64 host.
|
|
422
484
|
```python
|
|
485
|
+
# --- Synchronous version ---
|
|
423
486
|
from agentscope_runtime.sandbox import MobileSandbox
|
|
424
487
|
|
|
425
488
|
with MobileSandbox() as box:
|
|
426
489
|
# By default, pulls 'agentscope/runtime-sandbox-mobile:latest' from DockerHub
|
|
427
|
-
print(box.list_tools())
|
|
428
|
-
print(box.mobile_get_screen_resolution())
|
|
429
|
-
print(box.mobile_tap([500, 1000]))
|
|
430
|
-
print(box.mobile_input_text("Hello from AgentScope!"))
|
|
431
|
-
print(box.mobile_key_event(3))
|
|
432
|
-
screenshot_result = box.mobile_get_screenshot()
|
|
490
|
+
print(box.list_tools()) # List all available tools
|
|
491
|
+
print(box.mobile_get_screen_resolution()) # Get the screen resolution
|
|
492
|
+
print(box.mobile_tap([500, 1000])) # Tap at coordinate (500, 1000)
|
|
493
|
+
print(box.mobile_input_text("Hello from AgentScope!")) # Input text
|
|
494
|
+
print(box.mobile_key_event(3)) # HOME key event
|
|
495
|
+
screenshot_result = box.mobile_get_screenshot() # Get screenshot
|
|
496
|
+
print(screenshot_result)
|
|
497
|
+
input("Press Enter to continue...")
|
|
498
|
+
|
|
499
|
+
# --- Asynchronous version ---
|
|
500
|
+
from agentscope_runtime.sandbox import MobileSandboxAsync
|
|
501
|
+
|
|
502
|
+
async with MobileSandboxAsync() as box:
|
|
503
|
+
# Default image is 'agentscope/runtime-sandbox-mobile:latest'
|
|
504
|
+
print(await box.list_tools()) # List all available tools
|
|
505
|
+
print(await box.mobile_get_screen_resolution()) # Get the screen resolution
|
|
506
|
+
print(await box.mobile_tap([500, 1000])) # Tap at coordinate (500, 1000)
|
|
507
|
+
print(await box.mobile_input_text("Hello from AgentScope!")) # Input text
|
|
508
|
+
print(await box.mobile_key_event(3)) # HOME key event
|
|
509
|
+
screenshot_result = await box.mobile_get_screenshot() # Get screenshot
|
|
510
|
+
print(screenshot_result)
|
|
433
511
|
input("Press Enter to continue...")
|
|
434
512
|
```
|
|
435
513
|
|
|
@@ -500,15 +578,11 @@ Example:
|
|
|
500
578
|
agentscope-registry.ap-southeast-1.cr.aliyuncs.com/agentscope/runtime-sandbox-base:preview
|
|
501
579
|
```
|
|
502
580
|
|
|
503
|
-
---
|
|
504
|
-
|
|
505
581
|
#### Serverless Sandbox Deployment
|
|
506
582
|
|
|
507
|
-
AgentScope Runtime also supports serverless deployment, which is suitable for running sandboxes in a serverless environment,
|
|
508
|
-
[Alibaba Cloud Function Compute (FC)](https://help.aliyun.com/zh/functioncompute/fc/) or [Alibaba Cloud AgentRun](https://docs.agent.run/).
|
|
583
|
+
AgentScope Runtime also supports serverless deployment, which is suitable for running sandboxes in a serverless environment, e.g. [Alibaba Cloud Function Compute (FC)](https://help.aliyun.com/zh/functioncompute/fc/).
|
|
509
584
|
|
|
510
|
-
First, please refer to the [documentation](https://runtime.agentscope.io/en/sandbox/advanced.html#optional-function-compute-fc-settings) to configure the serverless environment variables.
|
|
511
|
-
Make `CONTAINER_DEPLOYMENT` to `fc` or `agentrun` to enable serverless deployment.
|
|
585
|
+
First, please refer to the [documentation](https://runtime.agentscope.io/en/sandbox/advanced.html#optional-function-compute-fc-settings) to configure the serverless environment variables. Make `CONTAINER_DEPLOYMENT` to `fc` to enable serverless deployment.
|
|
512
586
|
|
|
513
587
|
Then, start a sandbox server, use the `--config` option to specify a serverless environment setup:
|
|
514
588
|
|
|
@@ -569,8 +643,7 @@ print(response)
|
|
|
569
643
|
```
|
|
570
644
|
|
|
571
645
|
Besides, `DeployManager` also supports serverless deployments, such as deploying your agent app
|
|
572
|
-
to [ModelStudio](https://bailian.console.aliyun.com/?admin=1&tab=doc#/doc/?type=app&url=2983030)
|
|
573
|
-
or [AgentRun](https://docs.agent.run/).
|
|
646
|
+
to [ModelStudio](https://bailian.console.aliyun.com/?admin=1&tab=doc#/doc/?type=app&url=2983030).
|
|
574
647
|
|
|
575
648
|
```python
|
|
576
649
|
from agentscope_runtime.engine.deployers import ModelStudioDeployManager
|
|
@@ -652,7 +725,7 @@ limitations under the License.
|
|
|
652
725
|
|
|
653
726
|
## Contributors ✨
|
|
654
727
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
655
|
-
[](#contributors-)
|
|
656
729
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
657
730
|
|
|
658
731
|
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/emoji-key/)):
|
|
@@ -695,6 +768,13 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/e
|
|
|
695
768
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/k-farruh"><img src="https://avatars.githubusercontent.com/u/33511681?v=4?s=100" width="100px;" alt="Farruh Kushnazarov"/><br /><sub><b>Farruh Kushnazarov</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=k-farruh" title="Documentation">📖</a></td>
|
|
696
769
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fengxsong"><img src="https://avatars.githubusercontent.com/u/7008971?v=4?s=100" width="100px;" alt="fengxsong"/><br /><sub><b>fengxsong</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3Afengxsong" title="Bug reports">🐛</a></td>
|
|
697
770
|
<td align="center" valign="top" width="14.28%"><a href="https://m4n5ter.github.io"><img src="https://avatars.githubusercontent.com/u/68144809?v=4?s=100" width="100px;" alt="Wang"/><br /><sub><b>Wang</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=M4n5ter" title="Code">💻</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3AM4n5ter" title="Bug reports">🐛</a></td>
|
|
771
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qiacheng7"><img src="https://avatars.githubusercontent.com/u/223075252?v=4?s=100" width="100px;" alt="qiacheng7"/><br /><sub><b>qiacheng7</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=qiacheng7" title="Code">💻</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=qiacheng7" title="Documentation">📖</a></td>
|
|
772
|
+
<td align="center" valign="top" width="14.28%"><a href="https://xieyxclack.github.io/"><img src="https://avatars.githubusercontent.com/u/31954383?v=4?s=100" width="100px;" alt="Yuexiang XIE"/><br /><sub><b>Yuexiang XIE</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3Axieyxclack" title="Reviewed Pull Requests">👀</a></td>
|
|
773
|
+
</tr>
|
|
774
|
+
<tr>
|
|
775
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RTsama"><img src="https://avatars.githubusercontent.com/u/100779257?v=4?s=100" width="100px;" alt="RTsama"/><br /><sub><b>RTsama</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3ARTsama" title="Bug reports">🐛</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=RTsama" title="Code">💻</a></td>
|
|
776
|
+
<td align="center" valign="top" width="14.28%"><a href="https://allenli178.top"><img src="https://avatars.githubusercontent.com/u/53218750?v=4?s=100" width="100px;" alt="YuYan"/><br /><sub><b>YuYan</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=allenli178" title="Documentation">📖</a></td>
|
|
777
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rlp2006"><img src="https://avatars.githubusercontent.com/u/212365247?v=4?s=100" width="100px;" alt="Li Peng (Yuan Yi)"/><br /><sub><b>Li Peng (Yuan Yi)</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=rlp2006" title="Code">💻</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=rlp2006" title="Documentation">📖</a> <a href="#example-rlp2006" title="Examples">💡</a></td>
|
|
698
778
|
</tr>
|
|
699
779
|
</tbody>
|
|
700
780
|
<tfoot>
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
# AgentScope Runtime v1.0
|
|
4
4
|
|
|
5
5
|
[](https://github.com/agentscope-ai/agentscope-runtime)
|
|
6
|
+
[](http://webui.runtime.agentscope.io/)
|
|
6
7
|
[](https://pypi.org/project/agentscope-runtime/)
|
|
7
8
|
[](https://pepy.tech/project/agentscope-runtime)
|
|
8
9
|
[](https://python.org)
|
|
@@ -20,6 +21,7 @@
|
|
|
20
21
|
[](https://qr.dingtalk.com/action/joingroup?code=v1,k1,OmDlBXpjW+I2vWjKDsjvI9dhcXjGZi3bQiojOq3dlDw=&_dt_no_comment=1&origin=11)
|
|
21
22
|
|
|
22
23
|
[[Cookbook]](https://runtime.agentscope.io/)
|
|
24
|
+
[[Try WebUI]](http://webui.runtime.agentscope.io/)
|
|
23
25
|
[[中文README]](README_zh.md)
|
|
24
26
|
[[Samples]](https://github.com/agentscope-ai/agentscope-samples)
|
|
25
27
|
|
|
@@ -35,6 +37,7 @@
|
|
|
35
37
|
|
|
36
38
|
## 🆕 NEWS
|
|
37
39
|
|
|
40
|
+
* **[2026-01]** Added **asynchronous sandbox** implementations (`BaseSandboxAsync`, `GuiSandboxAsync`, `BrowserSandboxAsync`, `FilesystemSandboxAsync`, `MobileSandboxAsync`) enabling non-blocking, concurrent tool execution in async program. Improved `run_ipython_cell` and `run_shell_command` methods with enhanced **concurrency and parallel execution** capabilities for more efficient sandbox operations.
|
|
38
41
|
* **[2025-12]** We have released **AgentScope Runtime v1.0**, introducing a unified “Agent as API” white-box development experience, with enhanced multi-agent collaboration, state persistence, and cross-framework integration. This release also streamlines abstractions and modules to ensure consistency between development and production environments. Please refer to the **[CHANGELOG](https://runtime.agentscope.io/en/CHANGELOG.html)** for full update details and migration guide.
|
|
39
42
|
|
|
40
43
|
---
|
|
@@ -54,11 +57,11 @@
|
|
|
54
57
|
>
|
|
55
58
|
> | Framework/Feature | Message/Event | Tool | Service |
|
|
56
59
|
> | ------------------------------------------------------------ | ------------- | ---- | ------- |
|
|
57
|
-
> | AgentScope
|
|
60
|
+
> | [AgentScope](https://runtime.agentscope.io/en/quickstart.html) | ✅ | ✅ | ✅ |
|
|
58
61
|
> | [LangGraph](https://runtime.agentscope.io/en/langgraph_guidelines.html) | ✅ | 🚧 | 🚧 |
|
|
59
|
-
> |
|
|
60
|
-
> | Microsoft Agent Framework | 🚧 | 🚧 | 🚧 |
|
|
62
|
+
> | [Microsoft Agent Framework](https://runtime.agentscope.io/en/ms_agent_framework_guidelines.html) | ✅ | ✅ | 🚧 |
|
|
61
63
|
> | [Agno](https://runtime.agentscope.io/en/agno_guidelines.html) | ✅ | ✅ | 🚧 |
|
|
64
|
+
> | AutoGen | 🚧 | ✅ | 🚧 |
|
|
62
65
|
|
|
63
66
|
---
|
|
64
67
|
|
|
@@ -258,15 +261,29 @@ These examples demonstrate how to create sandboxed environments and execute tool
|
|
|
258
261
|
|
|
259
262
|
> [!NOTE]
|
|
260
263
|
>
|
|
261
|
-
>
|
|
264
|
+
> If you want to run the sandbox locally, the current version requires Docker or Kubernetes to be installed and running. In the future, we will offer more public cloud deployment options, as well as other virtualization technologies. Please refer to [this tutorial](https://runtime.agentscope.io/en/sandbox.html) for more details.
|
|
262
265
|
>
|
|
263
266
|
> If you plan to use the sandbox on a large scale in production, we recommend deploying it directly in Alibaba Cloud for managed hosting: [One-click deploy sandbox on Alibaba Cloud](https://computenest.console.aliyun.com/service/instance/create/default?ServiceName=AgentScope%20Runtime%20%E6%B2%99%E7%AE%B1%E7%8E%AF%E5%A2%83)
|
|
264
267
|
|
|
268
|
+
> [!TIP]
|
|
269
|
+
> AgentScope Runtime provides **both synchronous** and **asynchronous** versions for each sandbox type
|
|
270
|
+
|
|
271
|
+
| Synchronous Class | Asynchronous Class |
|
|
272
|
+
| ------------------- | ------------------------ |
|
|
273
|
+
| `BaseSandbox` | `BaseSandboxAsync` |
|
|
274
|
+
| `GuiSandbox` | `GuiSandboxAsync` |
|
|
275
|
+
| `FilesystemSandbox` | `FilesystemSandboxAsync` |
|
|
276
|
+
| `BrowserSandbox` | `BrowserSandboxAsync` |
|
|
277
|
+
| `MobileSandbox` | `MobileSandboxAsync` |
|
|
278
|
+
| `TrainingSandbox` | - |
|
|
279
|
+
| `AgentbaySandbox` | - |
|
|
280
|
+
|
|
265
281
|
#### Base Sandbox
|
|
266
282
|
|
|
267
283
|
Use for running **Python code** or **shell commands** in an isolated environment.
|
|
268
284
|
|
|
269
285
|
```python
|
|
286
|
+
# --- Synchronous version ---
|
|
270
287
|
from agentscope_runtime.sandbox import BaseSandbox
|
|
271
288
|
|
|
272
289
|
with BaseSandbox() as box:
|
|
@@ -275,6 +292,15 @@ with BaseSandbox() as box:
|
|
|
275
292
|
print(box.run_ipython_cell(code="print('hi')")) # Run Python code
|
|
276
293
|
print(box.run_shell_command(command="echo hello")) # Run shell command
|
|
277
294
|
input("Press Enter to continue...")
|
|
295
|
+
|
|
296
|
+
# --- Asynchronous version ---
|
|
297
|
+
from agentscope_runtime.sandbox import BaseSandboxAsync
|
|
298
|
+
|
|
299
|
+
async with BaseSandboxAsync() as box:
|
|
300
|
+
# Default image is `agentscope/runtime-sandbox-base:latest`
|
|
301
|
+
print(await box.list_tools()) # List all available tools
|
|
302
|
+
print(await box.run_ipython_cell(code="print('hi')")) # Run Python code
|
|
303
|
+
print(await box.run_shell_command(command="echo hello")) # Run shell command
|
|
278
304
|
```
|
|
279
305
|
|
|
280
306
|
#### GUI Sandbox
|
|
@@ -284,14 +310,26 @@ Provides a **virtual desktop** environment for mouse, keyboard, and screen opera
|
|
|
284
310
|
<img src="https://img.alicdn.com/imgextra/i2/O1CN01df5SaM1xKFQP4KGBW_!!6000000006424-2-tps-2958-1802.png" alt="GUI Sandbox" width="800" height="500">
|
|
285
311
|
|
|
286
312
|
```python
|
|
313
|
+
# --- Synchronous version ---
|
|
287
314
|
from agentscope_runtime.sandbox import GuiSandbox
|
|
288
315
|
|
|
289
316
|
with GuiSandbox() as box:
|
|
290
317
|
# By default, pulls `agentscope/runtime-sandbox-gui:latest` from DockerHub
|
|
291
|
-
print(box.list_tools())
|
|
318
|
+
print(box.list_tools()) # List all available tools
|
|
292
319
|
print(box.desktop_url) # Web desktop access URL
|
|
293
320
|
print(box.computer_use(action="get_cursor_position")) # Get mouse cursor position
|
|
294
|
-
print(box.computer_use(action="get_screenshot"))
|
|
321
|
+
print(box.computer_use(action="get_screenshot")) # Capture screenshot
|
|
322
|
+
input("Press Enter to continue...")
|
|
323
|
+
|
|
324
|
+
# --- Asynchronous version ---
|
|
325
|
+
from agentscope_runtime.sandbox import GuiSandboxAsync
|
|
326
|
+
|
|
327
|
+
async with GuiSandboxAsync() as box:
|
|
328
|
+
# Default image is `agentscope/runtime-sandbox-gui:latest`
|
|
329
|
+
print(await box.list_tools()) # List all available tools
|
|
330
|
+
print(box.desktop_url) # Web desktop access URL
|
|
331
|
+
print(await box.computer_use(action="get_cursor_position")) # Get mouse cursor position
|
|
332
|
+
print(await box.computer_use(action="get_screenshot")) # Capture screenshot
|
|
295
333
|
input("Press Enter to continue...")
|
|
296
334
|
```
|
|
297
335
|
|
|
@@ -302,14 +340,25 @@ A GUI-based sandbox with **browser operations** inside an isolated sandbox.
|
|
|
302
340
|
<img src="https://img.alicdn.com/imgextra/i4/O1CN01OIq1dD1gAJMcm0RFR_!!6000000004101-2-tps-2734-1684.png" alt="GUI Sandbox" width="800" height="500">
|
|
303
341
|
|
|
304
342
|
```python
|
|
343
|
+
# --- Synchronous version ---
|
|
305
344
|
from agentscope_runtime.sandbox import BrowserSandbox
|
|
306
345
|
|
|
307
346
|
with BrowserSandbox() as box:
|
|
308
347
|
# By default, pulls `agentscope/runtime-sandbox-browser:latest` from DockerHub
|
|
309
|
-
print(box.list_tools())
|
|
348
|
+
print(box.list_tools()) # List all available tools
|
|
310
349
|
print(box.desktop_url) # Web desktop access URL
|
|
311
350
|
box.browser_navigate("https://www.google.com/") # Open a webpage
|
|
312
351
|
input("Press Enter to continue...")
|
|
352
|
+
|
|
353
|
+
# --- Asynchronous version ---
|
|
354
|
+
from agentscope_runtime.sandbox import BrowserSandboxAsync
|
|
355
|
+
|
|
356
|
+
async with BrowserSandboxAsync() as box:
|
|
357
|
+
# Default image is `agentscope/runtime-sandbox-browser:latest`
|
|
358
|
+
print(await box.list_tools()) # List all available tools
|
|
359
|
+
print(box.desktop_url) # Web desktop access URL
|
|
360
|
+
await box.browser_navigate("https://www.google.com/") # Open a webpage
|
|
361
|
+
input("Press Enter to continue...")
|
|
313
362
|
```
|
|
314
363
|
|
|
315
364
|
#### Filesystem Sandbox
|
|
@@ -319,13 +368,24 @@ A GUI-based sandbox with **file system operations** such as creating, reading, a
|
|
|
319
368
|
<img src="https://img.alicdn.com/imgextra/i3/O1CN01VocM961vK85gWbJIy_!!6000000006153-2-tps-2730-1686.png" alt="GUI Sandbox" width="800" height="500">
|
|
320
369
|
|
|
321
370
|
```python
|
|
322
|
-
|
|
371
|
+
# --- Synchronous version ---
|
|
372
|
+
from agentscope_runtime.sandbox import BrowserSandbox
|
|
323
373
|
|
|
324
|
-
with
|
|
325
|
-
# By default, pulls `agentscope/runtime-sandbox-
|
|
326
|
-
print(box.list_tools())
|
|
374
|
+
with BrowserSandbox() as box:
|
|
375
|
+
# By default, pulls `agentscope/runtime-sandbox-browser:latest` from DockerHub
|
|
376
|
+
print(box.list_tools()) # List all available tools
|
|
377
|
+
print(box.desktop_url) # Web desktop access URL
|
|
378
|
+
box.browser_navigate("https://www.google.com/") # Open a webpage
|
|
379
|
+
input("Press Enter to continue...")
|
|
380
|
+
|
|
381
|
+
# --- Asynchronous version ---
|
|
382
|
+
from agentscope_runtime.sandbox import BrowserSandboxAsync
|
|
383
|
+
|
|
384
|
+
async with BrowserSandboxAsync() as box:
|
|
385
|
+
# Default image is `agentscope/runtime-sandbox-browser:latest`
|
|
386
|
+
print(await box.list_tools()) # List all available tools
|
|
327
387
|
print(box.desktop_url) # Web desktop access URL
|
|
328
|
-
box.
|
|
388
|
+
await box.browser_navigate("https://www.google.com/") # Open a webpage
|
|
329
389
|
input("Press Enter to continue...")
|
|
330
390
|
```
|
|
331
391
|
|
|
@@ -350,16 +410,32 @@ Provides a **sandboxed Android emulator environment** that allows executing vari
|
|
|
350
410
|
- **Architecture Compatibility**:
|
|
351
411
|
When running on an ARM64/aarch64 architecture (e.g., Apple M-series chips), you may encounter compatibility or performance issues. It is recommended to run on an x86_64 host.
|
|
352
412
|
```python
|
|
413
|
+
# --- Synchronous version ---
|
|
353
414
|
from agentscope_runtime.sandbox import MobileSandbox
|
|
354
415
|
|
|
355
416
|
with MobileSandbox() as box:
|
|
356
417
|
# By default, pulls 'agentscope/runtime-sandbox-mobile:latest' from DockerHub
|
|
357
|
-
print(box.list_tools())
|
|
358
|
-
print(box.mobile_get_screen_resolution())
|
|
359
|
-
print(box.mobile_tap([500, 1000]))
|
|
360
|
-
print(box.mobile_input_text("Hello from AgentScope!"))
|
|
361
|
-
print(box.mobile_key_event(3))
|
|
362
|
-
screenshot_result = box.mobile_get_screenshot()
|
|
418
|
+
print(box.list_tools()) # List all available tools
|
|
419
|
+
print(box.mobile_get_screen_resolution()) # Get the screen resolution
|
|
420
|
+
print(box.mobile_tap([500, 1000])) # Tap at coordinate (500, 1000)
|
|
421
|
+
print(box.mobile_input_text("Hello from AgentScope!")) # Input text
|
|
422
|
+
print(box.mobile_key_event(3)) # HOME key event
|
|
423
|
+
screenshot_result = box.mobile_get_screenshot() # Get screenshot
|
|
424
|
+
print(screenshot_result)
|
|
425
|
+
input("Press Enter to continue...")
|
|
426
|
+
|
|
427
|
+
# --- Asynchronous version ---
|
|
428
|
+
from agentscope_runtime.sandbox import MobileSandboxAsync
|
|
429
|
+
|
|
430
|
+
async with MobileSandboxAsync() as box:
|
|
431
|
+
# Default image is 'agentscope/runtime-sandbox-mobile:latest'
|
|
432
|
+
print(await box.list_tools()) # List all available tools
|
|
433
|
+
print(await box.mobile_get_screen_resolution()) # Get the screen resolution
|
|
434
|
+
print(await box.mobile_tap([500, 1000])) # Tap at coordinate (500, 1000)
|
|
435
|
+
print(await box.mobile_input_text("Hello from AgentScope!")) # Input text
|
|
436
|
+
print(await box.mobile_key_event(3)) # HOME key event
|
|
437
|
+
screenshot_result = await box.mobile_get_screenshot() # Get screenshot
|
|
438
|
+
print(screenshot_result)
|
|
363
439
|
input("Press Enter to continue...")
|
|
364
440
|
```
|
|
365
441
|
|
|
@@ -430,15 +506,11 @@ Example:
|
|
|
430
506
|
agentscope-registry.ap-southeast-1.cr.aliyuncs.com/agentscope/runtime-sandbox-base:preview
|
|
431
507
|
```
|
|
432
508
|
|
|
433
|
-
---
|
|
434
|
-
|
|
435
509
|
#### Serverless Sandbox Deployment
|
|
436
510
|
|
|
437
|
-
AgentScope Runtime also supports serverless deployment, which is suitable for running sandboxes in a serverless environment,
|
|
438
|
-
[Alibaba Cloud Function Compute (FC)](https://help.aliyun.com/zh/functioncompute/fc/) or [Alibaba Cloud AgentRun](https://docs.agent.run/).
|
|
511
|
+
AgentScope Runtime also supports serverless deployment, which is suitable for running sandboxes in a serverless environment, e.g. [Alibaba Cloud Function Compute (FC)](https://help.aliyun.com/zh/functioncompute/fc/).
|
|
439
512
|
|
|
440
|
-
First, please refer to the [documentation](https://runtime.agentscope.io/en/sandbox/advanced.html#optional-function-compute-fc-settings) to configure the serverless environment variables.
|
|
441
|
-
Make `CONTAINER_DEPLOYMENT` to `fc` or `agentrun` to enable serverless deployment.
|
|
513
|
+
First, please refer to the [documentation](https://runtime.agentscope.io/en/sandbox/advanced.html#optional-function-compute-fc-settings) to configure the serverless environment variables. Make `CONTAINER_DEPLOYMENT` to `fc` to enable serverless deployment.
|
|
442
514
|
|
|
443
515
|
Then, start a sandbox server, use the `--config` option to specify a serverless environment setup:
|
|
444
516
|
|
|
@@ -499,8 +571,7 @@ print(response)
|
|
|
499
571
|
```
|
|
500
572
|
|
|
501
573
|
Besides, `DeployManager` also supports serverless deployments, such as deploying your agent app
|
|
502
|
-
to [ModelStudio](https://bailian.console.aliyun.com/?admin=1&tab=doc#/doc/?type=app&url=2983030)
|
|
503
|
-
or [AgentRun](https://docs.agent.run/).
|
|
574
|
+
to [ModelStudio](https://bailian.console.aliyun.com/?admin=1&tab=doc#/doc/?type=app&url=2983030).
|
|
504
575
|
|
|
505
576
|
```python
|
|
506
577
|
from agentscope_runtime.engine.deployers import ModelStudioDeployManager
|
|
@@ -582,7 +653,7 @@ limitations under the License.
|
|
|
582
653
|
|
|
583
654
|
## Contributors ✨
|
|
584
655
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
585
|
-
[](#contributors-)
|
|
586
657
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
587
658
|
|
|
588
659
|
Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/emoji-key/)):
|
|
@@ -625,6 +696,13 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/e
|
|
|
625
696
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/k-farruh"><img src="https://avatars.githubusercontent.com/u/33511681?v=4?s=100" width="100px;" alt="Farruh Kushnazarov"/><br /><sub><b>Farruh Kushnazarov</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=k-farruh" title="Documentation">📖</a></td>
|
|
626
697
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/fengxsong"><img src="https://avatars.githubusercontent.com/u/7008971?v=4?s=100" width="100px;" alt="fengxsong"/><br /><sub><b>fengxsong</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3Afengxsong" title="Bug reports">🐛</a></td>
|
|
627
698
|
<td align="center" valign="top" width="14.28%"><a href="https://m4n5ter.github.io"><img src="https://avatars.githubusercontent.com/u/68144809?v=4?s=100" width="100px;" alt="Wang"/><br /><sub><b>Wang</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=M4n5ter" title="Code">💻</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3AM4n5ter" title="Bug reports">🐛</a></td>
|
|
699
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/qiacheng7"><img src="https://avatars.githubusercontent.com/u/223075252?v=4?s=100" width="100px;" alt="qiacheng7"/><br /><sub><b>qiacheng7</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=qiacheng7" title="Code">💻</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=qiacheng7" title="Documentation">📖</a></td>
|
|
700
|
+
<td align="center" valign="top" width="14.28%"><a href="https://xieyxclack.github.io/"><img src="https://avatars.githubusercontent.com/u/31954383?v=4?s=100" width="100px;" alt="Yuexiang XIE"/><br /><sub><b>Yuexiang XIE</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/pulls?q=is%3Apr+reviewed-by%3Axieyxclack" title="Reviewed Pull Requests">👀</a></td>
|
|
701
|
+
</tr>
|
|
702
|
+
<tr>
|
|
703
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/RTsama"><img src="https://avatars.githubusercontent.com/u/100779257?v=4?s=100" width="100px;" alt="RTsama"/><br /><sub><b>RTsama</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/issues?q=author%3ARTsama" title="Bug reports">🐛</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=RTsama" title="Code">💻</a></td>
|
|
704
|
+
<td align="center" valign="top" width="14.28%"><a href="https://allenli178.top"><img src="https://avatars.githubusercontent.com/u/53218750?v=4?s=100" width="100px;" alt="YuYan"/><br /><sub><b>YuYan</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=allenli178" title="Documentation">📖</a></td>
|
|
705
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/rlp2006"><img src="https://avatars.githubusercontent.com/u/212365247?v=4?s=100" width="100px;" alt="Li Peng (Yuan Yi)"/><br /><sub><b>Li Peng (Yuan Yi)</b></sub></a><br /><a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=rlp2006" title="Code">💻</a> <a href="https://github.com/agentscope-ai/agentscope-runtime/commits?author=rlp2006" title="Documentation">📖</a> <a href="#example-rlp2006" title="Examples">💡</a></td>
|
|
628
706
|
</tr>
|
|
629
707
|
</tbody>
|
|
630
708
|
<tfoot>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "agentscope-runtime"
|
|
3
|
-
version = "1.0.
|
|
3
|
+
version = "1.0.4"
|
|
4
4
|
description = "A production-ready runtime framework for agent applications, providing secure sandboxed execution environments and scalable deployment solutions with multi-framework support."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.10"
|
|
@@ -75,7 +75,7 @@ ext = [
|
|
|
75
75
|
"alibabacloud-fc20230330>=4.4.0",
|
|
76
76
|
"tablestore-for-agent-memory>=1.1.0",
|
|
77
77
|
"langchain-community>=0.3.27",
|
|
78
|
-
"wuying-agentbay-sdk>=0.5.0",
|
|
78
|
+
"wuying-agentbay-sdk>=0.5.0,<0.13.0",
|
|
79
79
|
"alipay-sdk-python",
|
|
80
80
|
"cryptography",
|
|
81
81
|
"gunicorn>=20.0.0",
|
|
@@ -90,6 +90,8 @@ ext = [
|
|
|
90
90
|
"alibabacloud-credentials",
|
|
91
91
|
"PyYAML",
|
|
92
92
|
"agno>=2.3.8",
|
|
93
|
+
"nacos-sdk-python>=3.0.0",
|
|
94
|
+
"agent-framework>=1.0.0b251120",
|
|
93
95
|
]
|
|
94
96
|
|
|
95
97
|
[tool.pytest.ini_options]
|
|
@@ -9,6 +9,7 @@ from urllib.parse import urlparse
|
|
|
9
9
|
from agentscope import setup_logger
|
|
10
10
|
from agentscope.message import Msg
|
|
11
11
|
|
|
12
|
+
from ..utils import _update_obj_attrs
|
|
12
13
|
from ...engine.schemas.agent_schemas import (
|
|
13
14
|
Message,
|
|
14
15
|
Content,
|
|
@@ -26,13 +27,6 @@ from ...engine.schemas.agent_schemas import (
|
|
|
26
27
|
setup_logger("ERROR")
|
|
27
28
|
|
|
28
29
|
|
|
29
|
-
def _update_obj_attrs(obj, **attrs):
|
|
30
|
-
for key, value in attrs.items():
|
|
31
|
-
if hasattr(obj, key):
|
|
32
|
-
setattr(obj, key, value)
|
|
33
|
-
return obj
|
|
34
|
-
|
|
35
|
-
|
|
36
30
|
async def adapt_agentscope_message_stream(
|
|
37
31
|
source_stream: AsyncIterator[Tuple[Msg, bool]],
|
|
38
32
|
) -> AsyncIterator[Union[Message, Content]]:
|
|
@@ -97,10 +91,9 @@ async def adapt_agentscope_message_stream(
|
|
|
97
91
|
else:
|
|
98
92
|
new_tool_blocks.append(block)
|
|
99
93
|
if new_tool_blocks:
|
|
100
|
-
if tool_start:
|
|
94
|
+
if tool_start: # Only for close the last msg
|
|
101
95
|
msg.content = new_tool_blocks
|
|
102
96
|
else:
|
|
103
|
-
msg.content = new_blocks
|
|
104
97
|
tool_start = True
|
|
105
98
|
|
|
106
99
|
else:
|