@agenticmail/openclaw 0.5.42 → 0.5.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/REFERENCE.md +139 -597
- package/openclaw.plugin.json +1 -1
- package/package.json +1 -1
- package/skill/SKILL.md +25 -2
package/REFERENCE.md
CHANGED
|
@@ -1,675 +1,217 @@
|
|
|
1
|
-
#
|
|
1
|
+
# AgenticMail OpenClaw Plugin — Tool Reference
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **63 tools** available via the OpenClaw plugin (`@agenticmail/openclaw`)
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
##
|
|
7
|
+
## Core
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
```
|
|
9
|
+
### `agenticmail_status`
|
|
10
|
+
Check AgenticMail server health status.
|
|
12
11
|
|
|
13
|
-
|
|
12
|
+
### `agenticmail_whoami`
|
|
13
|
+
Get the current agent\'s account info — name, email, role, and metadata.
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
## Plugin Manifest
|
|
18
|
-
|
|
19
|
-
**File:** `openclaw.plugin.json`
|
|
20
|
-
|
|
21
|
-
```json
|
|
22
|
-
{
|
|
23
|
-
"id": "agenticmail",
|
|
24
|
-
"displayName": "AgenticMail",
|
|
25
|
-
"version": "0.2.0",
|
|
26
|
-
"description": "Full email channel + tools for AI agents",
|
|
27
|
-
"channels": ["mail"],
|
|
28
|
-
"configSchema": {
|
|
29
|
-
"apiUrl": { "type": "string", "default": "http://127.0.0.1:3100" },
|
|
30
|
-
"apiKey": { "type": "string", "required": true },
|
|
31
|
-
"masterKey": { "type": "string" }
|
|
32
|
-
},
|
|
33
|
-
"requires": { "bins": ["docker"] }
|
|
34
|
-
}
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
---
|
|
38
|
-
|
|
39
|
-
## Configuration
|
|
40
|
-
|
|
41
|
-
### ToolContext
|
|
42
|
-
|
|
43
|
-
```typescript
|
|
44
|
-
interface ToolContext {
|
|
45
|
-
config: {
|
|
46
|
-
apiUrl: string; // Default: 'http://127.0.0.1:3100'
|
|
47
|
-
apiKey: string; // Agent API key (required)
|
|
48
|
-
masterKey?: string; // Master admin key (optional)
|
|
49
|
-
};
|
|
50
|
-
ownerName?: string; // Resolved from OpenClaw agent config
|
|
51
|
-
}
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### Config Resolution
|
|
55
|
-
|
|
56
|
-
1. `api?.getConfig?.()` or `{}`
|
|
57
|
-
2. `api?.pluginConfig` or step 1 result
|
|
58
|
-
3. Manifest defaults
|
|
59
|
-
|
|
60
|
-
### Owner Name Resolution
|
|
61
|
-
|
|
62
|
-
Extracted from OpenClaw agent config: `api?.config?.agents?.list` → `defaultAgent?.identity?.name` or first agent's name.
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## API Request Function
|
|
67
|
-
|
|
68
|
-
```typescript
|
|
69
|
-
async function apiRequest(
|
|
70
|
-
ctx: ToolContext,
|
|
71
|
-
method: string,
|
|
72
|
-
path: string,
|
|
73
|
-
body?: unknown,
|
|
74
|
-
useMasterKey = false,
|
|
75
|
-
timeoutMs = 30_000
|
|
76
|
-
): Promise<any>
|
|
77
|
-
```
|
|
78
|
-
|
|
79
|
-
- Base URL: `${ctx.config.apiUrl}/api/agenticmail${path}`
|
|
80
|
-
- Auth: `Authorization: Bearer ${useMasterKey ? ctx.config.masterKey : ctx.config.apiKey}`
|
|
81
|
-
- Throws if required key not configured
|
|
82
|
-
- Timeout: `AbortSignal.timeout(timeoutMs)` — 30 seconds default
|
|
83
|
-
- Error: `AgenticMail API error {status}: {text}`
|
|
84
|
-
- Response: JSON if Content-Type includes `application/json`, else `null`
|
|
85
|
-
|
|
86
|
-
---
|
|
87
|
-
|
|
88
|
-
## Sub-Agent Identity System
|
|
89
|
-
|
|
90
|
-
### SubagentAccount
|
|
91
|
-
|
|
92
|
-
```typescript
|
|
93
|
-
interface SubagentAccount {
|
|
94
|
-
id: string;
|
|
95
|
-
name: string;
|
|
96
|
-
email: string;
|
|
97
|
-
apiKey: string;
|
|
98
|
-
parentEmail: string; // Coordinator's email (for auto-CC)
|
|
99
|
-
createdAt: number; // ms since epoch
|
|
100
|
-
}
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
### AgentIdentity Registry
|
|
104
|
-
|
|
105
|
-
```typescript
|
|
106
|
-
interface AgentIdentity {
|
|
107
|
-
apiKey: string;
|
|
108
|
-
parentEmail: string;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
registerAgentIdentity(name: string, apiKey: string, parentEmail: string): void
|
|
112
|
-
unregisterAgentIdentity(name: string): void
|
|
113
|
-
setLastActivatedAgent(name: string): void
|
|
114
|
-
clearLastActivatedAgent(name: string): void
|
|
115
|
-
```
|
|
116
|
-
|
|
117
|
-
### Context Resolution (4-path hierarchy)
|
|
118
|
-
|
|
119
|
-
1. **Direct injection:** `params._agentApiKey` (from tool factory)
|
|
120
|
-
2. **Raw key:** `params._auth` (from prepend context)
|
|
121
|
-
3. **Agent name:** `params._account` → lookup in identity registry → fallback to API lookup via master key
|
|
122
|
-
4. **Auto-detect:** `lastActivatedAgent` (zero-cooperation fallback)
|
|
123
|
-
|
|
124
|
-
### Auto-CC
|
|
125
|
-
|
|
126
|
-
When a sub-agent sends an inter-agent email (`@localhost`), the parent coordinator is automatically added to CC. External emails skip auto-CC. Deduplication prevents adding the parent if already in To or CC.
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
## Inter-Agent Rate Limiting
|
|
131
|
-
|
|
132
|
-
### Configuration
|
|
133
|
-
|
|
134
|
-
| Parameter | Value |
|
|
135
|
-
|-----------|-------|
|
|
136
|
-
| `WARN_THRESHOLD` | 3 unanswered messages |
|
|
137
|
-
| `BLOCK_THRESHOLD` | 5 unanswered messages |
|
|
138
|
-
| `WINDOW_MAX` | 10 messages per window |
|
|
139
|
-
| `WINDOW_MS` | 300,000ms (5 minutes) |
|
|
140
|
-
| `COOLDOWN_MS` | 120,000ms (2 minutes) |
|
|
141
|
-
| `TRACKER_GC_INTERVAL_MS` | 600,000ms (10 minutes) |
|
|
142
|
-
| `TRACKER_STALE_MS` | 1,800,000ms (30 minutes) |
|
|
143
|
-
|
|
144
|
-
### MessageRecord
|
|
145
|
-
|
|
146
|
-
```typescript
|
|
147
|
-
interface MessageRecord {
|
|
148
|
-
unanswered: number; // Consecutive unanswered count
|
|
149
|
-
sentTimestamps: number[]; // Timestamps within window
|
|
150
|
-
lastSentAt: number;
|
|
151
|
-
lastReplyAt: number;
|
|
152
|
-
}
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
### Functions
|
|
156
|
-
|
|
157
|
-
| Function | Description |
|
|
158
|
-
|----------|-------------|
|
|
159
|
-
| `checkRateLimit(from, to)` | Returns `{allowed, warning?}` |
|
|
160
|
-
| `recordSentMessage(from, to)` | Increments unanswered, adds timestamp |
|
|
161
|
-
| `recordInboundAgentMessage(from, to)` | Resets unanswered count |
|
|
162
|
-
|
|
163
|
-
---
|
|
164
|
-
|
|
165
|
-
## Outbound Security Guard
|
|
166
|
-
|
|
167
|
-
### Scan Function
|
|
168
|
-
|
|
169
|
-
```typescript
|
|
170
|
-
function scanOutbound(
|
|
171
|
-
to: string | string[],
|
|
172
|
-
subject?: string,
|
|
173
|
-
text?: string,
|
|
174
|
-
html?: string,
|
|
175
|
-
attachments?: Array<{ filename?: string }>
|
|
176
|
-
): OutboundScanResultInline
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
Returns: `{ warnings: McpOutboundWarning[], blocked: boolean, summary: string }`
|
|
180
|
-
|
|
181
|
-
Skips scanning if all recipients are `@localhost`.
|
|
182
|
-
|
|
183
|
-
### Detection Rules (38+)
|
|
184
|
-
|
|
185
|
-
**PII (13 rules):**
|
|
186
|
-
|
|
187
|
-
| Rule ID | Severity | Description |
|
|
188
|
-
|---------|----------|-------------|
|
|
189
|
-
| `ob_ssn` | HIGH | SSN pattern `\d{3}-\d{2}-\d{4}` |
|
|
190
|
-
| `ob_ssn_obfuscated` | HIGH | Obfuscated SSN variants |
|
|
191
|
-
| `ob_credit_card` | HIGH | Credit card numbers |
|
|
192
|
-
| `ob_phone` | MEDIUM | Phone number patterns |
|
|
193
|
-
| `ob_bank_routing` | HIGH | Routing/account numbers |
|
|
194
|
-
| `ob_drivers_license` | HIGH | Driver's license patterns |
|
|
195
|
-
| `ob_dob` | MEDIUM | Date of birth with keywords |
|
|
196
|
-
| `ob_passport` | HIGH | Passport numbers |
|
|
197
|
-
| `ob_tax_id` | HIGH | EIN/TIN patterns |
|
|
198
|
-
| `ob_itin` | HIGH | ITIN patterns |
|
|
199
|
-
| `ob_medicare` | HIGH | Medicare/Medicaid IDs |
|
|
200
|
-
| `ob_immigration` | HIGH | Immigration A-numbers |
|
|
201
|
-
| `ob_pin` | MEDIUM | PIN codes |
|
|
202
|
-
|
|
203
|
-
**Financial (5 rules):**
|
|
204
|
-
|
|
205
|
-
| Rule ID | Severity | Description |
|
|
206
|
-
|---------|----------|-------------|
|
|
207
|
-
| `ob_security_qa` | MEDIUM | Security Q&A patterns |
|
|
208
|
-
| `ob_iban` | HIGH | IBAN patterns |
|
|
209
|
-
| `ob_swift` | MEDIUM | SWIFT/BIC codes |
|
|
210
|
-
| `ob_crypto_wallet` | HIGH | BTC/ETH/XMR wallet addresses |
|
|
211
|
-
| `ob_wire_transfer` | HIGH | Wire transfer instructions |
|
|
212
|
-
|
|
213
|
-
**Credentials (16 rules):**
|
|
214
|
-
|
|
215
|
-
| Rule ID | Severity | Description |
|
|
216
|
-
|---------|----------|-------------|
|
|
217
|
-
| `ob_api_key` | HIGH | API key patterns |
|
|
218
|
-
| `ob_aws_key` | HIGH | `AKIA[A-Z0-9]{16}` |
|
|
219
|
-
| `ob_password_value` | HIGH | Password field patterns |
|
|
220
|
-
| `ob_private_key` | HIGH | PEM private key headers |
|
|
221
|
-
| `ob_bearer_token` | HIGH | Bearer token patterns |
|
|
222
|
-
| `ob_connection_string` | HIGH | DB connection strings |
|
|
223
|
-
| `ob_github_token` | HIGH | GitHub token patterns |
|
|
224
|
-
| `ob_stripe_key` | HIGH | Stripe key patterns |
|
|
225
|
-
| `ob_jwt` | HIGH | JWT token patterns |
|
|
226
|
-
| `ob_webhook_url` | HIGH | Slack/Discord webhook URLs |
|
|
227
|
-
| `ob_env_block` | HIGH | Consecutive ENV variable lines |
|
|
228
|
-
| `ob_seed_phrase` | HIGH | Crypto seed/recovery phrases |
|
|
229
|
-
| `ob_2fa_codes` | HIGH | 2FA backup codes |
|
|
230
|
-
| `ob_credential_pair` | HIGH | Username+password pairs |
|
|
231
|
-
| `ob_oauth_token` | HIGH | OAuth tokens |
|
|
232
|
-
| `ob_vpn_creds` | HIGH | VPN credentials |
|
|
233
|
-
|
|
234
|
-
**System Internals (3 rules):**
|
|
235
|
-
|
|
236
|
-
| Rule ID | Severity | Description |
|
|
237
|
-
|---------|----------|-------------|
|
|
238
|
-
| `ob_private_ip` | MEDIUM | Private IP ranges |
|
|
239
|
-
| `ob_file_path` | MEDIUM | File paths (/home, /Users, C:\\) |
|
|
240
|
-
| `ob_env_variable` | MEDIUM | Environment variable assignments |
|
|
241
|
-
|
|
242
|
-
**Owner Privacy (2 rules):**
|
|
243
|
-
|
|
244
|
-
| Rule ID | Severity | Description |
|
|
245
|
-
|---------|----------|-------------|
|
|
246
|
-
| `ob_owner_info` | HIGH | Owner's personal info |
|
|
247
|
-
| `ob_personal_reveal` | HIGH | Agent's creator/operator |
|
|
248
|
-
|
|
249
|
-
**Attachment Risk:**
|
|
250
|
-
|
|
251
|
-
| Risk Level | Extensions |
|
|
252
|
-
|------------|------------|
|
|
253
|
-
| HIGH (keys) | `.pem`, `.key`, `.p12`, `.pfx`, `.env`, `.credentials`, `.keystore`, `.jks`, `.p8` |
|
|
254
|
-
| MEDIUM (data) | `.db`, `.sqlite`, `.sqlite3`, `.sql`, `.csv`, `.tsv`, `.json`, `.yml`, `.yaml`, `.conf`, `.config`, `.ini` |
|
|
255
|
-
| HIGH (exec) | `.exe`, `.bat`, `.cmd`, `.ps1`, `.sh`, `.msi`, `.scr`, `.com`, `.vbs`, `.js`, `.wsf`, `.hta`, `.cpl`, `.jar`, `.app`, `.dmg`, `.run` |
|
|
256
|
-
| MEDIUM (archive) | `.zip`, `.rar`, `.7z`, `.tar`, `.gz`, `.bz2`, `.xz`, `.cab`, `.iso` |
|
|
257
|
-
| CRITICAL | Double extensions (e.g., `.pdf.exe`) |
|
|
258
|
-
|
|
259
|
-
---
|
|
260
|
-
|
|
261
|
-
## Tool Definitions (54 tools)
|
|
262
|
-
|
|
263
|
-
### Tool Registration
|
|
264
|
-
|
|
265
|
-
Tools are registered as factories — OpenClaw calls the factory per-session with `{sessionKey, ...}`. The sub-agent API key is injected at execution time through the 4-path context resolution hierarchy.
|
|
15
|
+
### `agenticmail_update_metadata`
|
|
16
|
+
Update the current agent\'s metadata. Merges provided keys with existing metadata..
|
|
266
17
|
|
|
267
|
-
|
|
18
|
+
## Email Management
|
|
268
19
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
content: [{ type: 'text', text: JSON.stringify(result, null, 2) }],
|
|
272
|
-
details: result
|
|
273
|
-
}
|
|
274
|
-
```
|
|
20
|
+
### `agenticmail_inbox`
|
|
21
|
+
List recent emails in the inbox.
|
|
275
22
|
|
|
276
|
-
###
|
|
23
|
+
### `agenticmail_read`
|
|
24
|
+
Read a specific email by UID. Returns sanitized content with security metadata (spam score, sanitization detections).
|
|
277
25
|
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
| `to` | string | Yes | Recipient |
|
|
281
|
-
| `subject` | string | Yes | Subject line |
|
|
282
|
-
| `text` | string | No | Plain text body |
|
|
283
|
-
| `html` | string | No | HTML body |
|
|
284
|
-
| `cc` | string | No | CC recipients |
|
|
285
|
-
| `inReplyTo` | string | No | Message-ID for threading |
|
|
286
|
-
| `references` | array | No | Message-ID chain |
|
|
287
|
-
| `attachments` | array | No | `{filename, content, contentType, encoding}` |
|
|
26
|
+
### `agenticmail_send`
|
|
27
|
+
Send an email from the agent mailbox. Outgoing emails to external recipients are scanned for PII, credentials, and sensitive content.
|
|
288
28
|
|
|
289
|
-
|
|
290
|
-
Outbound guard
|
|
29
|
+
### `agenticmail_reply`
|
|
30
|
+
Reply to an email by UID. Outbound guard applies — HIGH severity content is held for review..
|
|
291
31
|
|
|
292
|
-
###
|
|
32
|
+
### `agenticmail_forward`
|
|
33
|
+
Forward an email to another recipient. Outbound guard applies — HIGH severity content is held for review..
|
|
293
34
|
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
| `limit` | number | 20 | 1–100 |
|
|
297
|
-
| `offset` | number | 0 | 0+ |
|
|
35
|
+
### `agenticmail_search`
|
|
36
|
+
Search emails by criteria. By default searches local inbox only.
|
|
298
37
|
|
|
299
|
-
###
|
|
38
|
+
### `agenticmail_delete`
|
|
39
|
+
Delete an email by UID.
|
|
300
40
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
| `uid` | number | Yes | — |
|
|
304
|
-
| `folder` | string | No | INBOX |
|
|
41
|
+
### `agenticmail_move`
|
|
42
|
+
Move an email to another folder.
|
|
305
43
|
|
|
306
|
-
|
|
44
|
+
### `agenticmail_mark_read`
|
|
45
|
+
Mark an email as read.
|
|
307
46
|
|
|
308
|
-
###
|
|
47
|
+
### `agenticmail_mark_unread`
|
|
48
|
+
Mark an email as unread.
|
|
309
49
|
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
| `from` | string | Sender filter |
|
|
313
|
-
| `to` | string | Recipient filter |
|
|
314
|
-
| `subject` | string | Subject filter |
|
|
315
|
-
| `text` | string | Body text search |
|
|
316
|
-
| `since` | string | ISO 8601 (after) |
|
|
317
|
-
| `before` | string | ISO 8601 (before) |
|
|
318
|
-
| `seen` | boolean | Read status |
|
|
319
|
-
| `searchRelay` | boolean | Also search Gmail/Outlook |
|
|
50
|
+
### `agenticmail_digest`
|
|
51
|
+
Get a compact inbox digest with subject, sender, date, flags and a text preview for each message. Much more efficient than listing then reading emails one-by-one.
|
|
320
52
|
|
|
321
|
-
###
|
|
53
|
+
### `agenticmail_list_folder`
|
|
54
|
+
List messages in a specific mail folder (Sent, Drafts, Trash, etc.).
|
|
322
55
|
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
| `uid` | number | Yes |
|
|
56
|
+
### `agenticmail_folders`
|
|
57
|
+
List all mail folders.
|
|
326
58
|
|
|
327
|
-
###
|
|
59
|
+
### `agenticmail_create_folder`
|
|
60
|
+
Create a new mail folder for organizing emails.
|
|
328
61
|
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
| `uid` | number | Yes |
|
|
62
|
+
### `agenticmail_import_relay`
|
|
63
|
+
Import an email from the user\'s connected Gmail/Outlook account into the agent\'s local inbox. Downloads the full message with all thread headers so you can continue the conversation with agenticmail_reply.
|
|
332
64
|
|
|
333
|
-
|
|
65
|
+
## Drafts & Templates
|
|
334
66
|
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
| `uid` | number | Yes | — |
|
|
338
|
-
| `text` | string | Yes | — |
|
|
339
|
-
| `replyAll` | boolean | No | false |
|
|
67
|
+
### `agenticmail_drafts`
|
|
68
|
+
Manage email drafts: list, create, update, delete, or send a draft.
|
|
340
69
|
|
|
341
|
-
|
|
70
|
+
### `agenticmail_signatures`
|
|
71
|
+
Manage email signatures: list, create, or delete.
|
|
342
72
|
|
|
343
|
-
###
|
|
73
|
+
### `agenticmail_templates`
|
|
74
|
+
Manage email templates: list, create, or delete.
|
|
344
75
|
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
| `uid` | number | Yes |
|
|
348
|
-
| `to` | string | Yes |
|
|
349
|
-
| `text` | string | No |
|
|
76
|
+
### `agenticmail_template_send`
|
|
77
|
+
Send an email using a saved template with variable substitution. Variables in the template like {{name}} are replaced with provided values.
|
|
350
78
|
|
|
351
|
-
|
|
79
|
+
### `agenticmail_schedule`
|
|
80
|
+
Manage scheduled emails: create a new scheduled email, list pending scheduled emails, or cancel a scheduled email..
|
|
352
81
|
|
|
353
|
-
|
|
82
|
+
## Batch Operations
|
|
354
83
|
|
|
355
|
-
|
|
84
|
+
### `agenticmail_batch_read`
|
|
85
|
+
Read multiple emails at once by UIDs. Returns full parsed content for each.
|
|
356
86
|
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
| `agenticmail_batch_read` | `folder?` | `POST /mail/batch/read` |
|
|
360
|
-
| `agenticmail_batch_delete` | `folder?` | `POST /mail/batch/delete` |
|
|
361
|
-
| `agenticmail_batch_mark_read` | `folder?` | `POST /mail/batch/seen` |
|
|
362
|
-
| `agenticmail_batch_mark_unread` | `folder?` | `POST /mail/batch/unseen` |
|
|
363
|
-
| `agenticmail_batch_move` | `from?`, `to` (required) | `POST /mail/batch/move` |
|
|
87
|
+
### `agenticmail_batch_delete`
|
|
88
|
+
Delete multiple emails by UIDs.
|
|
364
89
|
|
|
365
|
-
###
|
|
90
|
+
### `agenticmail_batch_mark_read`
|
|
91
|
+
Mark multiple emails as read.
|
|
366
92
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
| `limit` | number | 20 | 1–50 |
|
|
370
|
-
| `offset` | number | 0 | 0+ |
|
|
371
|
-
| `folder` | string | INBOX | — |
|
|
372
|
-
| `previewLength` | number | 200 | 1–500 |
|
|
93
|
+
### `agenticmail_batch_mark_unread`
|
|
94
|
+
Mark multiple emails as unread.
|
|
373
95
|
|
|
374
|
-
###
|
|
96
|
+
### `agenticmail_batch_move`
|
|
97
|
+
Move multiple emails to another folder.
|
|
375
98
|
|
|
376
|
-
|
|
377
|
-
|-------|------|----------|
|
|
378
|
-
| `id` | string | Yes |
|
|
379
|
-
| `to` | string | Yes |
|
|
380
|
-
| `variables` | object | No |
|
|
381
|
-
| `cc` | string | No |
|
|
382
|
-
| `bcc` | string | No |
|
|
99
|
+
## Agent Management
|
|
383
100
|
|
|
384
|
-
###
|
|
101
|
+
### `agenticmail_list_agents`
|
|
102
|
+
List all AI agents in the system with their email addresses and roles. Use this to discover which agents are available to communicate with via agenticmail_message_agent..
|
|
385
103
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
| `agenticmail_folders` | (none) | `GET /mail/folders` |
|
|
389
|
-
| `agenticmail_list_folder` | `folder`, `limit?`, `offset?` | `GET /mail/folders/{folder}` |
|
|
390
|
-
| `agenticmail_create_folder` | `name` | `POST /mail/folders` |
|
|
391
|
-
| `agenticmail_move` | `uid`, `to`, `from?` | `POST /mail/messages/{uid}/move` |
|
|
392
|
-
| `agenticmail_mark_read` | `uid` | `POST /mail/messages/{uid}/seen` |
|
|
393
|
-
| `agenticmail_mark_unread` | `uid` | `POST /mail/messages/{uid}/unseen` |
|
|
104
|
+
### `agenticmail_create_account`
|
|
105
|
+
Create a new agent email account (requires master key).
|
|
394
106
|
|
|
395
|
-
###
|
|
107
|
+
### `agenticmail_delete_agent`
|
|
108
|
+
Delete an agent account. Archives all emails and generates a deletion report before removing the account permanently.
|
|
396
109
|
|
|
397
|
-
|
|
110
|
+
### `agenticmail_deletion_reports`
|
|
111
|
+
List past agent deletion reports or retrieve a specific report. Shows archived email summaries from deleted agents..
|
|
398
112
|
|
|
399
|
-
|
|
113
|
+
### `agenticmail_cleanup`
|
|
114
|
+
List or remove inactive non-persistent agent accounts. Use this to clean up test/temporary agents that are no longer active.
|
|
400
115
|
|
|
401
|
-
|
|
116
|
+
## Agent Coordination
|
|
402
117
|
|
|
403
|
-
|
|
118
|
+
### `agenticmail_message_agent`
|
|
119
|
+
Send a message to another AI agent by name. The message is delivered to their email inbox.
|
|
404
120
|
|
|
405
|
-
|
|
121
|
+
### `agenticmail_call_agent`
|
|
122
|
+
Call another agent with a task. Supports sync (wait for result) and async (fire-and-forget) modes.
|
|
406
123
|
|
|
407
|
-
|
|
124
|
+
### `agenticmail_check_messages`
|
|
125
|
+
Check for new unread messages from other agents or external senders. Returns a summary of pending communications.
|
|
408
126
|
|
|
409
|
-
|
|
127
|
+
### `agenticmail_check_tasks`
|
|
128
|
+
Check for pending tasks assigned to you (or a specific agent), or tasks you assigned to others..
|
|
410
129
|
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
- Actions: `move_to`, `mark_read`, `delete`, `add_tags`
|
|
130
|
+
### `agenticmail_claim_task`
|
|
131
|
+
Claim a pending task assigned to you. Changes status from pending to claimed so you can start working on it..
|
|
414
132
|
|
|
415
|
-
###
|
|
133
|
+
### `agenticmail_submit_result`
|
|
134
|
+
Submit the result for a claimed task, marking it as completed..
|
|
416
135
|
|
|
417
|
-
|
|
136
|
+
### `agenticmail_complete_task`
|
|
137
|
+
Claim and submit result in one call (skip separate claim + submit). Use for light-mode tasks where you already have the answer..
|
|
418
138
|
|
|
419
|
-
|
|
420
|
-
|
|
139
|
+
### `agenticmail_wait_for_email`
|
|
140
|
+
Wait for a new email or task notification using push notifications (SSE). Blocks until an email arrives, a task is assigned to you, or timeout is reached.
|
|
421
141
|
|
|
422
|
-
|
|
142
|
+
## Contacts, Tags & Rules
|
|
423
143
|
|
|
424
|
-
###
|
|
144
|
+
### `agenticmail_contacts`
|
|
145
|
+
Manage contacts (list, add, delete).
|
|
425
146
|
|
|
426
|
-
|
|
147
|
+
### `agenticmail_tags`
|
|
148
|
+
Manage tags/labels: list, create, delete, tag/untag messages, get messages by tag, or get all tags for a specific message.
|
|
427
149
|
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|-------|------|----------|
|
|
431
|
-
| `agent` | string | Yes |
|
|
432
|
-
| `subject` | string | Yes |
|
|
433
|
-
| `text` | string | Yes |
|
|
434
|
-
| `priority` | "normal"\|"high"\|"urgent" | No |
|
|
150
|
+
### `agenticmail_rules`
|
|
151
|
+
Manage server-side email rules that auto-process incoming messages (move, tag, mark read, delete). Rules run before you even see the email, saving tokens on manual triage..
|
|
435
152
|
|
|
436
|
-
|
|
153
|
+
## Security & Moderation
|
|
437
154
|
|
|
438
|
-
|
|
155
|
+
### `agenticmail_spam`
|
|
156
|
+
Manage spam: list the spam folder, report a message as spam, mark as not-spam, or get the detailed spam score of a message. Emails are auto-scored on arrival — high-scoring messages (prompt injection, phishing, scams) are moved to Spam automatically..
|
|
439
157
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|-------|------|---------|-------|
|
|
443
|
-
| `timeout` | number | 120 | 5–300 |
|
|
158
|
+
### `agenticmail_pending_emails`
|
|
159
|
+
Check the status of pending outbound emails that were blocked by the outbound guard. You can list all your pending emails or get details of a specific one.
|
|
444
160
|
|
|
445
|
-
|
|
161
|
+
## Setup & Configuration
|
|
446
162
|
|
|
447
|
-
###
|
|
163
|
+
### `agenticmail_setup_guide`
|
|
164
|
+
Get a comparison of email setup modes (Relay vs Domain) with difficulty levels, requirements, and step-by-step instructions. Show this to users who want to set up real internet email to help them choose the right mode..
|
|
448
165
|
|
|
449
|
-
|
|
166
|
+
### `agenticmail_setup_relay`
|
|
167
|
+
Configure Gmail/Outlook relay for real internet email (requires master key). BEGINNER-FRIENDLY: Just needs a Gmail/Outlook email + app password.
|
|
450
168
|
|
|
451
|
-
|
|
169
|
+
### `agenticmail_setup_domain`
|
|
170
|
+
Set up custom domain for real internet email via Cloudflare (requires master key). ADVANCED: Requires a Cloudflare account, API token, and a domain (can purchase one during setup).
|
|
452
171
|
|
|
453
|
-
|
|
172
|
+
### `agenticmail_setup_gmail_alias`
|
|
173
|
+
Get step-by-step instructions (with exact field values) to add an agent email as a Gmail "Send mail as" alias. Returns the Gmail settings URL and all field values needed.
|
|
454
174
|
|
|
455
|
-
|
|
175
|
+
### `agenticmail_setup_payment`
|
|
176
|
+
Get instructions for adding a payment method to Cloudflare (required before purchasing domains). Returns two options: (A) direct link for user to do it themselves, or (B) step-by-step browser automation instructions for the agent.
|
|
456
177
|
|
|
457
|
-
###
|
|
178
|
+
### `agenticmail_gateway_status`
|
|
179
|
+
Check email gateway status (relay, domain, or none).
|
|
458
180
|
|
|
459
|
-
|
|
181
|
+
### `agenticmail_test_email`
|
|
182
|
+
Send a test email through the gateway to verify configuration (requires master key).
|
|
460
183
|
|
|
461
|
-
|
|
184
|
+
### `agenticmail_purchase_domain`
|
|
185
|
+
Search for available domains via Cloudflare Registrar (requires master key). NOTE: Cloudflare API only supports READ access for registrar — domains must be purchased manually.
|
|
462
186
|
|
|
463
|
-
|
|
187
|
+
## SMS / Phone
|
|
464
188
|
|
|
465
|
-
|
|
189
|
+
### `agenticmail_sms_setup`
|
|
190
|
+
Configure SMS/phone number access via Google Voice. The user must have a Google Voice account with SMS-to-email forwarding enabled.
|
|
466
191
|
|
|
467
|
-
|
|
192
|
+
### `agenticmail_sms_send`
|
|
193
|
+
Send an SMS text message via Google Voice. Records the message and provides instructions for sending via Google Voice web interface.
|
|
468
194
|
|
|
469
|
-
###
|
|
195
|
+
### `agenticmail_sms_messages`
|
|
196
|
+
List SMS messages (inbound and outbound). Use direction filter to see only received or sent messages..
|
|
470
197
|
|
|
471
|
-
|
|
198
|
+
### `agenticmail_sms_check_code`
|
|
199
|
+
Check for recent verification/OTP codes received via SMS. Scans inbound SMS for common code patterns (6-digit, 4-digit, alphanumeric).
|
|
472
200
|
|
|
473
|
-
|
|
201
|
+
### `agenticmail_sms_read_voice`
|
|
202
|
+
Read SMS messages directly from Google Voice web interface (FASTEST method). Opens voice.google.com in the browser, reads recent messages, and returns any found SMS with verification codes extracted.
|
|
474
203
|
|
|
475
|
-
|
|
204
|
+
### `agenticmail_sms_record`
|
|
205
|
+
Record an SMS message that you read from Google Voice web or any other source. Saves it to the SMS database and extracts any verification codes.
|
|
476
206
|
|
|
477
|
-
|
|
207
|
+
### `agenticmail_sms_parse_email`
|
|
208
|
+
Parse an SMS from a forwarded Google Voice email. Use this when you receive an email from Google Voice containing an SMS.
|
|
478
209
|
|
|
479
|
-
|
|
210
|
+
### `agenticmail_sms_config`
|
|
211
|
+
Get the current SMS/phone number configuration for this agent. Shows whether SMS is enabled, the phone number, and forwarding email..
|
|
480
212
|
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
**agenticmail_purchase_domain:** `{keywords: string[], tld?}`
|
|
484
|
-
|
|
485
|
-
**agenticmail_gateway_status:** `GET /gateway/status`
|
|
486
|
-
|
|
487
|
-
**agenticmail_test_email:** `{to}` → `POST /gateway/test`
|
|
488
|
-
|
|
489
|
-
---
|
|
490
|
-
|
|
491
|
-
## Email Channel Integration
|
|
492
|
-
|
|
493
|
-
### Channel Metadata
|
|
494
|
-
|
|
495
|
-
```typescript
|
|
496
|
-
{
|
|
497
|
-
id: 'mail',
|
|
498
|
-
label: 'Email',
|
|
499
|
-
selectionLabel: 'Email (AgenticMail)',
|
|
500
|
-
capabilities: {
|
|
501
|
-
chatTypes: ['direct'],
|
|
502
|
-
media: true,
|
|
503
|
-
reply: true,
|
|
504
|
-
threads: true
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
```
|
|
508
|
-
|
|
509
|
-
### ResolvedMailAccount
|
|
510
|
-
|
|
511
|
-
```typescript
|
|
512
|
-
{
|
|
513
|
-
accountId: string;
|
|
514
|
-
apiUrl: string;
|
|
515
|
-
apiKey: string;
|
|
516
|
-
watchMailboxes: string[]; // Default: ['INBOX']
|
|
517
|
-
pollIntervalMs: number; // Default: 30,000
|
|
518
|
-
enabled: boolean;
|
|
519
|
-
}
|
|
520
|
-
```
|
|
521
|
-
|
|
522
|
-
### Monitoring
|
|
523
|
-
|
|
524
|
-
1. **SSE push** — connects to `GET /events` for IMAP IDLE-backed notifications
|
|
525
|
-
2. **Polling fallback** — exponential backoff: 2s → 4s → 8s → 16s → 30s max
|
|
526
|
-
3. **Processed UID tracking** — caps at 1000 (keeps latest 500)
|
|
527
|
-
|
|
528
|
-
### Email Dispatch Pipeline
|
|
529
|
-
|
|
530
|
-
1. New email detected (via SSE or poll)
|
|
531
|
-
2. Build message context (OpenClaw format)
|
|
532
|
-
3. Extract thread ID from `References[0]` or `messageId`
|
|
533
|
-
4. Dispatch through `runtime.channel.reply.dispatchReplyWithBufferedBlockDispatcher`
|
|
534
|
-
5. Mark email as read
|
|
535
|
-
|
|
536
|
-
---
|
|
537
|
-
|
|
538
|
-
## Follow-Up System
|
|
539
|
-
|
|
540
|
-
### FollowUpEntry
|
|
541
|
-
|
|
542
|
-
```typescript
|
|
543
|
-
interface FollowUpEntry {
|
|
544
|
-
pendingId: string;
|
|
545
|
-
recipient: string;
|
|
546
|
-
subject: string;
|
|
547
|
-
step: number; // 0-indexed within cycle
|
|
548
|
-
cycle: number; // Full cycles completed
|
|
549
|
-
nextFireAt: string; // ISO timestamp
|
|
550
|
-
createdAt: string; // ISO timestamp
|
|
551
|
-
sessionKey: string; // OpenClaw session key
|
|
552
|
-
apiUrl: string;
|
|
553
|
-
apiKey: string;
|
|
554
|
-
}
|
|
555
|
-
```
|
|
556
|
-
|
|
557
|
-
### Schedule
|
|
558
|
-
|
|
559
|
-
| Step | Delay |
|
|
560
|
-
|------|-------|
|
|
561
|
-
| 0 | 12 hours |
|
|
562
|
-
| 1 | 6 hours |
|
|
563
|
-
| 2 | 3 hours |
|
|
564
|
-
| 3 | 1 hour (final) |
|
|
565
|
-
| — | 3-day cooldown |
|
|
566
|
-
| 4+ | Cycle restarts |
|
|
567
|
-
|
|
568
|
-
### Persistence
|
|
569
|
-
|
|
570
|
-
Stored at `${stateDir}/agenticmail-followups.json`:
|
|
571
|
-
```json
|
|
572
|
-
{ "version": 1, "entries": [...] }
|
|
573
|
-
```
|
|
574
|
-
|
|
575
|
-
Restored on startup. Entries >1 day overdue are skipped.
|
|
576
|
-
|
|
577
|
-
### Delivery
|
|
578
|
-
|
|
579
|
-
Reminders delivered via `api.runtime.system.enqueueSystemEvent()`.
|
|
580
|
-
|
|
581
|
-
### API
|
|
582
|
-
|
|
583
|
-
| Function | Description |
|
|
584
|
-
|----------|-------------|
|
|
585
|
-
| `initFollowUpSystem(api)` | Initialize (restore persisted state) |
|
|
586
|
-
| `scheduleFollowUp(pendingId, recipient, subject, sessionKey, apiUrl, apiKey)` | Start tracking |
|
|
587
|
-
| `cancelFollowUp(pendingId)` | Cancel specific |
|
|
588
|
-
| `cancelAllFollowUps()` | Cancel all |
|
|
589
|
-
| `activeFollowUpCount()` | Count tracked |
|
|
590
|
-
| `getFollowUpSummary()` | Get all entries summary |
|
|
591
|
-
|
|
592
|
-
---
|
|
593
|
-
|
|
594
|
-
## Lifecycle Hooks
|
|
595
|
-
|
|
596
|
-
### before_agent_start
|
|
597
|
-
|
|
598
|
-
1. Detect sub-agent session (`sessionKey.includes(':subagent:')`)
|
|
599
|
-
2. Provision email account via `POST /accounts`
|
|
600
|
-
3. Handle 409 conflict with UUID-suffixed retry
|
|
601
|
-
4. Send auto-intro email in coordination thread
|
|
602
|
-
5. Inject context: identity, mailbox requirement, security rules, unread mail summary
|
|
603
|
-
|
|
604
|
-
### before_tool_call
|
|
605
|
-
|
|
606
|
-
1. Inject sub-agent API key for `agenticmail_*` tools
|
|
607
|
-
2. Inject pending email notifications from SSE watchers
|
|
608
|
-
3. Capture `sessions_spawn` info (enforce min 10-minute timeout)
|
|
609
|
-
|
|
610
|
-
### agent_end
|
|
611
|
-
|
|
612
|
-
1. Cancel all follow-ups
|
|
613
|
-
2. Remove from registries
|
|
614
|
-
3. Stop SSE watcher
|
|
615
|
-
4. Delay 5 seconds (grace period)
|
|
616
|
-
5. Delete account via `DELETE /accounts/{id}` with master key
|
|
617
|
-
|
|
618
|
-
---
|
|
619
|
-
|
|
620
|
-
## Health Monitor Service
|
|
621
|
-
|
|
622
|
-
```typescript
|
|
623
|
-
{
|
|
624
|
-
id: 'agenticmail-monitor',
|
|
625
|
-
start(): validates API connectivity, logs agent name and email
|
|
626
|
-
stop(): logs shutdown
|
|
627
|
-
}
|
|
628
|
-
```
|
|
629
|
-
|
|
630
|
-
---
|
|
631
|
-
|
|
632
|
-
## Constants Summary
|
|
633
|
-
|
|
634
|
-
| Constant | Value | Description |
|
|
635
|
-
|----------|-------|-------------|
|
|
636
|
-
| `MIN_SUBAGENT_TIMEOUT_S` | 600 (10 min) | Minimum sub-agent session timeout |
|
|
637
|
-
| `SUBAGENT_GC_INTERVAL_MS` | 900,000 (15 min) | Sub-agent garbage collection interval |
|
|
638
|
-
| `SUBAGENT_MAX_AGE_MS` | 7,200,000 (2 hr) | Max sub-agent account age |
|
|
639
|
-
| `CLEANUP_GRACE_MS` | 5,000 (5 sec) | Grace period before account deletion |
|
|
640
|
-
| `RATE_LIMIT.WARN_THRESHOLD` | 3 | Unanswered messages before warning |
|
|
641
|
-
| `RATE_LIMIT.BLOCK_THRESHOLD` | 5 | Unanswered messages before blocking |
|
|
642
|
-
| `RATE_LIMIT.WINDOW_MAX` | 10 | Max messages per window |
|
|
643
|
-
| `RATE_LIMIT.WINDOW_MS` | 300,000 (5 min) | Rate limit window |
|
|
644
|
-
| `RATE_LIMIT.COOLDOWN_MS` | 120,000 (2 min) | Cooldown after block |
|
|
645
|
-
| `TRACKER_GC_INTERVAL_MS` | 600,000 (10 min) | Rate limiter GC interval |
|
|
646
|
-
| `TRACKER_STALE_MS` | 1,800,000 (30 min) | Rate limiter stale threshold |
|
|
647
|
-
| `SSE_INITIAL_DELAY_MS` | 2,000 | Initial SSE reconnect backoff |
|
|
648
|
-
| `SSE_MAX_DELAY_MS` | 30,000 | Max SSE reconnect backoff |
|
|
649
|
-
| `apiRequest timeout` | 30,000 | Default API timeout |
|
|
650
|
-
| `HEARTBEAT_INTERVAL_MS` | 300,000 (5 min) | Pending email check interval |
|
|
651
|
-
| Follow-up cooldown | 259,200,000 (3 days) | Between follow-up cycles |
|
|
652
|
-
| Follow-up steps | [12h, 6h, 3h, 1h] | Escalating reminder delays |
|
|
653
|
-
| `processedUids` cap | 1,000 (keep 500) | Channel UID tracking limit |
|
|
654
|
-
| `pollIntervalMs` default | 30,000 | Channel polling interval |
|
|
655
|
-
|
|
656
|
-
---
|
|
657
|
-
|
|
658
|
-
## Skill Files
|
|
659
|
-
|
|
660
|
-
```
|
|
661
|
-
skill/
|
|
662
|
-
├── SKILL.md # Main skill definition (injected into prompt)
|
|
663
|
-
├── references/
|
|
664
|
-
│ ├── api-reference.md # API endpoint reference
|
|
665
|
-
│ └── configuration.md # Config guide
|
|
666
|
-
└── scripts/
|
|
667
|
-
├── health-check.sh # Server health check
|
|
668
|
-
└── setup.sh # Setup helper
|
|
669
|
-
```
|
|
670
|
-
|
|
671
|
-
---
|
|
213
|
+
## Database Storage
|
|
672
214
|
|
|
673
|
-
|
|
215
|
+
### `agenticmail_storage`
|
|
216
|
+
Full database management for agents. Create/alter/drop tables, CRUD rows, manage indexes, run aggregations, import/export data, execute raw SQL, optimize & analyze — all on whatever database the user deployed (SQLite, Postgres, MySQL, Turso).
|
|
674
217
|
|
|
675
|
-
[MIT](./LICENSE) - Ope Olatunji ([@ope-olatunji](https://github.com/ope-olatunji))
|
package/openclaw.plugin.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"name": "agenticmail",
|
|
4
4
|
"version": "0.2.0",
|
|
5
5
|
"displayName": "🎀 AgenticMail",
|
|
6
|
-
"description": "🎀 AgenticMail —
|
|
6
|
+
"description": "🎀 AgenticMail — 63 tools for email, SMS, storage & multi-agent coordination",
|
|
7
7
|
"author": "agenticmail",
|
|
8
8
|
"license": "MIT",
|
|
9
9
|
"homepage": "https://github.com/agenticmail/agenticmail",
|
package/package.json
CHANGED
package/skill/SKILL.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: agenticmail
|
|
3
|
-
description: 🎀 AgenticMail — Full email
|
|
3
|
+
description: 🎀 AgenticMail — Full email, SMS, storage & multi-agent coordination for AI agents. 63 tools.
|
|
4
4
|
homepage: https://github.com/agenticmail/agenticmail
|
|
5
5
|
metadata: { "openclaw": { "emoji": "🎀", "primaryEnv": "AGENTICMAIL_API_KEY", "requires": { "bins": ["docker"], "config": ["plugins.entries.agenticmail.config.apiKey"] } } }
|
|
6
6
|
---
|
|
7
7
|
|
|
8
8
|
# 🎀 AgenticMail
|
|
9
9
|
|
|
10
|
-
Email
|
|
10
|
+
Email, SMS, database storage & multi-agent coordination for AI agents. Gives your agent a real mailbox, phone number, and persistent storage — 63 tools covering email, SMS, database management, and inter-agent task delegation. Includes outbound security guard, spam filtering, human-in-the-loop approval, and automatic follow-up scheduling.
|
|
11
11
|
|
|
12
12
|
## Quick Setup
|
|
13
13
|
|
|
@@ -113,6 +113,27 @@ That's it. The command sets up the mail server, creates an agent account, config
|
|
|
113
113
|
| `agenticmail_gateway_status` | Check email gateway status (relay, domain, or none) |
|
|
114
114
|
| `agenticmail_test_email` | Send a test email to verify setup |
|
|
115
115
|
|
|
116
|
+
### SMS / Phone (8 tools)
|
|
117
|
+
| Tool | Description |
|
|
118
|
+
|------|-------------|
|
|
119
|
+
| `agenticmail_sms_setup` | Configure SMS via Google Voice (phone number + forwarding email) |
|
|
120
|
+
| `agenticmail_sms_send` | Send an SMS text message via Google Voice |
|
|
121
|
+
| `agenticmail_sms_messages` | List SMS messages (inbound/outbound) |
|
|
122
|
+
| `agenticmail_sms_check_code` | Check for recent verification/OTP codes from SMS |
|
|
123
|
+
| `agenticmail_sms_read_voice` | Read SMS directly from Google Voice web (fastest method) |
|
|
124
|
+
| `agenticmail_sms_record` | Record an SMS from any source into the database |
|
|
125
|
+
| `agenticmail_sms_parse_email` | Parse SMS from forwarded Google Voice email |
|
|
126
|
+
| `agenticmail_sms_config` | Get current SMS/phone configuration |
|
|
127
|
+
|
|
128
|
+
### Database Storage (1 tool, 28 actions)
|
|
129
|
+
| Tool | Description |
|
|
130
|
+
|------|-------------|
|
|
131
|
+
| `agenticmail_storage` | Full DBMS — 28 actions for persistent agent data storage |
|
|
132
|
+
|
|
133
|
+
**Actions:** `create_table`, `list_tables`, `describe_table`, `insert`, `upsert`, `query`, `aggregate`, `update`, `delete_rows`, `truncate`, `drop_table`, `clone_table`, `rename_table`, `rename_column`, `add_column`, `drop_column`, `create_index`, `list_indexes`, `drop_index`, `reindex`, `archive_table`, `unarchive_table`, `export`, `import`, `sql`, `stats`, `vacuum`, `analyze`, `explain`
|
|
134
|
+
|
|
135
|
+
Tables sandboxed per-agent (`agt_` prefix) or shared (`shared_` prefix). Works on SQLite, Postgres, MySQL, Turso.
|
|
136
|
+
|
|
116
137
|
## 🎀 AgenticMail vs sessions_spawn — Migration Guide
|
|
117
138
|
|
|
118
139
|
**If you have 🎀 AgenticMail installed, ALWAYS prefer it over sessions_spawn/sessions_send for agent coordination.**
|
|
@@ -217,5 +238,7 @@ Set in your OpenClaw config under `plugins.entries`:
|
|
|
217
238
|
- **Automatic follow-up** — Exponential backoff reminders when blocked emails await approval
|
|
218
239
|
- **Spam filtering** — Inbound emails scored and flagged with configurable thresholds
|
|
219
240
|
- **Task delegation** — Inter-agent task queue with assign, claim, submit, and synchronous RPC
|
|
241
|
+
- **SMS / Phone** — Google Voice integration for verification codes and text messaging
|
|
242
|
+
- **Database storage** — 28-action DBMS (DDL, DML, indexing, aggregation, import/export, raw SQL)
|
|
220
243
|
- **Rate limiting** — Built-in protection against agent email storms
|
|
221
244
|
- **Inbox awareness** — Agents are notified of unread mail at conversation start
|