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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fc9f064a728e95dfdc4941b14785b5f3f137642f3a47615806ca97ffd3a2282d
|
|
| MD5 |
947c81f92ff2a9b1359190c423e4183b
|
|
| BLAKE2b-256 |
9734c023f36677f2d08d01e526ca3b4481374c5da73a234222219abc3f1c8040
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5954a073f539c6e07298ec5e108f4da5d4e11f5d50ccadce1a5d7c1da1276d66
|
|
| MD5 |
f20cb784ee18b3b3d4a588a6564d4db7
|
|
| BLAKE2b-256 |
3769e8646016acc32712e8ce15bd043ee0ba1b01e070ddc8446faac266aed6bc
|