AML 面板信息架构
昨天(Day 156)确立了方法——真人 think-aloud 5 人法 + AI 原型工具,并把它用在 harness 面板上。今天把同一套方法搬到本项目的金融旗舰作品 AML Copilot 上:先解决「信息架构」——调查员的任务流是怎样线性流动的、AI 结论的证据链在哪个环节必须可见、SAR 草稿哪里必须可编辑可追溯。在 B1→B18 曲线上,这是把 B15 已经建好的硬约束(hitl.t
阶段: B16 · 治理一页纸 + AI 原型 + 可用性(Day 151-160) 标签: #information-architecture #aml #hitl #usability
今日导引(由浅入深)
昨天(Day 156)确立了方法——真人 think-aloud 5 人法 + AI 原型工具,并把它用在 harness 面板上。今天把同一套方法搬到本项目的金融旗舰作品 AML Copilot 上:先解决「信息架构」——调查员的任务流是怎样线性流动的、AI 结论的证据链在哪个环节必须可见、SAR 草稿哪里必须可编辑可追溯。在 B1→B18 曲线上,这是把 B15 已经建好的硬约束(hitl.ts 的 canAutoFile()=false)第一次「显式呈现到 UI 层」——让不可自动报送这条法律红线变成被试肉眼可见的设计。今天的最小可判定产出:AML 面板原型 v1 链接 + 5 个覆盖四段流程的 think-aloud 任务脚本。
1. 机理精读
AML 调查员的任务流是线性四段:证据汇集 → 类型学比对 → SAR 草稿 → HITL 复核。 信息架构(IA)的任务,就是让界面的空间结构精确映射这条时间流程,让调查员永远知道「我在第几段、上一段的结论凭什么、下一段需要我做什么」。这套四段流来自 FIS×Anthropic AML Copilot 参考模式(2026-05)——证据汇集→类型学比对→SAR 草稿→HITL→审计轨迹。
两个可用性高危点。 经验上,IA 最容易出问题的不是首尾,而是中段的两个「凭据可见性」节点:
- 类型学比对凭据是否可见。 AI 说「这是 structuring(结构化拆分)」,调查员必须能立刻看到「凭哪几笔交易、命中哪条规则、贡献分多少」。如果结论是个黑箱标签,调查员既无法采信也无法反驳——这违反治理一页纸(Day 154)要求的「可被有效挑战」。
- SAR 草稿可编辑 / 可追溯。 草稿不是终稿。调查员要能改字、要能看到每段引用了哪几笔交易(citedTxIds),改动要进审计轨迹。一个只读、不可追溯的草稿,等于逼调查员在 Word 里重写,AI 价值归零。
为什么 IA 决定可用性的天花板。 交互细节(按钮颜色、间距)可以后调,但信息架构错了——比如把审计轨迹藏在三层菜单下、把证据链和结论分屏放——是结构性缺陷,think-aloud 时被试会在这里集体卡壳。这也是为什么今天先定 IA、再做交互。一个量化直觉:交互细节问题在 NN/g 严重度量表上多落 1-2 级(小问题),而 IA 结构问题常落 3-4 级(大/灾难)——结构错了,再精致的交互也救不回来。
线性流 vs 自由探索的取舍。 AML 调查员任务是强线性的(证据→比对→草稿→复核),所以 IA 用「四段进度引导」而非「仪表盘式自由跳转」。但线性不等于锁死:调查员随时要能回看上一段证据(如写草稿时回查某笔交易),所以四段之间要可双向回溯,只是「报送」这一步被状态机锁在 approved 之后。这是「引导式线性流 + 局部自由回看」的混合 IA,比纯线性向导或纯自由仪表盘都更贴合真实调查工作。
与硬约束的关系(本日内核)。 整个面板必须忠实呈现 hitl.ts 已经 built 的硬约束:canAutoFile() 是 typed false,file() 只能在 approved 状态后调用。UI 上绝不能出现「一键自动报送」按钮——SAR 是法律文书,必须经人审。原型的 IA 必须让「人审 approve → 才能 file」这条状态流在视觉上不可绕过。
IA 的三个评判维度(用于 think-aloud 编码)。 信息架构好不好,可拆成三个可观察维度:
- 可发现性(findability):调查员能否在不被告知路径的情况下找到目标信息(如审计轨迹)。
- 可理解性(comprehension):找到后能否正确解读(如「pending_review」是不是「已报送」的误读)。
- 可信任性(trust):AI 结论旁有没有可追溯的证据,让调查员敢采信或敢反驳。
这三维度恰好对应今天的两个高危点:类型学比对凭据可见 = 可信任性;SAR 草稿可追溯 = 可理解性 + 可信任性。
与「上下文工程」叙事的边界。 值得强调:AML Copilot 的证据呈现不是「RAG 检索片段拼给用户看」。证据必须可追溯到具体交易 ID(citedTxIds),而不是「相关度 0.82 的某段文本」。RAG-centric 的「检索即结论」在合规场景是反模式——审计要的是「凭哪笔交易」,不是「凭哪段相似文本」。这条边界呼应了 B16-B18 一贯的 context-engineering 取代 RAG-centric 叙事。
资源主线:FIS×Anthropic AML Copilot 模式(2026-05),当前 AML GenAI 参考叙事。
2. 推导 / 手算 / 代码走读
今天有两个真实代码载体需要走读:src/aml/hitl.ts(SAR 状态机,硬约束源)与 src/aml/sarDraft.ts(草稿生成器,证据链源)。
src/aml/hitl.ts 走读(SAR 人审状态机,纯函数、时间注入、无 key 可测):
SarState五态:'draft' | 'pending_review' | 'approved' | 'returned' | 'filed'——IA 必须把这五态做成可见的进度指示。newSar(now)起始于draft,并写第一条审计draft_created。submitForReview(r, now)只允许从draft或returned进入pending_review,否则throw——「提交复核」按钮在其它状态下应禁用。approve(r, officer, now)严格要求当前态为pending_review,否则报错「needs human review first」——这是 HITL 闸门的前半。file(r, now)是闸门后半:注释明写「File to FinCEN — ONLY allowed after a human approval」,若状态非approved直接throw 'SAR can only be filed after human approval (HITL gate)'。canAutoFile(): false返回字面量类型false——「Typedfalseso no caller can flip it on」,调用方在类型层面就无法把它翻成 true。UI 上不存在合法的自动报送路径。
hitl.ts 状态转移表(IA 顶部进度条按此渲染,非法跳转一律 throw):
| 起始态 | 动作 | 目标态 | 守卫 |
|---|---|---|---|
| draft | submitForReview | pending_review | 仅 draft / returned 可入 |
| returned | submitForReview | pending_review | 同上 |
| pending_review | approve(officer) | approved | 仅 pending_review |
| pending_review | returnToDraft(officer, reason) | returned | 仅 pending_review |
| approved | file | filed | 仅 approved(HITL 闸门) |
| 任意非法 | — | — | throw Error |
读这张表,UI 设计自然落地:进度条五格,当前态高亮;「提交复核」「批准」「退回」「报送」四个动作按钮,按当前态启用/禁用——file 按钮只在 approved 态亮起。returned → submitForReview 这条回环说明退回不是死路,可重新提交,UI 要画出这条回边。
src/aml/sarDraft.ts 走读(草稿生成器,IA 里证据卡 + SAR 草稿区的数据来源):
- 文件头诚实标注:W1 原型为「规则模板生成(非 LLM)」,按 FinCEN SAR 叙述 5W1H 结构拼装段落;LLM 版在 P3 接入。原型 UI 必须照搬这条标注。
draftSar(c, assessment)输出SarDraft,其generatedBy: 'rule-template'字段——IA 的「来源标签」直接读它,不能假装是 LLM。- 草稿分六段:引言/告警概述、主体身份 (Who)、可疑活动描述 (What/When/Where)、可疑原因 (Why)、作案手法 (How)、总结建议——SAR 草稿区按这六段排版即是天然 IA。
citedTxIds = dedupe(assessment.hits.flatMap(h => h.evidenceTxIds)):每段引用的证据交易 ID 去重后挂在草稿上——这是「类型学比对凭据可见」的数据钩子,证据卡按 citedTxIds 渲染。- 引言段固定写入「基于合成数据,由规则模板引擎自动生成(非 LLM 输出),仅作产品原型示意,最终内容须经调查员人工复核」——原型不得删这句。
sarDraft.ts 六段草稿与 5W1H 的映射(IA 的中央区天然结构):
| 草稿段 | 对应 5W1H | 数据来源 |
|---|---|---|
| 一、引言与告警概述 | — + 诚实标注 | c.alertReason + assessment.topTypology |
| 二、主体身份 | Who | c.parties / c.accounts + riskFlags |
| 三、可疑活动描述 | What/When/Where | citedTxs(按 dayOffset 排序、渠道汇总) |
| 四、可疑原因 | Why | assessment.hits + scores + threshold |
| 五、作案手法分析 | How | TYPOLOGY_METHOD[topTypology] 模板 |
| 六、总结与后续建议 | — | topScore + 复核建议 |
注意第三段对 citedTxs 只展示前 6 笔(citedTxs.slice(0, 6)),其余写「详见证据交易清单」——IA 上左栏证据卡要承接这「其余 N 笔」的下钻入口,否则被试会以为只有 6 笔证据。
结论:面板 IA = hitl.ts 五态进度条(顶层导航)+ sarDraft.ts 六段草稿(中央可编辑区)+ citedTxIds 驱动的证据卡(左侧凭据栏)+ audit 时间线(右栏)。
3. 今日实战
- 用 v0 给 AML Copilot 做真原型 v1,三栏布局:左=证据卡(按
sarDraft.ts的 citedTxIds 渲染交易凭据)、中=SAR 草稿区(六段、可编辑)、右=审计轨迹(按hitl.ts的audit: AuditEvent[]时间线渲染)。 - 顶部放
hitl.ts五态进度条;「报送 FinCEN」按钮在状态非approved时禁用并提示「需先经人工 approve」——把canAutoFile()=false显式做进 UI。 - 草稿区每段旁挂「引用 N 笔交易」徽标,点击高亮左栏对应证据卡——实现「类型学比对凭据可见」。
- 写 5 个 think-aloud 任务脚本,逐一覆盖四段流程:证据汇集(找出告警依据的交易)→ 类型学比对(说出 AI 判定了哪种类型学、凭什么)→ SAR 草稿(修改一段并看它进不进审计)→ HITL(尝试在未 approve 时报送,观察是否被拦)→ 审计追溯(找出谁在何时做了什么)。
- 原型链接 + 5 脚本登记入
docs/AML_GOVERNANCE_MAP.md可用性章节,待 Day 158-159 跑真人。
5 个 think-aloud 任务脚本(覆盖四段流程 + HITL 闸门):
- 证据汇集:「找出触发这条告警的可疑交易,告诉我它们为什么可疑。」
- 类型学比对:「AI 把这案判成了哪种类型学?它凭哪几笔交易?」(测凭据可见性)
- SAR 草稿:「把『可疑原因』那段改一个字,然后确认这次改动有没有进审计。」(测可追溯)
- HITL 闸门:「在调查员还没批准前,试着把这份 SAR 报送出去——看看会发生什么。」(应被拦)
- 审计追溯:「告诉我这份 SAR 现在是什么状态,以及谁在什么时候对它做了什么。」
4. 今日实测 / 产出
- AML 面板原型 v1 链接 + 5 任务 think-aloud 脚本 — 待 UI 工具产出(UI-tooling-gated)。
- 底层真实约束已 built:
hitl.tsSAR 状态机(canAutoFile()=false,file()必须人审 approve)✅。 - 原型须如实展示此「不可自动报送」硬约束,并保留
sarDraft.ts的「规则模板生成 / 非 LLM / 须人工复核」标注。
5. 常见误区 / 陷阱
- 把 SAR 草稿设计成「一键自动报送」。 违反 HITL 与
hitl.ts的canAutoFile()=false硬约束;SAR 是法律文书,状态机强制approved → file。 - 类型学结论给标签不给凭据。 调查员无法采信也无法挑战;必须把 citedTxIds 证据链摆在结论旁。
- 草稿区做成只读。 等于逼调查员去别处重写,AI 价值蒸发;草稿必须可编辑且改动入审计。
- 删掉
sarDraft.ts的「非 LLM / 须人工复核」诚实标注。 让原型看起来比实际更智能,是这套笔记的诚信红线。 - 把审计轨迹藏进三级菜单。 审计是合规面板的一等公民(
hitl.ts每个动作都写audit),藏深了等于没有;右栏常驻可见。 - 「pending_review」文案让人误以为已报送。 状态文案要无歧义区分「待人审」与「已报送 FinCEN」,否则被试在 think-aloud 会读错状态。
6. 学习资源(每条带 YYYY-MM)
- FIS × Anthropic, AML Copilot 参考模式公开材料(2026-05)— 四段任务流主线。
- NN/g, "Information Architecture: Study Guide"(2024 复核版)— IA 与任务流映射。
- FinCEN SAR 叙述编写指引(Form 111 / 5W1H 结构,FinCEN 官方,长期有效)— 六段草稿结构来源。
- NN/g, "Information Architecture: Study Guide"(2024 复核版)— 可发现性/可理解性/可信任性三维。
- 本仓代码:
src/aml/hitl.ts、src/aml/sarDraft.ts(2026 当前实现)— 硬约束与证据链数据源。
SOTA检查 (2026-06 更新)
- 当前主流:FIS×Anthropic(2026-05)是当前 AML GenAI 的参考模式,证据汇集→类型学→SAR→HITL→审计五环节 current。
- 是否仍 SOTA:是。HITL + 审计轨迹 + 证据链可见是合规型 GenAI 的硬性 IA 要求,未被取代。
- 过时黑名单:
- AVOID 把 SAR 设计成「一键自动报送」——违反 HITL 与
hitl.ts的canAutoFile()=false。 - AVOID RAG-centric 的「检索即结论」叙事——证据必须可追溯到具体交易 ID 而非检索片段。
- AVOID 删掉
sarDraft.ts的「非 LLM / 须人工复核」诚实标注——让原型显得比实际智能。
- AVOID 把 SAR 设计成「一键自动报送」——违反 HITL 与
- 下次复查点:2026-08-02 EU AI Act Art.50 透明度义务生效,复查面板是否需补「AI 生成内容」披露标识;P3 接入 LLM 版 SAR 后,复查
generatedBy标签是否如实从rule-template改为 LLM 来源。
衔接
- 昨天:Day 156 — 原型工具与可用性测试法(NN/g),用 5 人法 + AI 原型工具测 harness 面板。
- 今天:把方法用到 AML Copilot 四段任务流,IA 忠实呈现
hitl.ts的不可自动报送硬约束。 - 明天:Day 158 — 跑 think-aloud 第 1 批,招 3 人对 harness 与 AML 两块原型做真人测试。