Skip to main content

BGF Agents

Autonomous Data Factory Agents - A lightweight, Token-Zero agent framework for data pipeline management.

Python 3.11+ License: MIT

Features

  • 5 Specialized Agents: Orchestrator, Healer, Governor, Collector, Analytics
  • 76 Tools: Database, cache, API, file, notification, and more
  • Token-Zero Architecture: ~50-150 tokens per agent run
  • Multi-Tier Collection: HTTP → JS → Firecrawl → Browser automation
  • Self-Healing: Circuit breakers and anomaly detection
  • Data Governance: Quality checks, lineage tracking, metadata management

Quick Start

# Install
pip install bgf-agents

# Or with collection dependencies
pip install bgf-agents[collect]

# Check system health
bgf-agents health

# List available agents
bgf-agents list

# Run an agent
bgf-agents run orchestrator --task health

Architecture

┌─────────────────────────────────────────────────────────────────────────┐
│                  Autonomous Agent System                                 │
├─────────────────────────────────────────────────────────────────────────┤
│  Orchestrator  │ System health + ETL         │ 10 tools                │
│  Healer        │ Self-healing + circuits     │ 10 tools                │
│  Governor      │ Data governance             │ 20 tools                │
│  Collector     │ Multi-tier collection       │ 8 tools                 │
│  Analytics     │ Statistics + trends         │ 8 tools                 │
├─────────────────────────────────────────────────────────────────────────┤
│  Extended      │ DB/Cache/API/File/Notify    │ 76 tools total          │
├─────────────────────────────────────────────────────────────────────────┤
│  Total         │ Token Zero Architecture     │ ~50-150 tokens/run      │
└─────────────────────────────────────────────────────────────────────────┘

Agents

MasterOrchestratorAgent

System health monitoring and ETL orchestration.

from bgf_agents import MasterOrchestratorAgent

agent = MasterOrchestratorAgent(
    provider='openai',
    model='ai/gpt-oss',
    base_url='http://localhost:12434/v1'
)
result = await agent.run('Check all system health')

Tools: check_database_health, check_redis_health, check_api_health, run_etl_pipeline, get_pipeline_status, schedule_etl, cancel_etl, get_etl_history, get_system_metrics, get_alerts

HealerAgent

Self-healing with circuit breakers and anomaly detection.

from bgf_agents import HealerAgent

agent = HealerAgent()
anomalies = agent.detect_anomalies([1, 2, 3, 100, 4, 5])
circuits = agent.list_circuits()

Tools: detect_anomalies, get_circuit_status, open_circuit, close_circuit, reset_circuit, get_healing_history, trigger_healing, get_anomaly_report, configure_circuit, get_health_score

GovernorAgent

Data governance, quality, lineage, and metadata management.

from bgf_agents import GovernorAgent

agent = GovernorAgent()
quality = agent.check_data_quality('users_table')
lineage = agent.get_lineage('revenue_metric')

Tools: check_data_quality, get_lineage, update_metadata, validate_schema, check_freshness, get_data_catalog, register_dataset, get_quality_report, set_data_owner, get_compliance_status

CollectorAgent

Multi-tier data collection (HTTP/JS/Firecrawl/Browser).

from bgf_agents import CollectorAgent

collector = CollectorAgent()

# Automatic tier detection
result = await collector.smart_collect('https://example.com')

# Batch collection
results = await collector.batch_collect([
    'https://api.example.com/data',
    'https://js-heavy-site.com',
    'https://amazon.com/product'  # Auto-routes to Tier-4
])

Tools: collect_http, collect_js, collect_complex, collect_browser, detect_tier, smart_collect, batch_collect, get_collection_stats

Tier Routing:

Tier Tool Use Case
1 httpx REST APIs, static pages
2 Crawl4AI JS-rendered pages
3 Firecrawl Complex JS, anti-scraping
4 Playwright Amazon, LinkedIn, anti-bot

AnalyticsAgent

Statistical analysis, trend detection, anomaly detection, and reporting.

from bgf_agents import AnalyticsAgent

analytics = AnalyticsAgent()

# Statistical analysis
result = analytics.analyze_statistics([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
print(result.summary)  # {'count': 10, 'mean': 5.5, 'median': 5.5, ...}

# Trend detection
trend = analytics.detect_trend([1, 2, 3, 4, 5])
print(trend.direction)  # TrendDirection.UP

# Anomaly detection
anomalies = analytics.detect_anomalies([1, 2, 3, 100, 4, 5])
print(anomalies.anomaly_indices)  # [3]

Tools: analyze_statistics, detect_trend, detect_anomalies, profile_data, compare_datasets, calculate_correlation, generate_report, forecast_values

Extended Tools

76 tools organized in 7 categories:

Database Tools (10)

from bgf_agents.tools import DATABASE_TOOLS

# execute_query, execute_transaction, get_table_schema,
# list_tables, get_row_count, backup_table,
# vacuum_table, get_table_stats, create_index, drop_index

Cache Tools (10)

from bgf_agents.tools import CACHE_TOOLS

# cache_get, cache_set, cache_delete, cache_exists,
# cache_ttl, cache_keys, cache_clear_pattern,
# cache_increment, cache_get_many, cache_set_many

API Tools (9)

from bgf_agents.tools import API_TOOLS

# http_get, http_post, http_put, http_delete,
# graphql_query, check_api_health, get_api_metrics,
# retry_request, batch_requests

File Tools (9)

from bgf_agents.tools import FILE_TOOLS

# read_file, write_file, append_file, delete_file,
# list_directory, file_exists, get_file_info,
# copy_file, move_file

Notification Tools (5)

from bgf_agents.tools import NOTIFICATION_TOOLS

# send_email, send_slack, send_webhook,
# send_sms, get_notification_history

Search Tools

from bgf_agents.tools import SEARCH_TOOLS

# search_files, search_content

Configuration

Environment Variables

# Database
DATABASE_URL=postgresql://localhost:5432/mydb

# Redis
REDIS_URL=redis://localhost:6379/0

# LLM Provider
LLM_PROVIDER=anthropic  # or openai
ANTHROPIC_API_KEY=sk-ant-...
# or
OPENAI_API_KEY=sk-...
OPENAI_BASE_URL=http://localhost:12434/v1

YAML Configuration

# config.yaml
database:
  url: postgresql://localhost:5432/mydb
  pool_size: 10

redis:
  url: redis://localhost:6379/0

llm:
  provider: anthropic
  model: claude-3-5-sonnet-20241022

agents:
  max_iterations: 10
  timeout: 300

Programmatic Configuration

from bgf_agents import Config, get_config, set_config

# Get current config
config = get_config()

# Set custom config
from bgf_agents.config import DatabaseConfig, LLMConfig

custom_config = Config(
    database=DatabaseConfig(url='postgresql://...'),
    llm=LLMConfig(provider='openai', model='gpt-4')
)
set_config(custom_config)

CLI Reference

# List agents and tools
bgf-agents list
bgf-agents list -v  # Verbose, show all tools

# Health check
bgf-agents health

# Run agents
bgf-agents run orchestrator --task health
bgf-agents run healer --task detect
bgf-agents run governor --task quality --table users
bgf-agents run collector --url https://example.com
bgf-agents run analytics --data '[1,2,3,4,5]'

# Configuration
bgf-agents config show
bgf-agents config validate
bgf-agents config set --key llm.model --value gpt-4

Token Zero Architecture

The agents use a Token Zero design for efficiency:

Layer Tokens Responsibility
Skill Layer ~50 Intent understanding
Action Layer 0 Python computation
Tool Layer 0 Data operations

Total token consumption: ~50-150 tokens per agent run (98.5% savings).

Docker Model Runner Setup

To use local LLM with Docker Desktop:

# Enable Model Runner (TCP mode)
docker desktop enable model-runner --tcp=12434

# Available models
docker model list
# ai/gpt-oss (11.04 GiB) - General purpose
# ai/gemma3 (2.31 GiB) - Fast inference
# ai/qwen3-vl:8B (4.79 GiB) - Multimodal

Production Deployment

Cron Schedule

# Orchestrator - every hour
10 * * * * /path/to/run_orchestrator.sh

# Healer - every 4 hours
20 */4 * * * /path/to/run_healer.sh

# Governor - every 6 hours
30 */6 * * * /path/to/run_governor.sh

Monitoring

Agent executions are logged to dwd.agent_executions and dwd.agent_tool_calls tables if TimescaleDB is configured.

Installation Options

# Basic installation
pip install bgf-agents

# With browser automation (Playwright, Crawl4AI)
pip install bgf-agents[collect]

# Development installation
pip install bgf-agents[dev]

# All dependencies
pip install bgf-agents[all]

Development

# Clone repository
git clone https://github.com/bgf-dev/bgf-agents.git
cd bgf-agents

# Install with dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Lint and format
ruff check .
ruff format .

# Type checking
mypy .

License

MIT License - see LICENSE for details.

Metadata

Release files for bgf-agents 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bgf-agents 0.1.0
File Size Uploaded
bgf_agents-0.1.0.tar.gz 126.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bgf-agents 0.1.0
File Interpreter ABI Platform
bgf_agents-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 227.2 kB

Release files / bgf_agents-0.1.0.tar.gz

Download URL bgf_agents-0.1.0.tar.gz
Size 126.9 kB
Tags Source
SHA-256 checksum
How to use checksums
a50186700efc65ad6a192ce98f247b6ef5b779fe7601c2bc4b0ce7c2764d004c
BLAKE2b-256 checksum
How to use checksums
abb456fc3d4414a28b4bb789e87ff8cdd506bc8a485c77d2f1aa43ad59ccff97
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release files / bgf_agents-0.1.0-py3-none-any.whl

Download URL bgf_agents-0.1.0-py3-none-any.whl
Size 100.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3f4454941cc0d21ac3c9486e1dfabea6d9cc7c39bc63bf2d07ad1ec3f78bcadb
BLAKE2b-256 checksum
How to use checksums
25c99015dffb29c1fe3ea0bc99c291668ee2f515bd3611b73648ae79f955e51e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.2

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page