跳到主要内容

Lawsight - Full Agents' Workflow

VincentWei    2026年11月4日 13:23:45

A patent matter in. A defensible answer out. —— 输入一项专利事务,输出一份可辩护的答案。

1. 项目定位

一套面向专利律师的四步 Agentic 工作流系统:把模糊的委托需求(无效检索 / FTO / 侵权 / 可专利性 / SEP)转化为可辩护的交付物(Claim Chart / FTO 意见书 / 侵权解读),全程设人机门禁、对证据执行零信任校验,并以哈希链留存审计痕迹。

技术栈:FastAPI + uvicorn(:8300)· Vue 3 + Vite(不引入 router/Pinia,单 App.vue 配 12 个子组件,2s REST 轮询)· 智谱 GLM(glm-5.3-flashx / glm-4.5v 视觉模型)· 智慧芽开放平台(D005/P008/L001/L010)· mem0 + chroma 项目记忆 · SQL WAL 持久化 + Redis Stream 计量。


2. 总体架构图

flowchart TB
    subgraph FE["前端控制台 (Vue 3 + Vite)"]
        UI["App.vue 单页 · 12 子组件<br/>PipelineBar / GateCard / CpGateCard / Step1-4Panel<br/>AuditPanel / ObservabilityPanel / ChatAssistant<br/>PassageModal / InterventionDrawer"]
        I18NF["i18n.js 中英双语 (界面语言 ≠ 事务语言)"]
    end

    subgraph API["REST API 层 (FastAPI main.py · 34+ 端点)"]
        EP["matters CRUD · chat/clarify · gates/resolve<br/>steer · recover · annotations · alr<br/>export (md/xlsx/json) · observability · audit"]
    end

    subgraph CORE["编排引擎 (engine.py)"]
        SM["状态机 STAGE_ORDER (13 阶段)<br/>asyncio.Lock 串行事务 · 看门狗 1800s<br/>checkpoint / steer / recover"]
        GATE["门禁调度 _GATE_AFTER (9 道门)<br/>attorney 阻塞等人 / autonomous 自动裁定留痕"]
    end

    subgraph PIPE["四步流水线"]
        S1["step1.py 目标定义<br/>A1 分诊→A2 获取→A3 解析→A4 规范化<br/>→A5 关键限定→A6 范围→A7 校验→A8 检索计划"]
        S2["step2.py 并行检索<br/>QueryPlanner + STU 看板(要素×源)<br/>四源并发 sem=6 · 迭代闭环 ≤2 轮"]
        S3["step3.py 证据映射<br/>九阶段: 策展→筛选→映射→绑定→校准<br/>→冲突→三重校验→图表→深度分析"]
        S4["step4.py 掌控交付<br/>结论单元→立场推理→反方挑战<br/>→装配→ALR→批注→双指纹签发"]
    end

    subgraph SUP["支撑服务"]
        GLM["glm.py · chat_json/vision_json<br/>429 退避 · 截断倍增 · mock 短路"]
        ZHY["zhihuiya.py · 智慧芽 5 接口"]
        VER["verify.py · 确定性规则层<br/>权项切分/span 定位/引用三重校验"]
        MEM["memory.py · mem0 项目记忆"]
        OBS["observability.py · span 瀑布"]
        STORE["store.py + persist.py<br/>内存态 + SQLite WAL + 哈希链审计"]
        SPEC["spec_ingest.py · 说明书解析<br/>chat.py · tokenbus.py · i18n.py"]
    end

    subgraph EXT["外部依赖"]
        LLM["智谱 GLM-5.3 / GLM-4.5V"]
        ZY["智慧芽开放平台"]
        M0["mem0 + chroma"]
        RD["Redis Stream (可选)"]
        SQ["SQLite (matters/events/specs)"]
    end

    FE -->|"2s 轮询 GET /api/matters/{id}"| API
    API --> SM
    SM --> GATE
    SM --> S1 --> S2 --> S3 --> S4
    S1 & S2 & S3 & S4 --> GLM & VER & ZHY & SPEC
    GLM --> LLM
    ZHY --> ZY
    MEM --> M0
    STORE --> SQ
    tokenbus --> RD
    SM --> OBS
    STORE -.->|"全量快照+事件哈希链"| SQ

架构要点:分层边界清晰——前端只轮询快照、不驱动业务;引擎只负责状态机与门禁调度;四步流水线只承载领域逻辑;所有 LLM 环节统一经由 glm.py,并由确定性规则兜底;状态每次变更均落盘 SQLite,并写入 SHA256 哈希链以备审计。


3. 端到端主流程图

flowchart TD
    A(["POST /api/matters<br/>lang 检测 + mem0 记忆召回"]) --> B["Step1 · A1 分诊<br/>置信度<0.6 → CLARIFY 澄清 ≤1 轮"]
    B --> G1{"◆ C1 任务类型确认"}
    G1 -->|"可改选"| C["A2 获取: 说明书上传(spec_ingest)<br/>/ 专利号→智慧芽 D005 / 手动粘贴 / demo"]
    C --> D["A3 权项解析: 规则层切分+依赖图<br/>LLM 逐字要素切分 · 防压平<br/>FigureAgent 附图视觉解析"]
    D --> E["A4 规范化 → A5 关键限定/构词假设<br/>→ A6 五决策域范围 → A7 七项确定性校验<br/>(BLOCK → 修复循环 ≤2 轮)"]
E --> G2{"◆ C2 范围审定"}
G2 --> F["A8 逐权项类型化检索计划"]
F --> G3{"◆ C3 计划抽查放行"}
G3 --> H["Step2 · 四源并行检索<br/>专利 D005+P008 / 文献 L001+L010<br/>失败时按源降级至 demo 语料 · 临界日期过滤<br/>缺口迭代闭环 ≤2 轮 · 证据池句级物理化"]
H --> I["Step3 · 九阶段证据映射<br/>L0-L4/U 判定 + 逐字引用绑定<br/>三重校验失败→重映射(≤2 轮)→降级人工<br/>Chart/热力矩阵/缺口归因/§102§103 理论
    CT --> EL["elements 要素<br/>id/span/keywords/is_critical"]
    EL --> SP["scope 五决策域"]
    EL --> PLAN["search_plan 类型化查询/布尔式/CPC/时间窗"]
    PLAN --> POOL["evidence_pool 证据池<br/>句级段落+簇键+T1-T4+doc_hash"]
    EL x--x POOL
    POOL --> MAPX["mappings 判定记录<br/>verdict L0-L4/U · citations<br/>quote_span/quote_hash/双URI"]
    MAPX --> CH["chart+heat+gaps<br/>term_matrix/deep_claims"]
    CH --> TH["theories §102/§103 理论"]
    CH --> U["units G1/G2/G3 结论单元"]
    U --> DEL["deliverables<br/>claim_chart/fto_opinion/infringement_read"]
    DEL --> SIG["signoff 双指纹<br/>sha256 版本+责任摘要"]
    M -.-> CK["checkpoints 16 字段快照+指纹"]
    M -.-> AUD["audit 哈希链事件<br/>prev_hash→this_hash"]

4.4 人机协作时序(attorney 模式)

sequenceDiagram
    participant U as 律师(前端)
    participant A as API(main.py)
    participant E as Engine(状态机)
    participant S as Step 流水线
    participant G as GLM/智慧芽

    U->>A: POST /api/matters
    A->>E: create + schedule_advance
    loop 每阶段(asyncio.Lock 串行)
        E->>S: run_stage
        S->>G: chat_json / D005/P008…
        G-->>S: 结构化结果(失败→规则兜底)
        S-->>E: 更新 Matter + checkpoint
    end
    E-->>A: AWAITING_GATE(C1)
    A-->>U: 2s 轮询获取门禁快照
    U->>A: POST gates/C1/resolve(改选/备注)
    A->>E: resolve

1. **确定性规则与 LLM 混合**:每个 LLM 环节均设有规则兜底(mock 短路 → `_degraded` 路径),确保流水线不断流;支持按数据源降级(智慧芽 → demo 语料)。
2. **对模型零信任的证据映射**:`verbatim_quote + quote_span` 绑定后,进行 offset 回取、哈希校验与包含性三重复核;失败时最多重映射 2 轮,仍未通过则降级为人工处理;独立 HTML 回链页支持实时重算(`main.py:868`)。
3. **九道门禁 × 双模式**:attorney 模式阻塞等待人工,autonomous 模式自动裁定并全程留痕;干预协议共 11 种(pause/resume/stop/focus/knowledge/veto×2/rerun/redirect/lock_theory/rollback)。
4. **因果一致性**:C4 send_back 回退至 s3,CP-08 stale 回退至 s4_inference,veto/rollback 仅清理因果下游(`_rewind_cleanup`)。
5. **可审计可恢复**:采用 SHA256 哈希链事件流、SQLite WAL 全量持久化、16 字段检查点与三策略 recover。
6. **全链路中英双语**:提示词、判定、门禁、交付物与审计均支持双语,界面语言与事务语言相互独立。
最近更新: 2026年11月4日 13:25:51
浏览: 9

[[total]] 条评论

添加评论
  1. [[item.time]]
    [[item.user.username]] [[item.floor]]楼
  2. 点击加载更多……
  3. 添加评论