The interesting problems here are reliability problems — the kind that come up when an LLM product has to be trustworthy about other people's conflicts.
Provenance
Extraction that must cite its sources必须引用出处的抽取
Every extracted item cites the exact interview turns it came from. Verbatim quotes are validated as exact substrings of the cited turn — otherwise they must be labeled paraphrase or inference. Cross-participant citation is structurally impossible.
每一条抽取结果都必须引用它来自的具体访谈轮次。逐字引用会被校验为被引轮次的精确子串——否则必须标注为转述或推断。跨参与者引用在结构上不可能发生。
Control plane
Proposal / veto question generation「提议 / 否决」式提问生成
Code computes the eligible question targets; the model only proposes wording. A seven-rule acceptance policy (pool eligibility, repetition, language, single-question form, schema leakage, tone, A/B isolation) vetoes bad proposals into a deterministic fallback — so a misbehaving model degrades wording, never correctness.
代码计算合法的提问目标,模型只提议措辞。七条接受规则(候选池合法性、重复、语言、单问形式、schema 泄漏、语气、A/B 隔离)会把不合格的提议否决为确定性回退——模型失灵最多影响措辞,永远不影响正确性。
Responsibility
Three layers, no weighted sums三层责任设计,拒绝加权求和
Rubric-guided factor findings with ordinal magnitudes → the model's holistic allocation with an uncertainty band → thin code enforcement (quote truthfulness, direction sanity, arithmetic, label lexicon, agreement scope). Percentages render only at sufficient confidence, degrade to qualitative leanings, and are withheld entirely in safety-aware reports.
量规引导的逐因素认定(序数量级)→ 模型的整体性责任分配(带不确定区间)→ 轻量代码校验(引用真实性、方向一致性、算术、标签词表、协议适用范围)。百分比只在置信度足够时呈现,不足时降级为定性倾向,安全敏感报告中则完全隐藏。
Safety
Deterministic safety authority确定性的安全权威
A tiered on-device lexicon runs on every turn. Ordinary signals route to a private suitability checkpoint (end, continue knowingly, revise, delete). A narrow, fixture-tested hard-stop tier for genuinely immediate danger is processed locally and never transmitted. Provider output can never suppress a safety signal.
分层的设备端词表在每一轮运行。普通信号路由到私密适宜性检查点(结束 / 知情继续 / 修正 / 删除)。针对真正即时危险的窄硬停层经过夹具测试,在本地处理且绝不传输。模型输出永远无法压制安全信号。
Reliability
Idempotency and honest failure幂等与诚实失败
Agent runs carry request hashes and in-flight deduplication; questions persist once at display time, so refresh never regenerates or double-bills. Failed required steps become pending/retryable states with full recovery on reload — never silent substitution.
Agent 调用携带请求哈希并做在途去重;问题在展示时一次性持久化,刷新绝不重新生成或重复计费。失败的必需步骤成为待处理/可重试状态,重新加载后完整恢复——绝无静默替代。
Privacy
Privacy as build artifacts, not promises用构建产物而非承诺保证隐私
Provider keys are server-only, verified by a canary build check that plants fake secrets and scans the client bundle. Per-call payloads are minimized; each participant sees a versioned AI-processing notice naming the actual recipient; the audit ledger stores metadata only. Limits live in a written threat model, not marketing copy.
Provider 密钥只存在于服务端,并由「金丝雀」构建检查验证:注入假密钥后扫描客户端产物。每次调用的载荷最小化;每位参与者看到指名真实接收方的版本化 AI 处理告知;审计账本只存元数据。产品边界写在威胁模型文档里,而不是营销话术里。
Testing
Network-free test discipline网络隔离的测试纪律
57 Vitest files run fully offline against fake providers, recorded fixtures, and fake-indexeddb — contracts, validators, safety tiers, migrations, deletion cascades. Live provider evaluation is a separate, explicitly gated harness with hard call caps and budget discipline.
57 个 Vitest 测试文件完全离线运行:假 provider、录制夹具、fake-indexeddb——覆盖契约、验证器、安全分层、迁移、删除级联。真实 provider 评测是独立且显式门控的评测框架,带硬性调用上限和预算纪律。
Persistence
Local-first, migration-safe storage本地优先、可迁移的存储
Dexie/IndexedDB with 13 tables behind typed repositories: append-only testimony, versioned derived extraction, compact per-session working state (no transcript resends), transactional cascade deletion with seed tombstones, refresh-safe resume mid-interview.
Dexie/IndexedDB 的 13 张表隐藏在类型化仓储层之后:只追加的证词、版本化的派生抽取、紧凑的会话工作状态(不重发全文)、带种子墓碑的事务化级联删除、访谈中途刷新也能安全恢复。