|
4 | 4 | <meta charset="utf-8"> |
5 | 5 | <meta name="viewport" content="width=device-width,initial-scale=1"> |
6 | 6 | <title>Pluggable Agents — BlueprintAgentic</title> |
7 | | -<meta name="description" content="Drop-in agents for Google Workspace and Microsoft 365. Gmail, Drive, Calendar, OneDrive — pip install and go."> |
| 7 | +<meta name="description" content="A contract between agents and the systems that run them. Open-source Python agents for any compliant host — the Modular Agent Host, every agentic-service Imperator slot, or your own."> |
8 | 8 | <link rel="icon" href="../assets/logos/favicon.ico"> |
9 | 9 | <link rel="stylesheet" href="../css/style.css"> |
10 | 10 | <style> |
|
59 | 59 | <a class="back" href="../index.html#open-source">← Open source</a> |
60 | 60 | <div class="kicker">§ Agents · Open source</div> |
61 | 61 | <h1>Pluggable Agents.</h1> |
62 | | - <p class="tagline">Drop-in agents for the services your business already runs on.</p> |
63 | | - <p class="sub">Every agent here is a Python package that plugs into the Modular Agent Host. Install it, the Host picks it up, and agents get new capabilities — no downtime, no monolithic redeploy. Two agents are currently published.</p> |
64 | | - <div class="two-package"> |
65 | | - <div class="package-card"> |
66 | | - <div class="head"><span>google-workspace-agent</span><span class="v">v0.2</span></div> |
67 | | - <h3>Google Workspace</h3> |
68 | | - <p>Gmail · Drive · Docs · Sheets · Slides · Calendar. 30+ tools.</p> |
69 | | - </div> |
70 | | - <div class="package-card"> |
71 | | - <div class="head"><span>microsoft-365-agent</span><span class="v">v0.2</span></div> |
72 | | - <h3>Microsoft 365</h3> |
73 | | - <p>Outlook · Calendar · OneDrive. 15+ tools via Microsoft Graph.</p> |
74 | | - </div> |
75 | | - </div> |
| 62 | + <p class="tagline">A contract between agents and the systems that run them.</p> |
| 63 | + <p class="sub">Pluggable agents are Python packages that any compliant host can load. The host hands the agent the resources it needs to do its work — model access, persistent state, tools, identity, an event loop — through a stable protocol. The agent declares what it does, what it needs, and what it exposes. The pattern is open source and the published set is intentionally small. It is a starter, not a catalog — most pluggable agents will be the ones you write.</p> |
76 | 64 | </div> |
77 | 65 | </section> |
78 | 66 |
|
79 | 67 | <div class="wrap"> |
80 | | - <div class="detail-section"> |
81 | | - <div class="lbl">§ 01 · Google Workspace</div> |
| 68 | + <div class="detail-section" id="contract"> |
| 69 | + <div class="lbl">§ 01 · The contract</div> |
82 | 70 | <div> |
83 | | - <h2>Full Google Workspace, agent-accessible.</h2> |
84 | | - <p>Gmail, Drive, Docs, Sheets, Slides, and Calendar — all callable by agents via a single registered modular agent. Service-account authentication with domain-wide delegation means agents act on behalf of real users, safely.</p> |
| 71 | + <h2>What the system gives. What the agent declares.</h2> |
| 72 | + <p>The pluggable-agent contract is small on purpose. The host is responsible for the runtime; the agent is responsible for the work. Both halves are stable and inspectable, which is what makes agents portable across hosts and hosts portable across agents.</p> |
85 | 73 |
|
86 | | - <h3>Capabilities</h3> |
87 | | - <div class="caps-grid"> |
88 | | - <div class="cap"><b>Gmail</b>read · send · search</div> |
89 | | - <div class="cap"><b>Drive</b>list · search · create · delete · share · move · copy · rename</div> |
90 | | - <div class="cap"><b>Sheets</b>read · write · append · clear · create</div> |
91 | | - <div class="cap"><b>Docs</b>read · write · create</div> |
92 | | - <div class="cap"><b>Slides</b>get · create</div> |
93 | | - <div class="cap"><b>Calendar</b>list · create · update · get events</div> |
94 | | - </div> |
| 74 | + <h3>The host provides</h3> |
| 75 | + <ul> |
| 76 | + <li><b>Model access</b> — calls into the configured inference layer, with retries, budgets, and fallback handled outside the agent</li> |
| 77 | + <li><b>State</b> — persistent storage scoped to the agent, with lifecycle managed by the host</li> |
| 78 | + <li><b>Tools</b> — a tool registry the agent can call into, including tools published by other pluggable agents loaded in the same host</li> |
| 79 | + <li><b>Identity and secrets</b> — credentials and on-behalf-of context, loaded from the host's secret store rather than the agent's environment</li> |
| 80 | + <li><b>An event loop</b> — scheduled invocations, message arrivals, and lifecycle hooks delivered uniformly</li> |
| 81 | + </ul> |
95 | 82 |
|
96 | | - <h3>Stack</h3> |
97 | | - <p>Python 3.12 · LangGraph · LangChain · google-api-python-client · asyncpg · Prometheus.</p> |
| 83 | + <h3>The agent declares</h3> |
| 84 | + <ul> |
| 85 | + <li><b>Entry point</b> — a Python entry point so the host discovers the agent on install</li> |
| 86 | + <li><b>Capabilities</b> — what the agent does, in machine-readable form, so the host can route work to it</li> |
| 87 | + <li><b>Required resources</b> — what the agent needs from the host: model class, state schema, secrets, scheduled triggers</li> |
| 88 | + <li><b>Exposed tools</b> — the callable surface the agent contributes back to the host's tool registry</li> |
| 89 | + </ul> |
98 | 90 | </div> |
99 | 91 | </div> |
100 | 92 |
|
101 | | - <div class="detail-section"> |
102 | | - <div class="lbl">§ 02 · Microsoft 365</div> |
| 93 | + <div class="detail-section" id="hosts"> |
| 94 | + <div class="lbl">§ 02 · Hosts</div> |
103 | 95 | <div> |
104 | | - <h2>Full Microsoft 365, agent-accessible.</h2> |
105 | | - <p>Outlook mail, Calendar, and OneDrive via the Microsoft Graph API. OAuth2 token lifecycle managed via MSAL.</p> |
106 | | - |
107 | | - <h3>Capabilities</h3> |
108 | | - <div class="caps-grid"> |
109 | | - <div class="cap"><b>Email</b>read · send · search · list folders · mark read</div> |
110 | | - <div class="cap"><b>Calendar</b>list events · create · delete</div> |
111 | | - <div class="cap"><b>OneDrive</b>list · upload · search · create folders · delete</div> |
112 | | - <div class="cap"><b>Auth</b>OAuth2 flow · token status</div> |
113 | | - </div> |
114 | | - |
115 | | - <h3>Stack</h3> |
116 | | - <p>Python 3.12 · LangGraph · LangChain · MSAL · httpx · asyncpg · Prometheus.</p> |
| 96 | + <h2>Anywhere the contract is satisfied.</h2> |
| 97 | + <p>The Modular Agent Host is the primary general-purpose host — it loads any number of pluggable agents and exposes them through an OpenAI-compatible endpoint and an MCP tool surface. But it isn't the only host on the platform.</p> |
| 98 | + <p>Every agentic service in the platform — Context Broker, Inference Broker, Development Cache, Observability Platform, Agentic File System, Conversation Broker — ships with its own <b>Imperator</b>, the on-board manager that can metacode parts of its own service. Each Imperator is itself a pluggable agent. The same contract that loads a Google Workspace agent into the Modular Agent Host also loads an Imperator into its service. That is what makes Imperators swappable, extendable, and testable in isolation.</p> |
117 | 99 | </div> |
118 | 100 | </div> |
119 | 101 |
|
120 | | - <div class="detail-section"> |
121 | | - <div class="lbl">§ 03 · Why "pluggable"</div> |
| 102 | + <div class="detail-section" id="why"> |
| 103 | + <div class="lbl">§ 03 · Why pluggable</div> |
122 | 104 | <div> |
123 | 105 | <h2>Install and the host picks it up.</h2> |
124 | | - <p>Because agents register with their host via Python entry points, you can:</p> |
125 | 106 | <ul> |
126 | | - <li>Install a new agent with <code style="background:var(--bg-raised); padding:2px 5px; font-family:var(--mono); font-size:0.9em;">pip install</code> — the host discovers it automatically</li> |
127 | | - <li>Upgrade an agent without restarting the host</li> |
128 | | - <li>Develop agents independently from the runtime they'll be hosted in</li> |
129 | | - <li>Compose agents — a workflow can call Google Workspace, then Microsoft 365, then a custom internal agent, all in one conversation</li> |
| 107 | + <li>Install a new agent with <code style="background:var(--bg-raised); padding:2px 5px; font-family:var(--mono); font-size:0.9em;">pip install</code> — the host discovers it through entry points</li> |
| 108 | + <li>Hot-load — upgrade or replace an agent without restarting the host</li> |
| 109 | + <li>Develop independently from the runtime that will host it</li> |
| 110 | + <li>Compose — a workflow can chain agents from different packages in a single conversation</li> |
130 | 111 | </ul> |
131 | 112 | </div> |
132 | 113 | </div> |
133 | 114 |
|
134 | | - <div class="detail-section" id="install"> |
135 | | - <div class="lbl">§ 04 · Install</div> |
| 115 | + <div class="detail-section" id="starter-set"> |
| 116 | + <div class="lbl">§ 04 · Starter set</div> |
136 | 117 | <div> |
137 | | - <h2>Run them yourself.</h2> |
138 | | - <div class="code"><span class="comment"># Requires Modular Agent Host already running</span> |
139 | | -<span class="cmd">pip install</span> google-workspace-agent |
140 | | -<span class="cmd">pip install</span> microsoft-365-agent |
141 | | - |
142 | | -<span class="comment"># Restart not required — host discovers on install</span></div> |
143 | | - <p>Documentation for each agent lives in its repository.</p> |
| 118 | + <h2>A handful, as reference.</h2> |
| 119 | + <p>Two pluggable agents are currently published as part of the open source project. They exercise the contract end-to-end against real, complex APIs and double as worked examples.</p> |
| 120 | + <div class="two-package"> |
| 121 | + <div class="package-card"> |
| 122 | + <div class="head"><span>google-workspace-agent</span><span class="v">v0.2</span></div> |
| 123 | + <h3>Google Workspace</h3> |
| 124 | + <p>Gmail, Drive, Docs, Sheets, Slides, Calendar — service-account auth with domain-wide delegation. 30+ tools.</p> |
| 125 | + </div> |
| 126 | + <div class="package-card"> |
| 127 | + <div class="head"><span>microsoft-365-agent</span><span class="v">v0.2</span></div> |
| 128 | + <h3>Microsoft 365</h3> |
| 129 | + <p>Outlook, Calendar, OneDrive via Microsoft Graph. OAuth2 token lifecycle through MSAL. 15+ tools.</p> |
| 130 | + </div> |
| 131 | + </div> |
| 132 | + <p>Read them, fork them, modify them, replace them. They are intentionally small — most teams will write their own.</p> |
144 | 133 | </div> |
145 | 134 | </div> |
146 | 135 |
|
147 | | - <div class="detail-section"> |
| 136 | + <div class="detail-section" id="build"> |
148 | 137 | <div class="lbl">§ 05 · Build your own</div> |
149 | 138 | <div> |
150 | | - <h2>Agents for your stack, too.</h2> |
151 | | - <p>If you need an agent for <b>Slack, Jira, SharePoint, Salesforce, ServiceNow</b>, or your internal APIs — we build those as standard engagements. The modular-agent pattern makes it straightforward. The typical agent ships in a week or two depending on API complexity.</p> |
| 139 | + <h2>The system is the point.</h2> |
| 140 | + <p>The contract is small enough to implement in an afternoon for a new domain. Most of the work is whatever the domain itself requires — authentication, API quirks, schemas, rate limits. The Modular Agent Host and every Imperator slot are waiting on the other side, ready to load it.</p> |
| 141 | + <p>If you want one built — for Slack, Jira, SharePoint, Salesforce, ServiceNow, or your internal APIs — we do that on standard engagements. Typical pluggable agent ships in a week or two depending on API complexity.</p> |
152 | 142 | <p style="margin-top:1rem"><a class="link" href="../index.html#contact" style="color:var(--accent); border-bottom:1px solid var(--accent); padding-bottom:2px; font-weight:500;">Talk to us →</a></p> |
153 | 143 | </div> |
154 | 144 | </div> |
|
0 commit comments