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.6.3.tar.gz (219.4 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.6.3-py3-none-any.whl (249.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: enablement_agent-1.6.3.tar.gz
  • Upload date:
  • Size: 219.4 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.6.3.tar.gz
Algorithm Hash digest
SHA256 406c5a691ab6f67b5015e6e88487b51981a86162cb0a331d1f8287c2dc250a0b
MD5 d5297743f410a7fb48a9a5e0c14d2392
BLAKE2b-256 2ee34c737e991c0d9a1bce0035864fb8d273656811bbd859e0454e73d4a12322

See more details on using hashes here.

File details

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

File metadata

  • Download URL: enablement_agent-1.6.3-py3-none-any.whl
  • Upload date:
  • Size: 249.0 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.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 da3c87f7d99ce9fdeebe040cea8562f9c38e88a70ad07ae31a9792cee01e2be9
MD5 02d86582887fff98c0187090ca2f2b73
BLAKE2b-256 ee06eb2d61e8a0a8a9fa35a38d7bd284fb7d042fb06490398f60926efe38079f

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