Repository navigation
Python: Add ACGS to the Python community projects - #9618
Merged
Eduard van Valkenburg (eavanvalkenburg) merged 1 commit intoOct 23, 2026
Merged
Eduard van Valkenburg (eavanvalkenburg) merged 1 commit into
Eduard van Valkenburg (eavanvalkenburg) merged 1 commit into
Conversation
MartinLyu (dislovelhl)
requested review from
SergeyMenshykh,
Tao Chen (TaoChenOSU),
Eduard van Valkenburg (eavanvalkenburg),
Giles Odigwe (giles17),
Jose Alvarez (jpalvarezl),
Evan Mattson (moonbox3),
Roger Barreto (rogerbarreto),
sophia-ramsey and
westey (westey-m)
as code owners
October 23, 2026 05:12
MartinLyu (dislovelhl)
deployed
to
github-app-auth
October 23, 2026 05:12 — with
GitHub Actions
Active
MartinLyu (dislovelhl)
deployed
to
github-app-auth
October 23, 2026 05:13 — with
GitHub Actions
Active
Eduard van Valkenburg (eavanvalkenburg)
approved these changes
Oct 23, 2026
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation & Context
I maintain agent-framework-acgs (Apache-2.0, https://github.com/acgs-ai/agent-framework-acgs). This PR adds it to the Python catalog's Middleware section.
The integration is published for the Python SDK.
agent-framework-acgs0.1.0 is on PyPI (https://pypi.org/project/agent-framework-acgs/) and implements Agent Framework middleware:ACGSFunctionMiddlewaresubclassesFunctionMiddleware. Before a function runs, it checks the call's name and arguments against rules from the open-source acgs-lite engine. A blocked call never reachescall_next: the reason becomes the call's result, so the model reads it.function_approval_request, so the run pauses in the framework's tool approval flow (user_input_requests). The call is checked again when the approved call is replayed.ACGSToolChecksubclassesChatMiddlewareand stops a run before the model is called if it offers tools the function middleware cannot check (hosted tools, declaration-only tools,additional_tools).The row links to the repository, and issues go to https://github.com/acgs-ai/agent-framework-acgs/issues/new.
The package's own CI runs its tests on Python 3.10 to 3.14 against agent-framework-core 1.20.0 and 1.23.0, using a scripted chat client built on
FunctionInvocationLayerandChatMiddlewareLayer. To check it offline with no API key:pip install agent-framework-acgs, then runexamples/quickstart.pyfrom the repository. It blocks an email that leaks a password, runs a weather lookup, and pauses a refund for approval, then runs it once approved.Description & Review Guide
python/samples/community-projects.md, in alphabetical order above Tracekit.Related Issue
N/A - trivial change: one catalog row in the format the catalog criteria define, no code.
AI Assistance
AI assistance details: the catalog row and this description were drafted with AI assistance, and the package was built and tested with AI assistance; I reviewed it.
Contribution Checklist
breaking changelabel (or add "[BREAKING]" to the title prefix, before or after any language prefix) — a workflow keeps the label and title prefix in sync automatically.