← → 翻页 · B 静态 · ESC 索引
AFAC2026 · RACE 532486
TECH PLAN · 01 / 08
TEAMMATE BRIEFING

Evidence-first
RAG / Agent

目标不是“做一个很会聊天的 Agent”,而是搭一条可调试、可复现、可提交的金融长文档问答流水线。
A: known doc_ids
B: doc routing + same pipeline
02 / 08 · PROBLEM CONTRACT
INPUT / OUTPUT / SCORE
把赛题当成接口契约

我们交付的不是回答,
是一个判题器

最终输出只有两件硬东西:答案 CSV 和证据 / 日志。中间所有 Agent 行为都要服务于这两个 artifact。

# runtime contract
questions.json + docs/ → answer.csv
answer.csv := qid, answer, token_count
evidence.json := qid, doc_id, page, span, reason
score = 100 * Accuracy * (0.7 + 0.3 * TokenScore)
86

long docs

保险 / 监管 / 合同 / 财报 / 研报,格式差异很大。

200

questions

单选、多选、判断;多选题必须完全匹配。

5M

token budget

超过预算会被 TokenScore 惩罚,不能靠硬塞上下文。

03 / 08 · SYSTEM ARCHITECTURE
DATAFLOW
A 榜先打穿,B 榜只在最前面补 DocRouter

主链路:parse → index → evidence → judge → normalize

01

Parser

PDF/text/table → blocks.jsonl;保留 page、section、bbox、table_id。

02

Chunker

按章节 / 条款 / 表格切块;避免固定窗口切碎金融语义。

03

Indexes

BM25 + entity/date/number/table inverted index;先不依赖非 Qwen embedding。

04

Retriever

question + each option 分别召回;输出 evidence packets。

05

Qwen Judge

只读短证据,判断 support / refute / unknown,不直接自由发挥。

06

Normalizer

程序化收口:多选排序、去重、非法答案兜底、token 汇总。

debug unit = one qid, one evidence packet, one model decisionsubmit unit = answer.csv + evidence.json
04 / 08 · A/B STRATEGY
SAME CORE, DIFFERENT ENTRY
A known doc_ids

先做成 deterministic evaluator

A 榜给出候选文档,所以我们不需要先解决开放域路由。先证明解析、检索、判题链路能超过 baseline。

  • scope = provided doc_ids
  • top-k evidence per option
  • wrong-case dashboard 驱动迭代
B hidden doc_ids

前置 DocRouter,后面复用 A

B 榜的核心增量是文档路由。不要另写一套回答逻辑,否则调参空间会爆炸。

  • query → candidate docs
  • doc prior + lexical score + type classifier
  • rerun same evidence pipeline
05 / 08 · RETRIEVAL DESIGN
HYBRID, STRUCTURE-AWARE
检索不是一把向量梭

金融题常问
数字、日期、条款

最小方案用 lexical + structure 先跑起来;Qwen 只参与合规的语义判断,不做非 Qwen embedding/rerank。

BM25

lexical recall

题干关键词 + 选项关键词,按 doc_id scope 检索 top-k blocks。

STRUCT

section / clause index

条款号、章节标题、附注编号是强信号,不能被普通 chunk 淹没。

FACT

entity / date / number index

公司名、产品名、金额、比例、年份单独建倒排,辅助精确召回。

TABLE

table-aware snippets

表格转 Markdown + row/col metadata,证据包里保留表头上下文。

06 / 08 · QWEN CALL PLAN
TOKEN BUDGET
模型调用要像系统调用一样计费

默认一题一次主判题,
歧义才复核

token_count 不只是提交字段,也是调参指标。每次 prompt 都必须落日志。

judge(q, options, evidence_packets) → option_state[]
state ∈ {support, refute, insufficient}
answer = normalize(option_state, question_type)
cheap

no LLM in parser

解析、切块、索引用程序做,减少不可控成本。

main

one judge prompt

每题默认一次 Qwen 判题,证据短而密。

guard

selective self-check

只对低置信、多选冲突、证据不足题复核。

log fields: qid · prompt_hash · input_tokens · output_tokens · evidence_ids · raw_response · normalized_answer
07 / 08 · REPO / WORKBENCH
HOW WE DEBUG
没有 workbench 就没法做错题分析

工程上先追求
可观察性

我建议第一版就把中间产物固化到文件,方便两个人并行看同一道题为什么错。

repo/
raw_docs/
processed_data/blocks.jsonl
index/bm25.sqlite
agent/router.py
agent/retriever.py
agent/judge_qwen.py
outputs/answer.csv
logs/qid_*.json
UI

qid drilldown

题干、候选选项、命中文档、最终答案同屏。

EVD

evidence viewer

展示 doc_id / page / span,能一键回看原文。

DIFF

run comparison

比较两次实验的答案变化、token 变化、错误类型。

ERR

failure taxonomy

路由错、召回错、证据错、判题错、格式错分开记。

08 / 08
48H PLAN
ACCEPTANCE

先让 A 榜稳定超过 baseline,
再谈 Agent 形态。

第一阶段的胜负手不是多智能体,而是证据质量、错误归因和 token discipline。
AFAC2026 · TECH TEAM BRIEF
2026.06.16
DIVISION OF WORK
FIRST 48 HOURS
01

Parser owner

产出 blocks.jsonl,保证页码、章节、表格上下文不丢。

02

Retriever owner

实现 A 榜 scoped retrieval,每题输出可读 evidence packets。

03

Judge / eval owner

Qwen prompt、normalizer、answer.csv、token logs、错题 taxonomy。

04

Acceptance

10 题人工验链路,100 题自动跑通,A 榜准确率超过官方 baseline。

→ ready for teammate discussion