UAT-001
hongniang
GOAL-017
▼
阿空小桥 broker 机构掌柜首次接入 + 录会员 (设计前对齐稿)
actor: 老板 (扮演杭州缘来婚介所张姐) · scenario: 机构掌柜首次接入 + 录入第一批会员档案
verifier: lead-claude · last_run: 2026-05-04
❌ lead 5-4 跑 playwright-cli (mobile chromium) 真测:
✅ Step 1 → /login redirect
✅ Step 2 → 手机号输入 + send-otp button
❌ Step 3 → click "发送验证码" 后页面卡住 · 显示"网络错误 · 请检查信号"...
# 阿空小桥 UAT · 老板扮演机构客户 (2026-05-03)
> 这篇是 GOAL-017 设计前的场景对齐稿 · 老板扮演真实机构掌柜 · 跟 lead 对齐使用流程 · 然后 lead 拆 milestone 派活。
## 背景
阿空小喜 (toC 红娘 agent) 已上 prod · 但 candidates 表只有 5 条 fake seed · 没真候选库 · 推荐都是 LLM 编 + 改种子。
要让小喜真推荐真人 · 必须有真机构入驻 + 真录入会员档案。这就是 **阿空小桥 agent (broker)** 的活。
## 角色
- **老板 (你扮演)**: 杭州某家相亲机构的对接人 (e.g. "杭州缘来婚介所 · 张姐 · 手上 80 个未婚会员")
- **阿空小桥 (broker agent)**: 阿空团队对接 B 端机构的数字员工
- **lead (我)**: 后台观察 + 记录设计需求
## 场景 1 · 机构掌柜首次接入
**入口**: 老板 (真红娘机构对接人) 收到阿空团队投放 / 合伙人推荐 · 拿到 broker H5 链接 (e.g. `https://broker.hongniang.agentaily.com`)
**步骤**:
1. 打开链接 → 跳 broker /login
2. 输机构对接人手机号 (机构白名单内 · 老板预先在 admin 加白)
3. 收 OTP → 输 → 跳 broker chat
4. 阿空小桥首次见面: "您好 · 我是阿空小桥 · 帮您把会员介绍给我们的 toC 用户。先简单聊聊您家机构 · 您主要做哪类相亲?"
**老板对话 (扮演张姐)**:
- "我是杭州缘来婚介所的张姐 · 主营杭州本地 28-40 岁的高知会员撮合 · 男会员居多"
- 阿空小桥: "好的张姐 · 我先把您家机构信息记下 (写入 broker memory)。下一步咱们开始录会员档案吧 · 您可以一次说一个会员 · 比如 '张三 · 32 岁 · 男 · 程序员 · 想找细心的姑娘'"
## 场景 2 · 录入会员档案
**老板 (扮演张姐) 录会员**:
- "第一个 · 李涛 32 岁男 程序员 杭州 · 阿里 P7 · 本科 · 175 · 未婚 · 想找 26-32 温柔的"
- 阿空小桥: "记下了 ✅ 已录入 candidates 表 · ID c-202605-001 · 这位会被推给杭州 26-32 的女用户。下一位?"
**录入应该走的工具**: `add_candidate(name, age, gender, city, occupation, education, height_cm, marital_status, one_liner, pref_age_min, pref_age_max, pref_gender, pref_one_liner)`
**记忆**: broker agent 自管 4 markdown (跟 xiaoxi 对称):
- `org-profile.md`: 机构基本信息 (名字 / 主营 / 风格 / 张姐联系方式)
- `member-summary.md`: 会员录入概况 (总数 / 今天录了几条 / 男女比例)
- `chat-style.md`: 张姐沟通偏好 (急脾气 / 慢话痨 / 等等)
- `pending-todo.md`: 张姐说"下次来录的会员" / 今天没录完的
## 场景 3 · 机构看自家会员被推荐情况
**老板 (扮演张姐) 复访**:
- 几天后再上 broker H5 · 跳 chat
- 阿空小桥: "张姐好 · 您上次录了 5 位会员 · 这周李涛被 3 位女用户看到 · 1 位提了想加微信。详情您要看吗?"
**走的工具**: `list_my_candidates_with_match_status(org_id)` · 返机构自家会员 + 每位被推荐 / 提匹配次数
## 场景 4 · 商业模式 (收费?)
**老板 (扮演张姐) 问**:
- "你们怎么收费 · 推荐成功 1 单收多少?"
**阿空小桥不回答商业** · 转 admin: "这个咱们让阿空运营张总跟您接洽 · 我让她加您微信。" → 触发 admin 通知 (内部 dispatch)
## v0.1 范围 (落仓 GOAL-017 实施)
**M1 阿空小桥 agent 独立仓** (P1):
- hongniang-xiaoqiao repo init
- prompt 设计 (机构掌柜人格 · 4 markdown 记忆)
- 工具: add_candidate / list_my_candidates / list_my_candidates_with_match_status / dispatch_to_admin
**M2 机构 H5 前端** (P1):
- broker.hongniang.agentaily.com (新 OSS bucket)
- 复用 hongniang-web 框架 · 切换 broker 入口 + broker chat
**M3 server endpoints** (P1):
- /broker/login/send-otp + verify-otp (机构白名单 enforce)
- /broker/chat (走 broker agent)
- /broker/candidates POST (掌柜 add_candidate 落地)
- /broker/memory-files (跟 toC 对称)
**M4 容器隔离** (P2):
- 每机构独立 docker 容器 (acs-sandbox 风格)
- 防机构间数据泄漏
**M5 机构白名单管理** (P1):
- admin UI 加机构白名单 (手机号 + 机构名 + 入驻日期)
- broker /login send-otp 真 enforce
**M6 UAT 真测** (P0 验收):
- 老板真扮演 1 机构 onboard
- 录入 ≥ 5 真候选
- 阿空小喜真推真人
## lead 后续动作 (跟老板对齐后)
1. lead 拆 6 sub goal (M1-M6) 落到 hongniang/goals/sub/ 或 GAP
2. lead spawn hongniang-xiaoqiao-maintainer (TeamCreate + Agent with team_name + run_in_background)
3. lead 派 web-maintainer 加 broker 路由 (M2)
4. lead 派 server-responsible 加 /broker/* endpoints (M3)
5. 对齐 / 实施 / 上 staging / 老板真测
## 老板 5-3 v2 回答 (5 问对齐结果)
1. **名字**: 待拍 · lead 候选:
- **阿空小桥** (推荐 · 牵线搭桥 · 名字轻 · 跟小喜对称)
- **阿空小柜** (掌柜简化 · 商务感 · 但稍奇怪)
- **阿空小红** (红娘 / 红色喜庆 · B 端友好)
- **阿空大姐** (机构掌门人感 · 但太"老")
- **阿空小桥** (商务感强 · 但跟"小喜"风格不对称)
2. **入驻流程**: 机构直接跟 agent 聊 · agent 自己引导 onboard (不要 admin 手动加白)
3. **会员录入**: **结构化** + 数据库 (不口语化 LLM 抽字段)
4. **商业模式**: 不考虑现在 · 线下见面订单跟机构挂钩分成 (后续 M7+)
5. **多机构**: **一个 agent 同时对话多机构** (数据库分 org_id 维度 · 不每机构独立容器)
## v0.1 范围 (按 v2 回答更新)
**M1 broker agent 仓** (P1):
- hongniang-xiaoqiao repo init
- prompt 设计 (B 端商务人格 · 不撒娇 · 引导填表)
- 工具: start_org_onboarding / add_candidate (结构化字段) / list_my_candidates / view_match_status / dispatch_to_admin
**M2 broker H5** (P1):
- broker.hongniang.agentaily.com (新 OSS bucket)
- 推荐独立 hongniang-xiaoqiao-web 仓 (跟 toC 视觉区分 · 商务调性)
**M3 server endpoint** (P1):
- /broker/login/send-otp + verify-otp (自助 · 不需白名单)
- /broker/chat (走 broker agent)
- POST /broker/candidates (结构化字段验证 · 入 candidates + org_id)
- GET /broker/candidates (机构看自家会员)
- /broker/profile + /broker/memory-files (org 维度)
**M4 DB schema** (P1):
- candidates 表加 org_id (FK → broker_org)
- broker_org 表完善 (机构名 / 对接人 / 手机 / 入驻日期 / 会员配额)
- 多机构数据隔离: SELECT WHERE org_id=?
**M5 结构化录入 UX** (P1):
- agent 引导张姐填: 姓名 → 年龄 → 性别 → 城市 → 职业 → 身高 → 学历 → 婚况 → 偏好
- 必填字段: 姓名/年龄/性别/城市
- 漏的 agent 持续追问
**M6 UAT 真测** (P0 验收):
- 老板扮演真张姐 · 手机走 broker H5
- 自助注册 + 录 5 真候选
- 阿空小喜真推真录入候选 → 解 GOAL-002 阻塞
**M7+ 后续 (不在 v0.1)**:
- 线下见面订单 + 机构分成
- 机构看自家会员推荐数据 / 转化报告
- 会员配额 / 季度结算