借鉴 OpenClaw 的 Skill 架构模式:Agent 本身只负责推理,所有外部能力通过 Skill 注入。
SKILL.md 声明式描述自己能做什么?可插拔 Skill类似手机上的 App——需要什么能力就安装对应的 Skill。每个 Skill 包含一个 SKILL.md 说明文件,告诉 Agent "我能做什么、怎么用我"。新增能力只需添加新 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
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
| OpenClaw 概念 | 本系统对应 | 说明 |
|---|---|---|
Agent | Event 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 脚本 |
封装所有与知识图谱的交互,是系统最核心的能力模块。
| 命令 | 功能 | 关键参数 |
|---|---|---|
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 |
search 定位实体 ID,再用 entity / relations 深入--limit 和 --type 过滤--depth 2 以上结果量指数增长,优先用 path 做定向查询--limit 5 看样本,确认方向对了再扩大[
{
"id": "ent_001",
"name": "华为技术有限公司",
"type": "company",
"industry": "通信设备",
"tags": ["5G", "芯片设计", "ICT"],
"brief": "全球领先的ICT基础设施和智能终端提供商",
"relevance_score": 0.95
}
]
将自然语言描述的事件拆解为结构化的分析维度和查询计划。较轻量,主要是 Prompt 模板。
mindmap
root((事件拆解))
直接影响
被点名企业
被管制行业
政策直接覆盖领域
供应链
上游原材料/零部件
下游终端产品
断供/涨价传导
资本关联
投资方/被投资方
控股/参股关系
母子公司影响
竞争替代
同行业竞争者
替代品/技术提供方
对手困境→自身机会
地域/政策
受影响地域范围
关联企业
跨国地缘风险
宏观传导
行业整体景气度
上下游行业间接影响
消费者/终端市场
基于事件拆解结果和图谱查询数据,推理事件对各企业的影响传导链。
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
Agent 循环框架是本系统的核心引擎,负责协调事件拆解、图谱检索、影响推理三个阶段的执行,管理状态流转和资源预算。
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
| 状态 | 职责 | 输入 | 输出 |
|---|---|---|---|
INIT | 接收并验证事件输入 | 用户原始文本 | 规范化事件描述 |
DECOMPOSE | 调用 event-decomposer 拆解事件 | 规范化事件 | 分析维度 + 影响假设 |
PLAN | 基于当前信息差生成/调整查询计划 | 维度 + 已有数据 | 优先级排序的查询序列 |
RETRIEVE | 执行 kgquery 命令批次 | 查询序列 | 图谱原始数据 |
EVALUATE | 评估信息充分性,决定下一步 | 累积数据 + 预算 | 转移决策 |
SUMMARIZE | 渐进式摘要压缩 | 累积数据 > 阈值 | 压缩后的关键信息 |
REASON | Chain-of-Impact 推理 | 完整证据集 | 影响链 + 评估 |
OUTPUT | 格式化输出 | 推理结果 | 结构化报告 |
检索阶段是 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
| 轮次 | 查询数上限 | 策略说明 |
|---|---|---|
| 第 1 轮 | 6-8 条 | 广度优先——覆盖所有维度的初始探查 |
| 第 2 轮 | 4-6 条 | 深度优先——对核心实体做关系拓展 |
| 第 3 轮 | 3-4 条 | 定向补充——填补特定信息缺口 |
| 第 4-5 轮 | 2-3 条 | 精确查询——验证假设或追踪特定线索 |
EVALUATE 阶段基于以下条件判断是否终止检索循环:
truncated: true,且截断的数据可能包含关键实体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
| 评估维度 | 权重 | 评分标准 |
|---|---|---|
| 维度覆盖率 | 30% | 已覆盖维度数 / 总维度数(按优先级加权) |
| 实体饱和度 | 30% | 已查关系的核心实体数 / 已识别的核心实体数 |
| 链路完整度 | 25% | 从事件到受影响实体的传导链是否有断裂节点 |
| 新发现率 | 15% | 本轮新增的高影响实体数(递减则倾向终止) |
当累积的图谱数据超过 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
| 条件 | 阈值 | 动作 |
|---|---|---|
| 累积数据量 | > 50K tokens | 触发首次摘要,压缩至 ~15K |
| 摘要后再次超限 | > 40K tokens(摘要 + 新数据) | 触发增量摘要,合并新旧摘要 |
| 总上下文使用率 | > 70% 上下文窗口 | 强制摘要 + 限制后续查询数量 |
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
}
}
| 异常场景 | 处理策略 | 恢复方式 |
|---|---|---|
| 图谱 API 超时 | 单次查询超时 30s 后跳过,标记该查询失败 | 下轮重试或用替代查询 |
| 实体未找到 | 参考 API 返回的 suggestions 字段重新查询 | 最多重试 2 次 |
| 返回数据量爆炸 | 自动截断 + 触发紧急摘要 | 缩小查询范围后重查 |
| LLM 推理偏离 | 状态机强制约束——不在正确状态的输出被拒绝 | 重新进入当前状态 |
| 全流程超时 | 整体执行时间上限 5 分钟 | 基于已有数据输出部分分析 |
"data_quality": "degraded"Agent 的 System Prompt 将三个 Skill 串联为完整的工作流程:
使用 event-decomposer 将事件拆解为分析维度,生成查询计划
按查询计划迭代执行 kgquery 命令,收集信息(最多 5 轮)
使用 Chain-of-Impact 框架综合推理,输出完整影响链
以下是 Agent 团队对知识图谱团队的接口需求规约。Agent 侧通过 kgquery CLI 封装这些 API 调用,图谱团队需按此规约提供 REST API 服务。
图谱中需支持以下实体类型,每种类型有必选属性和可选属性:
| 实体类型 | 标识 | 必选属性 | 可选属性 |
|---|---|---|---|
| 上市公司 | 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 |
图谱中需支持以下关系类型。每条边需包含 source_id、target_id、type,以及关系特有属性:
| 关系类型 | 标识 | 方向语义 | 关系属性 |
|---|---|---|---|
| 供应商 | 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_level 和 revenue_share?这两个属性为什么关键?dependency_level(依赖程度)表示一家公司对某供应商的依赖有多深。revenue_share(收入占比)表示某客户占供应商收入的比例。有了这些数据,Agent 才能判断"台积电断供对华为影响是 90% 还是 10%",而不是只能说"有影响"。 是 Agent 判断影响程度的关键依据——缺少这些属性会导致影响评估只能定性不能定量is_controlling 和 consolidation 决定了财务影响是否直接传导null 表示,不要省略字段图谱服务需提供以下 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家)为主"
}
summary 字段——用模板/规则生成的自然语言摘要(1-2句话),帮助 Agent 快速理解结果概况,避免解析大量 JSONtruncated: true + count 返回实际总数{"status": "error", "error_code": "...", "message": "...", "suggestions": [...]}| 指标 | 要求 | 说明 |
|---|---|---|
| 上市公司覆盖率 | A 股 > 95%,港股 > 80% | Agent 分析的基础保障 |
| 供应链关系覆盖 | 核心行业 top 100 公司供应链完整 | 影响传导链的核心数据 |
| 关系属性填充率 | dependency_level > 70% | 影响程度判断的关键 |
| 数据时效性 | 季度更新 | 至少跟上财报披露节奏 |
| 实体去重 | 同一公司不得有多个 ID | 避免 Agent 重复分析 |
| 组件 | 选型 | 理由 |
|---|---|---|
| 语言 | Python | 生态好、开发快 |
| HTTP 客户端 | httpx | 异步支持好 |
| CLI 框架 | click / typer | 声明式、自动帮助文档 |
| 输出 | 默认 JSON | 支持 --format table 人类可读格式 |
{
"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 长度){
"status": "error",
"error_code": "ENTITY_NOT_FOUND",
"message": "未找到匹配 '华为芯片' 的实体,建议尝试: '华为' 或 '海思半导体'",
"suggestions": ["华为技术有限公司", "海思半导体有限公司"]
}
Agent 友好的错误信息,附带建议,减少 Agent 的重试盲目性。
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
执行初始查询计划 → 获得华为、中芯国际、海思等核心实体
对核心实体查关系 → 发现台积电、ASML、应用材料等上游供应商
追查国产替代线索 → 发现中微公司、华大九天等潜在受益方
信息充分,进入推理阶段
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
Agent 的最终输出采用结构化 JSON 格式,便于下游系统(前端可视化、数据存储、API 对外服务)直接消费。
{
"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": [ "..." ]
}
{
"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_direction | negative / positive / mixed | 负面 / 正面 / 双向影响 |
impact_level | high / medium / low | 影响程度 |
confidence | high / medium / low | 判断置信度 |
evidence.type | direct / supply_chain / capital / competition / policy / macro | 证据来源维度 |
data_quality | normal / degraded / insufficient | 数据质量等级 |
{
"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
}
{
"直接影响": {"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}
}
该字段让下游系统和用户清楚地知道分析覆盖了什么、遗漏了什么,是分析质量透明度的关键。
以 200K 上下文窗口为例:
| 组成部分 | 预算 | 说明 |
|---|---|---|
| System Prompt + Skills 描述 | ~8K | 固定开销 |
| Phase 1 事件拆解 | ~3K | 结构化输出,较紧凑 |
| Phase 2 图谱数据(累积) | ~80K | ⚡ 最大可变项 |
| Phase 3 推理输出 | ~30K | 需要充足空间做链式推理 |
| 会话管理开销 | ~10K | 多轮对话的历史 |
| 安全缓冲 | ~69K | 应对意外情况 |
当 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
--limit 不超过 20summary 字段控制在 200 字以内basic,business,tags,需要时再查 finance,shareholdersAgent 分析质量的评测是持续迭代优化的基础。我们从三个层面建立评测体系:
| 指标 | 定义 | 计算方式 | 目标值 |
|---|---|---|---|
| 实体覆盖率?实体覆盖率衡量 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 |
| 测试集阶段 | 规模 | 标注方式 | 用途 |
|---|---|---|---|
| 种子集 | 10 个事件 | 团队成员精标 | 阶段一验证 + Prompt 初版调优 |
| 开发集 | 30 个事件 | 团队成员标注 + 交叉验证 | 阶段二迭代优化 |
| 测试集 | 50 个事件 | 独立标注(不参与调优的人) | 最终质量评估,不可用于调优 |
每个事件的 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"
}
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
Agent 端只需在 System Prompt 中声明加载新 Skill,无需修改推理框架。
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
各子 Agent 共享同一套 Skills,但分析不同维度;主 Agent 汇总各子 Agent 的分析结果。
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 循环,验证架构可行性
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
目标:提升分析质量和系统鲁棒性
Week 5-6:
1. 实现信息充分性评估模型(四维评分 + 自适应终止)
2. 实现 Token 预算管理与渐进式摘要机制
3. 查询计划动态调整策略优化
Week 7-8:
4. Prompt 迭代优化(基于 10+ 事件的分析结果反馈)
5. 异常处理与容错机制完善(API 超时、实体未找到、数据爆炸等)
6. 降级策略实现(图谱数据不足时的优雅降级)
7. 建立分析质量评估基准:覆盖率、准确率、推理链合理性
交付物:稳定运行的 Agent + 质量评估报告(覆盖 3 个行业 × 10+ 事件)
人力:框架开发 ×2 + Prompt ×1 + 评测 ×1
目标:扩展信息源,提升分析深度
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
目标:输出标准化接口,支撑前端可视化与多 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(外部)
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
| 风险项 | 影响 | 缓解措施 |
|---|---|---|
| 图谱 API 延迟交付 | 阶段一阻塞 | 第 1 周确认沙盒环境;准备 Mock API 兜底 |
| 图谱数据质量不达标 | 分析准确率下降 | 提前提供数据质量 checklist;评测阶段量化数据缺失影响 |
| LLM 推理不稳定 | 分析结果波动大 | 多次采样 + 一致性校验;关键步骤增加约束 Prompt |
| 人力不足 | 进度延迟 | 阶段一二为核心,优先保障;阶段三四可适当延期 |