Graph Engine

图分析工具参考

图驱动分析的工具层:72 个 Graph Engine 目录工具与 3 个 MCP 会话管理接口,按数据准备、结构分析、机器学习和结果表达分类,提供参数、返回与调用边界。

#调用约定

iGraph 通过这些工具把分析问题转化为图上的计算。智能体先确认当前图中节点、边、属性和权重的业务含义,再选择查询、路径、社区、中心性或图学习等操作;工具返回的结构与数值构成结果解释的依据。一个任务可以根据证据逐步组合多类工具,具体调用取决于问题和数据条件。技能负责组织流程,Graph Engine 执行图计算。

工具使用固定英文名称与 JSON 参数。本页收录 72 项通用业务工具,并单列 3 个 MCP 会话管理接口;专项案例的扩展工具以运行时 MCP 发现结果为准。参数名称和枚举不随界面语言变化,报告工具可由部署配置关闭。

接口层请求与返回
MCP 工具调用tools/call 的 params 为 {name, arguments}。用户、会话和执行标识由已建立的 MCP 连接及运行上下文提供;返回内容中的文本是 JSON 结果。
Graph Engine HTTPPOST /sessions/{session_id}/tools/{tool_name},请求体为 {"arguments":{...}}。这是服务间接口,携带服务凭据与用户/会话身份;受控 Run 还携带执行代次和 operation ID。
图与数据集版本graph_version 标识会话活动图;revision 标识数据集保存的构图成果。load_constructed_graph 把保存成果接入会话,两个编号不要求相等。
后台工作async=true 时保留 job_id,用 get_job_status 查状态。普通完成结果位于 job.result,大图结果通过 get_job_result 获取 summary、preview、artifact_id;明确终态后仍需检查业务结果。

独立构图智能体的私有工具集覆盖不同构图阶段,共有 inspect_schema、set_workload、evaluate_queries、optimize_graph、connect_columns、generate_entity_table、unfold_multi_category、add_primary_key、remove_primary_key、materialize_join、finish 这 11 个名称。它们运行在隔离的构图任务中,不属于本页 Graph Engine 目录工具。

主智能体使用页面末尾的 6 个公开构图工具检查能力、读取成果、载入活动图,以及预览和提交用户指定修改。私有 optimize_graph 用于构图过程的候选变换;公开 preview_graph_optimization/commit_graph_optimization 用于保存图的显式修改,两者具有不同的执行与验收上下文。

  • success=false 表示工具级失败;HTTP 错误和未满足的数据、模型或版本条件也必须处理。不要把空预览、排队成功或缺失模型当作分析成功。
  • 数值 limit 通常最多 200,路径默认 10,列表默认 20,社区/分量默认 5;只有数据模式明确声明的参数可发送。all 会扩大输出,仍需阅读 truncated 与范围字段。
  • 点号形式的嵌套参数用于阅读,例如 train_config.epochs;实际 JSON 应发送 {"train_config":{"epochs":200}}。

默认 72 项由 60 项图/系统工具、6 项公开构图工具、5 项图学习工具与 1 项报告工具组成;关闭报告后少一项。Runtime 的技能、用户记忆、经验检索和工作区工具另行注册,不在此计数内。本文核对工具目录与实现,不声称所有算法和参数组合已逐项实测。

本页直接调用 Graph Engine 或 MCP 的示例属于内部服务接口,仍需服务密钥与工作区 / 会话上下文。内部 X-User-ID 应与 GET /api/workspace 返回的 user_id 一致;它是默认工作区归属,不是可供浏览器选择的登录身份。浏览器调用 Backend 公共 /api/* 接口不需要此头。

#数据接入、数据集与图版本

先区分数据来源与保存位置。边列表、三元组和上传文件可以直接进入会话图;Registry 数据集与已构图数据集有各自的加载接口。加载、清空、无向化和版本切换会改变后续分析使用的图,执行后应核对 get_graph_info 与 graph_version。

加载边列表load_graph

将带可选权重的边列表载入当前会话。每行使用 src dst [weight];可创建图或追加普通图。

参数与返回值 2 项参数说明
参数类型与可选值说明
edge_text必填string边列表文本,每行由起点、终点和可选数值权重构成。
appendboolean默认: falsefalse 替换活动图;true 追加普通图。任一侧为构图属性图时不支持追加。

返回:返回加载状态、graph_version 和规模信息。后续用 get_graph_info 检查图结构。

  • 覆盖与追加会改变活动图。构图属性图不支持 append,返回 UNSUPPORTED_PROPERTY_GRAPH_APPEND 时原图保持不变。

加载上传的图文件load_graph_from_upload

读取已注册的图文件并识别格式,支持 NPZ、PT 与 graph_data.v1 JSON;多图 PT 自动路由到图分类数据集加载。

参数与返回值 3 项参数说明
参数类型与可选值说明
filename必填string当前会话已注册的上传文件名。
appendboolean默认: falsefalse 替换活动图;true 追加普通图。任一侧为构图属性图时不支持追加。
directedboolean默认: true文本格式自动识别时使用的方向参数,默认 true;结构化图的实际方向仍应读取加载结果。

返回:直接加载返回格式、状态与图版本;后台加载返回 async、job_id、status。任务完成后读取 get_job_status 的 job.result。

  • MCP 对 .sql、.csv、.txt 文件返回 CONSTRUCTION_REQUIRED,要求先在数据集面板构图。引擎的其他文件路径可检测边列表、三元组或自然语言,但不能据此绕过数据集构图入口。
  • 自然语言、多图数据集与部分 Nebula 导入会转为后台工作;不要将 queued 当作图已加载完成。

从文本抽取图load_graph_from_text

从直接文本或已上传文件抽取实体与关系,并提交异步文本抽图任务。extraction_goal 可限定实体和关系范围。

参数与返回值 5 项参数说明
参数类型与可选值说明
textstring直接传入的待抽取文本;与 filename 二选一。
filenamestring已上传文本文件名;工具直接读取文件,与 text 二选一。
directedboolean默认: true是否按有向关系生成图。
appendboolean默认: falsefalse 替换活动图;true 追加普通图。任一侧为构图属性图时不支持追加。
extraction_goalstring限定抽取目标,例如只保留公司、人物与任职关系。

返回:返回 async=true、job_id 和 queued 状态;最终结果包含抽取与图加载信息。

  • 该入口执行文本关系抽取。基于技能的数据集构图由独立构图智能体完成,具有查询验收与表示演化流程。

加载关系三元组load_graph_from_triples

将显式 source–relation–target 三元组转换为图,可附置信度、证据文本和来源分块编号。

参数与返回值 3 项参数说明
参数类型与可选值说明
triples必填array三元组对象数组。每项必须含 source、relation、target,可含 confidence、evidence、chunk_id。
directedboolean默认: true是否按有向关系生成图。
appendboolean默认: falsefalse 替换活动图;true 追加普通图。任一侧为构图属性图时不支持追加。

返回:返回加载状态、图版本与规模;关系和附带证据信息参与图数据生成。

  • relation 写入 edge_type,evidence 写入 edge_text,confidence 写入 edge_feat;三元组数不一定等于最终边条目数。

清空活动图clear_graph

清空当前会话的活动图,并更新图版本状态。

参数与返回值 0 项参数说明

无业务参数;身份与会话由运行时注入。

返回:返回 success、graph_version 及清空后的图状态。

转换为无向图to_undirected

将当前图转换为无向图,发布转换后的活动版本。

参数与返回值 0 项参数说明

无业务参数;身份与会话由运行时注入。

返回:返回转换状态、图版本、节点与边数量及方向信息。

  • 方向转换会影响路径、入度/出度与边计数语义;转换后重新读取 get_graph_info。

列出数据集list_datasets

列出当前用户与会话范围可访问的数据集,供后续加载或构图成果选择。

参数与返回值 0 项参数说明

无业务参数;身份与会话由运行时注入。

返回:返回 datasets 列表及数据集标识、版本和存储信息;构图数据集受访问范围限制。

加载已保存的数据集load_dataset

将已保存数据集的指定版本载入活动图;version=latest 选择最新保存版本。

参数与返回值 2 项参数说明
参数类型与可选值说明
dataset_id必填string当前用户可访问的真实数据集 ID,从数据集列表或会话数据状态读取。
versionstring默认: "latest"已保存的数据集版本标识;latest 表示最新版本。

返回:返回 dataset_id、dataset_version、图版本与规模。已构图数据集应使用 load_constructed_graph。

  • 已构图数据集使用 load_constructed_graph;普通加载可能返回 USE_CONSTRUCTED_GRAPH_LOADER,提示更新正确的会话绑定。

保存为数据集save_as_dataset

把当前图保存为可再次加载的数据集,并更新当前会话的数据集绑定。

参数与返回值 2 项参数说明
参数类型与可选值说明
name必填string新数据集的名称。
descriptionstring保存到数据集元数据的用途说明。

返回:返回 dataset 元数据,包括数据集标识、名称、版本及用户或全局范围。

撤销图变更undo_graph

将活动图恢复到之前可用的图状态,供撤回上一步图变更。

参数与返回值 0 项参数说明

无业务参数;身份与会话由运行时注入。

返回:返回恢复是否成功及当前 graph_version;无可用历史状态时返回失败说明。

列出会话图版本list_graph_versions

列出当前会话可加载的图版本,用于在完整图、子图和历史状态之间切换。

参数与返回值 0 项参数说明

无业务参数;身份与会话由运行时注入。

返回:每项包含 graph_version、描述、创建时间、节点与边数量,以及 current 标记。

切换会话图版本load_graph_version

把当前会话切换到 list_graph_versions 中的指定图版本。

参数与返回值 1 项参数说明
参数类型与可选值说明
graph_version必填integer目标图版本号;使用 list_graph_versions 返回的真实编号。

返回:返回切换状态、当前 graph_version 和节点、边数量。

删除会话图版本discard_graph_version

删除指定会话图版本;删除活动版本时先切换到可用的 fallback 版本。用于版本清理与撤销临时派生图。

参数与返回值 2 项参数说明
参数类型与可选值说明
graph_version必填integer要删除的真实图版本编号。
fallback_graph_versioninteger删除活动版本前切换到的已加载历史版本。省略或不可用时尝试之前可用版本;不存在回退版本则失败。

返回:返回 discarded_graph_version、当前 graph_version 和图规模;版本或可用回退状态不存在时返回失败。

  • 该工具在目录中标记为 internal,但原生 MCP 工具发现仍可取得它。它删除历史版本;普通切换使用 load_graph_version。

#大图分区计算与结果文件

先准备分区版本,等待 published,再核对能力并提交算法。结果摘要与预览保持有界,可下载文件保存完整或有界物化结果;普通活动图和分区表示不能直接互换。

准备大图分区快照prepare_large_graph

将注册的边列表或三元组文件流式处理为版本化分区快照,提交持久化后台作业。

参数与返回值 14 项参数说明
参数类型与可选值说明
filename必填string已在当前会话注册的上传文件名;内容必须符合 input_format。
graph_idstring逻辑图标识;省略时使用当前 session_id。
graph_versioninteger可显式指定至少为 1 的新版本号,不能覆盖已占用版本;省略时由服务分配并校验与普通图版本的绑定。
input_formatstring
edgelist triples
默认: "edgelist"
edgelist 为边列表,triples 为关系三元组;默认 edgelist。
delimiterstring默认: "auto"auto 自动识别,或 whitespace、comma、tab、单字符分隔符。
directedboolean默认: true是否保留有向语义,默认 true。
partitionsinteger分区数量,范围 1–128;省略时按服务端配置和资源计算。
workersinteger请求的工作进程数,至少 1;实际并行度受分区数、CPU 和资源准入限制。
quality_policyobject显式控制节点规范化、边唯一键、权重冲突、自环和无效记录处理。省略对象与传空对象的默认语义可能不同,见注意事项。
quality_policy.node_normalizationstring
nfkc_casefold exact
exact 保留原名;nfkc_casefold 做 Unicode NFKC 规范化与大小写折叠。
quality_policy.edge_keystring
endpoints endpoints_relation
默认: "endpoints"
endpoints 按端点识别逻辑边;endpoints_relation 保留多关系平行边,当前经典算法会拒绝该语义。
quality_policy.weight_conflictstring
first last max min reject
重复逻辑边取 first/last/max/min 权重或 reject。
quality_policy.self_loopsstring
allow skip reject
自环保留 allow、跳过 skip 或拒绝 reject。
quality_policy.invalid_recordsstring
skip reject
无效记录跳过 skip 或拒绝 reject。

返回:提交返回 async=true、job_id、graph_id 与 graph_version;完成结果含质量摘要、规模及 representation=partitioned_snapshot,current_graph_replaced=false。

  • 无需先构建完整 GraphData 或 NetworkX 图;需要运行中的大图 worker 与足够资源。省略 quality_policy 时,edgelist 默认保留节点原名并采用最后重复边权;triples 默认 nfkc_casefold 与最大权重。传入空对象使用质量策略类的默认值,不能视作完全等同于省略对象。

提交大图算法作业run_large_graph_algorithm

在已发布的分区快照版本上提交算法;先核对运行时能力,不把名称相同当作与普通图算法完全等价。

参数与返回值 32 项参数说明
参数类型与可选值说明
graph_idstring逻辑图标识;省略时使用当前 session_id。
graph_version必填integer已发布的分区快照版本号,至少为 1。准备阶段可指定新版本,不能覆盖已占用版本。
algorithm必填string
degree in_degree out_degree degree_centrality shortest_path all_shortest_paths maximum_flow minimum_cut global_minimum_cut minimum_spanning_tree community_detection node_centrality graph_connectivity find_cycles maximum_cycle topological_sort degree_analysis subgraph_extraction link_prediction_score path_analysis clique_analysis reachability global_metrics graph_structure_analysis connectivity_analysis tree_dag_analysis matching_coloring_analysis distance_measures
选择大图计算入口;子方法与指标放在 parameters 中,先用能力目录核对语义和资源约束。
parametersobject按算法提供端点、method/metric、预览和资源选项;点号参数在实际 JSON 中嵌套发送。条件必填项见下文,不能跨算法混用选择器。
workersinteger请求的工作进程数,至少 1;实际并行度受分区数、CPU 和资源准入限制。
parameters.sourcestring起点;与 target 或流/割的 sink 配合。
parameters.targetstring终点;shortest_path 可用 all 生成源点距离结果文件。
parameters.sinkstringmaximum_flow/minimum_cut 的汇点。
parameters.algorithmstring
default yen_k_shortest louvain greedy_modularity label_propagation label_propagation_asyn leiden girvan_newman asyn_fluidc
路径子模式 default/yen_k_shortest;社区子模式为其余名称,当前均映射到加权同步标签传播近似。
parameters.centrality_typestring
degree betweenness closeness pagerank eigenvector harmonic katz load voterank percolation
默认: "degree"
中心性指标;部分方法为采样或明确标记的近似,先查询能力。
parameters.methodstring
ego_graph k_core k_truss k_corona node_subset jaccard adamic_adar resource_allocation preferential_attachment all_simple_paths has_path average_shortest_path_length find_cliques clique_number number_of_cliques transitive_closure descendants ancestors is_tree is_forest is_directed_acyclic_graph bfs_tree dfs_tree lexicographical_topological_sort all_topological_sorts is_at_free check_planarity is_tournament score_sequence is_bipartite weisfeiler_lehman_graph_hash node_connectivity edge_connectivity minimum_node_cut minimum_edge_cut articulation_points bridges local_bridges biconnected_component_edges bridge_components condensation maximum_spanning_tree random_spanning_tree lowest_common_ancestor immediate_dominators dominance_frontiers dag_longest_path dag_longest_path_length antichains is_aperiodic colliders v_structures max_weight_matching min_weight_matching maximal_matching min_edge_cover is_matching greedy_color equitable_color
与顶层 algorithm 对应的子方法,不同分组的枚举不能混用。
parameters.metricstring
density diameter radius transitivity average_clustering degree_assortativity center periphery eccentricity wiener_index global_efficiency local_efficiency average_neighbor_degree average_degree_connectivity rich_club_coefficient reciprocity flow_hierarchy barycenter estrada_index girth
global_metrics/distance_measures 的指标选择器。
parameters.nodestringego_graph、descendants/ancestors 必需节点;number_of_cliques 可选指定节点。
parameters.nodesarraynode_subset 的节点名称数组,运行时默认最多 10,000 项,部署可收紧。
parameters.focus_nodesarray本次社区结果中需确认归属的节点名,最多 200 项。
parameters.kintegerYen 路径数 1–200(默认 3),或 ego 半径及 core/truss/corona 阈值(默认 2)。
parameters.cutoffinteger默认: 5all_simple_paths 最大边数,1–10,000,默认 5。
parameters.limitinteger | string预览项数 1–200;all 仍映射到 200 条硬上限,完整结果以结果文件及其范围说明为准。
parameters.top_kinteger | stringdegree/链接预测前列项数,1–200;all 仍为 200。省略时分别为 20/10。
parameters.max_cyclesinteger默认: 10000最大环搜索候选数 1–100,000,默认 10,000。
parameters.optimize_bystring
length weight
默认: "length"
maximum_cycle 按节点数或权重总和选择已搜索的最好环。
parameters.treat_as_undirectedboolean默认: trueglobal_minimum_cut 是否把有向输入投影为无向图。
parameters.max_iterationsinteger默认: 5迭代上限,目录范围 1–2,000;社区实际最多 500 次,默认 5。
parameters.sample_sourcesintegerBrandes 类中心性的采样源点数,最多 10,000;小于总节点数时标记 approximate,部署硬上限不能由 allow_expensive 绕过。
parameters.dampingnumber默认: 0.85PageRank 阻尼系数,必须有限且 0 < damping < 1。
parameters.alphanumber默认: 0.1Katz 有限衰减系数,默认 0.1。
parameters.betanumber默认: 1Katz 有限外源偏置,默认 1。
parameters.tolerancenumber默认: 0.000001迭代中心性的有限正收敛容差。
parameters.use_weightboolean默认: trueshortest_path 是否按边权计算;all_shortest_paths 固定加权,其他算法忽略此参数。
parameters.create_versionboolean默认: true子图提取默认发布新分区版本,后续显式使用 new_graph_version;不自动替换普通活动图。false 仅生成结果文件。
parameters.allow_expensiveboolean默认: false允许通过部分平方/指数复杂度准入门槛,不会取消内存、采样等硬限制。
parameters.strict_semanticsboolean默认: false拒绝大图中的近似语义映射,不自动改为完整 NetworkX 计算。

返回:返回异步作业句柄;完成后通过 get_job_result 获取 summary、preview 和 artifact_id。精确、近似、有界或混合语义以能力与实际结果为准;完整可物化输出保存在结果文件中。

  • 路径需 source/target,流/割需 source/sink,方法类需 method,指标类需 metric。LCA 另需 node1/node2,支配关系需 source,均衡着色需 num_colors。参数对象允许扩展字段,但仍由运行时按算法校验;不支持模式或资源不足会明确拒绝。

列出大图快照版本list_large_graph_versions

列出当前用户与会话中指定逻辑图的分区版本。

参数与返回值 1 项参数说明
参数类型与可选值说明
graph_idstring逻辑图标识;省略时使用当前 session_id。

返回:返回 success、graph_id 和 versions;版本信息包含准备/发布状态与质量摘要。

  • 只有已发布版本可用于算法。该列表不是 list_graph_versions 返回的普通活动图历史,不要仅凭编号假定两个表示已绑定同一数据源。

查看大图结果文件get_large_graph_artifact

读取大图结果文件的元数据与可选有界预览,不把完整分区结果放入模型上下文。

参数与返回值 2 项参数说明
参数类型与可选值说明
artifact_id必填string作业真实返回的结果文件标识;必须属于当前用户和会话。
include_previewboolean默认: true是否附带有界结果预览,默认 true;不加载完整分区文件。

返回:返回 success、artifact 和 download_url_template;文件总数、路径/下载序号预览与完整序号范围在 artifact 中。

  • download_url_template 的 {partition} 是扁平结果文件列表的下载序号,不一定等于输入分区编号。经 Backend 的 /api/sessions/{session_id}/large-graph/artifacts/{artifact_id}/partitions/{partition} 逐文件下载,仍校验工作区、会话和文件范围,无需浏览器登录。

查询大图运行能力get_large_graph_capabilities

读取当前大图引擎支持的操作、子模式、语义与资源约束。

参数与返回值 0 项参数说明

无业务参数;身份与会话由运行时注入。

返回:返回 success 与 capabilities,包含引擎版本、精确/近似/有界语义、复杂度、并行策略和结果类型。

  • 目录表示实现契约和适用条件,不代表每个方法都已在当前数据上运行成功。社区名称当前映射为加权同步标签传播近似,部分中心性也有采样或近似映射;严格比较前设置 strict_semantics 并核对实际结果。

#图概览与实体检索

从 get_graph_info 开始确认规模和方向,再用精确节点名称或 ID 读取结构。自然语言检索用于缩小候选范围,不能把最高分候选自动视为已确认实体。平行关系可能具有相同端点;完整关系核对应结合保存的属性图和关系标识。

查看图概览get_graph_info

读取活动图的规模、方向、结构类型、属性和学习准备情况,作为分析前的起点。

参数与返回值 0 项参数说明

无业务参数;身份与会话由运行时注入。

返回:返回图概要、节点与边预览、num_edge_entries、num_unique_edges、semantic_type、storage_type,以及标签、特征与图学习就绪状态。

  • num_edge_entries 是存储条目数,num_unique_edges 是去重后的逻辑边数;双向存储的无向图应按其语义理解计数。

查看节点信息get_node_info

通过精确节点名称或字符串形式的 ID 查看局部结构和节点属性。

参数与返回值 1 项参数说明
参数类型与可选值说明
node_name必填string精确节点名称或字符串形式的节点 ID。

返回:返回节点度、入度、出度、邻居、前驱、关联边与标签、类型;有节点文本时包含 text。列表按预览上限截断。

  • 描述性查询先使用 search_node,取得精确名称后再调用本工具。

查看关系信息get_edge_info

查看指定端点之间的有向关系及属性。平行关系可以对应多条关系记录。

参数与返回值 2 项参数说明
参数类型与可选值说明
src_name必填string关系起点的精确节点名称。
dst_name必填string关系终点的精确节点名称。

返回:返回存在状态及权重、关系名称、标签与类型;多关系结果附预览和截断信息。

  • 平行关系应使用返回的真实关系 ID 区分;只给端点不代表图中只有一条关系。

检查边是否存在check_edge_exists

检查指定起点到终点的边是否存在,适合在后续分析前验证精确关系。

参数与返回值 2 项参数说明
参数类型与可选值说明
src_name必填string关系起点的精确节点名称。
dst_name必填string关系终点的精确节点名称。

返回:返回 exists 和 directed 等状态字段。

查询一跳邻居get_neighbors

查询一跳邻居。统一入口在本地图读取 GraphData,在 Nebula 主存储上执行原生遍历。

参数与返回值 3 项参数说明
参数类型与可选值说明
node_name必填string精确节点名称或字符串形式的节点 ID。
directionstring
out in both
默认: "out"
out 沿出边,in 沿入边,both 忽略方向作双向遍历;具体支持取决于工具与存储后端。
limitinteger默认: 20一跳邻居返回上限,服务端限制为 1–200;不接受 all。

返回:返回指定方向的邻居列表及相关遍历信息,最多按 limit 返回。

  • Nebula 的方向参数由原生查询处理;返回的是一跳局部结果。

检索节点search_node

从名称、节点文本、类型、标签和度约束中检索节点,将自然语言描述解析为后续工具可用的精确名称。

参数与返回值 5 项参数说明
参数类型与可选值说明
query必填string待检索的自然语言描述、名称或文本片段。
top_kinteger默认: 8候选节点数,默认 8,服务端限制为 1–50。
filtersobject节点约束对象:node_type、label,以及 total/in/out degree 的 min/max 限制。
sortobject排序对象:field 可为 score、node_id、degree、num_neighbors、in_degree、out_degree 或 total_degree;order 为 asc 或 desc。
rerankboolean默认: true检索响应中的重排开关标记;目前未接入独立重排模型。

返回:返回 best、candidates、ambiguous、semantic_enabled 和 retrieval_mode;候选包含精确 node_name 及匹配证据。

  • ambiguous=true 时先确认候选。没有可用语义嵌入服务时,精确名称或有效节点编号仍可匹配;其他文本查询不会获得词法相似度分数,候选主要由结构过滤和排序决定。使用 semantic_enabled 与 retrieval_mode 判断模式。
  • 实体语义检索依赖 Graph Engine 自己的嵌入服务配置:EMBEDDING_PROVIDER 可显式选择 sentence-transformers、openai 或 lexical。默认先尝试本地 Sentence Transformers(需要依赖与模型权重),失败后在存在 OPENAI_API_KEY 时选择 OpenAI,否则使用词法哈希。当前 OpenAI 分支调用固定的 api.openai.com/v1/embeddings;Agent Runtime 的聊天模型或 EMBEDDING_BASE_URL 配置不会自动改写这个地址。词法模式不为实体查询提供语义相似度排序;索引编码失败时也会禁用语义检索,应检查 semantic_enabled 与检索错误信息。 显式选择 openai 时必须提供 OPENAI_API_KEY;显式提供方初始化失败不会执行上述自动选择。首次实体索引会编码全图节点与边文本,远程服务的可达性、延迟和额度也影响可用性。

检索关系search_edge

按关系描述、边文本、属性或起终点描述检索关系;可同时限定两端语义。

参数与返回值 7 项参数说明
参数类型与可选值说明
querystring待检索的自然语言描述、名称或文本片段。
src_querystring用名称或自然语言描述约束起点节点。
dst_querystring用名称或自然语言描述约束终点节点。
top_kinteger默认: 8候选关系数,默认 8,服务端限制为 1–50。
filtersobject关系约束对象:edge_type、label、min_weight 与 max_weight。
sortobject排序对象:field 为 score、edge_idx 或 weight;order 为 asc 或 desc。
rerankboolean默认: true检索响应中的重排开关标记;目前未接入独立重排模型。

返回:返回 best、candidates、ambiguous 及检索模式,候选包含精确端点和关系信息。

  • query、src_query、dst_query 至少提供一项;ambiguous=true 时先确认关系或端点候选。
  • 精确端点定位只返回最后一条关系,无法据此枚举全部平行关系;逐条核对请使用保存属性图中的真实 edge_id。
  • 语义查询使用与 search_node 相同的 Graph Engine 嵌入服务;无可用服务时只保留精确定位、结构过滤与排序能力,rerank 不会调用独立重排模型。

#路径与可达性

先说明“最短”指最少跳数还是最小权重和。all_shortest_paths 枚举等长最优解,yen_k_shortest 返回按成本排序的备选简单路径,两者不同。可达性结果也受方向和远端查询范围影响;没有返回路径时先检查范围字段。

计算最短路径shortest_path

计算最低成本或最少跳数路径。default 返回一条最短路径;yen_k_shortest 返回按代价排序的前 k 条简单路径;target=all 查询单源可达路径摘要。

参数与返回值 7 项参数说明
参数类型与可选值说明
source必填string精确起点节点名称。
target必填string终点节点;特殊值 all 返回起点到所有可达节点的距离统计和最近路径预览。
use_weightboolean默认: truetrue 以边权作为距离或代价;false 只计算跳数。
algorithmstring
default yen_k_shortest
默认: "default"
default 返回一条最短路;yen_k_shortest 返回前 k 条不重复的简单路径。
kinteger默认: 3仅 yen_k_shortest 使用,指定候选简单路径数量;默认 3,至少为 1。
directionstring
out in both
默认: "out"
仅 Nebula 主存储且 use_weight=false 时生效;本地最短路遵循活动图方向。
max_stepsinteger默认: 10Nebula 原生查询或有界物化的最大跳数,服务端限制为 1–20。

返回:单路径返回 found、path、hop_count、total_length、edges、weighted;k 路径返回 paths;all 返回 reachable_count、距离统计和 nearest_paths。

  • 权重在此表示距离或成本。多重图对同一端点对取最小权重构成私有计算视图,原有关系不被删除。

枚举等长最短路径all_shortest_paths

枚举指定两节点之间总权重相同的最短路径,适合检查最优路线是否唯一。

参数与返回值 6 项参数说明
参数类型与可选值说明
source必填string精确起点节点名称。
target必填string精确终点节点名称。
directionstring
out in both
默认: "out"
out 沿出边,in 沿入边,both 忽略方向作双向遍历;具体支持取决于工具与存储后端。
max_stepsinteger默认: 10Nebula 原生查询或有界物化的最大跳数,服务端限制为 1–20。
max_nodesintegerNebula 子图物化的节点数量上限,防止无界读取。
max_edgesintegerNebula 子图物化的边数量上限。

返回:返回 length、paths、count_returned、truncated;默认最多展示 10 条。没有路径时 paths 为空。

  • 本工具返回等价最优路径;yen_k_shortest 可以包含成本更高的备选路径。公开参数不含 limit,默认结果上限为 10 条。

分析路径path_analysis

判断可达性、枚举简单路径或计算平均最短路径长度;通过 method 选择问题类型。

参数与返回值 9 项参数说明
参数类型与可选值说明
method必填string
all_simple_paths has_path average_shortest_path_length
all_simple_paths 枚举简单路径;has_path 判断可达性;average_shortest_path_length 计算平均加权最短距离。
sourcestringall_simple_paths 与 has_path 必需;平均最短路径模式无需填写。
targetstringall_simple_paths 与 has_path 必需;平均最短路径模式无需填写。
cutoffinteger默认: 5all_simple_paths 的最大路径边数;默认 5,至少按 1 处理。
directionstring
out in both
默认: "out"
out 沿出边,in 沿入边,both 忽略方向作双向遍历;具体支持取决于工具与存储后端。
max_stepsinteger默认: 10Nebula 原生查询或有界物化的最大跳数,服务端限制为 1–20。
max_nodesintegerNebula 子图物化的节点数量上限,防止无界读取。
max_edgesintegerNebula 子图物化的边数量上限。
limitinteger | string默认: 10结果预览上限,数值最多 200;all 请求完整结果,可能显著增加返回量或枚举成本。

返回:按模式返回 has_path、paths/count/truncated 或平均距离结果;Nebula 有界分析会附范围元数据。

  • 平均最短路径按边权计算。有向图要求整图强连通,否则失败;无向非连通图只计算最大连通分量。该结果不能用来宣称其他分量也可互达。

分析可达性reachability

查询节点的所有可达后代、可达祖先,或生成图的传递闭包预览。

参数与返回值 6 项参数说明
参数类型与可选值说明
method必填string
transitive_closure descendants ancestors
transitive_closure 生成传递闭包;descendants 查询后代;ancestors 查询祖先。
nodestringdescendants 和 ancestors 必需,transitive_closure 不需要。
max_stepsinteger默认: 10Nebula 原生查询或有界物化的最大跳数,服务端限制为 1–20。
max_nodesintegerNebula 子图物化的节点数量上限,防止无界读取。
max_edgesintegerNebula 子图物化的边数量上限。
limitinteger | string默认: 20结果预览上限,数值最多 200;all 请求完整结果,可能显著增加返回量或枚举成本。

返回:返回节点或闭包边预览、数量和截断标记;闭包未完全枚举时给出 num_edges_at_least。

  • Nebula 查询受 max_steps、max_nodes、max_edges 限制。范围内无路径或未返回某节点,不能直接证明整图不可达。

#网络流、割与生成树

网络流把边权解释为容量,割衡量断开网络所需移除的容量,生成树最小化覆盖节点的连接成本。三类工具的目标函数不同。平行边在流量计算中累加容量,在最小生成树计算中按相应计算策略合并,不修改原始关系记录。

计算最大流maximum_flow

把边权解释为容量,计算 source 到 sink 能传输的最大总流量。

参数与返回值 2 项参数说明
参数类型与可选值说明
source必填string精确起点节点名称。
sink必填string精确汇点节点名称。

返回:返回 max_flow_value、total_nonzero_edges、top_flow_edges 和 truncated。

  • weight 作为容量,平行边容量相加;不能直接把成本图的权重当作吞吐能力。

计算源汇最小割minimum_cut

求分离指定源点与汇点的最小容量割,用于定位网络瓶颈。

参数与返回值 2 项参数说明
参数类型与可选值说明
source必填string精确起点节点名称。
sink必填string精确汇点节点名称。

返回:返回 min_cut_value、分区规模、较小分区节点和割边预览。

  • 源汇最小割使用容量语义;平行关系在计算视图中按容量求和。

计算全局最小割global_minimum_cut

无需指定端点,求无向加权图的全局最小割。有向图可显式按无向图处理。

参数与返回值 2 项参数说明
参数类型与可选值说明
treat_as_undirectedboolean默认: true允许将有向输入解释为无向加权图;false 时有向全局最小割不受支持。
limitinteger | string默认: 20结果预览上限,数值最多 200;all 请求完整结果,可能显著增加返回量或枚举成本。

返回:返回 min_cut_value、algorithm、分区规模、割边预览及 disconnected;不连通图割值为 0。

  • 有向图在 treat_as_undirected=false 时拒绝该操作;需要保留方向的源汇问题使用 minimum_cut。

计算最小生成树minimum_spanning_tree

在无向计算视图上寻找总权重最小的连接骨架;不连通图返回最小生成森林摘要。

参数与返回值 0 项参数说明

无业务参数;身份与会话由运行时注入。

返回:连通时返回 total_weight、num_edges 和 mst_edges_preview;不连通时返回 num_components 和 forest_summary。

  • 采用无向视图;对属性多重图使用每对节点间的最小权关系。森林摘要不等于完整边列表。

#连通性、环、拓扑与团

连通分量描述哪些节点能够连在一起,环揭示循环依赖,拓扑排序只适用于有向无环图。团分析区分“不能再扩大的极大团”和“节点数最多的最大团”。环与团的枚举可能很昂贵;输出条数限制不应被当作完整性证明。

分析连通性graph_connectivity

分析有向图的强、弱连通性,或无向图的连通分量。

参数与返回值 1 项参数说明
参数类型与可选值说明
limitinteger | string默认: 5结果预览上限,数值最多 200;all 请求完整结果,可能显著增加返回量或枚举成本。

返回:返回连通性判断、分量总数、大小与节点预览;默认展示 5 个分量,每个预览 10 个节点。

枚举简单环find_cycles

枚举图中的简单环,帮助检查反馈回路、循环依赖和闭合结构。

参数与返回值 1 项参数说明
参数类型与可选值说明
limitinteger | string默认: 20结果预览上限,数值最多 200;all 请求完整结果,可能显著增加返回量或枚举成本。

返回:返回 cycles、truncated 和 total_cycles_at_least;截断时数量是已确认下界。

  • 简单环数量可能指数增长。limit=all 会取消展示枚举上限;truncated=true 时不可把已返回环数写成全图总数。

搜索最大环maximum_cycle

在受限的简单环枚举中寻找最长环或权重和最大的环,并报告搜索是否穷尽。

参数与返回值 2 项参数说明
参数类型与可选值说明
optimize_bystring
length weight
默认: "length"
length 优先选择节点数最多的环;weight 优先选择总边权最大的环。
max_cyclesinteger默认: 10000最多扫描的简单环数量,默认 10000,服务端限制到 1–100000。

返回:返回 cycle、cycle_length、cycle_weight、edges、cycles_examined、search_exhausted 和 truncated。

  • 最长简单环是高成本组合问题。search_exhausted=false 时只保证已扫描候选中的最优结果;多重图暂不支持。

计算拓扑顺序topological_sort

为有向无环图生成满足依赖先后关系的拓扑顺序。

参数与返回值 1 项参数说明
参数类型与可选值说明
limitinteger | string默认: 20结果预览上限,数值最多 200;all 请求完整结果,可能显著增加返回量或枚举成本。

返回:返回拓扑顺序预览、节点总数及 truncated;包含环时无法给出合法拓扑序。

  • 拓扑顺序可能不唯一;预览只是合法顺序的前缀,不代表整个执行计划。

分析团结构clique_analysis

在无向视图上枚举极大团、求最大团大小,或统计节点参与多少个极大团。

参数与返回值 3 项参数说明
参数类型与可选值说明
method必填string
find_cliques clique_number number_of_cliques
find_cliques 枚举极大团;clique_number 求最大团大小;number_of_cliques 统计节点参与的极大团数。
nodestring仅 number_of_cliques 使用;省略则返回各节点的参与次数预览。
limitinteger | string默认: 20结果预览上限,数值最多 200;all 请求完整结果,可能显著增加返回量或枚举成本。

返回:find_cliques 返回团预览及数量下界;clique_number 返回最大团大小;number_of_cliques 返回节点参与次数。

  • 极大团是无法再扩展的完全子图;最大团是所有团中规模最大的一个。团枚举可能指数增长,多重图暂不支持。

图结构判定与遍历graph_structure_analysis

检查树、森林、DAG、二部图、平面性及锦标赛结构,或生成遍历树、拓扑序和 WL 哈希。

参数与返回值 5 项参数说明
参数类型与可选值说明
method必填string
is_tree is_forest is_directed_acyclic_graph bfs_tree dfs_tree lexicographical_topological_sort all_topological_sorts is_at_free check_planarity is_tournament score_sequence is_bipartite weisfeiler_lehman_graph_hash
选择本工具支持的方法;不同方法的前提和附加必填参数见下文。
sourcestringBFS/DFS 遍历必填的真实起点名称。
depth_limitintegerBFS/DFS 最大遍历深度,整数且不小于 0。
iterationsinteger默认: 3Weisfeiler–Lehman 哈希迭代次数,至少 1,默认 3。
limitinteger | string默认: 20列表预览默认 20,正整数最多 200。all 对普通列表可扩大输出,但拓扑序、反链、collider/v-structure 枚举仍保留 200 条硬上限。

返回:根据方法返回 value、is_planar、hash、score_sequence、order/orders 或遍历树 edges_preview,附总量与截断信息;不会改变活动图。

  • 树/森林、AT-free、二部图和平面性使用无向视图。BFS/DFS 需 source;拓扑排序需 DAG。score_sequence 检查出度序列是否满足锦标赛得分序列条件,不能代替 is_tournament。WL 哈希相同也不是同构证明。
  • 当前普通图入口不支持多重图,返回 UNSUPPORTED_MULTIGRAPH_OPERATION;大图同名算子有独立能力约束。

连通度、割集与桥connectivity_analysis

计算点/边连通度、最小点割/边割、割点、桥、局部桥、双连通分量、桥分量及强连通缩点图。

参数与返回值 4 项参数说明
参数类型与可选值说明
method必填string
node_connectivity edge_connectivity minimum_node_cut minimum_edge_cut articulation_points bridges local_bridges biconnected_component_edges bridge_components condensation
选择本工具支持的方法;不同方法的前提和附加必填参数见下文。
sourcestring局部点/边连通度或割集的起点,与 target 同时提供;二者省略时计算全局值。
targetstring终点节点的真实名称;局部连通度与割集需与 source 同时提供。
limitinteger | string默认: 20列表预览默认 20,正整数最多 200。all 对普通列表可扩大输出,但拓扑序、反链、collider/v-structure 枚举仍保留 200 条硬上限。

返回:按方法返回 value、nodes、items、components 或缩点图 nodes/edges;size/count 和 truncated 描述总量与列表范围。

  • 局部连通度/割集同时提供 source 和 target。连通度、割集、割点、桥和双连通类方法使用无向视图;condensation 要求有向图。全局最小点/边割要求非空连通输入,并非前述按权重容量计算的 minimum_cut。
  • 当前普通图入口不支持多重图,返回 UNSUPPORTED_MULTIGRAPH_OPERATION;大图同名算子有独立能力约束。

树、DAG 与支配关系tree_dag_analysis

查询最大/随机生成树、最近公共祖先、支配关系、DAG 最长路、反链、非周期性与汇聚结构。

参数与返回值 6 项参数说明
参数类型与可选值说明
method必填string
maximum_spanning_tree random_spanning_tree lowest_common_ancestor immediate_dominators dominance_frontiers dag_longest_path dag_longest_path_length antichains is_aperiodic colliders v_structures
选择本工具支持的方法;不同方法的前提和附加必填参数见下文。
sourcestringimmediate_dominators/dominance_frontiers 必填的真实起点名称。
node1string最近公共祖先查询的第一个节点名。
node2string最近公共祖先查询的第二个节点名。
seedinteger默认: 42随机生成树的随机种子,默认 42。
limitinteger | string默认: 20列表预览默认 20,正整数最多 200。all 对普通列表可扩大输出,但拓扑序、反链、collider/v-structure 枚举仍保留 200 条硬上限。

返回:按方法返回 edges/total_weight、ancestor、items、path、value、antichains 或 structures。汇聚结构结果含 count_is_exact;count=null 表示未得到精确总数。

  • 生成树使用连通无向视图;LCA 需 node1/node2,支配关系需 source。DAG 最长路按 weight 计算,拓扑相关方法要求 DAG。is_aperiodic 要求非空强连通有向图;v_structures 排除两个前驱之间已有连接的情形。
  • 当前普通图入口不支持多重图,返回 UNSUPPORTED_MULTIGRAPH_OPERATION;大图同名算子有独立能力约束。

匹配、边覆盖与着色matching_coloring_analysis

在无向视图上计算权重匹配、极大匹配、最小边覆盖与着色,或校验给定边集是否构成匹配。

参数与返回值 6 项参数说明
参数类型与可选值说明
method必填string
max_weight_matching min_weight_matching maximal_matching min_edge_cover is_matching greedy_color equitable_color
选择本工具支持的方法;不同方法的前提和附加必填参数见下文。
edgesarrayis_matching 待校验边集,使用二元数组或 {from,to} 对象,端点为真实节点名。
maxcardinalityboolean默认: false最大权匹配是否先最大化匹配边数,再优化权重;默认 false。
strategystring默认: "largest_first"greedy_color 使用的 NetworkX 策略名称,默认 largest_first。
num_colorsintegerequitable_color 必填颜色数;运行时要求大于图的最大度。
limitinteger | string默认: 20列表预览默认 20,正整数最多 200。all 对普通列表可扩大输出,但拓扑序、反链、collider/v-structure 枚举仍保留 200 条硬上限。

返回:返回 matching 或 edges 及 size/total_weight,匹配校验返回 value,着色返回 coloring 与 num_colors;列表可截断。

  • 极大匹配是不能再加入边的匹配,不保证边数最大。最小边覆盖拒绝孤立节点;equitable_color 需要 num_colors 大于最大度。greedy_color 的结果依赖策略,不承诺最少颜色。
  • 当前普通图入口不支持多重图,返回 UNSUPPORTED_MULTIGRAPH_OPERATION;大图同名算子有独立能力约束。

扩展距离与结构指标distance_measures

计算中心、边缘、离心率、Wiener 指数、效率、邻居度、富俱乐部系数、互惠性、流层级、重心、Estrada 指数或围长。

参数与返回值 2 项参数说明
参数类型与可选值说明
metric必填string
center periphery eccentricity wiener_index global_efficiency local_efficiency average_neighbor_degree average_degree_connectivity rich_club_coefficient reciprocity flow_hierarchy barycenter estrada_index girth
选择度量指标,注意其方向、权重和连通分量范围。
limitinteger | string默认: 20列表预览默认 20,正整数最多 200。all 对普通列表可扩大输出,但拓扑序、反链、collider/v-structure 枚举仍保留 200 条硬上限。

返回:标量返回 value;节点集合返回 nodes/count,映射返回 values/count,并附适用的 truncated。无环图 girth 返回 value=null、acyclic=true。

  • 中心、边缘、离心率、Wiener 指数和重心使用最大无向连通分量;其中重心按 weight,其他四项无权。效率使用无权无向视图,富俱乐部系数 normalized=false。flow_hierarchy 要求有向图并使用权重。
  • 当前普通图入口不支持多重图,返回 UNSUPPORTED_MULTIGRAPH_OPERATION;大图同名算子有独立能力约束。

#中心性与全局统计

中心性回答节点为何重要,整体指标描述图的形态。度中心性、介数中心性、PageRank 和接近中心性使用不同定义,分值不应直接横向比较。有向图、平行关系、零或负权重会影响可用方法,详细条件见图算法指南。

计算节点中心性node_centrality

从连接数、最短路桥接、随机游走、特征向量、传播和投票等角度评估节点重要性。

参数与返回值 2 项参数说明
参数类型与可选值说明
centrality_typestring
degree betweenness closeness pagerank eigenvector harmonic katz load voterank percolation
默认: "degree"
选择度、介数、接近、PageRank、特征向量、调和、Katz、负载、VoteRank 或渗流中心性。
limitinteger | string默认: 20结果预览上限,数值最多 200;all 请求完整结果,可能显著增加返回量或枚举成本。

返回:返回 centrality_type、total_nodes、value_stats、top_nodes、bottom_nodes 和 truncated。

  • 多重图中 PageRank/eigenvector/Katz 使用平行权重求和;betweenness/closeness/harmonic/load 使用最小距离。voterank/percolation 尚未支持多重图。
  • 属性/多重图的距离权重须非负;betweenness 与 load 还要求严格正权重。迭代中心性可能因数值或收敛条件失败。

分析度分布degree_analysis

分析图的入度、出度或总度分布,识别高连接节点、低连接节点与孤立节点。

参数与返回值 2 项参数说明
参数类型与可选值说明
nodestringNebula 主存储下指定节点时直接查询该节点度,避免物化全图;本地路径仍进行图级度分析。
limitinteger | string默认: 20结果预览上限,数值最多 200;all 请求完整结果,可能显著增加返回量或枚举成本。

返回:返回度统计、分布与高低度节点预览;Nebula 指定 node 时直接返回该节点的度。

计算全局指标global_metrics

计算密度、直径、半径、全局聚类系数(传递性)、平均聚类系数或度同配系数等整体指标。

参数与返回值 1 项参数说明
参数类型与可选值说明
metric必填string
density diameter radius transitivity average_clustering degree_assortativity
选择密度、直径、半径、全局聚类系数(传递性)、平均聚类系数或度同配系数。

返回:返回 metric、value 与 defined。直径/半径使用最大无向连通分量的无权距离;非有限值表示为 value=null、defined=false。度同配系数无定义时还附原因码和说明。

  • density 保留原图方向语义;diameter/radius 在最大无向分量计算。多重图仅显式支持 density、diameter、radius。

#社区、子图与结构预测

社区发现形成节点分组,子图提取选择结构范围,结构链接预测对尚不存在的边打分。社区编号只是一次计算的分区标记。subgraph_extraction 默认会创建活动版本,若只想查看结果,应明确设置 create_version=false。

发现社区community_detection

在无向计算视图上识别连接紧密的节点群,比较社区大小与模块度。

参数与返回值 4 项参数说明
参数类型与可选值说明
algorithmstring
louvain greedy_modularity label_propagation leiden girvan_newman asyn_fluidc label_propagation_asyn
默认: "louvain"
选择 Louvain、贪心模块度、同步/异步标签传播、Leiden、Girvan–Newman 或流体社区。
limitinteger | string默认: 5结果预览上限,数值最多 200;all 请求完整结果,可能显著增加返回量或枚举成本。
focus_nodesarray最多 200 个真实节点名,查询它们在本次社区划分中的归属;未知名称列入 missing_focus_nodes。
max_iterationsinteger默认: 5范围 1–500,默认 5;仅供大图加权同步标签传播使用,普通 NetworkX 社区算法不使用此参数。

返回:返回算法名、社区总数、模块度、社区规模与节点预览,附 communities_truncated。

  • Leiden 依赖不可用或计算失败时回退 Louvain。Girvan–Newman 取第一次拆分;asyn_fluidc 在非连通图上只处理最大分量。
  • 多重图仅支持 louvain 与 greedy_modularity,以无向平行权重求和视图计算;每个社区内部节点仍是预览。

提取子图subgraph_extraction

提取 ego 邻域、核、truss、corona 或指定节点诱导子图,可预览或发布为活动图版本。

参数与返回值 10 项参数说明
参数类型与可选值说明
method必填string
ego_graph k_core k_truss k_corona node_subset
ego_graph 为 k 跳邻域;k_core 为最小核内度 k;k_truss 要求每边参与至少 k−2 个三角形;k_corona 选核内度恰为 k 的节点;node_subset 为指定节点诱导子图。
nodestringego_graph 的中心节点;其他模式无需填写。
kinteger默认: 2ego_graph 的半径,或 k_core/k_truss/k_corona 的阈值;k_truss 要求 k≥2。
nodesarray用于 node_subset 的精确节点名称数组。
create_versionboolean默认: truetrue 创建并切换到子图版本;false 仅返回预览,保持活动图不变。
descriptionstring新子图版本说明,仅 create_version=true 时保存。
directionstring
out in both
默认: "out"
Nebula ego_graph 的遍历方向;本地邻域提取遵循相应图算法语义。
max_nodesintegerNebula 子图物化的节点数量上限,防止无界读取。
max_edgesintegerNebula 子图物化的边数量上限。
limitinteger | string默认: 20结果预览上限,数值最多 200;all 请求完整结果,可能显著增加返回量或枚举成本。

返回:返回子图规模、节点与边预览;create_version=true 时还返回新图版本并切换活动图。

  • create_version 默认 true。仅想检查局部结构时传 false;活动图切换后,后续工具使用新的子图。
  • 多重图显式支持 ego_graph 与 node_subset;核、truss 与 corona 不在已支持的多重图选项内。

计算结构链接预测分数link_prediction_score

用邻域相似度和节点度构造无需训练的候选边评分;可评估单个节点对或对全图非边排序。

参数与返回值 4 项参数说明
参数类型与可选值说明
method必填string
jaccard adamic_adar resource_allocation preferential_attachment
jaccard 为共同邻居/邻居并集;adamic_adar 按共同邻居度的对数倒数加权;resource_allocation 使用度倒数;preferential_attachment 使用两节点度乘积。
sourcestring与 target 同时提供时,仅计算此节点对;都不提供时对非边候选排序。
targetstring与 source 成对使用,指定要评估的另一端节点。
top_kinteger默认: 10全图非边评分返回数,默认 10,实际限制为 1–20。

返回:返回指定节点对的得分,或按分数排序的前 top_k 个候选关系。

  • 使用无向邻域。全图候选评分仍需扫描非边,top_k 只限制保留的结果;多重图不支持。

#文档索引与上下文检索

文档索引与图实体索引独立管理。upload_document 将文本分块并保存索引,retrieve_context 返回相关片段用于解释分析结果。片段相关性不等于图关系已经成立,也不会自动补充当前图中的节点或边。

建立文档索引upload_document

将直接文档内容或当前会话上传文件加入文档检索索引,用于后续获取背景证据。

参数与返回值 2 项参数说明
参数类型与可选值说明
filenamestring会话上传文件名;直接传 content 时可用作来源标识。
contentstring直接提供的文档文本;未提供时从 filename 对应的会话上传文件读取。

返回:返回文档标识、分块数量与检索模式等索引结果。

  • 文档索引属于当前会话。切换嵌入服务的向量维度可能需要重新索引现有文档。

检索上下文片段retrieve_context

从当前会话的文档索引检索与查询相关的片段,为图分析解释提供上下文。

参数与返回值 2 项参数说明
参数类型与可选值说明
query必填string待检索的自然语言描述、名称或文本片段。
top_kinteger默认: 5返回的候选或相关结果数量。

返回:返回相关片段、文档与分块标识、分数及检索模式。

#可视化与分析报告

先得到真实分析结果,再生成视图或报告。可视化负责裁剪和呈现图结构;报告工具组织调用方提供的结果,不会自动重跑所有分析。显示节点数、社区预览和高亮范围应与算法结果的计算范围分别解释。

生成图视图visualize_subgraph

把全图或指定节点子图转换为可交互的节点与边视图,可叠加社区分组和节点、路径、子图高亮。

参数与返回值 4 项参数说明
参数类型与可选值说明
node_namesarray可视化的节点名称数组;省略或为空时从全图生成视图。
include_communityboolean默认: true是否为视图附加社区信息。
max_nodesinteger默认: 800节点展示上限,目录默认 800;超量时使用确定性的概览选择。引擎省略值可通过 VISUALIZE_MAX_NODES 配置。
highlightsobject高亮对象,可含 nodes、paths、subgraphs。节点组使用 ids,路径使用 node_sequence,子图使用 nodes;各组可设 color 与 label。

返回:返回 nodes、edges 及可选社区与高亮信息;受限视图附 truncated 等字段,活动图不变。

  • 概览综合高亮、节点类型、社区代表、高度数节点和连接路径;边上限由 VISUALIZE_MAX_EDGES 控制,默认 2,000。检查 truncated、total_nodes/total_edges、overview.required_nodes_truncated;过多高亮也可能截断。图指标应来自分析工具。

生成分析报告create_analysis_report

将已有图分析结果组织为报告规格,包括摘要、图表、表格和规则化文字洞察。

参数与返回值 8 项参数说明
参数类型与可选值说明
report_intent必填string
overview analysis diagnosis comparison custom
默认: "analysis"
报告目的:overview 总览、analysis 分析、diagnosis 诊断、comparison 对比、custom 自定义。
analysis_goal必填string用户的分析目标,或智能体对任务目标的准确归纳。
titlestring报告标题。
source_results必填object以工具名为键组织真实分析结果,例如 get_graph_info、degree_analysis、node_centrality。
optionsobject报告展示配置:top_k 控制图表与表格上限,include_narrative 控制文字洞察,max_sections 限制章节数。
options.top_kinteger默认: 10图表和表格中展示的项目上限。
options.include_narrativeboolean默认: true是否生成基于结果的规则化文字洞察。
options.max_sectionsinteger默认: 6报告章节数量上限。

返回:返回报告结构与展示数据;所有统计必须来自 source_results、当前图或用户明确提供的数据。

  • 报告工具由 MCP_ENABLE_REPORTING_TOOLS 控制,默认启用;设为 0、false、no 或 off 时不向智能体注册。
  • 返回 analysis_report.v2 结构以供界面展示,不自动写入 Markdown/PDF 或 Derived。需要可下载文件时,在 Runtime 的 Ephemeral 工作区生成内容,再用 workspace_publish(path=..., name=...) 发布;name 应带正确扩展名。

#图机器学习

训练前确认任务、输入特征、标签与数据划分。单图上的节点分类和链接预测与多图分类使用不同数据绑定;模型 ID 来自实际完成的训练作业。下面列出工具契约,图学习指南进一步解释损失函数、训练循环和推理结构。

加载图分类数据集load_graph_classification_dataset

加载会话中上传的 HIV 或 PCBA 多图 PT 文件,并绑定为图分类训练和推理数据集。

参数与返回值 2 项参数说明
参数类型与可选值说明
filename必填string当前会话已注册的上传文件名。
dataset_profilestring
auto hiv pcba
默认: "auto"
auto 从数据识别契约;hiv 与 pcba 显式选择支持的多图分类数据集格式。

返回:返回数据集标识、profile、图数量、标签与划分信息;MCP 调用以后台任务处理加载。

  • 使用数据集固定契约、划分与指标。将其中一张图加载为活动图不会把多图分类问题变为单图训练数据。

加载单张分类样本图load_graph_classification_graph

从已绑定的图分类数据集中选取一张图,载入活动单图供结构分析与可视化。

参数与返回值 2 项参数说明
参数类型与可选值说明
graph_index必填integer图分类数据集中的零基图索引,范围为 0 到 num_graphs−1。
dataset_idstring可选指定已绑定图分类数据集;省略时使用当前会话的默认绑定。

返回:返回 graph_version、单图规模、split、graph_label、预览与分析就绪状态。

查看模型结构visualize_model_architecture

读取已训练模型的元数据,生成层级结构摘要与 Mermaid 模型图。

参数与返回值 1 项参数说明
参数类型与可选值说明
model_id必填string当前会话可访问的已训练模型 ID。

返回:返回模型结构图、层级摘要和关键超参数。

训练图模型train

训练节点分类、链接预测、图分类或预训练模型;数据配置、训练超参数与算法结构分别传入。

参数与返回值 44 项参数说明
参数类型与可选值说明
task必填string
node_classification link_prediction graph_classification pretrain
选择节点分类、链接预测、图分类或预训练任务。
modelstring骨干网络名称:APPNP / GCN / GAT / GATV2 / GEN / GIN / SAGE / TRANSFORMER。三个监督任务和 GNN 预训练必填,Node2Vec 不要求。
methodstringpretrain 必填:node2vec 或 contrastive_learning、graph_contrastive_learning、mask_autoencoding、graph_mask_autoencoding;后四项共享 GNN 边重构实现。
graph_versioninteger校验当前活动单图的版本,不会自动加载历史版本;省略时使用活动图。图分类不接受此字段。
upstream_model_idstring上游已训练模型标识;使用嵌入向量特征时必须提供。
dataobject训练数据对象:特征来源、目标节点或边子集,以及图分类数据集 ID。
train_configobject训练轮数、学习率、划分比例、随机种子和早停等训练设置。
algo_configobject模型结构和设备配置;Node2Vec 预训练可传随机游走与负采样设置。
data.feature_sourcestring
graph embedding
默认: "graph"
graph 使用 node_feat 或回退结构特征;embedding 按名称读取上游 embedding.npy,必须提供 upstream_model_id。图分类只接受 graph。
data.target_nodesarray限定节点分类的监督候选范围,使用真实节点名;仍需标签及训练/验证掩码或划分,不只表示训练集。
data.target_edgesarray链接预测正样本子集,每项必须是两个节点名称组成的数组。
data.dataset_idstring图分类数据集 ID;省略则使用会话中已加载的默认数据集。
train_config.splitobject单图任务的训练/验证比例对象。图分类沿用数据集固定划分,不接受自定义 split。
train_config.split.trainnumber默认: 0.8训练集比例,默认 0.8。
train_config.split.valnumber默认: 0.2验证集比例,默认 0.2。
train_config.split.testnumber兼容旧请求的比例字段;当前训练流程不使用此自定义 test 划分。
train_config.epochsinteger默认: 200训练轮数。
train_config.lrnumber默认: 0.05优化器学习率。
train_config.weight_decaynumber默认: 0优化器权重衰减系数。
train_config.seedinteger默认: 42训练随机种子。
train_config.early_stop_patienceinteger默认: 0监督任务连续多少轮没有足够提升时早停;0 关闭,负数不合法。预训练忽略早停选项。
train_config.early_stop_min_deltanumber默认: 0计为提升所需的最小指标增量。
train_config.batch_sizeinteger默认: 64图分类 小批次 的图数量;单图任务忽略此参数。
train_config.num_workersinteger默认: 0图分类 DataLoader 的数据加载进程数,默认 0。
algo_config.devicestring
auto cpu cuda
默认: "auto"
auto 自动选择可用设备;cpu 或 cuda 显式指定计算设备。
algo_config.hidden_diminteger默认: 64GNN 隐藏表示维度。
algo_config.node_embedding_diminteger默认: 64图分类中节点类别嵌入向量的维度。
algo_config.embedding_diminteger默认: 64节点输出向量维度。目录标注默认 64;实际未传该项时,GNN 跟随 hidden_dim,Node2Vec 使用 128。建议显式填写。
algo_config.num_layersinteger默认: 2GNN 层数,至少 2 层。
algo_config.dropoutnumber默认: 0.2训练时的 dropout 比例。
algo_config.gat_headsinteger默认: 2GAT、GATV2 和 TRANSFORMER 的注意力头数,默认 2,使用 concat=False。
algo_config.use_residual_connectionboolean默认: false是否启用层内残差连接;维度不同时使用线性投影。
algo_config.use_normalizationboolean默认: false是否在每个 GNN 层启用归一化。
algo_config.norm_posstring
pre post
默认: "post"
pre 在卷积前归一化;post 在卷积或残差之后归一化。
algo_config.norm_typestring
rms_norm layer_norm batch_norm
默认: "layer_norm"
选择 RMSNorm、LayerNorm 或 BatchNorm。
algo_config.walk_lengthinteger默认: 20Node2Vec 随机游走长度。
algo_config.context_sizeinteger默认: 10Node2Vec 的上下文窗口长度。
algo_config.walks_per_nodeinteger默认: 10Node2Vec 每个节点发起的随机游走数。
algo_config.num_negative_samplesinteger默认: 1Node2Vec 的负样本数量。
algo_config.batch_sizeinteger默认: 128Node2Vec 采样加载器的批大小。
algo_config.pnumber默认: 1Node2Vec 返回偏置参数 p。
algo_config.qnumber默认: 1Node2Vec 向外探索偏置参数 q。
algo_config.appnp_kinteger默认: 10APPNP 传播迭代次数,至少 1,默认 10。
algo_config.appnp_alphanumber默认: 0.1APPNP 返回初始预测的比例,0 < alpha ≤ 1,默认 0.1。

返回:MCP 返回任务句柄;完成后结果包含模型标识、训练状态与指标或错误。模型产物绑定相应会话与训练数据身份。

  • 图分类必须先加载数据集,并使用固定 split/metric。feature_source=embedding 必须提供 upstream_model_id;训练前检查数据就绪状态。
  • 嵌套参数用点号展示路径,实际请求仍按 data、train_config、algo_config 对象发送。MCP 自动处理训练的后台任务标记。
  • MCP 层可以返回后台句柄;原生运行时的 GraphMCPTools 会监控任务并将最终结果交回主智能体。
  • 缺少 node_feat 的单图使用归一化入度、出度、总度与常数特征,原始业务字段不会自动编码。GNN 预训练无独立掩码/增广实现,也不执行早停;Node2Vec 固定 CPU,默认嵌入维度 128,忽略 weight_decay 和早停。

执行模型推理infer

使用已保存模型执行推理。任务类型由模型元数据确定,query 指定节点、节点对、候选目标或图索引。

参数与返回值 25 项参数说明
参数类型与可选值说明
model_id必填string当前会话可访问的已训练模型 ID。
graph_versioninteger推理使用的图版本;模型与图版本不一致时默认拒绝,除非显式允许。
queryobjectnodes 选节点,edges 为节点名二元数组,source_node/candidate_nodes 做候选排序,graph_indices 选图,split 选划分。省略时:节点分类返回评估和样例,链接预测搜索非边候选,图分类读取 test,预训练返回已保存向量的前若干项。
infer_configobject推理设备、阈值、批大小、分页与任务专属输出设置。
query.nodesarray节点分类或嵌入向量查询的精确节点名称列表。
query.splitstring
train val test
按 train、val 或 test 划分选择节点或图。
query.graph_indicesarray图分类数据集中的零基图索引数组。
query.edgesarray链接预测节点对列表,例如 [["A","B"],["A","C"]];不接受 source/target 对象。
query.source_nodestring按一个起点执行链接预测。
query.candidate_nodesarray该起点的候选终点名称列表。
query.topkinteger默认: 10保留得分最高的候选数量。
infer_config.return_probboolean默认: true是否在预测结果中包含概率。
infer_config.batch_sizeinteger默认: 128图分类推理的 小批次 大小。
infer_config.devicestring
auto cpu cuda
默认: "auto"
图分类推理的设备选择:auto/cpu/cuda;节点分类与链接预测当前自动选设备,预训练只读保存的向量。
infer_config.thresholdnumber默认: 0.5图分类二分类阈值,范围 0–1。
infer_config.top_k_tasksinteger默认: 5每张 PCBA 图返回概率最高的任务数量。
infer_config.return_all_task_probsboolean默认: false为 PCBA 返回完整 128 维概率、预测与真实标签数组。
infer_config.allow_version_mismatchboolean默认: false显式允许模型训练图版本与推理图版本不同;默认关闭。
infer_config.sample_sizeinteger默认: 20节点分类在空 query 下返回的随机预测样例数。
infer_config.sample_seedinteger默认: 42预测样例抽样使用的随机种子。
infer_config.result_limitinteger默认: 20预测明细分页上限;不把全体评估指标限制为这一页。
infer_config.result_offsetinteger默认: 0预测明细的零基分页偏移。
infer_config.topkinteger默认: 20保留得分最高的候选数量。
infer_config.max_candidate_pairsinteger默认: 200000空 query 链接预测最多保留和评分的非边候选数,默认 200,000;生成阶段仍可能遍历全部节点对,大图建议显式提供候选。
infer_config.limitinteger默认: 200预训练向量查询未指定 nodes 时的返回条数上限。

返回:监督任务返回预测明细与相应评估,分页不缩小评估集合;预训练返回 embeddings 数组,每项包含 node 与 embedding。PCBA 默认只展示少量高概率任务。

  • edges 必须是二元数组列表。预测分页不应被解读为评估只覆盖这一页;PCBA 默认返回少量高概率任务。
  • 预训练推理不对新图执行 GNN,只查询训练时保存的 embedding.npy。链接预测的内积解码器对称,候选中可有已存在边,需检查 exists_in_graph。节点分类 query.split 读取原图掩码,不是训练时未保存的随机划分。

#后台任务与图存储

job_id 用于查询已提交的作业,进度游标用于增量读取日志,最终结果来自完成状态下的 job.result。Nebula 专用工具用于存储与原生查询诊断;普通图分析仍优先使用统一工具入口,并阅读物化范围与查询限制。

查询后台作业get_job_status

读取属于当前用户与会话的后台任务状态,并按游标获取训练或构图进度。

参数与返回值 3 项参数说明
参数类型与可选值说明
job_id必填string提交后台工作后返回的真实任务 ID,必须属于当前用户与会话。
after_seqinteger仅获取此序号之后的持久化进度事件;首轮从 0 开始。
progress_limitinteger单次读取的进度事件上限,范围 1–1000;服务端未提供时使用 200。

返回:返回 success、job 和 progress_updates。普通作业 job 含状态、进度、detail 与最终 result;大图 job 含 stage、summary、artifact_id 等持久化状态,完整结果摘要使用 get_job_result 读取。

  • 普通作业传 after_seq 可按游标读取进度;省略时消费待推送进度。大图作业 progress_updates 为空。普通完成结果可从 job.result 或 get_job_result 读取,大图完成结果使用 get_job_result;两者均需检查终态与业务 success。

取消后台作业cancel_job

请求停止指定后台任务及受控执行中的关联子任务。

参数与返回值 1 项参数说明
参数类型与可选值说明
job_id必填string提交后台工作后返回的真实任务 ID,必须属于当前用户与会话。

返回:返回 success 与 job_id,表示取消请求是否被接受;随后用 get_job_status 确认终态。请求成功不能单独证明计算已退出。

  • 取消请求与计算停止分开确认。排队任务不会启动实际计算,运行任务要等待 worker 停止和资源回收。

检查 NebulaGraph 状态nebula_status

检查 NebulaGraph 配置、连接及当前图的存储或同步状态。

参数与返回值 0 项参数说明

无业务参数;身份与会话由运行时注入。

返回:返回 Nebula 可用性、连接与图存储状态信息。

同步图到 NebulaGraphnebula_sync_graph

将当前会话图同步到 NebulaGraph,供图数据库中的查询和后续使用。

参数与返回值 0 项参数说明

无业务参数;身份与会话由运行时注入。

返回:同步可返回后台 job_id;通过任务状态读取最终同步结果及图版本相关信息。

  • 需先配置可用的 Nebula 服务。智能体查询节点与路径通常使用 get_node_info、get_neighbors、shortest_path 这些统一入口。

查询 NebulaGraph 节点nebula_get_node_info

直接读取 NebulaGraph 中的节点信息;依据会话使用主存储路径或已同步图路径。

参数与返回值 1 项参数说明
参数类型与可选值说明
node_name必填string当前图中的精确节点名称。

返回:返回 Nebula 节点、属性与连接相关信息;未加载或未同步图时返回相应存储错误。

  • 这是后端专用入口。希望由引擎按当前存储选择路径时,可使用 get_node_info。

查询 NebulaGraph 邻居nebula_get_neighbors

直接在 NebulaGraph 查询指定方向的一跳邻居,用于数据库遍历与存储侧诊断。

参数与返回值 3 项参数说明
参数类型与可选值说明
node_name必填string当前图中的精确节点名称。
directionstring
out in both
默认: "out"
out 沿出边,in 沿入边,both 双向遍历。
limitinteger默认: 20邻居返回上限,服务端限制为 1–200,默认 20。

返回:返回 Nebula 邻居列表与遍历信息,结果数受 limit 限制。

  • 统一的 get_neighbors 同样可路由 Nebula 主存储。两者查询目的相同时无需重复调用。

查询 NebulaGraph 最短路径nebula_shortest_path

通过 Nebula 原生查询在指定方向与最大跳数内寻找最短路径,按跳数解释最短。

参数与返回值 4 项参数说明
参数类型与可选值说明
source必填string精确起点节点名称。
target必填string精确终点节点名称。
directionstring
out in both
默认: "out"
out 沿出边,in 沿入边,both 双向遍历。
max_stepsinteger默认: 10原生路径查询的最大跳数,服务端限制为 1–20,默认 10。

返回:返回有界路径查询结果、节点序列与遍历信息;边界内没有路径不证明整个图不可达。

  • 没有 use_weight 参数,不用于最小加权代价。需要统一入口时使用 shortest_path;Nebula 原生路径对应 use_weight=false。

读取后台作业结果get_job_result

读取普通或大图后台作业的状态与结果;大图结果保持为摘要、预览和文件引用。

参数与返回值 1 项参数说明
参数类型与可选值说明
job_id必填string提交后台任务后返回的真实作业 ID,属于当前用户和会话。

返回:外层返回 success 与 result。普通终态的 result 含 job_id、status、result、error;大图 result 含 status、graph_id、graph_version、summary、preview、artifact_id、error 等。

  • queued/running 的 success=true 仅表示作业查找成功。确认 status=done 后再检查内层业务结果;failed/cancelled 返回 success=false。未知或无权访问的作业不会返回结果。

#构图成果与图优化

这些公开工具管理已经保存的构图成果,与构图子智能体内部的候选变换工具分开。读取完整图与 revision 后,预览用户提出的修改,获得确认再提交同一批操作;保存后显式加载最新构图版本,才能让后续会话分析使用它。

查看构图能力get_graph_construction_capabilities

查询构图入口对 SQL、CSV、TXT 的算法可用性,以及保存图支持的优化规则。

参数与返回值 0 项参数说明

无业务参数;身份与会话由运行时注入。

返回:返回 source_type 对应能力与优化规则;未注册算法显示 algorithm_unavailable。

  • 初次源文件构图由数据集面板发起。算法不可用时报告能力状态,不将旧文本抽取结果冒充技能构图成果。

查询构图状态get_graph_construction_status

读取一个已保存数据集的构图状态、修订号和规模,判断能否直接复用构图结果。

参数与返回值 1 项参数说明
参数类型与可选值说明
dataset_id必填string当前用户可访问的真实数据集 ID,从数据集列表或会话数据状态读取。

返回:返回 status、revision、source_type 和规模。只有 ready 表示已保存图可用。

读取保存的属性图get_constructed_graph

读取构图数据集保存的完整属性图与 revision,为检查真实 ID 和规划修改提供依据。

参数与返回值 1 项参数说明
参数类型与可选值说明
dataset_id必填string当前用户可访问的真实数据集 ID,从数据集列表或会话数据状态读取。

返回:graph 包含 directed、nodes(id,type,properties) 与 edges(id,source,target,type,properties),并返回修订信息。

  • 先读取图再引用元素 ID。这里的 revision 属于保存数据集,与会话 graph_version 是不同的版本空间。

加载构图成果load_constructed_graph

将数据集已保存的构图版本加载到当前会话,接入现有分析、可视化与学习工具。

参数与返回值 1 项参数说明
参数类型与可选值说明
dataset_id必填string当前用户可访问的真实数据集 ID,从数据集列表或会话数据状态读取。

返回:返回加载状态、会话图版本和数据集绑定;替换活动图,不重新运行构图。

  • 加载后用 get_graph_info 检查分析语义与特征;使用 visualize_subgraph 展示结果。

预览图修改preview_graph_optimization

基于已读取的 revision 预览一批保存图修改,查看元素、属性与规模变化,不写入数据集。

参数与返回值 17 项参数说明
参数类型与可选值说明
dataset_id必填string当前用户可访问的真实数据集 ID,从数据集列表或会话数据状态读取。
base_revision必填integer读取保存图或预览时得到的 revision,必须至少为 1。
operations必填array按顺序执行的非空操作数组。每项必须含 op;可选 collapse_node、node_property_to_edge、extract_property_node、delete、reverse_edges、rename_type。
operations[].op必填string
collapse_node node_property_to_edge extract_property_node delete reverse_edges rename_type
操作类型,决定本项需要的 ID、属性名与类型名。
operations[].node_idstringcollapse_node 或 node_property_to_edge 使用的真实节点 ID。
operations[].node_idsarrayextract_property_node 使用的真实节点 ID 数组。
operations[].edge_idsarray要迁移属性或反转方向的真实关系 ID 数组。
operations[].idsarraydelete 操作要处理的节点或边 ID,由 target 决定类型。
operations[].propertystring目标属性名称;delete 设置此字段时删除属性而非整个元素。
operations[].target_propertystring迁移到关系上的属性名称;省略时使用规则默认名称。
operations[].remove_from_nodeboolean是否同时从原节点删除已迁移属性;应显式表达所需行为。
operations[].node_typestring提取属性节点时使用的节点类型名。
operations[].edge_typestring新建或转换关系时使用的边类型名。
operations[].targetstring
node edge
指定 node 或 edge,适用于 delete 与 rename_type。
operations[].cascadeboolean删除节点时是否连带删除关联关系;按预览结果明确选择。
operations[].old_typestringrename_type 要匹配的现有类型名。
operations[].new_typestringrename_type 保存的新类型名。

返回:返回预览图与 diff,用于确认受影响节点、关系和属性;保存状态与 revision 不变。

  • operations[].op 为每项必需字段,其余字段由具体操作决定;先用 get_constructed_graph 取得真实节点、关系与属性名。

提交图修改commit_graph_optimization

保存已经预览并获得用户确认的同一批图优化操作,产生新的数据集 revision。

参数与返回值 17 项参数说明
参数类型与可选值说明
dataset_id必填string当前用户可访问的真实数据集 ID,从数据集列表或会话数据状态读取。
base_revision必填integer读取保存图或预览时得到的 revision,必须至少为 1。
operations必填array按顺序执行的非空操作数组。每项必须含 op;可选 collapse_node、node_property_to_edge、extract_property_node、delete、reverse_edges、rename_type。
operations[].op必填string
collapse_node node_property_to_edge extract_property_node delete reverse_edges rename_type
操作类型,决定本项需要的 ID、属性名与类型名。
operations[].node_idstringcollapse_node 或 node_property_to_edge 使用的真实节点 ID。
operations[].node_idsarrayextract_property_node 使用的真实节点 ID 数组。
operations[].edge_idsarray要迁移属性或反转方向的真实关系 ID 数组。
operations[].idsarraydelete 操作要处理的节点或边 ID,由 target 决定类型。
operations[].propertystring目标属性名称;delete 设置此字段时删除属性而非整个元素。
operations[].target_propertystring迁移到关系上的属性名称;省略时使用规则默认名称。
operations[].remove_from_nodeboolean是否同时从原节点删除已迁移属性;应显式表达所需行为。
operations[].node_typestring提取属性节点时使用的节点类型名。
operations[].edge_typestring新建或转换关系时使用的边类型名。
operations[].targetstring
node edge
指定 node 或 edge,适用于 delete 与 rename_type。
operations[].cascadeboolean删除节点时是否连带删除关联关系;按预览结果明确选择。
operations[].old_typestringrename_type 要匹配的现有类型名。
operations[].new_typestringrename_type 保存的新类型名。

返回:返回提交结果与新 revision。版本冲突需重新读取并预览;之后调用 load_constructed_graph 更新活动会话。

  • 必须保持与预览相同的 base_revision 和 operations,并完成用户确认。remove_from_node 与 cascade 应明确填写预期行为。

#MCP 会话管理接口

这 3 项由 MCP Server 单独注册,不在 72 项工具目录中。原生 GraphMCPTools 没有过滤它们,工具发现可以取得其数据模式。它们操作 MCP 连接的显式会话绑定;原生 Run 通常通过身份请求头定位业务会话,由宿主服务管理生命周期。

接口参数用途与返回
register_sessionagent_session_id: string,必需;user_id: string|null,可选,默认空字符串。ctx 由 MCP 注入。将当前 MCP 连接绑定到业务会话并请求 Graph Engine 创建会话,返回注册/创建结果。ID 应取自真实宿主会话;原生按请求头定位会话时通常不需要模型另建绑定。
delete_graph_session无公开参数;ctx 由 MCP 注入。解除当前 MCP 连接的注册绑定并删除其 Graph Engine 会话。没有显式绑定时返回 success=true,不代表请求头指定的会话已删除。此接口用于会话释放。
set_session_configllm_model: string|null,必须传该字段但值可为 null;ctx 由 MCP 注入。为显式绑定的 MCP 会话设置抽图等功能使用的 LLM 模型;非空值触发更新,null 不更新。未注册连接返回 session_not_registered,不能假定请求头身份等于注册绑定。

#示例:路径分析与图视图

在可访问 Graph Engine HTTP 服务的服务端环境运行下面的 Python 示例。先通过工作台创建一个用于演示的会话并使其图会话注册完成,再设置 GRAPH_ENGINE_URL、IGRAPH_SESSION_ID、IGRAPH_USER_ID 和 IGRAPH_CONTROL_SERVICE_KEY。演示中的 load_graph 会替换该会话的活动图;后续子图调用使用 create_version=false。

示例权重表示距离或成本。图有 4 个节点、5 条有向边;A→B→C→D 的总成本为 4,优于 A→C→D 和 A→B→D 的成本 6。

python
import json
import os
import time
from urllib.request import Request, urlopen

base = os.environ["GRAPH_ENGINE_URL"].rstrip("/")
session_id = os.environ["IGRAPH_SESSION_ID"]
headers = {
    "Content-Type": "application/json",
    "X-User-ID": os.environ["IGRAPH_USER_ID"],
    "X-Session-ID": session_id,
    "X-iGraph-Service-Key": os.environ["IGRAPH_CONTROL_SERVICE_KEY"],
}

def invoke(name, arguments):
    body = json.dumps({"arguments": arguments}).encode("utf-8")
    request = Request(
        f"{base}/sessions/{session_id}/tools/{name}",
        data=body, headers=headers, method="POST",
    )
    with urlopen(request, timeout=900) as response:
        result = json.load(response)
    if result.get("success") is False:
        raise RuntimeError(result)
    return result

def call(name, arguments):
    result = invoke(name, arguments)
    while result.get("async") and result.get("job_id"):
        job_id = result["job_id"]
        while True:
            status = invoke("get_job_status", {"job_id": job_id})
            job = status["job"]
            if job["status"] == "done":
                result = job["result"]
                break
            if job["status"] in {"failed", "cancelled"}:
                raise RuntimeError(job)
            time.sleep(1)
    return result

call("load_graph", {
    "edge_text": "A B 2\nA C 5\nB C 1\nB D 4\nC D 1",
    "append": False,
})
info = call("get_graph_info", {})
path = call("shortest_path", {
    "source": "A", "target": "D", "use_weight": True,
})
assert path["path"] == ["A", "B", "C", "D"]
assert path["total_length"] == 4

preview = call("subgraph_extraction", {
    "method": "node_subset", "nodes": ["A", "B", "C"],
    "create_version": False,
})
view = call("visualize_subgraph", {
    "max_nodes": 50,
    "highlights": {"paths": [{
        "node_sequence": path["path"],
        "label": "Minimum-cost path", "color": "#356ae6",
    }]},
})
print(json.dumps({"path": path, "preview": preview, "view": view}, indent=2))
调用可验证结果
shortest_path · use_weight=truepath=[A,B,C,D],hop_count=3,total_length=4。
shortest_path · use_weight=false最少 2 跳;并列路径可能返回 A→B→D 或 A→C→D。
subgraph_extraction · create_version=false只预览 A、B、C 的诱导子图,活动图仍包含 D。
visualize_subgraph · highlights.paths在完整活动图视图中突出 A→B→C→D,不从截断视图重新计算最短路径。

若要比较多条候选路线,把 shortest_path 的 algorithm 设为 yen_k_shortest、k 设为 3;若只关心等代价最优解,使用 all_shortest_paths。需要保存子图时再明确启用 create_version,并记录返回的 graph_version。

iGraph技术文档