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.1.tar.gz (218.9 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.1-py3-none-any.whl (248.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: enablement_agent-1.6.1.tar.gz
  • Upload date:
  • Size: 218.9 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.1.tar.gz
Algorithm Hash digest
SHA256 fc9f064a728e95dfdc4941b14785b5f3f137642f3a47615806ca97ffd3a2282d
MD5 947c81f92ff2a9b1359190c423e4183b
BLAKE2b-256 9734c023f36677f2d08d01e526ca3b4481374c5da73a234222219abc3f1c8040

See more details on using hashes here.

File details

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

File metadata

  • Download URL: enablement_agent-1.6.1-py3-none-any.whl
  • Upload date:
  • Size: 248.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5954a073f539c6e07298ec5e108f4da5d4e11f5d50ccadce1a5d7c1da1276d66
MD5 f20cb784ee18b3b3d4a588a6564d4db7
BLAKE2b-256 3769e8646016acc32712e8ce15bd043ee0ba1b01e070ddc8446faac266aed6bc

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