ClashLens
Overview
ClashLens 是一套本地材料交叉初审框架:给定一个文件夹,按统一流程找出材料之间的矛盾、缺项与异常,输出可复核的初审报告(PDF 为主,附 Markdown / JSON)。
两层关系请分开理解:
| 层 | 含义 |
|----|------|
| 框架(不变) | 收材料 → 抽文本 → 交叉核对 → 核一遍 → 出报告。每个业务角色由独立子智能体执行(见 §1);主编排者不代跑 Compare/Review 长推理。 |
| 场景包(可热插拔) | 告诉「这一类材料重点看什么」。当前内置 通用 + 三套专业;新增场景 = 只加 scenarios/<id>/brief.md,不必改框架与 Server。 |
不做:深度研究总结、代写标书、代替人下「录用 / 中标 / 学术终裁」。
1. 多智能体编排(强制)
ClashLens 采用 主编排者 + 子智能体 模型:
[ 主编排者 Orchestrator ]
├─ spawn → [ Plan 子智能体 ] 出计划、等确认
├─ spawn → [ Extract 子智能体 ] prepare → output/prepare.json
├─ spawn → [ Compare 子智能体 ] brief + packet → issues_compare.json
├─ spawn → [ Web 子智能体 ](可选) 宿主能搜且用户要才做
├─ spawn → [ Review 子智能体 ] review_gate → issues_reviewed.json
└─ spawn → [ Report 子智能体 ] write_report → preaudit_report.pdf
| 原则 | 说明 |
|------|------|
| 一角色一子 Agent | Plan / Extract / Compare /(Web)/ Review / Report 各用独立上下文;只读本角色 agents/<role>.md + 本步输入文件 |
| 落盘优先 | 子 Agent 之间只传路径,禁止在对话里塞整包 OCR/ASR 全文 |
| 主编排者不代劳 | 不得在未派 Compare/Review 子 Agent 的情况下自己完成全文交叉核对(用户明示「单 Agent 降级」除外) |
| 宿主适配 | Cursor 等用 Task/Subagent API;Qoder/WorkBuddy/Trae 用逻辑子智能体(新会话或显式 【子智能体 · ROLE】) |
完整调度说明、prompt 模板、降级条款:agents/orchestration.md。
0. 执行前:Plan 门禁(强制)
加载本 Skill 后、调用任何脚本或 HTTP 工具之前,宿主必须先进入编排 / Plan,不得直接开跑。
| 宿主能力 | 要求 | |----------|------| | 支持 Plan Mode(如 Cursor Plan) | 主动切换到 Plan Mode(或等价「先规划再执行」),在计划里写清下列字段后再执行 | | 无独立 Plan Mode(Qoder / 其它 workbody 等) | 在对话里输出完整「初审计划」,等用户确认后再执行 |
计划未确认 = 零副作用:禁止 ensure_env / download_models / start_server / prepare / write_report / 启服 / 写 output/。只读浏览 SKILL.md / agents/ / scenarios/ / 用户文件夹名单可以。
跳过门禁:仅当用户明确说「直接跑」「跳过确认」「skip plan」之一时,才可省略等待;仍建议在开跑前用 3~5 行复述将执行的步骤。
初审计划必含字段
- 场景 id(未指定则先推断并写出依据;不确定则问用户)
- 材料文件夹绝对或相对路径
- 是否联网 / 公开线索(默认关;用户开启且宿主如有检索能力再做,见
agents/web.md;没有就跳过) - 子智能体步骤(每步 spawn 或逻辑子 Agent):Extract → Compare →(Web 如有)→ Review → Report;环境由主编排者
ensure_env - 预计产物:
preaudit_report.pdf(主)+ md/json - Skill 根目录(运行脚本的 cwd)
模板见 agents/plan.md。
当前可用场景
| 场景 id | 名称 | 典型材料 | 主要找什么 |
|---------|------|----------|------------|
| general | 通用场景 | 任意材料包(说明/表格/纪要/截图等) | 跨文件事实口径、时间线、声明 vs 附件、待补缺口 |
| hr_bgcheck | 背调初审 | 简历、面试记录、录音、学信/离职证明等 | 时间线/薪资冲突;证明缺口;公开线索(如有) |
| bid_gap | 标书初审 | 招标文件 + 我方响应材料 | 要求 vs 响应:缺口、弱响应、有效期等 |
| research_check | 科研初审 | 论文摘录、结果表、补充材料 | 样本量/指标前后矛盾;可复现声明缺链接等 |
场景选择:用户指定专业场景则用之;说「通用 / 随便比」或材料不像任一类专业包 → general。未指定时按文件夹内容推断专业场景;仍不确定则默认 general 并在计划里写明依据(仍属 Plan 阶段)。
硬规则
- 先 Plan(见上节),确认后再派子智能体执行;再谈环境就绪与抽取。
- 一角色一子智能体(§1);Compare/Review 必须由子 Agent 完成并落盘,主编排者只调度与门禁。
- 「交叉核对」由 Compare 子智能体按场景
brief完成,不要用写死脚本冒充结论。 - 每条问题须有出处(文件 + 摘录);状态默认「待确认」,禁止自动改为已确认。
- 公开线索默认不做;由 Web 子智能体(或 Compare 内可选一步)在宿主能搜且用户需要时做(
agents/web.md)。宿主不能搜则跳过。 - 交付时优先给出 PDF 路径;需粘贴文本时提示 MD 副本。
环境准备
cd <本 Skill 根目录>
pip install -r requirements.txt
python scripts/download_models.py --asr --ocr
python scripts/ensure_env.py
ensure_env:检查依赖(含 OpenVINO OCR/ASR)→ 探测服务 → 未启动则拉起 → 确认 /prepare 可用。细节见 reference/environment.md。
标准流程(完整一次初审 · 子智能体版)
[主编排] ensure_env
[Extract 子Agent] prepare → output/prepare.json
[Compare 子Agent] brief + compare.md → output/issues_compare.json
[Web 子Agent](如有)→ 合并 web_hint
[Review 子Agent] review_gate → output/issues_reviewed.json
[Report 子Agent] write_report → preaudit_report.pdf
主编排者在每步前后检查落盘文件是否存在;详见 agents/orchestration.md。
可选切面:只 prepare;用户明示「跳过核一遍 / skip review」时可在结构校验后直接报告(不推荐)。
Windows 保存 JSON 请用 --out。修改 server/ 后需重启服务。
多角色分工(= 子智能体清单)
| 步骤 | 子智能体 | 作用 | 主要命令/文件 |
|------|----------|------|----------------|
| 编排 | Plan | 出计划、等确认 | agents/plan.md |
| 环境 | 主编排者 | 依赖与服务就绪 | scripts/ensure_env.py |
| 抽信息 | Extract | 多模态 → packet | agents/extract.md · prepare |
| 对一下 | Compare | 交叉找问题 | agents/compare.md |
| 公开线索 | Web(可选) | 宿主能搜且用户要 | agents/web.md |
| 核一遍 | Review | 质量门禁 | agents/review.md · review_gate |
| 出报告 | Report | PDF + 副本 | agents/report.md · write_report |
调度协议:agents/orchestration.md。场景审题:scenarios/<id>/brief.md。
可处理的文件
| 类型 | 扩展名 | 抽取方式 |
|------|--------|----------|
| 纯文本 | .md .txt .csv .json 等 | 直接读取 |
| PDF | .pdf | pdf_text |
| Word / PPT / Excel | .docx .pptx .xlsx | office_text |
| 图片 | .png .jpg 等 | ocr(RapidOCR + OpenVINO,PP-OCR 系权重) |
| 音频 | .wav .mp3 等 | asr(OpenVINO GenAI / Whisper) |
常用命令
| 命令 | 用途 |
|------|------|
| python scripts/ensure_env.py | 环境与服务就绪 |
| python scripts/client_run.py status | 探活 |
| … inventory --folder … | 收材料 |
| … prepare --folder … --scenario … --out … | 一键抽文本包 |
| … pdf_text / office_text / ocr / asr | 单文件抽取 |
| … validate_issues --issues-json … | 仅结构校验 |
| … review_gate --issues-json … [--packet-json …] | 核一遍机械门禁(结构+软警告) |
| … write_report --folder … --scenario … --issues-json … [--packet-json …] | 生成 PDF/MD/JSON(--folder/--scenario 必填) |
默认服务:http://127.0.0.1:8765(可用 CLASH_LENS_URL)。控制台(工具台):同地址根路径——看就绪清单 / 场景包 / 最近报告;业务结论仍在 PDF。
人工确认条目:python scripts/confirm_issue.py(改 status)后再 write_report。
Windows 落盘 issues / prepare 请用客户端 --out,或 Python 写 UTF-8 文件;勿用 PowerShell 管道重定向 JSON。
试跑样例包(可选)
仓库内演示材料在 Skill 外:相对本 Skill 根为 ../../demos/<scenario_id>/(如 general / hr_bgcheck / bid_gap / research_check)。正式使用时换成用户自己的文件夹即可。
目录
| 路径 | 用途 |
|------|------|
| agents/ | 各子智能体角色说明 + orchestration.md 调度协议 |
| scenarios/ | 场景审题(框架 + 场景包分界线) |
| prompts/ | 核对与报告提示 |
| reference/ | 环境与依赖说明 |
| server/ | 本地工具服务 |
| static/ | 本地面板(服务起来后打开) |
| scripts/ | 环境、客户端、启服、确认回写 |
| models/ | OCR/ASR 权重 |
| output/ | 报告产物 |
微信扫一扫