Skip to main content

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.

Release files for enablement-agent 1.8.5

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

Source distribution (sdist)

Source distribution for enablement-agent 1.8.5
File Size Uploaded
enablement_agent-1.8.5.tar.gz 235.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for enablement-agent 1.8.5
File Interpreter ABI Platform
enablement_agent-1.8.5-py3-none-any.whl Python 3 none any Details

Total release size: 502.5 kB

Release files / enablement_agent-1.8.5.tar.gz

Download URL enablement_agent-1.8.5.tar.gz
Size 235.4 kB
Tags Source
SHA-256 checksum
How to use checksums
2903df2d62f9873fe6323e62505b7da2f83c2bb67599d6f6fb621617c0296d43
BLAKE2b-256 checksum
How to use checksums
9fd1a226f1e74abdea272da385fc971e0b4a10d94c36c7c6b7197b9d1953e6a3
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release files / enablement_agent-1.8.5-py3-none-any.whl

Download URL enablement_agent-1.8.5-py3-none-any.whl
Size 267.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9fe24c2405640279c33da97923e0d99d1deee682dcdd7923e9ed36ccb2ae0330
BLAKE2b-256 checksum
How to use checksums
c667f76d3537c80d9a8310606ce47ed4a17e65249bb86d546a931440ceab7009
Upload date
Uploaded using Trusted Publishing?
What is 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}

Release history Release notifications | RSS feed

1.8.7

2 release files

This release

1.8.5 This release

2 release files

1.8.4

2 release files

1.8.3

2 release files

1.8.2

2 release files

1.8.0

2 release files

1.7.1

2 release files

1.7.0

2 release files

1.6.3

2 release files

1.6.1

2 release files

1.6.0

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