Skip to content

Commit e073de2

Browse files
author
JiaDe
committed
docs+brand: revert to OpenClaw Enterprise, add Gateway architecture + employee onboarding
- Revert ClawForge branding back to 'OpenClaw Enterprise on AgentCore' across README, Login, Layout, PortalLayout, Chat, HTML title - Keep the geometric logo component (just renamed text labels) - README: new 'Gateway Architecture' section explaining one-Bot-all-employees design — how a single OpenClaw Gateway serves as unified IM connection layer, with H2 Proxy extracting user identity per message - README: new 'Employee Onboarding Flow' section — 5-step process from employee joining Discord/Slack to having a personalized AI agent, with zero configuration for the employee - This is a key differentiator: employees just DM the company Bot, IT Admin does one-click approval + binding in Admin Console
1 parent b8cf6ad commit e073de2

7 files changed

Lines changed: 62 additions & 7 deletions

File tree

enterprise/README.md

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# ClawForge on AgentCore
1+
# OpenClaw Enterprise on AgentCore
22

33
Turn [OpenClaw](https://github.com/openclaw/openclaw) from a personal AI assistant into an enterprise-grade digital workforce platform — without modifying a single line of OpenClaw source code.
44

@@ -168,6 +168,61 @@ The merged SOUL.md is what the agent reads. An SA agent and a Finance agent use
168168
└─────────────────────────────────────────────────────────────┘
169169
```
170170

171+
## Gateway Architecture: One Bot, All Employees
172+
173+
A single OpenClaw Gateway on EC2 serves as the unified IM connection layer for the entire organization. IT Admin creates one Bot per IM platform (one Discord Bot, one Telegram Bot, one Slack App), and all employees share it.
174+
175+
```
176+
IT Admin (one-time setup):
177+
Discord → Create 1 Bot "ACME Agent" → Connect to Gateway
178+
Telegram → Create 1 Bot @acme_bot → Connect to Gateway
179+
Slack → Create 1 App → Connect to Gateway
180+
WhatsApp → Link 1 number → Connect to Gateway
181+
182+
All employees use the same Bot, but get different Agents:
183+
184+
Carol DMs @ACME Agent → Gateway → H2 Proxy extracts user_id → Tenant Router
185+
→ AgentCore microVM (Carol's Finance Analyst SOUL) → Bedrock → reply
186+
187+
Wang Wu DMs @ACME Agent → Gateway → H2 Proxy extracts user_id → Tenant Router
188+
→ AgentCore microVM (Wang Wu's SDE SOUL) → Bedrock → reply
189+
```
190+
191+
The Gateway doesn't do AI inference — it only manages IM connections. When a message arrives, OpenClaw's AWS SDK call to Bedrock is intercepted by the H2 Proxy, which extracts the sender's platform user ID and forwards to the Tenant Router. The Router derives a unique `tenant_id` and invokes AgentCore, which creates an isolated Firecracker microVM with the employee's personalized SOUL.
192+
193+
### Employee Onboarding Flow
194+
195+
When a new employee joins the company and needs their AI agent:
196+
197+
```
198+
Step 1: Employee joins company Discord/Slack/Telegram
199+
(or IT sends them an invite link)
200+
201+
Step 2: Employee DMs the company Bot for the first time
202+
Bot replies: "Pairing code: KFDAF3GN"
203+
204+
Step 3: IT Admin opens Admin Console → Bindings → IM User Mappings
205+
Clicks "Add Mapping":
206+
Channel: Discord
207+
Platform User ID: 1460888812426363004 (from pairing message)
208+
Employee: Carol Zhang (Finance Analyst)
209+
→ System writes SSM mapping + approves pairing
210+
211+
Step 4: Employee sends another message
212+
→ Gateway allows it (pairing approved)
213+
→ H2 Proxy extracts Discord user_id
214+
→ Tenant Router resolves: user_id → emp-carol → pos-fa
215+
→ AgentCore creates microVM with Finance Analyst SOUL
216+
→ Agent responds as "ACME Corp Finance Analyst"
217+
218+
Step 5: From now on, every DM from Carol goes to her personal Agent
219+
with her SOUL identity, permissions, memory, and skills.
220+
```
221+
222+
Zero configuration for the employee. They just DM the Bot. IT Admin does a one-click approval + binding in the Admin Console.
223+
224+
For employees who don't use IM tools, the Web Portal provides the same experience — login with employee ID, chat with their bound Agent directly in the browser.
225+
171226
## Key Features
172227

173228
| Feature | How It Works |

enterprise/admin-console/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<head>
44
<meta charset="UTF-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6-
<title>ClawForge on AgentCore</title>
6+
<title>OpenClaw Enterprise on AgentCore</title>
77
<link rel="icon" href="/favicon.ico" />
88
</head>
99
<body>

enterprise/admin-console/src/components/ClawForgeLogo.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ export function ClawForgeBrand({ size = 'md', animate = 'idle' as Props['animate
6969
<div className="flex items-center gap-2.5">
7070
<ClawForgeLogo size={logoSize} animate={animate} variant={variant} />
7171
<div>
72-
<div className={`${titleSize} font-extrabold ${textColor} tracking-tight`}>ClawForge</div>
72+
<div className={`${titleSize} font-extrabold ${textColor} tracking-tight`}>OpenClaw Enterprise</div>
7373
<div className={`${subSize} ${subColor}`}>on AgentCore · aws-samples</div>
7474
</div>
7575
</div>

enterprise/admin-console/src/components/Layout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ export default function Layout({ children }: { children: ReactNode }) {
171171
<ClawForgeLogo size={32} animate="idle" />
172172
{sidebarOpen && (
173173
<div className="overflow-hidden">
174-
<div className="text-sm font-semibold text-text-primary truncate">ClawForge</div>
174+
<div className="text-sm font-semibold text-text-primary truncate">OpenClaw Enterprise</div>
175175
<div className="text-[10px] text-text-muted truncate">on AgentCore · aws-samples</div>
176176
</div>
177177
)}

enterprise/admin-console/src/components/PortalLayout.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export default function PortalLayout({ children }: { children: ReactNode }) {
2626
<div className="flex h-16 items-center gap-3 border-b border-dark-border px-4">
2727
<ClawForgeLogo size={32} animate="idle" />
2828
<div>
29-
<div className="text-sm font-semibold text-text-primary">ClawForge Portal</div>
29+
<div className="text-sm font-semibold text-text-primary">OpenClaw Portal</div>
3030
<div className="text-xs text-text-muted">{user?.name || 'Employee'}</div>
3131
</div>
3232
</div>

enterprise/admin-console/src/pages/Login.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export default function Login() {
4545
{/* Logo */}
4646
<div className="text-center mb-8">
4747
<div className="inline-flex mb-4"><ClawForgeLogo size={56} animate="idle" /></div>
48-
<h1 className="text-2xl font-bold text-text-primary">ClawForge</h1>
48+
<h1 className="text-2xl font-bold text-text-primary">OpenClaw Enterprise</h1>
4949
<p className="text-sm text-text-muted mt-1">on AgentCore · aws-samples</p>
5050
</div>
5151

enterprise/admin-console/src/pages/portal/Chat.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ export default function PortalChat() {
9494
<div className="flex items-center gap-3">
9595
<ClawForgeLogo size={36} animate="idle" />
9696
<div>
97-
<h1 className="text-sm font-semibold text-text-primary">ClawForge Assistant</h1>
97+
<h1 className="text-sm font-semibold text-text-primary">AI Assistant</h1>
9898
<p className="text-xs text-text-muted">{user?.positionName} · {user?.departmentName}</p>
9999
</div>
100100
</div>

0 commit comments

Comments
 (0)