Catalog PyPI
PACKAGE EXPLORERView in registry

adk-agentmesh

PyPI

Public Preview — Agent Governance Toolkit integration for Google ADK: policy enforcement, trust verification, and audit trails for ADK agents

agentauditgoogle-adkgovernancepolicytrust
Versions collected1
Direct dependencies3From release 3.7.0
Last observed20 Oct, 19:36 UTC

README

Version 3.7.0 documentation

ADK AgentMesh — Governance for Google ADK Agents

[!IMPORTANT] Public Preview — The adk-agentmesh package on PyPI is a Microsoft-signed public preview release. APIs may change before GA.

Policy enforcement, trust verification, and audit trails for Google ADK agents — powered by the Agent Governance Toolkit.

What It Does

adk-agentmesh implements the PolicyEvaluator protocol (google/adk-python#4897) backed by the Agent Governance Toolkit's deterministic policy engine.

  • Tool-level governance — block, allow-list, or require approval for any ADK tool call
  • Rate limiting — cap tool calls per agent per session
  • Delegation scope — monotonic narrowing ensures sub-agents never exceed parent permissions
  • Structured audit — every decision is logged with verdict, rule, and timestamp

Installation

pip install adk-agentmesh

Quick Start

1. Define a governance policy

Create a YAML policy file (see examples/policies/adk-governance.yaml):

adk_governance:
  blocked_tools:
    - execute_shell
    - delete_database
  max_tool_calls: 100
  require_approval_for:
    - send_email
    - deploy_service

2. Wire into your ADK agent

from adk_agentmesh import ADKPolicyEvaluator, GovernanceCallbacks

# Load policy
evaluator = ADKPolicyEvaluator.from_config("policies/adk-governance.yaml")
callbacks = GovernanceCallbacks(evaluator)

# Attach to ADK agent
from google.adk.agents import LlmAgent

agent = LlmAgent(
    model="gemini-2.0-flash",
    name="my-governed-agent",
    before_tool_callback=callbacks.before_tool,
    after_tool_callback=callbacks.after_tool,
    before_agent_callback=callbacks.before_agent,
    after_agent_callback=callbacks.after_agent,
)

3. Or use the evaluator directly

import asyncio
from adk_agentmesh import ADKPolicyEvaluator

evaluator = ADKPolicyEvaluator(
    blocked_tools=["execute_shell"],
    max_tool_calls=50,
    require_approval_for=["send_email"],
)

decision = asyncio.run(
    evaluator.evaluate_tool_call(
        tool_name="search_web",
        tool_args={"query": "latest news"},
        agent_name="research-agent",
    )
)
print(decision.verdict)  # Verdict.ALLOW

ADK Lifecycle Mapping

ADK HookGovernance Check
before_tool_callbackPolicy evaluation, rate limiting, tool blocking
after_tool_callbackAudit logging
before_agent_callbackDelegation scope check
after_agent_callbackDelegation audit

Delegation Scope Narrowing

Sub-agents automatically receive narrowed permissions:

from adk_agentmesh import DelegationScope

parent_scope = DelegationScope(
    allowed_tools=["search_web", "read_file", "write_file"],
    max_tool_calls=100,
    max_depth=3,
)

# Child gets strictly fewer permissions
child_scope = parent_scope.narrow(
    allowed_tools=["search_web", "read_file"],
    read_only=True,
)
# child_scope.max_depth == 2 (always decrements)
# child_scope.read_only == True (once set, cannot be unset)

Audit Events

Every governance decision is recorded:

evaluator = ADKPolicyEvaluator(blocked_tools=["dangerous_tool"])

# ... after agent runs ...

for entry in evaluator.get_audit_log():
    print(entry["event"], entry["timestamp"])

For structured audit handling:

from adk_agentmesh import AuditEvent, LoggingAuditHandler

handler = LoggingAuditHandler()
event = AuditEvent(
    event_type="tool_call_denied",
    agent_name="my-agent",
    tool_name="execute_shell",
    verdict="deny",
    reason="Tool is blocked by policy",
)
handler.handle(event)

Sample Policy

See the full sample policy at examples/policies/adk-governance.yaml.

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
3.7.020 May 20263

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
microsoft/agent-governance-toolkit

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 19:36 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:099549e66ccd9bcddfeb864f5036c80dd7aeb0ee0eeaae6e304a0098da18c5e2