# Lab Artifact: Agent 收件箱闭环（Inbox Closed Loop）

**Run id:** `lab-inbox-loop-20261023`  
**Site shelf:** hezekai.com `/lab` → `/lab/inbox-loop`  
**Rule:** Artifact First · 不虚构 Agent Activity · 公开内容带 provenance · 人工确认后才发信

## What

一次真实的最小闭环：

1. **收信** — 探针邮件发到带 tag 的 Grok Bot 地址  
2. **Agent 读信** — `SearchEmailThreads` → `ReadEmailThread`  
3. **拟稿** — 写出回复草稿（本目录 `draft-reply.md`）  
4. **人工确认后发送** — **不自动发送**。本 run 里用户在 `DraftExternalMessage` 卡片上点了 Send，回复已发出。

## Why

Lab 要放 Agent 做出的实验，而不是空壳文案。邮箱是 Agent 最常见的外部输入之一；这条 demo 证明：

- 可以用 **+tag** 把 Lab 流量从主收件箱里分出来（`aitoao+lab-inbox-demo@…`）
- Agent 能读真实邮件并留下可核验的 id / 时间戳
- 发送权仍在人手里（Human × Agent）。这次是人确认之后才发出

## Inbox used

| Role | Address |
|------|---------|
| Demo inbox (tagged) | `aitoao+lab-inbox-demo@mail.grokbot.com` |
| Base inbox (already claimed) | `aitoao@mail.grokbot.com` |
| Probe sender (Outlook) | `TheodoreJohnson5187@outlook.com` |

未新开永久邮箱：`aitoao` 已存在；AgentMail MCP 处于 `needsAuth`，本 run 未用。

## How to reproduce

1. 向 `aitoao+lab-inbox-demo@mail.grokbot.com` 发一封带唯一 `Run id` 的信（可用已连接的 Outlook / Gmail，或任意外部邮箱）。
2. Agent：`SearchEmailThreads`（keyword = run id）→ `ReadEmailThread`。
3. 写拟稿到文件；**不要** `send_mail` / `reply_to_mail_message` / 无确认的 SendEmail。
4. 父 agent：`DraftExternalMessage`  
   - `platform`: email  
   - `providerIdentifier`: `grok-bot-agent-inbox`  
   - `from`: `aitoao+lab-inbox-demo@mail.grokbot.com`（或 base）  
   - `replyToMessageId`: 入站 `message_id`  
   - 用户在卡片上确认后才真正发出。
5. 把 thread / message id、UTC 与 Asia/Shanghai 时间写入 `provenance.md` / `run.json`。

## Files in this folder

| File | Purpose |
|------|---------|
| `README.md` | 本说明 |
| `provenance.md` | 来源、id、时间（Asia/Shanghai） |
| `run.json` | 机器可读 run 记录 |
| `timeline.csv` | 步骤时间线 |
| `inbound-message.txt` | 入站全文快照 |
| `draft-reply.md` | 回复拟稿（本 run 已在人工确认后发出） |

Executor 的页面草稿没有放进公开目录。

## Honest limits

- 回复**已发出**，但是用户在 `DraftExternalMessage` 卡片上点 Send 之后才发出的，**不是自动发送**。
- 发送只记到日期 2026-10-23（Asia/Shanghai）。没有更细的钟点，也没有出站 message id。不把「已发送」写成「已确认送达」。
- AgentMail 未授权，故用原生 inbox +tag，不是独立 AgentMail 域名。
- 探针发送方是已连接的 Outlook 账户（用户侧），不是 Grok Bot 自己发自己。
- 本 run 没有 Harness 对照。

## Success this run

- 真实入站：`thread_id=7c2875c0-d888-4863-aa7e-207da010e84b`，`message_id=2033352`
- 拟稿已写：`draft-reply.md`
- 人工确认后已发送：`auto_sent=false`。发送日期 2026-10-23 Asia/Shanghai；钟点与出站 message id 未记录
