czty's picture
Add files using upload-large-folder tool
d1ce356 verified
|
Raw
History Blame Contribute Delete
6.14 kB
# 系统升级 Prompt:从 Graph Router 到 Graph Planning Engine
## 任务目标
将现有系统从 **Server-level retrieval** 升级为 **Operation-level multi-hop path retrieval**
## 当前系统状态
- 图规模:910 servers,3451 tools,4398 nodes,25437 edges
- 现有节点类型:server、tool、category、stage、datatype(14类)、capability(12类)
- 现有边类型:consumes、produces、implements、follows
- 当前逻辑:Query → keywords/capabilities/datatypes → Server scoring → Tool selection
## 需要修改的核心内容
### 1. 新增 Operation 节点层
**问题**:当前 capability 太粗(如 `pathway_enrichment`),不适合多跳规划
**修改**:新增 `operation` 节点,粒度示例:
```
count_normalization
differential_expression
gene_filtering
gene_id_conversion
kegg_enrichment
go_enrichment
pathway_merge
csv_export
```
**边**
```
tool --implements--> operation
operation --accepts--> datatype
operation --produces--> datatype
operation --requires--> constraint
```
### 2. 扩展 DataType 节点
**问题**:当前 datatype 只有 14 类,缺少中间类型
**修改**:扩展 datatype 列表,建议:
```
raw_count_matrix
normalized_count_matrix
sample_metadata
differential_expression_table
significant_gene_list
ranked_gene_list
gene_symbol_list
entrez_gene_list
kegg_enrichment_table
go_enrichment_table
merged_pathway_table
```
**区分物理格式和语义类型**
```
datatype 只表示语义类型,不表示 csv/tsv 等格式
```
### 3. 新增 Constraint 节点
**修改**:添加约束节点用于路径过滤
```
organism_mouse
bulk_rna_seq
requires_raw_integer_counts
requires_entrez_id
requires_replicates
paired_end_reads
```
**边**
```
operation --requires--> constraint
tool --supports--> constraint
```
### 4. 新增 Workflow Motif 节点
**修改**:添加常见工作流模板作为路径先验
```
motif.bulk_rnaseq_de_kegg
motif.scRNA_marker_enrichment
motif.metagenomics_taxonomic_profile
```
**边**
```
motif --contains--> operation
```
### 5. 重写检索逻辑
**当前**
```python
# 直接检索 server
selected_servers = rank_servers(query, keywords, capabilities, datatypes)
```
**改为**
```python
def multi_hop_planning(query, input_profile):
# Step 1: 解析任务规格
task_spec = parse_task_spec(query, input_profile)
# 输出:input_types, target_output, constraints, required_operations
# Step 2: 检索 operation anchors
anchors = retrieve_operation_anchors(task_spec.operations)
# Step 3: 类型约束路径搜索
candidate_paths = constrained_path_search(
source_types=task_spec.input_types,
target_type=task_spec.target_output,
must_pass=anchors,
constraints=task_spec.constraints,
max_hops=8
)
# Step 4: 路径评分排序
ranked_paths = rank_paths(candidate_paths, task_spec)
# Step 5: 绑定工具
tool_plan = bind_tools_to_operations(ranked_paths[0], task_spec.constraints)
# Step 6: 合成可执行 DAG
dag = synthesize_dag(tool_plan, task_spec.workflow_type)
return dag
```
### 6. 实现路径搜索算法
**推荐从简单版本开始**:BFS over DataType-Operation 二部图
```python
# 图结构:DataType → Operation → DataType
def search_path(source_types, target_type, graph, max_hops=8):
# BFS from source_types
# 每个节点是 (current_datatype, path_operations)
# 扩展:operation 接受当前 datatype → 产生新 datatype
# 剪枝:超过 max_hops、违反 constraints、重复访问
```
**升级版**:Beam Search 或 A* Search
### 7. 修改 Query Parser 输出格式
**当前 debug_report 输出**:
```json
{
"keywords": [],
"capabilities": [],
"datatypes": [],
"stages": [],
"workflow_type": "single_step"
}
```
**修改为**:
```json
{
"task_spec": {
"input_types": ["raw_count_matrix", "sample_metadata"],
"target_output": {"semantic_type": "comparative_pathway_table"},
"constraints": {"organism": "mouse", "assay": "bulk_rna_seq"},
"required_operations": ["differential_expression", "kegg_enrichment"],
"workflow_type": "multi_branch_join"
},
"operation_anchors": ["differential_expression", "kegg_enrichment"]
}
```
### 8. 添加 4 类索引
```python
# 1. Operation Semantic Index (query → operation)
# 2. DataType Recognition Index (file/columns → datatype)
# 3. Path/Motif Index (常见路径缓存)
# 4. Tool Binding Index (operation → candidate tools)
```
## 实现优先级
### Phase 1(优先完成)
1. 新增 operation 节点和边
2. 扩展 datatype 到 30+ 类
3. 实现 BFS 路径搜索(仅 operation-datatype 二部图)
### Phase 2
4. 添加 constraint 节点
5. 实现路径评分函数
6. 修改 Query Parser 输出格式
### Phase 3
7. 添加 workflow motif
8. 实现 DAG 合成(支持分支-合并)
9. 添加 4 类索引优化
## 测试用例
先支持这 5 类多跳任务:
1. count_matrix → DE table → pathway enrichment table
2. FASTQ → QC → alignment → count matrix
3. VCF → annotation → variant summary
4. AnnData → clustering → marker genes → enrichment
5. metagenomic reads → taxonomy → differential abundance
## 关键设计原则
1. **Operation-first, tool-later**:先找 operation path,再绑定具体 tool
2. **Type-constrained**:路径合法性由 input/output datatype 决定
3. **Constraint-aware**:organism、assay 等约束用于路径剪枝
4. **Motif-guided**:常见 workflow 作为先验加速搜索
5. **可验证中间状态**:每一步都有明确的 datatype 转换
## 预期效果
升级后系统从:
```
Query → Server ranking → Tool selection
```
变为:
```
Query → Goal decomposition → Operation path search → Tool binding → Executable DAG
```
核心表述:
> "Instead of retrieving isolated MCP servers, the system performs multi-hop subgraph retrieval over a biomedical capability graph, searching for executable operation paths that connect input data types to target outputs while satisfying constraints."