【硬件交互赛道】
ICM Marcus — 可溯源的晨会简报与研报审计系统 · Source-Verifiable Morning Brief & Research Audit
0. 大家好
我的身份: 金融投研方向的大一实习生
我用 TRAE 把 Demo 做出来的过程:
LLM is the compiler, not the search engine. Raw sources are source code; the Wiki is the executable. LLM 是编译器,不是检索引擎。原始资料是源代码,Wiki 是可执行文件。
这句来自项目提案的核心隐喻,也是我用 TRAE 把想法一句句变成系统的真实写照。
我脑子里一直有一个具体的画面:金融分析师每天早上 8 点要看完 20 份券商研报,但通用 LLM 给的答案没有来源、不敢用——在强制可解释性场景下根本不可部署。我想做的不是"又一个 RAG 工具",而是"每个字都能追回原文"的投研工具。
TRAE 帮我跨过的最大坎,是诚实调试。有一次页面出现"dead popup"——弹窗看得见但点不了。我没有让 TRAE 瞎猜,而是启动 agent-loop 模式,让它并行读三个真实文件(landing.html、design.css、global.js),然后综合诊断。它直接定位到 design.css:710 的 animation: modal-overlay-in var(--m-slow) forwards——CSS 动画会覆盖普通属性声明,forwards 让 opacity:1 永久生效,但 pointer-events:none 没被覆盖,所以弹窗"看得见但点不到"。1 行最小修复 #addModal { animation: none; } 解决问题。那一刻我意识到:原来调试可以这么诚实,不用靠运气。
1. Demo 简介 · Product Overview
是什么 / What it is: ICM Marcus 是一个面向金融分析师的网站系统(Web System)。它把券商研报 PDF 摄入到 LLM-Wiki 知识库,通过 12 门机械审计 + 4 遍深度审计 + ComplianceGate 合规门,生成可溯源的晨会简报与投研问答——每一个数字、每一个判断都能追回到原始研报的原文。
ICM Marcus is a web-based morning brief and research audit system for financial analysts. It ingests broker PDFs into an LLM-Wiki knowledge base, passes them through a 12-gate mechanical audit + 4-pass deep audit + ComplianceGate, and produces source-verifiable answers—every number, every claim traceable to the original research report.
面向谁 / Target Users: 基于提案的三类核心用户画像(Personas),每一类都有真实的 JTBD(Jobs-To-Be-Done):
| 用户画像 Persona | 痛点 Pain Point | 期望收益 Expected Gain |
|---|---|---|
| Elena — 中型资管公司首席量化工程师 | 部落知识瓶颈:新人入职 4-6 个月才能上手;通用 LLM 无法提供可审计答案 | 带引用的可信答案,可向审计人员展示;入职周期缩短至 2-3 周 |
| Marcus — 25-45 岁自主投资者 | 信息碎片化、质量参差、术语壁垒;无法判断什么可信 | 可信、可解释的答案和可验证的来源;减少对炒作的依赖 |
| David — 中型券商合规审查总监 | 通用 LLM 无法展示推理链;AI 系统准入需 8-16 周评估 | 完整溯源链;审查周期从 8-16 周缩短至 2-4 周 |
主要功能 / Core Features:
-
晨会简报首页(Morning Brief Dashboard) —
http://localhost:3000/landing.html分析师每日首页,聚合覆盖列表(Coverage Watchlist)、24 小时判决变更、未解矛盾(Contradictions)的一体化视图。所有结论可溯源至原始研报。 -
研报摄入 + 12 门审计(Ingest & 12-Gate Audit) —
http://localhost:3000/upload.html上传 PDF / URL / 文本,经过 ComplianceGate(PII 拦截 + 内幕信息过滤)+ 12 门机械审计 + 4 遍深度审计,输出supported / weakened / contradicted / unresolved判决。 -
跨券商比较 + 矛盾识别(Cross-Broker Compare) —
http://localhost:3000/compare.html同一标的多券商观点对比,自动识别矛盾点,附带原文引用与置信度评分。
2. Demo 创作思路 · Design Rationale
灵感来源 / Inspiration:
项目源于一份提案 HTML(llm-wiki-finance-proposal.html),其核心命题是:
让 LLM-Wiki 真正落地到金融投研的日常工作中。 Bring LLM-Wiki into the daily workflow of financial research.
提案诊断了一个核心缺口:通用 LLM 给的答案没有来源,在强制可解释性场景下不可部署。我想把这个诊断变成能摸到的产品。
想解决的问题 / Problem Statement:
金融分析师每天发生的三个真实痛点(高严重度):
-
部落知识瓶颈(Tribal Knowledge Bottleneck) — 关键知识存在于资深员工脑中,每次打断资深工程师约 12 次/周
-
文档不可信(Untrustworthy Documentation) — 内部 Wiki 与代码脱节,受监管环境下不敢轻信过时信息
-
幻觉风险(Hallucination Risk) — 通用 LLM 无法提供可审计的答案,在强制可解释性场景下不可部署
为什么做这个方向 / Strategic Judgment:
我的判断是——反幻觉不是"能生成答案",而是"能证明答案的每个字来自哪里"。
Anti-hallucination is not “can generate an answer” but “can prove where every word of the answer comes from.”
市场上不缺 RAG 工具,缺的是"敢把审计日志公开"的工具。所以我做了三件别人不做的事,对应提案中的"四个高契合场景":
| 设计原则 Design Principle | 实现 Implementation | 提案对应场景 |
|---|---|---|
| 原始资料不可变 / Raw is Immutable | 摄入 raw/ 后永不修改,所有综合发生在 wiki/ 层 |
合规溯源审计 |
| 文章是综合的,非复制的 / Articles are Synthesized | 从多来源提取、上下文化、交叉引用;是教科书,不是剪贴板 | 投研报告自动编译 |
| Gate G1(No-URL-No-Claim) | 没有来源 URL 的断言直接拒绝 | 投资论点验证 |
| Gate G7(Byte-Found Check) | 引用必须在原文中字节级匹配,非语义近似 | 知识时效管理 |
差异化定位(提案原文):
传统 RAG 每次查询重新检索文档块,是无状态检索。Notion/Obsidian 是被动笔记工具,人做所有综合工作。LLM-Wiki 让 LLM 成为主动编译器:自动摄入、自动编译、自动维护、自动研究。
**
- Demo 体验地址 · Access**
GitHub 仓库 / Repository: https://github.com/starright00631-dev/llm-wiki-finance
由于部署agent 体系 在线体验 暂时不支持/ Live Demo: (仓库内 render.yaml 支持一键部署 / Fill after deploying via render.yaml)
本地体验 / Local Setup:
Bash
git clone https://github.com/starright00631-dev/llm-wiki-finance.git
cd llm-wiki-finance/web
npm install
cp .env.example .env # 填入 LLM_API_KEY / Fill in LLM_API_KEY
npm start
# 打开 http://localhost:3000/landing.html
4. TRAE 实践过程 · Development with TRAE
开发流程 / Workflow
整个项目用 TRAE 完成,采用 agent-loop 模式——每个关键任务都启动 3 个并行 subagent 独立读真实文件,然后综合诊断,杜绝幻觉。这对应提案中的"独特技术能力:审计溯源链"——从 output/ 追溯到 wiki/ 再到 raw/。
Every critical task was completed using TRAE’s agent-loop pattern: 3 parallel subagents independently read real files, then synthesize a diagnosis. No hallucination, only verifiable facts.
关键步骤截图(不少于 3 张)/ Key Screenshots (≥3):
-
截图 1 / Screenshot 1: 晨会简报首页(
landing.html)— 覆盖列表 + 简报区域 操作:启动服务后访问http://localhost:3000/landing.html,截全屏 -
截图 2 / Screenshot 2: 研报摄入 + 审计结果(
upload.html→viewer.html)— 12 门审计判决 操作:上传一份 PDF 研报,等待处理完成,截取viewer.html的审计结果 -
截图 3 / Screenshot 3: TRAE 对话窗口 — agent-loop 诊断 “dead popup” bug 操作:在 TRAE 中双击本次对话复制 Session ID,截图对话中 3 个 subagent 并行读取文件的部分
-
截图 4(附加)/ Screenshot 4 (Bonus): 跨券商比较页(
compare.html)— 矛盾识别 操作:打开compare.html,截取对比表
关键任务 Session ID(不少于 3 个)/ Session IDs (≥3)
以下 Session ID 均为 TRAE 真实对话标识,双击对话即可复制 / All Session IDs are real TRAE conversation identifiers:
| Session ID | 任务内容 / Task | 日期 / Date |
|---|---|---|
6a3b2d69107f8c9d26baf652 |
subagent 工作流设计——3 个 subagent 协作定义构建/检查/合规角色 | 2026-06-25 |
6a3dcc0e0b53896c3c2aa5ed |
agent-loop 修复 P0 质量问题——验证 12 个 GitHub 项目,v4 workflow 通过 9/10 评分 | 2026-06-26 |
6a56f20c1aec8deeac38cc7a |
6 个并行 subagent 执行 PDF→PNG 转换 + file:line 验证的代码修复 | 2026-07-15 |
TRAE 帮我做了什么 / What TRAE Did
-
架构选型 / Architecture: 原生 Koa(不用
koa-connect包装 Express)——因为 TRAE 读到了之前koa-connect导致ctx泄漏的教训,主动建议重写 -
反幻觉设计 / Anti-Hallucination: 12 门审计 + ComplianceGate + 4 遍审计的全部代码逻辑——每门审计的判定规则都是 TRAE 读完
web/run_pipeline.py后给出的具体实现 -
Bug 诊断 / Bug Diagnosis: “dead popup” 根因——TRAE 并行读 3 个文件后,精确定位到
design.css:710的 CSS 动画覆盖问题,给出 1 行最小修复
TRAE didn’t just write code—it read my code, understood the context, and gave me the smallest correct fix. That’s what “compiler” means in the LLM-Wiki metaphor.
5. 对应的报名审核通过的帖子链接 / Registration Link
____(请填写你报名审核通过的帖子链接 / Fill in your approved registration post link)
Emergency Fix Summary
“localhost 拒绝连接” root cause: Server process was not running (port 3000 not listening).
Fix applied: Restarted node web/server.js — server now running with LLM mode: live on http://localhost:3000. You can verify by opening http://localhost:3000/landing.html in your browser.
To restart manually next time:
PowerShell
cd "c:\Users\18520\AppData\Roaming\TRAE SOLO CN\ModularData\ai-agent\work-mode-projects\6a3a21c10c48707a65589db6\llm-wiki-finance\web"
node server.js





