Skip to main content

Agent Governor

轻量级 Agent 治理与执行中间件 —— 成本控制、审计追踪、模型路由、DAG 编排、可观测性。

安装

# 核心功能
pip install agent-governor

# 全部可选功能(DAG + OTel + MCP + HTTP)
pip install agent-governor[all]

# 按需选择
pip install agent-governor[dag]        # DAG 编排(networkx)
pip install agent-governor[telemetry]  # OTel Tracing + Metrics
pip install agent-governor[mcp]        # MCP 工具执行器
pip install agent-governor[redis]      # Redis 状态后端

快速开始

基础用法:预算控制 + 模型路由

from agent_governor import Governor

governor = Governor(
    budget_usd=10.0,
    models=["gpt-4o", "qwen-plus"],
    fallback_model="qwen-turbo",
)

response = await governor.execute(
    messages=[{"role": "user", "content": "Hello!"}],
    model="gpt-4o",
)

DAG 编排:多步骤工作流

from agent_governor import Governor
from agent_governor.control import TaskGraph, SchemaGate

governor = Governor(budget_usd=5.0)

graph = TaskGraph("research_report")
graph.add_node("search", task=Task(name="web_search", metadata={"query": "..."}))
graph.add_node("analyze", task=Task(name="analyze"), depends_on=["search"])
graph.add_node("validate", task=Task(name="validate"), depends_on=["analyze"],
               quality_gates=[SchemaGate(ReportModel)])

result = await governor.run_graph(graph)

可观测性:OTel Tracing + Metrics

governor = Governor(
    budget_usd=10.0,
    tracing_enabled=True,
    otlp_endpoint="http://localhost:4317",
)

# 使用 async context manager 确保资源释放
async with governor:
    result = await governor.execute(messages=[...], model="gpt-4o")

功能特性

核心治理

  • 预算控制 — USD 预算上限,调用前拦截
  • 模型白名单 — 限制可调用的模型范围
  • 降级路由 — 主模型失败自动切换备用模型
  • 审计日志 — 每次 LLM 调用的结构化 JSON 记录
  • 成本追踪 — 按模型累计 token 用量与费用

DAG 编排与韧性

  • TaskGraph — 基于 networkx 的 DAG 定义 + 环检测
  • 分层并行执行 — Kahn 拓扑排序,同层节点并发运行
  • 质量门 — SchemaGate / BudgetGate / LLMJudgeGate 管道式校验
  • 异步熔断器 — 三态状态机 + 滑动窗口,防止级联故障
  • 并发控制 — 按路由键隔离的 Semaphore + 令牌桶限流
  • 检查点恢复 — SQLite WAL 模式,崩溃后断点续执行
  • Commander — 高层任务分解 → DAG 构建 → 引擎执行

可观测性与扩展

  • OTel Tracing — Governor / Dispatcher / DAG 三层 Span,OTLP 导出
  • OTel Metrics — 调用计数、错误计数、预算超限、延迟直方图、token 直方图
  • MCP 执行器 — 包装 mcp.ClientSession.call_tool()
  • HTTP 执行器 — httpx 连接池,通用 REST API 调用
  • 成本报告 CLIagent-governor-report 命令行工具

CLI 工具

# 查看最近 7 天的成本报告
agent-governor-report --file audit.jsonl --last 7d --group-by model

# JSON 格式输出
agent-governor-report --file audit.jsonl --format json

项目结构

src/agent_governor/
├── governor.py          # 主入口
├── config.py            # GovernorConfig 配置模型
├── models.py            # Task / TaskResult 数据模型
├── protocols.py         # Executor / QualityGate 协议定义
├── exceptions.py        # 异常体系
├── control/             # 控制层:DAG、质量门、状态管理
├── data/                # 数据层:调度、熔断、并发、执行器
├── observability/       # 可观测层:Tracing、Metrics、审计、成本
└── cli/                 # 命令行工具

开发

# 创建环境
uv venv --python 3.12
uv pip install -e ".[dev]"

# 运行测试
pytest tests/ -q

# 静态检查
ruff check src/ tests/
mypy src/

文档

# 本地构建文档站
uv pip install -e ".[docs]"
mkdocs serve

许可证

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

agent_governor-0.4.0.tar.gz (270.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

agent_governor-0.4.0-py3-none-any.whl (60.8 kB view details)

Uploaded Python 3

File details

Details for the file agent_governor-0.4.0.tar.gz.

File metadata

  • Download URL: agent_governor-0.4.0.tar.gz
  • Upload date:
  • Size: 270.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for agent_governor-0.4.0.tar.gz
Algorithm Hash digest
SHA256 3d76aa218db0ff19a929229acc4227afe29816bc13e52ba7aa39430445292bb8
MD5 22a9104a35f6e41e4ca4886b1cbc34e0
BLAKE2b-256 0549167e81c10e44161d2808e93c12565acbb1f24a63e6fbf3c4402c0502fa70

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_governor-0.4.0.tar.gz:

Publisher: release.yml on lfysbnzkdxr/agent-governor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agent_governor-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: agent_governor-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 60.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for agent_governor-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5b41dd39a6ca60702b7ed14d6f998545a7fc32e0137ce89101d8bd2e29b027a4
MD5 a680784ebee51eb0df804a888754aa4d
BLAKE2b-256 c8fb100ca063a63aa50882d28635d3373162d95591e4d803b29431ba7687c2fc

See more details on using hashes here.

Provenance

The following attestation bundles were made for agent_governor-0.4.0-py3-none-any.whl:

Publisher: release.yml on lfysbnzkdxr/agent-governor

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page