Skip to main content

Centralized Enablement Agent — the canonical knowledge hub for Partner Core enablement content.

Project description

Centralized Enablement Agent

The canonical knowledge hub for all enablement content across Partner Core.

What it does

This agent ingests, indexes, and serves enablement content — user guides, FAQs, demo scripts, training decks, playbooks, and more. Anyone in Partner Core can query it for answers, search for content, and monitor content freshness.

Architecture

┌─────────────────────────────────────────────────────────────────┐
│  Content IN                                                      │
│  ┌──────────────┐ ┌──────────────┐ ┌────────────┐ ┌──────────┐ │
│  │ Delivery     │ │ Manual       │ │ Wiki       │ │ Highspot │ │
│  │ Agent Push   │ │ Upload       │ │ Scraper    │ │ Scraper  │ │
│  └──────┬───────┘ └──────┬───────┘ └─────┬──────┘ └────┬─────┘ │
│         │                │               │              │       │
│         └────────────────┴───────────────┴──────────────┘       │
│                                  │                               │
│                          ┌───────▼───────┐                      │
│                          │  Orchestrator  │                      │
│                          └───────┬───────┘                      │
│                                  │                               │
│         ┌────────────────────────┼────────────────────┐         │
│         │                        │                    │         │
│  ┌──────▼──────┐  ┌─────────────▼────────┐  ┌───────▼───────┐ │
│  │ S3 Bucket   │  │ OpenSearch Serverless │  │ Content       │ │
│  │ (raw files) │  │ (vector embeddings)  │  │ Registry      │ │
│  └─────────────┘  └──────────────────────┘  └───────────────┘ │
│                                                                  │
│  Content OUT (MCP Tools via SSE)                                │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │ query · search · upload · status · stale · refresh       │   │
│  │ check_permissions · request_access                       │   │
│  └──────────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────────┘

Quick Start (for users)

Install and configure in one step:

pip install enablement-agent
enablement-agent configure

Or if you use uvx (recommended):

uvx enablement-agent configure

This writes your ~/.kiro/settings/mcp.json with:

{
  "mcpServers": {
    "enablement-agent": {
      "command": "uvx",
      "args": ["enablement-agent", "serve"],
      "env": {
        "AWS_REGION": "us-east-1"
      },
      "disabled": false,
      "autoApprove": ["ask", "status"]
    }
  }
}

Or add it manually — that's the whole config.

Prerequisites: AWS credentials configured (midway or ~/.aws/config) with access to the shared S3 bucket, OpenSearch, and Bedrock.

Deployment

Two modes:

Local (stdio) — current default

Users install from PyPI and run locally. Shared backend (S3, OpenSearch, Bedrock) is accessed directly via AWS credentials.

Centralized (SSE) — future

Once a domain + HTTPS cert is provisioned, the server can run on ECS Fargate with SSE transport. Users would just add a URL to their mcp.json.

Backend Infrastructure (shared, required for both modes)

Deploy with CDK:

cd infra/
pip install aws-cdk-lib constructs
cdk deploy

Environment Variables

Variable Description
OPENSEARCH_ENDPOINT OpenSearch Serverless collection endpoint
S3_BUCKET S3 bucket name for content storage
AWS_REGION AWS region (default: us-east-1)
HIGHSPOT_API_KEY Highspot API key (or loaded from Secrets Manager)
LOG_LEVEL Logging level (default: INFO)

Development

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

# Run tests
pytest

# Lint
ruff check .

# Type check
mypy enablement_agent/

Modules

Module Purpose
orchestrator.py Central coordinator, request routing, background jobs
mcp_tools.py FastMCP tool registration (9 tools)
search.py Hybrid BM25 + vector + metadata search engine
vector_store.py OpenSearch Serverless knn integration
query_handler.py NL question answering with LLM synthesis
ingestion.py 4 ingestion pipelines
content_registry.py Metadata store with CRUD and bulk queries
freshness_monitor.py Staleness detection and auto-refresh
rls_guard.py Unified RLS enforcement via Galaxi
permissions_cache.py TTL cache for RLS permission lookups
wiki_scraper.py Wiki page discovery and change detection
highspot_scraper.py Highspot spot monitoring
config.py All configuration constants and enums
cli.py CLI entry point (serve, configure, health)

RLS (Row-Level Security)

Content containing customer data is automatically classified:

  • NONE — General enablement, open to all ASP/SMGS
  • TERRITORY — Contains territory-level customer data
  • PARTNER — Contains partner-specific data (SPMS IDs)
  • BROAD — Requires Geo+ level access (L8 approval)

Blocked content is always visible (title + lock icon) but redacted. Users get links to request access.

Freshness

Content is flagged stale after 4 months (120 days) without update. Wiki and Highspot sources auto-refresh when the source changes. Notifications go to the enablement-freshness-alerts channel.

Project details


Download files

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

Source Distribution

enablement_agent-1.8.2.tar.gz (224.6 kB view details)

Uploaded Source

Built Distribution

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

enablement_agent-1.8.2-py3-none-any.whl (254.7 kB view details)

Uploaded Python 3

File details

Details for the file enablement_agent-1.8.2.tar.gz.

File metadata

  • Download URL: enablement_agent-1.8.2.tar.gz
  • Upload date:
  • Size: 224.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for enablement_agent-1.8.2.tar.gz
Algorithm Hash digest
SHA256 20efb277f3803e37151cd273eb991454f52366200e8cc0856deabbda317358b9
MD5 a8d145e9ccf3d0d1b2f75823118d8f0c
BLAKE2b-256 e95845023852d7b39ddfc0cd27ed4417b7bd1d7bc2725854f8cea8780d78679d

See more details on using hashes here.

File details

Details for the file enablement_agent-1.8.2-py3-none-any.whl.

File metadata

  • Download URL: enablement_agent-1.8.2-py3-none-any.whl
  • Upload date:
  • Size: 254.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.18 {"installer":{"name":"uv","version":"0.11.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for enablement_agent-1.8.2-py3-none-any.whl
Algorithm Hash digest
SHA256 10058e3799ba214d909a58fa941a11848364ddc27ab6a60565fa9b615ea2a673
MD5 4b0ae671511c0ed3ba3706f7aae5b611
BLAKE2b-256 c648985e919804a58be9b4b689ebe597cd4ec6429f94ccb9dcd494e61341365b

See more details on using hashes here.

Supported by

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