[project] name = "agentscope" dynamic = ["version"] description = "AgentScope: A Flexible yet Robust Multi-Agent Platform." readme = "README.md" authors = [ { name = "SysML team of Alibaba Tongyi Lab", email = "gaodawei.gdw@alibaba-inc.com" } ] license = "Apache-2.0" keywords = ["deep-learning", "multi agents", "agents"] classifiers = [ "Development Status :: 4 - Beta", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Operating System :: OS Independent", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "Topic :: Scientific/Engineering :: Artificial Intelligence", ] requires-python = ">=3.10" dependencies = [ "aioitertools", "anthropic", "dashscope", "docstring_parser", "json5", "json_repair", "mcp>=1.13", "numpy", "openai", "python-datauri", "opentelemetry-api>=1.39.0", "opentelemetry-sdk>=1.39.0", "opentelemetry-exporter-otlp>=1.39.0", "opentelemetry-semantic-conventions>=0.60b0", "python-socketio", "shortuuid", "tiktoken", "sounddevice", "sqlalchemy", "python-frontmatter", ] [project.optional-dependencies] # ------------ A2A protocol ------------ a2a = [ "a2a-sdk", "httpx", # TODO: split the card resolvers from the a2a dependency "nacos-sdk-python>=3.0.0", ] # ------------ Realtime ------------- realtime = ["websockets>=14.0", "scipy"] # ------------ Model APIs ------------ gemini = ["google-genai"] ollama = ["ollama>=0.5.4"] models = [ "agentscope[ollama]", "agentscope[gemini]", ] # ------------ Tokenizers ------------ tokens = [ "Pillow", "transformers", "jinja2", ] # ------------ Memory ------------ redis_memory = ["redis"] mem0ai = [ "mem0ai<=1.0.3", "packaging" ] reme = ["reme-ai>=0.2.0.3"] memory = [ "agentscope[redis_memory]", "agentscope[mem0ai]", "agentscope[reme]", ] # ------------ RAG ------------ # readers text-reader = ["nltk"] pdf-reader = [ "agentscope[text-reader]", # TODO: the latest pypdf has some issues with parsing PDFs # (2026-01-13), so we fix the version here temporarily. "pypdf<=6.5.0", ] docx-reader = [ "agentscope[text-reader]", "python-docx" ] excel-reader = [ "agentscope[text-reader]", "pandas", "openpyxl", ] ppt-reader = [ "agentscope[text-reader]", "python-pptx" ] readers = [ "agentscope[text-reader]", "agentscope[pdf-reader]", "agentscope[docx-reader]", "agentscope[excel-reader]", "agentscope[ppt-reader]", ] # vdb # The qdrant-client >= 1.16.0 has conflicts with pymilvus, so we fix # the version to 1.15.1 here. qdrant = ["qdrant-client==1.15.1"] milvus = ["pymilvus[milvus_lite]"] ali_mysql = ["mysql-connector-python"] mongodb = ["pymongo"] oceanbase = ["pyobvector>=0.2.0,<0.3.0"] vdbs = [ "agentscope[ali_mysql]", "agentscope[qdrant]", "agentscope[milvus]", "agentscope[mongodb]", "agentscope[oceanbase]", ] rag = [ "agentscope[readers]", "agentscope[vdbs]", ] # ------------ Evaluation ------------ evaluate = ["ray"] # ------------ Full ------------ full = [ "agentscope[a2a]", "agentscope[models]", "agentscope[tokens]", "agentscope[memory]", "agentscope[rag]", "agentscope[evaluate]", "agentscope[realtime]", ] # ------------ Development ------------ dev = [ # Include full dependencies from local package "agentscope[full]", # Development tools "pre-commit", "pytest", "pytest-forked", "sphinx-gallery", "furo", "myst_parser", "matplotlib", # For unittests # For mocking redis in unittests "fakeredis", "aiosqlite", "greenlet", # For openjudge "py-openjudge", ] [project.urls] Homepage = "https://github.com/agentscope-ai/agentscope" Documentation = "https://doc.agentscope.io/" Repository = "https://github.com/agentscope-ai/agentscope" [tool.setuptools] packages = { find = { where = ["src"] } } include-package-data = true [tool.setuptools.package-data] "*" = ["py.typed"] [build-system] requires = ["setuptools>=45", "wheel"] build-backend = "setuptools.build_meta" [tool.setuptools.dynamic] version = {attr = "agentscope._version.__version__"}