{"package":"ag2","ecosystem":"pypi","latest_version":"0.12.1","description":"A programming framework for agentic AI","license":"Apache-2.0","license_risk":"permissive","commercial_use_notes":"Permissive: commercial closed-source use OK; preserve the copyright notice.","homepage":"https://pypi.org/project/ag2/","repository":"https://github.com/ag2ai/ag2","downloads_weekly":354631,"health":{"score":79,"risk":"moderate","breakdown":{"maintenance":25,"popularity":14,"security":25,"maturity":15,"community":0},"deprecated":false,"max_score":100},"vulnerabilities":{"count":0,"critical":0,"high":0,"medium":0,"low":0,"details":[]},"versions":{"latest":"0.12.1","total_count":76,"recent":["0.9.5","0.9.6","0.9.7","0.9.8.post1","0.9.9","0.9.10","0.10.0","0.10.1","0.10.2","0.10.3","0.10.4","0.10.5","0.11.0","0.11.1","0.11.2","0.11.3","0.11.4","0.11.5","0.12.0","0.12.1"]},"metadata":{"deprecated":false,"deprecated_message":null,"maintainers_count":0,"first_published":null,"last_published":"2026-04-24T22:17:28.670799Z","dependencies_count":340,"dependencies":["anyio<5.0.0,>=4.0.0","fast-depends[pydantic]<4.0.0,>=3.0.8","httpx<1,>=0.28.1","packaging","pydantic<3,>=2.6.1","python-dotenv","pyyaml>=6.0.2","termcolor","tiktoken","a2a-sdk[http-server]<0.4,>=0.3.11; extra == \"a2a\"","jsonschema<5,>=4.0.0; extra == \"a2ui\"","ag-ui-protocol<0.2,>=0.1.10; extra == \"ag-ui\"","anthropic[vertex]<1,>=0.79.0; extra == \"anthropic\"","chromadb<1.4,>=1.3.0; extra == \"autobuild\"","huggingface-hub; extra == \"autobuild\"","sentence-transformers<=6,>=5.2.2; extra == \"autobuild\"","boto3>=1.34.149; extra == \"bedrock\"","flaml[blendsearch]; extra == \"blendsearch\"","browser-use<1.0,>=0.3.1; extra == \"browser-use\"","langchain-google-vertexai<3.0,>=2.0; extra == \"browser-use\"","chromadb<1.4,>=1.3.0; extra == \"captainagent\"","huggingface-hub; extra == \"captainagent\"","pandas; extra == \"captainagent\"","sentence-transformers<=6,>=5.2.2; extra == \"captainagent\"","cerebras-cloud-sdk>=1.0.0; extra == \"cerebras\"","cohere>=5.13.5; extra == \"cohere\"","discord-py<2.7,>=2.4.0; extra == \"commsagent-discord\"","slack-sdk<3.40,>=3.33.0; extra == \"commsagent-slack\"","telethon<2,>=1.38.1; extra == \"commsagent-telegram\"","azure-cosmos>=4.2.0; extra == \"cosmosdb\"","crawl4ai<0.9,>=0.5.0; extra == \"crawl4ai\"","dashscope>=1.25.13; extra == \"dashscope\"","daytona>=0.1.0; extra == \"daytona\"","ddgs<10,>=9.0.0; extra == \"ddgs\"","openai<2,>=1.99.3; extra == \"deepseek\"","a2a-sdk[http-server]<0.4,>=0.3.11; extra == \"dev\"","ag-ui-protocol<0.2,>=0.1.10; extra == \"dev\"","aiofiles<26.0.0,>=24.1.0; extra == \"dev\"","anthropic[vertex]<1,>=0.79.0; extra == \"dev\"","cairosvg; extra == \"dev\"","codespell==2.4.1; extra == \"dev\"","dashscope>=1.25.13; extra == \"dev\"","ddgs<10,>=9.0.0; extra == \"dev\"","detect-secrets==1.5.0; extra == \"dev\"","dirty-equals<0.12,>=0.11; extra == \"dev\"","docker>=6.0.0; extra == \"dev\"","exa-py<3,>=2.0.0; extra == \"dev\"","fastapi==0.116.1; extra == \"dev\"","fix-busted-json>=0.0.18; extra == \"dev\"","freezegun<2,>=1.5.5; extra == \"dev\"","google-api-core; extra == \"dev\"","google-auth; extra == \"dev\"","google-cloud-aiplatform; extra == \"dev\"","google-genai<2.0,>=1.20.0; extra == \"dev\"","ipykernel==7.1.0; extra == \"dev\"","jinja2==3.1.6; extra == \"dev\"","jsonschema; extra == \"dev\"","mcp>=1.11.0; extra == \"dev\"","mdx-include==1.4.2; extra == \"dev\"","mike==2.1.3; extra == \"dev\"","mkdocs-git-revision-date-localized-plugin==1.4.7; extra == \"dev\"","mkdocs-glightbox==0.5.1; extra == \"dev\"","mkdocs-literate-nav==0.6.2; extra == \"dev\"","mkdocs-macros-plugin==1.3.9; extra == \"dev\"","mkdocs-material==9.6.19; extra == \"dev\"","mkdocs-minify-plugin==0.8.0; extra == \"dev\"","mkdocs-redirects==1.2.2; extra == \"dev\"","mkdocstrings[python]==0.30.0; extra == \"dev\"","mypy==1.17.1; extra == \"dev\"","nbclient==0.10.2; extra == \"dev\"","nbconvert==7.16.6; extra == \"dev\"","nbformat==5.10.4; extra == \"dev\"","ollama>=0.4.7; extra == \"dev\"","openai<2,>=1.99.3; extra == \"dev\"","opentelemetry-exporter-otlp-proto-grpc>=1.20; extra == \"dev\"","opentelemetry-sdk>=1.20; extra == \"dev\"","pandas==2.3.3; extra == \"dev\"","pdoc3==0.11.6; extra == \"dev\"","pillow; extra == \"dev\"","prek==0.3.8; extra == \"dev\"","pytest-asyncio==1.3.0; extra == \"dev\"","pytest-cov==6.3.0; extra == \"dev\"","pytest-timeout<3,>=2.4.0; extra == \"dev\"","pytest==9.0.2; extra == \"dev\"","pyyaml==6.0.2; extra == \"dev\"","redis; extra == \"dev\"","ruff==0.14.14; extra == \"dev\"","tavily-python<0.8,>=0.7.4; extra == \"dev\"","termcolor==3.1.0; extra == \"dev\"","toml==0.10.2; extra == \"dev\"","typer==0.17.4; extra == \"dev\"","types-aiofiles; extra == \"dev\"","types-decorator; extra == \"dev\"","types-pycurl; extra == \"dev\"","types-python-dateutil; extra == \"dev\"","types-pyyaml; extra == \"dev\"","types-requests; extra == \"dev\"","types-ujson; extra == \"dev\"","uv==0.8.15; extra == \"dev\"","zizmor==1.11.0; extra == \"dev\"","diskcache; extra == \"diskcache\"","docker>=6.0.0; extra == \"docker\"","a2a-sdk[http-server]<0.4,>=0.3.11; extra == \"docs\"","ag-ui-protocol<0.2,>=0.1.10; extra == \"docs\"","anthropic[vertex]<1,>=0.79.0; extra == \"docs\"","cairosvg; extra == \"docs\"","dashscope>=1.25.13; extra == \"docs\"","ddgs<10,>=9.0.0; extra == \"docs\"","docker>=6.0.0; extra == \"docs\"","exa-py<3,>=2.0.0; extra == \"docs\"","fix-busted-json>=0.0.18; extra == \"docs\"","google-api-core; extra == \"docs\"","google-auth; extra == \"docs\"","google-cloud-aiplatform; extra == \"docs\"","google-genai<2.0,>=1.20.0; extra == \"docs\"","jinja2==3.1.6; extra == \"docs\"","jsonschema; extra == \"docs\"","mcp>=1.11.0; extra == \"docs\"","mdx-include==1.4.2; extra == \"docs\"","mike==2.1.3; extra == \"docs\"","mkdocs-git-revision-date-localized-plugin==1.4.7; extra == \"docs\"","mkdocs-glightbox==0.5.1; extra == \"docs\"","mkdocs-literate-nav==0.6.2; extra == \"docs\"","mkdocs-macros-plugin==1.3.9; extra == \"docs\"","mkdocs-material==9.6.19; extra == \"docs\"","mkdocs-minify-plugin==0.8.0; extra == \"docs\"","mkdocs-redirects==1.2.2; extra == \"docs\"","mkdocstrings[python]==0.30.0; extra == \"docs\"","nbclient==0.10.2; extra == \"docs\"","ollama>=0.4.7; extra == \"docs\"","openai<2,>=1.99.3; extra == \"docs\"","opentelemetry-exporter-otlp-proto-grpc>=1.20; extra == \"docs\"","opentelemetry-sdk>=1.20; extra == \"docs\"","pdoc3==0.11.6; extra == \"docs\"","pillow; extra == \"docs\"","pyyaml==6.0.2; extra == \"docs\"","redis; extra == \"docs\"","tavily-python<0.8,>=0.7.4; extra == \"docs\"","termcolor==3.1.0; extra == \"docs\"","typer==0.17.4; extra == \"docs\"","duckduckgo-search>=8.0.2; extra == \"duckduckgo\"","exa-py<3,>=2.0.0; extra == \"exa\"","flaml; extra == \"flaml\"","numpy<2.0.0,>=1.24.0; python_version < \"3.13\" and extra == \"flaml\"","numpy>=2.1; python_version >= \"3.13\" and extra == \"flaml\"","google-api-core; extra == \"gemini\"","google-auth; extra == \"gemini\"","google-cloud-aiplatform; extra == \"gemini\"","google-genai<2.0,>=1.20.0; extra == \"gemini\"","jsonschema; extra == \"gemini\"","pillow; extra == \"gemini\"","google-api-core; extra == \"gemini-realtime\"","google-auth; extra == \"gemini-realtime\"","google-cloud-aiplatform; extra == \"gemini-realtime\"","google-genai<2.0,>=1.20.0; extra == \"gemini-realtime\"","jsonschema; extra == \"gemini-realtime\"","pillow; extra == \"gemini-realtime\"","websockets<16,>=14.0; extra == \"gemini-realtime\"","google-api-python-client<3.0,>=2.163.0; extra == \"google-api\"","google-auth-httplib2<0.3,>=0.2.0; extra == \"google-api\"","google-auth-oauthlib<2.0,>=1.2.1; extra == \"google-api\"","google-api-python-client<3.0,>=2.163.0; extra == \"google-client\"","google-api-python-client<3.0,>=2.163.0; extra == \"google-search\"","matplotlib; extra == \"graph\"","networkx; extra == \"graph\"","falkordb>=1.0.10; extra == \"graph-rag-falkor-db\"","graphrag-sdk==0.8.2; extra == \"graph-rag-falkor-db\"","groq>=0.9.0; extra == \"groq\"","crewai[tools]<1,>=0.76; (python_version >= \"3.10\" and python_version < \"3.13\") and extra == \"interop\"","fasta2a; extra == \"interop\"","langchain-community<1,>=0.3.12; extra == \"interop\"","litellm<=1.76.3; extra == \"interop\"","pydantic-ai>=1.0.12; extra == \"interop\"","weaviate-client<5,>=4; (python_version >= \"3.10\" and python_version < \"3.13\") and extra == \"interop\"","crewai[tools]<1,>=0.76; (python_version >= \"3.10\" and python_version < \"3.13\") and extra == \"interop-crewai\"","litellm<=1.76.3; extra == \"interop-crewai\"","weaviate-client<5,>=4; (python_version >= \"3.10\" and python_version < \"3.13\") and extra == \"interop-crewai\"","langchain-community<1,>=0.3.12; extra == \"interop-langchain\"","fasta2a; extra == \"interop-pydantic-ai\"","pydantic-ai>=1.0.12; extra == \"interop-pydantic-ai\"","docker>=6.0.0; extra == \"jupyter-executor\"","ipykernel>=6.29.0; extra == \"jupyter-executor\"","jupyter-client>=8.6.0; extra == \"jupyter-executor\"","jupyter-kernel-gateway; extra == \"jupyter-executor\"","requests; extra == \"jupyter-executor\"","websocket-client; extra == \"jupyter-executor\"","codespell==2.4.1; extra == \"lint\"","ruff==0.14.14; extra == \"lint\"","zizmor==1.11.0; extra == \"lint\"","pillow; extra == \"lmm\"","replicate; extra == \"lmm\"","llmlingua<0.3; extra == \"long-context\"","sympy; extra == \"mathchat\"","wolframalpha; extra == \"mathchat\"","mcp>=1.11.0; extra == \"mcp\"","fastapi-code-generator>=0.5.4; extra == \"mcp-proxy-gen\"","fastapi<1,>=0.112; extra == \"mcp-proxy-gen\"","pyyaml; extra == \"mcp-proxy-gen\"","requests; extra == \"mcp-proxy-gen\"","typer; extra == \"mcp-proxy-gen\"","mistralai<3.0.0,>=2.0.0; extra == \"mistral\"","docx2txt==0.9; extra == \"neo4j\"","llama-index-core<0.14,>=0.12; extra == \"neo4j\"","llama-index-graph-stores-neo4j<0.6,>=0.4; extra == \"neo4j\"","llama-index-readers-web<0.6,>=0.4; extra == \"neo4j\"","llama-index<0.14,>=0.12; extra == \"neo4j\"","nlip-sdk<1,>=0.1.0; extra == \"nlip\"","nlip-server<1,>=0.1.0; extra == \"nlip\"","fix-busted-json>=0.0.18; extra == \"ollama\"","ollama>=0.4.7; extra == \"ollama\"","openai<2,>=1.99.3; extra == \"openai\"","openai<2,>=1.99.3; extra == \"openai-realtime\"","openai[realtime]; extra == \"openai-realtime\"","beautifulsoup4; extra == \"quick-research\"","crawl4ai<0.9,>=0.5.0; extra == \"quick-research\"","tavily-python>=0.7.4; extra == \"quick-research\"","tiktoken; extra == \"quick-research\"","tldextract; extra == \"quick-research\"","chromadb<2,>=0.5; extra == \"rag\"","docling<3,>=2.15.1; extra == \"rag\"","llama-index-core<0.15,>=0.14.13; extra == \"rag\"","llama-index-embeddings-huggingface<0.7,>=0.5; extra == \"rag\"","llama-index-embeddings-openai<0.6,>=0.3; extra == \"rag\"","llama-index-llms-langchain<0.8,>=0.6; extra == \"rag\"","llama-index-llms-openai<0.6,>=0.4; extra == \"rag\"","llama-index-vector-stores-chroma<0.6,>=0.4; extra == \"rag\"","llama-index-vector-stores-mongodb<0.9,>=0.6; extra == \"rag\"","llama-index<0.15,>=0.14.13; extra == \"rag\"","requests<3,>=2.32.3; extra == \"rag\"","selenium<5,>=4.28.1; extra == \"rag\"","webdriver-manager==4.0.2; extra == \"rag\"","redis; extra == \"redis\"","docker>=6.0.0; extra == \"remyx\"","remyxai>=0.2.0; extra == \"remyx\"","beautifulsoup4; extra == \"retrievechat\"","chromadb<1.5,>=1.4.1; extra == \"retrievechat\"","ipython; extra == \"retrievechat\"","markdownify; extra == \"retrievechat\"","protobuf==6.33.5; extra == \"retrievechat\"","pypdf; extra == \"retrievechat\"","sentence-transformers<=6,>=5.2.2; extra == \"retrievechat\"","beautifulsoup4; extra == \"retrievechat-couchbase\"","chromadb<1.5,>=1.4.1; extra == \"retrievechat-couchbase\"","couchbase>=4.3.0; extra == \"retrievechat-couchbase\"","ipython; extra == \"retrievechat-couchbase\"","markdownify; extra == \"retrievechat-couchbase\"","numpy; extra == \"retrievechat-couchbase\"","protobuf==6.33.5; extra == \"retrievechat-couchbase\"","pypdf; extra == \"retrievechat-couchbase\"","sentence-transformers<=6,>=5.2.2; extra == \"retrievechat-couchbase\"","beautifulsoup4; extra == \"retrievechat-mongodb\"","chromadb<1.5,>=1.4.1; extra == \"retrievechat-mongodb\"","ipython; extra == \"retrievechat-mongodb\"","markdownify; extra == \"retrievechat-mongodb\"","numpy; extra == \"retrievechat-mongodb\"","protobuf==6.33.5; extra == \"retrievechat-mongodb\"","pymongo>=4.0.0; extra == \"retrievechat-mongodb\"","pypdf; extra == \"retrievechat-mongodb\"","sentence-transformers<=6,>=5.2.2; extra == \"retrievechat-mongodb\"","beautifulsoup4; extra == \"retrievechat-pgvector\"","chromadb<1.5,>=1.4.1; extra == \"retrievechat-pgvector\"","ipython; extra == \"retrievechat-pgvector\"","markdownify; extra == \"retrievechat-pgvector\"","pgvector>=0.2.5; extra == \"retrievechat-pgvector\"","protobuf==6.33.5; extra == \"retrievechat-pgvector\"","psycopg>=3.1.18; platform_system == \"Linux\" and extra == \"retrievechat-pgvector\"","psycopg[binary]>=3.1.18; (platform_system == \"Windows\" or platform_system == \"Darwin\") and extra == \"retrievechat-pgvector\"","pypdf; extra == \"retrievechat-pgvector\"","sentence-transformers<=6,>=5.2.2; extra == \"retrievechat-pgvector\"","beautifulsoup4; extra == \"retrievechat-qdrant\"","chromadb<1.5,>=1.4.1; extra == \"retrievechat-qdrant\"","fastembed>=0.3.1; extra == \"retrievechat-qdrant\"","ipython; extra == \"retrievechat-qdrant\"","markdownify; extra == \"retrievechat-qdrant\"","protobuf==6.33.5; extra == \"retrievechat-qdrant\"","pypdf; extra == \"retrievechat-qdrant\"","qdrant-client; extra == \"retrievechat-qdrant\"","sentence-transformers<=6,>=5.2.2; extra == \"retrievechat-qdrant\"","tavily-python<0.8,>=0.7.4; extra == \"tavily\"","chromadb; extra == \"teachable\"","aiofiles<26.0.0,>=24.1.0; extra == \"test\"","dirty-equals<0.12,>=0.11; extra == \"test\"","docker>=6.0.0; extra == \"test\"","fastapi==0.116.1; extra == \"test\"","freezegun<2,>=1.5.5; extra == \"test\"","ipykernel==7.1.0; extra == \"test\"","mcp>=1.11.0; extra == \"test\"","nbconvert==7.16.6; extra == \"test\"","nbformat==5.10.4; extra == \"test\"","pandas==2.3.3; extra == \"test\"","pytest-asyncio==1.3.0; extra == \"test\"","pytest-cov==6.3.0; extra == \"test\"","pytest-timeout<3,>=2.4.0; extra == \"test\"","pytest==9.0.2; extra == \"test\"","dirty-equals<0.12,>=0.11; extra == \"test-core\"","freezegun<2,>=1.5.5; extra == \"test-core\"","pytest-asyncio==1.3.0; extra == \"test-core\"","pytest-cov==6.3.0; extra == \"test-core\"","pytest-timeout<3,>=2.4.0; extra == \"test-core\"","pytest==9.0.2; extra == \"test-core\"","tinyfish>=0.2.3; extra == \"tinyfish\"","together>=1.2; extra == \"together\"","opentelemetry-exporter-otlp-proto-grpc>=1.20; extra == \"tracing\"","opentelemetry-sdk>=1.20; extra == \"tracing\"","fastapi<1,>=0.115.0; extra == \"twilio\"","twilio>=9.3.2; extra == \"twilio\"","uvicorn<1,>=0.30.6; extra == \"twilio\"","a2a-sdk[http-server]<0.4,>=0.3.11; extra == \"types\"","ag-ui-protocol<0.2,>=0.1.10; extra == \"types\"","aiofiles<26.0.0,>=24.1.0; extra == \"types\"","dirty-equals<0.12,>=0.11; extra == \"types\"","docker>=6.0.0; extra == \"types\"","fastapi==0.116.1; extra == \"types\"","freezegun<2,>=1.5.5; extra == \"types\"","ipykernel==7.1.0; extra == \"types\"","mcp>=1.11.0; extra == \"types\"","mypy==1.17.1; extra == \"types\"","nbconvert==7.16.6; extra == \"types\"","nbformat==5.10.4; extra == \"types\"","openai<2,>=1.99.3; extra == \"types\"","pandas==2.3.3; extra == \"types\"","pytest-asyncio==1.3.0; extra == \"types\"","pytest-cov==6.3.0; extra == \"types\"","pytest-timeout<3,>=2.4.0; extra == \"types\"","pytest==9.0.2; extra == \"types\"","types-aiofiles; extra == \"types\"","types-decorator; extra == \"types\"","types-pycurl; extra == \"types\"","types-python-dateutil; extra == \"types\"","types-pyyaml; extra == \"types\"","types-requests; extra == \"types\"","types-ujson; extra == \"types\"","websockets<16,>=14.0; extra == \"websockets\"","beautifulsoup4; extra == \"websurfer\"","markdownify; extra == \"websurfer\"","pathvalidate; extra == \"websurfer\"","pdfminer-six; extra == \"websurfer\"","wikipedia-api<1.0,>=0.8.1; extra == \"wikipedia\"","python-dotenv; extra == \"yepcode\"","yepcode-run>=1.6.1; extra == \"yepcode\""]},"github_stats":null,"bundle":null,"typescript":null,"known_issues":{"bugs_count":0,"bugs_severity":{},"status_breakdown":{},"link":null,"scope":"none"},"historical_compromise":null,"recommendation":{"action":"safe_to_use","issues":[],"use_version":"0.12.1","version_hint":null,"summary":"ag2@0.12.1 is safe to use (health: 79/100)"},"version_scoped":null,"requested_version":null,"_cache":"hit","_response_ms":0,"_powered_by":"depscope.dev — free package intelligence for AI agents","typosquat":{"is_suspected":false},"maintainer_trust":{"available":false},"malicious":{"is_malicious":false},"scorecard":{"available":false},"quality":{"available":false},"version_history_summary":{"total_versions":20,"first_release_age_days":null,"last_release_days_ago":4,"avg_days_between_releases":null,"release_velocity":"active"}}