🔍 事件影响分析 Agent

基于知识图谱的企业影响链推理系统 · 设计文档
v1.0 · Skill-based Architecture

📑 目录

  1. 设计哲学
  2. 系统架构
  3. Skill 设计
  4. Agent 循环框架详细设计
  5. Agent System Prompt
  6. 知识图谱接口需求规约
  7. kgquery CLI 工具规约
  8. 运行时流程示例
  9. Agent 输出格式规范
  10. Token 预算管理
  11. 评测方案
  12. 扩展性设计
  13. 实施建议

1 设计哲学

借鉴 OpenClaw 的 Skill 架构模式:Agent 本身只负责推理,所有外部能力通过 Skill 注入

🧩 OpenClaw 核心设计
  • Agent 是一个通用推理内核(LLM + System Prompt)?通用推理内核Agent 本身不包含任何业务逻辑,只具备"理解问题→调用工具→综合推理"的通用能力。具体的业务能力(如查图谱、分析影响)全部通过 Skill 模块注入。
  • Skill 是可插拔的能力模块,通过 SKILL.md 声明式描述自己能做什么?可插拔 Skill类似手机上的 App——需要什么能力就安装对应的 Skill。每个 Skill 包含一个 SKILL.md 说明文件,告诉 Agent "我能做什么、怎么用我"。新增能力只需添加新 Skill,无需修改 Agent 核心代码。
  • Agent 在运行时根据任务按需加载对应的 Skill
  • Skill 内部封装具体工具的调用方式,Agent 不需要知道底层细节

我们的事件影响分析系统完全复用这个模式:

block-beta
  columns 1
  block:agent["Event Impact Agent"]:1
    columns 3
    sp["System Prompt\n推理框架 + 输出规范"]
    sk["Skills\nknowledge-graph\nevent-decomposer\nimpact-reasoner"]
    llm["LLM\nClaude / GPT"]
  end
    
图 1-1:Agent = 推理内核 + 可插拔 Skill + LLM

2 系统架构

2.1 整体架构

flowchart TB
    U["👤 用户输入事件"] --> AC

    subgraph AC["Agent Controller · 会话管理 + Skill 调度"]
        direction TB
        S1["🧩 knowledge-graph\n图谱查询能力"]
        S2["🧩 event-decomposer\n事件结构化拆解"]
        S3["🧩 impact-reasoner\n影响链推理"]
        SP["📋 System Prompt\n角色定义 · 推理框架 · 输出规范"]
    end

    AC -->|"Skill 内部通过 CLI/API 调用"| KG

    subgraph KG["Knowledge Graph Service · REST API"]
        direction LR
        A1["/api/search"]
        A2["/api/entity/{id}"]
        A3["/api/relations"]
        A4["/api/path"]
        A5["/api/industry"]
        A6["/api/supply-chain"]
    end

    style AC fill:#f1f8ff,stroke:#0366d6,stroke-width:2px
    style KG fill:#dcffe4,stroke:#28a745,stroke-width:2px
    
图 2-1:整体系统架构

2.2 与 OpenClaw 的对应关系

OpenClaw 概念本系统对应说明
AgentEvent Impact Agent通用推理内核
SKILL.md各 Skill 的声明文件描述能力、触发条件、使用方法
Skill scripts/kgquery CLI 工具封装图谱 API 调用
Skill references/图谱 schema 文档、行业分类表Agent 按需加载的参考资料
System Prompt?System Prompt系统提示词,是在对话开始前注入给 LLM 的一段指令,定义了 Agent 的角色、行为规范和工作流程。相当于给 Agent 的"岗位说明书"。推理框架 Prompt定义 Chain-of-Impact 推理流程
Tool (exec)?Tool 调用Agent 通过执行命令行工具(CLI)与外部系统交互。例如执行 kgquery search "华为" 来查询知识图谱,就像人类在终端里输入命令一样。CLI 命令执行Agent 通过 exec 调用 Skill 脚本

3 Skill 设计

🗄️ Skill: knowledge-graph — 核心 Skill

封装所有与知识图谱的交互,是系统最核心的能力模块。

目录结构

skills/knowledge-graph/
├── SKILL.md # Skill 声明 + 使用指南
├── scripts/
│   └── kgquery # CLI 工具(Python),封装图谱 API
├── references/
│   ├── graph-schema.md # 图谱的节点/边类型定义
│   ├── relation-types.md # 所有关系类型及含义说明
│   └── industry-taxonomy.md # 行业分类体系
└── assets/
    └── config.template.yaml # 配置模板

核心命令一览?kgquery CLI 命令这些是 Agent 与知识图谱交互的"动作指令"。Agent 在分析过程中会自动选择合适的命令,就像人类分析师会先搜索公司、再查关系、再看供应链一样。

命令功能关键参数
kgquery search实体搜索--type --industry --limit
kgquery entity实体详情--fields
kgquery relations关系查询--type --direction --depth
kgquery path路径查询--max-depth --relation-types
kgquery industry行业查询--sub-industry --sort-by
kgquery supply-chain供应链查询--direction --depth

使用示例

# 实体搜索
$ kgquery search "华为" --type company --limit 10

# 查询关系(供应商,2 跳)
$ kgquery relations ent_001 --type "供应商" --depth 2

# 上游供应链穿透
$ kgquery supply-chain ent_001 --direction upstream --depth 2
⚠️ 使用规范
  1. 先搜索再查详情:用 search 定位实体 ID,再用 entity / relations 深入
  2. 控制查询范围:始终使用 --limit--type 过滤
  3. 多跳慎用--depth 2 以上结果量指数增长,优先用 path 做定向查询
  4. 结果太多时:先查 --limit 5 看样本,确认方向对了再扩大

输出格式示例

[
  {
    "id": "ent_001",
    "name": "华为技术有限公司",
    "type": "company",
    "industry": "通信设备",
    "tags": ["5G", "芯片设计", "ICT"],
    "brief": "全球领先的ICT基础设施和智能终端提供商",
    "relevance_score": 0.95
  }
]
🔬 Skill: event-decomposer — 事件拆解

将自然语言描述的事件拆解为结构化的分析维度和查询计划。较轻量,主要是 Prompt 模板。

skills/event-decomposer/
├── SKILL.md
└── references/
    ├── decomposition-template.md # 拆解框架模板
    └── dimension-examples.md # 各维度的拆解示例

六大拆解维度?为什么要拆解?一个事件(如"芯片管制")的影响是多维度的。直接让 AI 分析容易遗漏。拆解成六个维度后,确保分析覆盖全面:
  • 谁被直接影响?
  • 供应链上下游怎么传导?
  • 资本关联的公司受不受影响?
  • 竞争对手是受损还是受益?
  • 哪些地区受影响?
  • 整个行业景气度变化?

mindmap
  root((事件拆解))
    直接影响
      被点名企业
      被管制行业
      政策直接覆盖领域
    供应链
      上游原材料/零部件
      下游终端产品
      断供/涨价传导
    资本关联
      投资方/被投资方
      控股/参股关系
      母子公司影响
    竞争替代
      同行业竞争者
      替代品/技术提供方
      对手困境→自身机会
    地域/政策
      受影响地域范围
      关联企业
      跨国地缘风险
    宏观传导
      行业整体景气度
      上下游行业间接影响
      消费者/终端市场
        
图 3-1:事件拆解的六大分析维度
✅ 拆解原则
  • 先粗后细:初始覆盖主要维度,细节在检索阶段补充
  • 假设驱动:每个维度都要有明确的影响假设,指导后续查询
  • 优先级排序:最可能产生影响的维度排在前面
  • 不过度拆解:通常 3-5 个维度足够
⚡ Skill: impact-reasoner — 影响链推理

基于事件拆解结果和图谱查询数据,推理事件对各企业的影响传导链。

skills/impact-reasoner/
├── SKILL.md
└── references/
    └── reasoning-examples.md # 推理链示例

Chain-of-Impact 五步推理?Chain-of-Impact受 Chain-of-Thought(思维链)启发的影响链推理方法。核心思想是沿着关系网络逐层传导
  • Step 1 锚定:谁被事件直接点名?
  • Step 2 一阶:与直接受影响者有直接关系的公司
  • Step 3 二阶:再远一层的间接传导
  • Step 4 反向:谁会因对手受损而受益?
  • Step 5 综合:汇总所有影响,评估程度

flowchart LR
    S1["Step 1\n锚定直接影响"] --> S2["Step 2\n一阶传导\n(1 跳)"]
    S2 --> S3["Step 3\n二阶传导\n(2-3 跳)"]
    S3 --> S4["Step 4\n反向受益分析"]
    S4 --> S5["Step 5\n综合评估"]

    style S1 fill:#ffeef0,stroke:#d73a49,stroke-width:2px
    style S2 fill:#fff8f0,stroke:#e36209,stroke-width:2px
    style S3 fill:#f5f0ff,stroke:#6f42c1,stroke-width:2px
    style S4 fill:#dcffe4,stroke:#28a745,stroke-width:2px
    style S5 fill:#f1f8ff,stroke:#0366d6,stroke-width:2px
        
图 3-2:Chain-of-Impact 推理流程
📏 推理规范
  • 有据可依:每个影响判断必须引用图谱数据
  • 区分确定与推测:用 confidence 字段标注
  • 传导衰减:超过 2 跳默认降一级
  • 避免过度推理:宁可少说,不要编造传导链
  • 呈现分歧:影响方向不确定时,说明两种可能

4 Agent 循环框架详细设计

Agent 循环框架是本系统的核心引擎,负责协调事件拆解、图谱检索、影响推理三个阶段的执行,管理状态流转和资源预算。

4.1 状态机设计

Agent 主循环采用有限状态机(FSM)?有限状态机 (FSM)一种经典的程序控制模型。把整个分析流程分成若干"状态"(如拆解中、检索中、推理中),每个状态有明确的输入输出和转移条件。好处是:

驱动,每个状态对应明确的职责和转移条件:

stateDiagram-v2
    [*] --> INIT: 用户输入事件
    INIT --> DECOMPOSE: 解析事件文本
    DECOMPOSE --> PLAN: 生成查询计划
    PLAN --> RETRIEVE: 执行查询
    RETRIEVE --> EVALUATE: 返回结果
    EVALUATE --> PLAN: 信息不足\n调整计划
    EVALUATE --> SUMMARIZE: 累积Token超阈值
    SUMMARIZE --> PLAN: 压缩完成\n继续检索
    EVALUATE --> REASON: 信息充分 OR\n达到最大轮次
    REASON --> OUTPUT: 推理完成
    OUTPUT --> [*]: 输出报告

    note right of EVALUATE
      核心决策节点
      判断检索是否充分
    end note

    note right of SUMMARIZE
      渐进式摘要
      压缩已有数据
    end note
    
图 4-1:Agent 主循环状态机

状态定义

状态职责输入输出
INIT接收并验证事件输入用户原始文本规范化事件描述
DECOMPOSE调用 event-decomposer 拆解事件规范化事件分析维度 + 影响假设
PLAN基于当前信息差生成/调整查询计划维度 + 已有数据优先级排序的查询序列
RETRIEVE执行 kgquery 命令批次查询序列图谱原始数据
EVALUATE评估信息充分性,决定下一步累积数据 + 预算转移决策
SUMMARIZE渐进式摘要压缩累积数据 > 阈值压缩后的关键信息
REASONChain-of-Impact 推理完整证据集影响链 + 评估
OUTPUT格式化输出推理结果结构化报告

4.2 检索循环控制

检索阶段是 Agent 循环中最复杂的部分,采用 Plan → Retrieve → Evaluate?Plan-Retrieve-Evaluate 循环模拟人类分析师的工作方式:

这种循环确保 Agent 不会"一股脑查完就下结论",而是像人一样边查边想、逐步深入。 迭代循环:

flowchart TB
    P["📋 PLAN\n生成/调整查询计划"] --> R["🔍 RETRIEVE\n批量执行查询"]
    R --> E{"🧐 EVALUATE\n信息充分?"}
    E -->|"❌ 信息不足\n发现新线索"| ADJ["调整查询计划\n补充新维度"]
    ADJ --> P
    E -->|"⚠️ Token 超阈值"| S["📝 SUMMARIZE\n渐进式摘要压缩"]
    S --> P
    E -->|"✅ 信息充分"| DONE["进入 REASON"]
    E -->|"🔢 达到最大轮次"| DONE

    style P fill:#f1f8ff,stroke:#0366d6,stroke-width:2px
    style R fill:#fff8f0,stroke:#e36209,stroke-width:2px
    style E fill:#f5f0ff,stroke:#6f42c1,stroke-width:2px
    style S fill:#e6fcfc,stroke:#0ca4a5,stroke-width:2px
    style DONE fill:#dcffe4,stroke:#28a745,stroke-width:2px
    
图 4-2:检索循环 Plan-Retrieve-Evaluate

查询计划生成策略

📋 Plan 阶段的核心逻辑
  • 首轮:基于事件拆解结果,按维度优先级生成初始查询序列
  • 后续轮次:基于已有数据的信息差分析——哪些维度还缺数据?发现了哪些新线索需要追查?
  • 查询合并:相似查询自动合并,避免重复请求(如对同一实体的多次 relations 查询合并为一次多类型查询)
  • 优先级动态调整:已确认的高影响实体的关联查询优先级上调

每轮查询数量控制

轮次查询数上限策略说明
第 1 轮6-8 条广度优先——覆盖所有维度的初始探查
第 2 轮4-6 条深度优先——对核心实体做关系拓展
第 3 轮3-4 条定向补充——填补特定信息缺口
第 4-5 轮2-3 条精确查询——验证假设或追踪特定线索

检索终止条件

EVALUATE 阶段基于以下条件判断是否终止检索循环:

✅ 终止条件(满足任一即终止)
  1. 信息充分判定:所有高优先级分析维度均已覆盖,核心影响链的关键节点已识别
  2. 最大轮次限制:达到 5 轮检索上限
  3. Token 硬限制:累积数据 + 预留推理空间接近上下文窗口上限
  4. 收益递减判定:连续 2 轮未发现新的高影响实体或关键关系
⚠️ 继续检索的触发信号
  • 发现了高影响实体但尚未查询其关系网络
  • 事件拆解的某个维度完全没有数据覆盖
  • 查询返回 truncated: true,且截断的数据可能包含关键实体
  • 发现意外线索(如查供应链时发现重要资本关联)

4.3 信息充分性评估模型?为什么需要评估模型?Agent 不能无限制地查下去(耗时、耗 token),也不能查太少就下结论。这个模型就是帮 Agent 判断"我查的够不够了"的决策机制,从四个角度打分,≥75 分就认为信息够了,可以开始推理。

EVALUATE 是循环的核心决策节点,采用多维评分机制:

flowchart LR
    subgraph 评估维度
        direction TB
        C1["维度覆盖率\n各分析维度是否有数据支撑"]
        C2["实体饱和度\n核心实体的关系是否已充分探查"]
        C3["链路完整度\n影响传导链是否有断裂"]
        C4["新发现率\n本轮是否有新的重要发现"]
    end

    C1 --> SC["综合评分\n0-100"]
    C2 --> SC
    C3 --> SC
    C4 --> SC

    SC -->|"≥ 75 分"| GO["✅ 信息充分\n进入推理"]
    SC -->|"< 75 分"| CONT["🔄 继续检索\n补充信息"]

    style SC fill:#f5f0ff,stroke:#6f42c1,stroke-width:2px
    style GO fill:#dcffe4,stroke:#28a745,stroke-width:2px
    style CONT fill:#fff8f0,stroke:#e36209,stroke-width:2px
    
图 4-3:信息充分性评估模型
评估维度权重评分标准
维度覆盖率30%已覆盖维度数 / 总维度数(按优先级加权)
实体饱和度30%已查关系的核心实体数 / 已识别的核心实体数
链路完整度25%从事件到受影响实体的传导链是否有断裂节点
新发现率15%本轮新增的高影响实体数(递减则倾向终止)
💡 实现说明 评估过程由 LLM 自身完成——Agent 在每轮检索后进行结构化自我评估,输出各维度得分和是否继续的决策。这避免了引入额外的规则引擎,同时利用了 LLM 对信息完整性的判断能力。

4.4 渐进式摘要机制?渐进式摘要LLM 有上下文窗口限制(如 200K token),查询数据不断累积会撑满窗口。渐进式摘要的做法是:当数据量超过阈值时,把已有的原始数据压缩成精华摘要,释放空间继续查。类比:笔记本快写满了,先把前面的内容整理成提纲,腾出空白页继续记。

当累积的图谱数据超过 Token 阈值时,启动摘要压缩以释放上下文空间:

flowchart TB
    subgraph 摘要流程
        direction TB
        A["📊 累积数据 > 50K tokens"] --> B["分类归档\n按维度整理已有数据"]
        B --> C["提取关键信息\n实体、关系、影响判断"]
        C --> D["压缩表示\n结构化摘要 ~15K tokens"]
        D --> E["替换原始数据\n释放 ~35K 空间"]
    end

    subgraph 保留内容
        direction TB
        K1["✅ 核心实体 ID 和关键属性"]
        K2["✅ 已确认的关系和传导路径"]
        K3["✅ 各维度的中间结论"]
        K4["✅ 尚未验证的假设和线索"]
    end

    subgraph 可压缩内容
        direction TB
        D1["📦 原始查询的完整 JSON 响应"]
        D2["📦 重复/冗余的实体信息"]
        D3["📦 低相关性的查询结果"]
    end

    style A fill:#fff8f0,stroke:#e36209
    style D fill:#dcffe4,stroke:#28a745
    
图 4-4:渐进式摘要的压缩策略

摘要触发条件与压缩比

条件阈值动作
累积数据量> 50K tokens触发首次摘要,压缩至 ~15K
摘要后再次超限> 40K tokens(摘要 + 新数据)触发增量摘要,合并新旧摘要
总上下文使用率> 70% 上下文窗口强制摘要 + 限制后续查询数量

4.5 Agent 内部数据结构

Agent 在循环过程中维护以下核心数据结构:

{
  "session": {
    "event_id": "evt_20260411_001",
    "event_text": "美国对中国芯片出口管制进一步收紧",
    "state": "EVALUATE",
    "current_round": 2,
    "max_rounds": 5
  },
  "decomposition": {
    "dimensions": [
      {
        "name": "直接影响",
        "priority": 1,
        "hypothesis": "受管制的芯片设计/制造企业将直接受损",
        "status": "covered",
        "coverage_score": 85
      },
      {
        "name": "供应链传导",
        "priority": 1,
        "hypothesis": "上游设备/材料供应商和下游客户受间接影响",
        "status": "partial",
        "coverage_score": 60
      }
    ]
  },
  "evidence_pool": {
    "entities_discovered": 23,
    "entities_explored": 15,
    "relations_found": 47,
    "impact_chains": [
      {
        "path": ["芯片管制", "华为海思", "台积电"],
        "direction": "negative",
        "confidence": "high",
        "evidence_refs": ["query_001", "query_003"]
      }
    ]
  },
  "budget": {
    "total_tokens": 200000,
    "used_tokens": 65000,
    "data_tokens": 48000,
    "summarized": false,
    "remaining_for_reasoning": 30000
  }
}

4.6 异常处理与容错

异常场景处理策略恢复方式
图谱 API 超时单次查询超时 30s 后跳过,标记该查询失败下轮重试或用替代查询
实体未找到参考 API 返回的 suggestions 字段重新查询最多重试 2 次
返回数据量爆炸自动截断 + 触发紧急摘要缩小查询范围后重查
LLM 推理偏离状态机强制约束——不在正确状态的输出被拒绝重新进入当前状态
全流程超时整体执行时间上限 5 分钟基于已有数据输出部分分析
🛡️ 降级策略 当图谱服务不可用或返回数据严重不足时,Agent 不会凭空推理,而是明确输出:
  • "以下分析基于有限数据,仅覆盖了 X/Y 个分析维度"
  • "以下实体的影响评估因缺乏图谱数据,置信度降为'低'"
  • 输出中标注 "data_quality": "degraded"

5 Agent System Prompt

Agent 的 System Prompt 将三个 Skill 串联为完整的工作流程:

1

Phase 1: 事件拆解?事件拆解阶段收到用户输入的事件(如"芯片管制收紧")后,Agent 先把这个事件从多个角度拆解:谁被直接影响?供应链怎么传导?有没有受益方?拆解结果是一个结构化的"查询计划",指导后续去图谱里查什么。

使用 event-decomposer 将事件拆解为分析维度,生成查询计划

2

Phase 2: 图谱检索?图谱检索阶段按照查询计划,Agent 自动向知识图谱发起多轮查询——先搜相关企业,再查企业间关系,再追溯供应链。每轮查完后评估信息是否充足,不够就调整计划继续查,最多 5 轮。

按查询计划迭代执行 kgquery 命令,收集信息(最多 5 轮)

3

Phase 3: 影响推理?影响推理阶段收集够数据后,Agent 用 Chain-of-Impact 方法进行推理:从直接受影响的企业出发,沿关系网络逐层传导,最终输出完整的"事件 → 企业影响链"分析报告,包含每家企业受到的影响方向(正面/负面)、程度和置信度。

使用 Chain-of-Impact 框架综合推理,输出完整影响链

🎯 行为规范
  • 始终先查再推,不要依赖模型自身的企业知识(可能过时/不准确)
  • 如果图谱中找不到某个实体,明确说明"未在图谱中找到"
  • 推理过程必须可追溯:每个结论都能追溯到具体的图谱查询结果
  • 输出中文

6 知识图谱接口需求规约

以下是 Agent 团队对知识图谱团队的接口需求规约。Agent 侧通过 kgquery CLI 封装这些 API 调用,图谱团队需按此规约提供 REST API 服务。

6.1 实体(Node)类型定义

图谱中需支持以下实体类型,每种类型有必选属性和可选属性:

实体类型标识必选属性可选属性
上市公司 company id, name, stock_code, industry, sub_industry, market(A/H/US) market_cap, revenue, main_products, region, tags[], brief
行业 industry id, name, level(一级/二级/三级) parent_industry, company_count, description
产品/技术 product id, name, category description, related_industries[]
人物 person id, name title, affiliations[]
地域 region id, name, level(国家/省/市) parent_region, economic_zone

6.2 关系(Edge)类型定义

图谱中需支持以下关系类型。每条边需包含 source_idtarget_idtype,以及关系特有属性:

关系类型标识方向语义关系属性
供应商 supplier A → B:A 是 B 的供应商 product_category, dependency_level(高/中/低), revenue_share
客户 customer A → B:A 是 B 的客户 product_category, revenue_share
竞争对手 competitor 双向 competing_areas[]
控股/参股 investment A → B:A 持有 B 股份 share_ratio, is_controlling
母子公司 subsidiary A → B:A 是 B 的母公司 share_ratio, consolidation(是否并表)
同行业 same_industry 双向 industry_name, sub_industry_name
合作伙伴 partner 双向 cooperation_type, description
任职 employment A → B:A 在 B 任职 title, is_current
属于行业 belongs_to_industry A → B:公司 A 属于行业 B is_primary
生产/使用 produces / uses A → B:公司 A 生产/使用产品 B revenue_share, is_core
注册地 located_in A → B:公司 A 注册在地域 B is_headquarter
💡 关系属性的重要性
  • dependency_levelrevenue_share?这两个属性为什么关键?dependency_level(依赖程度)表示一家公司对某供应商的依赖有多深。revenue_share(收入占比)表示某客户占供应商收入的比例。有了这些数据,Agent 才能判断"台积电断供对华为影响是 90% 还是 10%",而不是只能说"有影响"。 是 Agent 判断影响程度的关键依据——缺少这些属性会导致影响评估只能定性不能定量
  • is_controllingconsolidation 决定了财务影响是否直接传导
  • 建议关系属性尽量填充,实在缺失的用 null 表示,不要省略字段

6.3 API Endpoints 需求

图谱服务需提供以下 6 个 REST API:

POST /api/search — 实体模糊搜索

// 请求
{
  "query": "华为",
  "type": "company",          // 可选,过滤实体类型
  "industry": "半导体",       // 可选,过滤行业
  "limit": 10,                // 默认 10,最大 50
  "offset": 0                 // 分页偏移
}

// 响应
{
  "status": "ok",
  "count": 3,                 // 总匹配数
  "truncated": false,
  "data": [
    {
      "id": "ent_001",
      "name": "华为技术有限公司",
      "type": "company",
      "industry": "通信设备",
      "tags": ["5G", "芯片设计"],
      "brief": "全球领先的ICT基础设施提供商",
      "relevance_score": 0.95
    }
  ],
  "summary": "找到 3 家与'华为'相关的公司,主要分布在通信设备和半导体行业"
}

GET /api/entity/{id} — 实体详情

// 请求参数
// fields: 逗号分隔,控制返回字段(默认 basic,business,tags)
// 可选值: basic, business, tags, finance, shareholders, products

// 响应
{
  "status": "ok",
  "data": {
    "id": "ent_001",
    "name": "华为技术有限公司",
    "type": "company",
    "stock_code": null,
    "industry": "通信设备",
    "sub_industry": "通信系统设备",
    "market": null,
    "market_cap": null,
    "revenue": "7042亿元(2023)",
    "main_products": ["5G基站", "智能终端", "云计算"],
    "region": "广东深圳",
    "tags": ["5G", "芯片设计", "ICT", "鸿蒙"],
    "brief": "全球领先的ICT基础设施和智能终端提供商"
  }
}

POST /api/relations — 关系查询

// 请求
{
  "entity_id": "ent_001",
  "type": ["supplier", "customer"],  // 可选,关系类型过滤(数组)
  "direction": "both",               // in / out / both
  "depth": 1,                        // 默认 1,最大 3
  "limit": 20                        // 默认 20,最大 100
}

// 响应
{
  "status": "ok",
  "count": 15,
  "truncated": false,
  "data": [
    {
      "relation_type": "supplier",
      "direction": "in",
      "source": {"id": "ent_042", "name": "台积电", "type": "company", "industry": "半导体制造"},
      "target": {"id": "ent_001", "name": "华为技术有限公司"},
      "properties": {
        "product_category": "芯片代工",
        "dependency_level": "高",
        "revenue_share": 0.15
      }
    }
  ],
  "summary": "华为共有 15 条供应商/客户关系,上游以半导体(5家)和光电(3家)为主"
}

POST /api/path — 最短路径查询

// 请求
{
  "source_id": "ent_001",
  "target_id": "ent_099",
  "max_depth": 4,                    // 默认 4,最大 6
  "relation_types": ["supplier", "customer", "investment"]  // 可选,限定边类型
}

// 响应
{
  "status": "ok",
  "paths_found": 2,
  "data": [
    {
      "length": 3,
      "nodes": ["ent_001", "ent_042", "ent_077", "ent_099"],
      "edges": [
        {"type": "customer", "from": "ent_001", "to": "ent_042"},
        {"type": "supplier", "from": "ent_042", "to": "ent_077"},
        {"type": "investment", "from": "ent_077", "to": "ent_099"}
      ],
      "node_details": {
        "ent_001": {"name": "华为", "industry": "通信设备"},
        "ent_042": {"name": "台积电", "industry": "半导体制造"},
        "ent_077": {"name": "ASML", "industry": "半导体设备"},
        "ent_099": {"name": "蔡司半导体", "industry": "光学设备"}
      }
    }
  ],
  "summary": "找到 2 条从华为到蔡司半导体的路径,最短路径经过台积电和ASML,长度为3跳"
}

GET /api/industry/{name} — 行业查询

// 请求参数
// sub_industry: 二级行业过滤
// sort_by: 排序字段(market_cap / revenue)
// limit: 默认 20

// 响应
{
  "status": "ok",
  "industry": {"name": "半导体", "level": "一级", "company_count": 156},
  "sub_industries": [
    {"name": "芯片设计", "company_count": 67},
    {"name": "半导体制造", "company_count": 23},
    {"name": "封装测试", "company_count": 41},
    {"name": "半导体设备", "company_count": 25}
  ],
  "top_companies": [
    {"id": "ent_201", "name": "中芯国际", "sub_industry": "半导体制造", "market_cap": "3200亿"},
    {"id": "ent_202", "name": "海思半导体", "sub_industry": "芯片设计", "market_cap": null}
  ],
  "summary": "半导体行业共 156 家公司,分布在芯片设计(67)、封测(41)、设备(25)、制造(23)四个子行业"
}

POST /api/supply-chain — 供应链穿透查询

// 请求
{
  "entity_id": "ent_001",
  "direction": "upstream",    // upstream(上游供应商) / downstream(下游客户)
  "depth": 2,                 // 默认 2,最大 3
  "limit": 30
}

// 响应
{
  "status": "ok",
  "root": {"id": "ent_001", "name": "华为"},
  "direction": "upstream",
  "depth": 2,
  "count": 18,
  "truncated": false,
  "data": {
    "depth_1": [
      {
        "id": "ent_042", "name": "台积电",
        "relation": "supplier",
        "product_category": "芯片代工",
        "dependency_level": "高"
      }
    ],
    "depth_2": [
      {
        "id": "ent_077", "name": "ASML",
        "relation": "supplier",
        "via": "ent_042",
        "product_category": "光刻机",
        "dependency_level": "高"
      }
    ]
  },
  "summary": "华为上游供应链 2 跳内共 18 家企业,一级供应商以芯片代工(3家)和电子元器件(5家)为主"
}

6.4 通用接口要求

⚠️ 必须支持的通用特性
  1. summary 字段?为什么需要 summary?图谱查询返回的是结构化 JSON 数据,LLM 解析大段 JSON 既慢又费 token。summary 是一句话的自然语言摘要(如"华为有 5 家供应商,主要在半导体行业"),帮 Agent 快速抓住要点,决定是否需要深入查看详细数据。:每个 API 响应必须包含 summary 字段——用模板/规则生成的自然语言摘要(1-2句话),帮助 Agent 快速理解结果概况,避免解析大量 JSON
  2. truncated 标记:当结果被 limit 截断时,truncated: true + count 返回实际总数
  3. suggestions 字段:当搜索无结果时,返回相似实体建议,减少 Agent 盲目重试
  4. 统一错误格式{"status": "error", "error_code": "...", "message": "...", "suggestions": [...]}
  5. 响应时间:单次请求 p95 延迟 < 3 秒(含 2 跳以内查询);3 跳查询 < 10 秒
  6. 幂等性:所有查询类 API 为 GET 语义(即使 HTTP method 用 POST),无副作用

6.5 数据质量要求

指标要求说明
上市公司覆盖率A 股 > 95%,港股 > 80%Agent 分析的基础保障
供应链关系覆盖核心行业 top 100 公司供应链完整影响传导链的核心数据
关系属性填充率dependency_level > 70%影响程度判断的关键
数据时效性季度更新至少跟上财报披露节奏
实体去重同一公司不得有多个 ID避免 Agent 重复分析
🤝 协作约定
  • 图谱团队提供沙盒环境供 Agent 团队联调测试
  • API 变更需提前一周通知 Agent 团队,保持向后兼容
  • 提供测试数据集:至少覆盖半导体、新能源、消费三个行业的完整子图
  • 新增关系类型需双方协商确认,Agent 侧 SKILL.md 同步更新

7 kgquery CLI 工具规约

7.1 技术选型

组件选型理由
语言Python生态好、开发快
HTTP 客户端httpx异步支持好
CLI 框架click / typer声明式、自动帮助文档
输出默认 JSON支持 --format table 人类可读格式

7.2 完整命令参考

# 全局语法
kgquery <command> [args] [options]

# 全局选项
--endpoint URL      # 图谱 API 地址(默认读 KG_API_ENDPOINT)
--format json|table # 输出格式(默认 json)
--timeout N        # 请求超时秒数(默认 30)
--verbose          # 输出调试信息

# ─── 命令列表 ───

search <query>               # 实体搜索
  --type company|person|org
  --industry <name>
  --limit N              # 默认 10,最大 50

entity <id>                 # 实体详情
  --fields <f1,f2,...>

relations <id>              # 关系查询
  --type <rel1,rel2,...>
  --direction in|out|both
  --depth N              # 默认 1,最大 3
  --limit N              # 默认 20,最大 100

path <src_id> <tgt_id>      # 路径查询
  --max-depth N
  --relation-types <r1,r2,...>

industry <name>             # 行业查询
  --sub-industry <name>
  --sort-by <field>

supply-chain <id>           # 供应链查询
  --direction upstream|downstream
  --depth N              # 默认 2

7.3 统一输出结构

{
  "status": "ok",
  "command": "relations",
  "params": {"entity_id": "ent_001", "type": "供应商", "depth": 1},
  "count": 5,
  "truncated": false,
  "data": [ "..." ],
  "summary": "华为的供应商共 5 家,主要集中在半导体和光电领域"
}
💡 关键设计
  • summary — 服务端生成的自然语言摘要,帮助 LLM 快速理解结果
  • truncated — 告诉 Agent 是否有更多数据未返回
  • count — 实际结果总数(可能大于 data 长度)

7.4 错误处理

{
  "status": "error",
  "error_code": "ENTITY_NOT_FOUND",
  "message": "未找到匹配 '华为芯片' 的实体,建议尝试: '华为' 或 '海思半导体'",
  "suggestions": ["华为技术有限公司", "海思半导体有限公司"]
}

Agent 友好的错误信息,附带建议,减少 Agent 的重试盲目性。

8 运行时流程示例

📝 事件输入 "美国对中国芯片出口管制进一步收紧"

Phase 1: 事件拆解输出

flowchart TB
    E["🌐 美国加强对华芯片出口管制"] --> D1
    E --> D2
    E --> D3

    subgraph D1["直接影响"]
        direction TB
        D1a["🔍 search '芯片设计'\n--industry 半导体"]
        D1b["🔍 search '芯片制造'\n--industry 半导体"]
    end

    subgraph D2["供应链传导"]
        direction TB
        D2a["🔍 supply-chain {华为ID}\n--direction upstream"]
        D2b["🔍 supply-chain {中芯ID}\n--direction upstream"]
    end

    subgraph D3["竞争替代"]
        direction TB
        D3a["🔍 search '国产替代 EDA'\n--industry 半导体"]
        D3b["🔍 search 'RISC-V'\n--limit 10"]
    end

    style E fill:#f5f0ff,stroke:#6f42c1,stroke-width:2px
    style D1 fill:#ffeef0,stroke:#d73a49
    style D2 fill:#fff8f0,stroke:#e36209
    style D3 fill:#dcffe4,stroke:#28a745
    
图 8-1:事件拆解与查询计划

Phase 2: 迭代检索过程

轮次 1 — 初始查询

执行初始查询计划 → 获得华为、中芯国际、海思等核心实体

轮次 2 — 关系拓展

对核心实体查关系 → 发现台积电、ASML、应用材料等上游供应商

轮次 3 — 替代追查

追查国产替代线索 → 发现中微公司、华大九天等潜在受益方

评估 ✓

信息充分,进入推理阶段

Phase 3: 影响分析结果

flowchart TB
    Event["🌐 芯片出口管制收紧"]

    Event -->|"直接受管制"| HW["华为海思\n🔴 高度负面"]
    Event -->|"直接受管制"| SMIC["中芯国际\n🔴 高度负面"]

    HW -->|"订单取消"| TSMC["台积电\n🟠 中度负面"]
    SMIC -->|"设备受限"| ASML["ASML\n🟠 中度负面"]

    Event -->|"国产替代需求↑"| ZW["中微公司\n🟢 中度正面"]
    Event -->|"国产EDA需求↑"| HD["华大九天\n🟢 中度正面"]

    style Event fill:#f5f0ff,stroke:#6f42c1,stroke-width:2px
    style HW fill:#ffeef0,stroke:#d73a49,stroke-width:2px
    style SMIC fill:#ffeef0,stroke:#d73a49,stroke-width:2px
    style TSMC fill:#fff8f0,stroke:#e36209,stroke-width:2px
    style ASML fill:#fff8f0,stroke:#e36209,stroke-width:2px
    style ZW fill:#dcffe4,stroke:#28a745,stroke-width:2px
    style HD fill:#dcffe4,stroke:#28a745,stroke-width:2px
    
图 8-2:事件影响传导链全景图

影响实体卡片

华为 🔴 高度负面
📍 直接受管制 · 置信度: 高
中芯国际 🔴 高度负面
📍 直接受管制 · 置信度: 高
台积电 🟠 中度负面
📍 管制 → 华为(订单取消) → 台积电 · 置信度: 高
中微公司 🟢 中度正面
📍 管制 → 国产替代需求增加 → 中微(设备) · 置信度: 中
华大九天 🟢 中度正面
📍 管制 → 国产EDA需求增加 → 华大九天 · 置信度: 中
⚠️ 分析局限性
  • 图谱中部分中小企业数据可能不完整
  • 实际影响程度取决于管制的具体条款

9 Agent 输出格式规范

Agent 的最终输出采用结构化 JSON 格式,便于下游系统(前端可视化、数据存储、API 对外服务)直接消费。

12.1 顶层输出结构

{
  "meta": {
    "event_id": "evt_20260411_001",
    "event_text": "美国对中国芯片出口管制进一步收紧",
    "analysis_time": "2026-04-11T10:23:00Z",
    "duration_seconds": 45,
    "rounds": 3,
    "data_quality": "normal",
    "model": "claude-opus"
  },
  "summary": "本次管制收紧直接影响华为海思、中芯国际等 6 家企业,通过供应链传导间接影响台积电、ASML 等 4 家上游企业,同时利好中微公司、华大九天等 3 家国产替代企业。",
  "impact_entities": [ "..." ],
  "impact_chains": [ "..." ],
  "dimensions_coverage": { "..." },
  "limitations": [ "..." ]
}

12.2 影响实体(impact_entities)

{
  "entity_id": "ent_001",
  "entity_name": "华为海思",
  "stock_code": null,
  "industry": "芯片设计",
  "impact_direction": "negative",
  "impact_level": "high",
  "confidence": "high",
  "impact_summary": "作为受管制的核心实体,高端芯片设计业务将直接受限",
  "evidence": [
    {
      "type": "direct",
      "description": "管制名单直接覆盖",
      "source_query": "search '华为海思' --type company"
    }
  ],
  "transmission_path": {
    "hops": 0,
    "path_description": "直接影响"
  }
}

字段枚举值

字段枚举值说明
impact_directionnegative / positive / mixed负面 / 正面 / 双向影响
impact_levelhigh / medium / low影响程度
confidencehigh / medium / low判断置信度
evidence.typedirect / supply_chain / capital / competition / policy / macro证据来源维度
data_qualitynormal / degraded / insufficient数据质量等级

10.3 影响链(impact_chains)

{
  "chain_id": "chain_001",
  "description": "管制 → 华为海思(芯片设计受限) → 台积电(代工订单减少)",
  "direction": "negative",
  "nodes": [
    {"entity_id": "event", "label": "芯片管制收紧"},
    {"entity_id": "ent_001", "label": "华为海思", "impact": "high_negative"},
    {"entity_id": "ent_042", "label": "台积电", "impact": "medium_negative"}
  ],
  "edges": [
    {"from": "event", "to": "ent_001", "relation": "直接管制", "mechanism": "出口管制名单覆盖"},
    {"from": "ent_001", "to": "ent_042", "relation": "customer", "mechanism": "芯片代工订单取消/减少"}
  ],
  "confidence": "high",
  "hops": 1
}
💡 设计要点
  • impact_chains 和 impact_entities 分离:entities 是"谁受影响",chains 是"怎么传导的",前端可以分别用列表和图谱两种方式展示
  • evidence 字段可追溯:每个影响判断都关联到具体的图谱查询,支持用户点击查看原始证据
  • limitations 必须输出:明确告知分析的局限性(如"图谱中未收录 XX 公司"),避免误导

9.4 维度覆盖情况(dimensions_coverage)

{
  "直接影响": {"status": "covered", "entities_found": 6, "score": 90},
  "供应链传导": {"status": "covered", "entities_found": 8, "score": 75},
  "资本关联": {"status": "partial", "entities_found": 2, "score": 50},
  "竞争替代": {"status": "covered", "entities_found": 3, "score": 80},
  "地域政策": {"status": "skipped", "entities_found": 0, "score": 0},
  "宏观传导": {"status": "partial", "entities_found": 1, "score": 30}
}

该字段让下游系统和用户清楚地知道分析覆盖了什么、遗漏了什么,是分析质量透明度的关键。

10 Token 预算管理?什么是 Token 预算?Token 是 LLM 处理文本的基本单位(约等于 0.7 个中文字)。LLM 的上下文窗口有容量上限(如 200K token),所有输入输出必须在这个预算内完成。预算管理就是合理分配这个"空间"给各个阶段,确保不会"写到一半纸用完了"。

12.1 预算分配策略

以 200K 上下文窗口为例:

Prompt 8K
拆解 3K
📊 图谱数据 ~80K
推理 30K
会话 10K
缓冲 69K
组成部分预算说明
System Prompt + Skills 描述~8K固定开销
Phase 1 事件拆解~3K结构化输出,较紧凑
Phase 2 图谱数据(累积)~80K⚡ 最大可变项
Phase 3 推理输出~30K需要充足空间做链式推理
会话管理开销~10K多轮对话的历史
安全缓冲~69K应对意外情况

12.2 渐进式摘要策略

当 Phase 2 累积数据超过 50K token 时,触发中间摘要:

flowchart LR
    A["📊 累积图谱数据\n> 50K tokens"] -->|"LLM 摘要压缩"| B["📝 压缩后关键信息\n~15K tokens"]
    B -->|"继续检索"| C["📊 新数据追加\n到压缩摘要之后"]
    C -->|"是否超阈值?"| A

    style A fill:#fff8f0,stroke:#e36209
    style B fill:#dcffe4,stroke:#28a745
    style C fill:#f1f8ff,stroke:#0366d6
    
图 12-1:Token 超限时的渐进式摘要机制

10.3 输出控制

11 评测方案

Agent 分析质量的评测是持续迭代优化的基础。我们从三个层面建立评测体系:

13.1 评测指标

指标定义计算方式目标值
实体覆盖率?实体覆盖率衡量 Agent 是否找到了所有应该被分析到的企业。如果一个事件实际影响 20 家公司,Agent 分析出了 15 家,覆盖率就是 75%。 Agent 识别的受影响实体 / 标注的全部受影响实体 Recall@K ≥ 80%
影响方向准确率 Agent 判断的正面/负面方向与标注一致的比例 Accuracy ≥ 85%
影响程度准确率 Agent 判断的 high/medium/low 与标注一致或相差一档的比例 Relaxed Accuracy (±1) ≥ 75%
传导链合理性 Agent 输出的影响传导链是否逻辑自洽、有据可依 人工评分 (1-5) ≥ 3.5
维度覆盖率 事件拆解的维度中有数据支撑的比例 有效维度数 / 应覆盖维度数 ≥ 70%
幻觉率?幻觉率Agent "编造"的影响关系——即没有图谱数据支撑、纯靠 LLM 自己臆想出来的传导链。这是必须严格控制的指标,幻觉率高意味着分析不可信。 无图谱证据支撑的影响判断占比 1 - (有证据的判断 / 总判断数) ≤ 10%
端到端延迟 从输入事件到输出完整报告的耗时 P50 / P95 P50 ≤ 30s, P95 ≤ 60s

13.2 测试集构建

✅ 测试集设计原则
  • 行业覆盖:至少覆盖半导体、新能源、消费、金融、医药 5 个行业
  • 事件类型多样:政策监管、技术突破、财务事件、供应链中断、行业竞争等
  • 难度分级:简单(直接影响 1-3 家)、中等(传导 1-2 跳,5-10 家)、复杂(多维传导,10+ 家)
测试集阶段规模标注方式用途
种子集10 个事件团队成员精标阶段一验证 + Prompt 初版调优
开发集30 个事件团队成员标注 + 交叉验证阶段二迭代优化
测试集50 个事件独立标注(不参与调优的人)最终质量评估,不可用于调优

13.3 标注规范

每个事件的 ground truth 标注包含:

{
  "event_id": "test_001",
  "event_text": "欧盟对中国电动车加征反补贴关税",
  "annotator": "标注人姓名",
  "annotated_at": "2026-05-20",
  "affected_entities": [
    {
      "entity_name": "比亚迪",
      "impact_direction": "negative",
      "impact_level": "high",
      "reasoning": "作为对欧出口量最大的中国电动车企,直接受关税影响",
      "dimension": "直接影响"
    },
    {
      "entity_name": "宁德时代",
      "impact_direction": "negative",
      "impact_level": "medium",
      "reasoning": "作为比亚迪电池供应商,间接受订单下降影响",
      "dimension": "供应链传导"
    }
  ],
  "expected_chains": [
    "关税 → 比亚迪(出口受限) → 宁德时代(电池订单减少)",
    "关税 → 中国电动车整体(竞争力下降) → 欧洲本土车企(受益)"
  ],
  "difficulty": "medium"
}

13.4 评测流程

flowchart LR
    A["📝 测试事件输入"] --> B["🤖 Agent 分析"]
    B --> C["📊 输出结果"]
    C --> D["🔄 自动评测\n实体匹配 + 方向/程度对比"]
    C --> E["👤 人工评测\n传导链合理性评分"]
    D --> F["📈 评测报告\n各指标得分 + 错误分析"]
    E --> F

    style D fill:#f1f8ff,stroke:#0366d6,stroke-width:2px
    style E fill:#fff8f0,stroke:#e36209,stroke-width:2px
    style F fill:#dcffe4,stroke:#28a745,stroke-width:2px
    
图 11-1:评测流程
📏 评测节奏
  • 日常开发:每次 Prompt 修改后,在种子集上跑回归测试(自动化,~5 分钟)
  • 阶段里程碑:在开发集上全量评测,输出质量报告
  • 最终验收:在测试集上评测,作为阶段交付的质量依据
  • 错误分析:每轮评测后分类统计错误类型(漏召回?方向判反?幻觉?),针对性改进

12 扩展性设计

12.1 新增 Skill(即插即用)

skills/
├── knowledge-graph/ # ✅ 已有
├── event-decomposer/ # ✅ 已有
├── impact-reasoner/ # ✅ 已有
├── news-search/ # 🔜 新闻搜索能力
├── financial-data/ # 🔜 金融数据查询(Wind/Bloomberg)
└── report-generator/ # 🔜 报告排版生成

Agent 端只需在 System Prompt 中声明加载新 Skill,无需修改推理框架。

12.2 多 Agent 协作(V2)?多 Agent 协作当事件影响范围很广时(如"全球经济衰退"),单个 Agent 分析所有行业太慢。V2 方案是让多个子 Agent 并行分析不同行业(科技、金融、制造……),最后由主 Agent 汇总。就像一个分析团队分工合作,每人负责一个行业,最后组长写总报告。

flowchart TB
    Main["🧠 主 Agent\n协调者"] --> A1["🖥️ 子 Agent 1\n科技行业影响"]
    Main --> A2["🏦 子 Agent 2\n金融行业影响"]
    Main --> A3["🏭 子 Agent 3\n制造业影响"]

    A1 -->|分析结果| Main
    A2 -->|分析结果| Main
    A3 -->|分析结果| Main

    Main --> R["📄 汇总报告"]

    style Main fill:#f5f0ff,stroke:#6f42c1,stroke-width:2px
    style R fill:#dcffe4,stroke:#28a745,stroke-width:2px
    
图 12-1:V2 多 Agent 协作架构

各子 Agent 共享同一套 Skills,但分析不同维度;主 Agent 汇总各子 Agent 的分析结果。

13 实施建议

13.1 团队配置

Agent 循环框架的开发涉及多个高耦合模块,需要足够的人力保障并行推进:

职责方向人数具体工作能力要求
Agent 框架开发2 人Agent 循环状态机、检索调度引擎、Token 预算管理Python/TS,LLM API 调用经验,状态机设计
Prompt 设计与优化1 人System Prompt 编写与迭代优化、Skill SKILL.md 编写、推理质量评估Prompt Engineering,金融行业理解
工具层开发1 人kgquery CLI 开发、图谱 API 对接与封装、错误处理与重试机制Python CLI 开发,REST API 集成
评测与质量保障1 人测试用例设计、分析质量评估体系搭建、端到端回归测试NLP 评测经验,数据分析
前端可视化1 人(阶段四,由前端组)影响链可视化、推理过程展示 UI、交互设计React/Vue,图可视化(D3/AntV G6)
💡 人力说明
  • 以上为 Agent 框架组所需人力(不含知识图谱组和前端组)
  • 框架开发需要 2 人——状态机调度和 Token 预算管理是两个相对独立但都很核心的模块,一个人难以在时间要求内同时保证两者质量
  • Prompt 设计需要专人负责——Prompt 的迭代优化是持续性工作,需要反复评估分析结果质量并调整,与框架开发并行推进
  • 评测看似可以兼任,但高质量的金融事件分析评测标准本身就需要专门设计(什么算"分析正确"?覆盖率怎么衡量?),值得独立投入
🤝 跨组协作依赖
  • 知识图谱组:按 Section 6 接口规约提供 REST API 服务 + 沙盒环境 + 测试数据集
  • 前端组:阶段四提供 1 人支持可视化开发,Agent 框架提供标准化 JSON 输出接口

13.2 里程碑规划

阶段一:基础框架搭建(第 1-4 周)

目标:跑通端到端的 Agent 循环,验证架构可行性

Week 1-2:
1. Agent 循环状态机核心实现(INIT → DECOMPOSE → PLAN → RETRIEVE → EVALUATE)
2. kgquery CLI 开发——对接图谱团队沙盒 API,实现 6 个命令
3. 与图谱团队对齐接口规约,确认数据格式和测试数据集

Week 3-4:
4. 编写三个 Skill 的 SKILL.md
5. 编写 Agent System Prompt 初版
6. 端到端跑通 1 个标杆事件(如"芯片出口管制"),验证全流程
7. 搭建自动化测试框架

交付物:可运行的 Agent 原型 + 1 个完整分析报告 demo
人力:框架开发 ×2 + 工具层开发 ×1 + Prompt ×1

阶段二:检索与推理优化(第 5-8 周)

目标:提升分析质量和系统鲁棒性

Week 5-6:
1. 实现信息充分性评估模型(四维评分 + 自适应终止)
2. 实现 Token 预算管理与渐进式摘要机制
3. 查询计划动态调整策略优化

Week 7-8:
4. Prompt 迭代优化(基于 10+ 事件的分析结果反馈)
5. 异常处理与容错机制完善(API 超时、实体未找到、数据爆炸等)
6. 降级策略实现(图谱数据不足时的优雅降级)
7. 建立分析质量评估基准:覆盖率、准确率、推理链合理性

交付物:稳定运行的 Agent + 质量评估报告(覆盖 3 个行业 × 10+ 事件)
人力:框架开发 ×2 + Prompt ×1 + 评测 ×1

阶段三:能力扩展与 Skill 生态(第 9-12 周)

目标:扩展信息源,提升分析深度

Week 9-10:
1. 新增 news-search Skill——接入新闻搜索,补充事件上下文和市场情绪
2. 新增 financial-data Skill——接入财务数据源,支持定量分析
3. 图谱团队配合补充关系属性(dependency_level、revenue_share 填充率提升)

Week 11-12:
4. 多事件关联分析能力(同一时期多个事件的叠加影响)
5. 分析结果缓存与增量更新机制
6. 全面回归测试 + 性能压测
7. 系统文档整理

交付物:支持多信息源的完整 Agent + 性能报告
人力:框架开发 ×2 + 工具层开发 ×1 + Prompt ×1 + 评测 ×1

阶段四:产品化对接(第 13-16 周)

目标:输出标准化接口,支撑前端可视化与多 Agent 协作

Week 13-14:
1. Agent 输出标准化 JSON 接口设计(供前端团队对接)
2. 多 Agent 协作框架(按行业维度分拆子 Agent 并行分析)
3. 推理过程日志结构化输出(支持前端实时展示推理步骤)

Week 15-16:
4. 历史分析报告存储与检索 API
5. 用户反馈机制(标注分析结果准确性,用于持续改进)
6. 与前端团队联调集成测试
7. 端到端验收 + 部署上线

交付物:生产级 Agent 服务 + 标准化 API + 部署文档
人力:框架开发 ×2 + Prompt ×1 + 评测 ×1 | 前端组 ×1(外部)

13.3 里程碑甘特图

gantt
    title Agent 循环框架开发计划
    dateFormat  YYYY-MM-DD
    axisFormat  %m/%d

    section 阶段一:基础框架
    状态机核心开发           :a1, 2026-04-14, 14d
    kgquery CLI 开发         :a2, 2026-04-14, 10d
    接口对齐与联调           :a3, 2026-04-14, 7d
    Skill & Prompt 编写      :a4, 2026-04-28, 10d
    端到端验证               :a5, 2026-05-05, 5d

    section 阶段二:检索与推理优化
    充分性评估模型           :b1, 2026-05-12, 10d
    Token 预算管理           :b2, 2026-05-12, 10d
    Prompt 迭代优化          :b3, 2026-05-26, 10d
    异常处理与容错           :b4, 2026-05-26, 7d
    质量评估基准建立         :b5, 2026-05-19, 14d

    section 阶段三:能力扩展
    news-search Skill        :c1, 2026-06-08, 10d
    financial-data Skill     :c2, 2026-06-08, 10d
    多事件关联分析           :c3, 2026-06-22, 7d
    回归测试 & 压测          :c4, 2026-06-29, 5d

    section 阶段四:产品化对接
    输出接口标准化         :d1, 2026-07-06, 10d
    多 Agent 协作          :d2, 2026-07-06, 14d
    推理日志结构化         :d3, 2026-07-13, 7d
    联调集成测试 & 上线    :d4, 2026-07-27, 5d
    
图 13-1:16 周开发计划甘特图

13.4 风险与依赖

风险项影响缓解措施
图谱 API 延迟交付阶段一阻塞第 1 周确认沙盒环境;准备 Mock API 兜底
图谱数据质量不达标分析准确率下降提前提供数据质量 checklist;评测阶段量化数据缺失影响
LLM 推理不稳定分析结果波动大多次采样 + 一致性校验;关键步骤增加约束 Prompt
人力不足进度延迟阶段一二为核心,优先保障;阶段三四可适当延期