git: f566a5ac0695 - main - misc/py-autogen: New port: Programming framework for agentic AI

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sat, 11 Jul 2026 02:55:31 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=f566a5ac06957b48ca1ca5086e7331b6935eabab

commit f566a5ac06957b48ca1ca5086e7331b6935eabab
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-07-11 02:55:13 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-07-11 02:55:22 +0000

    misc/py-autogen: New port: Programming framework for agentic AI
---
 misc/Makefile             |  1 +
 misc/py-autogen/Makefile  | 68 +++++++++++++++++++++++++++++++++++++++++++++++
 misc/py-autogen/distinfo  |  3 +++
 misc/py-autogen/pkg-descr |  4 +++
 4 files changed, 76 insertions(+)

diff --git a/misc/Makefile b/misc/Makefile
index 586ca641b675..326b1c4c88e8 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -459,6 +459,7 @@
     SUBDIR += py-apache-beam
     SUBDIR += py-ascii-magic
     SUBDIR += py-ast-comments
+    SUBDIR += py-autogen
     SUBDIR += py-banks
     SUBDIR += py-bce-python-sdk
     SUBDIR += py-bitsandbytes
diff --git a/misc/py-autogen/Makefile b/misc/py-autogen/Makefile
new file mode 100644
index 000000000000..b558eeadadd6
--- /dev/null
+++ b/misc/py-autogen/Makefile
@@ -0,0 +1,68 @@
+PORTNAME=	autogen
+DISTVERSION=	0.14.1
+CATEGORIES=	misc python # machine-learning
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Programming framework for agentic AI
+WWW=		https://ag2.ai/ \
+		https://docs.ag2.ai \
+		https://github.com/ag2ai/ag2-classic
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}hatchling>0:devel/py-hatchling@${PY_FLAVOR}
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}anyio>=4.0.0:devel/py-anyio@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}fast-depends>=3.0.8:devel/py-fast-depends@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}httpx>=0.28.1:www/py-httpx@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}jsonschema>0:devel/py-jsonschema@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pydantic2>=2.6.1:devel/py-pydantic2@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}python-dotenv>0:www/py-python-dotenv@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pyyaml>=6.0.2:devel/py-pyyaml@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}termcolor>0:devel/py-termcolor@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}tiktoken>0:textproc/py-tiktoken@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}dirty-equals>=0.11:devel/py-dirty-equals@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}freezegun>=1.5.5:devel/py-freezegun@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-asyncio>0:devel/py-pytest-asyncio@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pytest-timeout>=2.4.0:devel/py-pytest-timeout@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}respx>=0.23.0:www/py-respx@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}websockets>=14.0:devel/py-websockets@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	autoplist concurrent pep517 pytest
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	ag2ai
+GH_PROJECT=	ag2-classic
+GH_TAGNAME=	fb9e911a220dddc15d2ce2924d9bed2d2df3e30e
+
+NO_ARCH=	yes
+
+# The upstream test suite requires many optional providers and network access.
+# Run only the core tests that pass without optional extras.
+TEST_ARGS=	--ignore=test/beta/tools/sandbox/adapter/test_code_adapter.py \
+		--ignore=test/beta/tools/skills/test_toolkit.py \
+		test/test_import_utils.py \
+		test/test_json_utils.py \
+		test/test_llm_config.py \
+		test/test_import.py \
+		test/test_graph_utils.py \
+		test/test_logger_redaction.py \
+		test/test_token_count.py \
+		test/test_browser_utils.py \
+		test/test_conftest.py \
+		test/io \
+		test/fast_depends \
+		test/messages/test_base_message.py \
+		test/messages/test_client_messages.py \
+		test/messages/test_print_message.py \
+		test/a2a \
+		test/ag_ui \
+		test/beta \
+		test/logger
+
+# tests as of 0.14.1: 3300 passed, 416 skipped, 2 xfailed, 15 warnings in 32.09s
+
+.include <bsd.port.mk>
diff --git a/misc/py-autogen/distinfo b/misc/py-autogen/distinfo
new file mode 100644
index 000000000000..320ee78c2154
--- /dev/null
+++ b/misc/py-autogen/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1783735469
+SHA256 (ag2ai-ag2-classic-0.14.1-fb9e911a220dddc15d2ce2924d9bed2d2df3e30e_GH0.tar.gz) = f76bde96cc4f144dd4ae0cc920df0e982f42c01953e2f86d5c35b2749ad036ff
+SIZE (ag2ai-ag2-classic-0.14.1-fb9e911a220dddc15d2ce2924d9bed2d2df3e30e_GH0.tar.gz) = 5947825
diff --git a/misc/py-autogen/pkg-descr b/misc/py-autogen/pkg-descr
new file mode 100644
index 000000000000..6fa9ba5ff915
--- /dev/null
+++ b/misc/py-autogen/pkg-descr
@@ -0,0 +1,4 @@
+AutoGen is an open-source programming framework for building AI agents and
+facilitating cooperation among multiple agents to solve tasks. It is a
+generic multi-agent conversation framework that supports agents that can
+converse with each other to accomplish tasks.