尧图精选

Agent 轨迹语义相似度评测:基于 Levenshtein 与 DAG 同构的路径评估

🕒 发布时间:2026/9/13 4:20:59 📁 来源:尧图网络
Agent 轨迹语义相似度评测基于 Levenshtein 与 DAG 同构的路径评估在评估一个多智能体系统Multi-Agent System或复杂 ReAct 规划器时传统的评测往往只看**“最终产物是否正确End-to-End Output Accuracy”**。然而在企业级生产环境中“结果对了但过程完全走偏”的隐形故障极度危险场景痛点用户要求“查询张三的账户余额”标准的最优执行轨迹是简单的[query_crm_balance]1 步搞定耗时 300ms但某个退化后的大模型却走了如下极其奇葩的弯路[search_google] - [query_all_users] - [python_filter] - [query_crm_balance]最终结果虽然侥幸对了但多消耗了 4 轮大模型调用、多烧了 10 倍 Token延迟从 300ms 恶化到了 6 秒如果评测系统只看终态结果这个严重的**“规划路径退化与死循环倾向Path Degradation”**将被完全掩盖。如何构建一套脱离单一终态判定、能够对 Agent 的“多步工具调用执行轨迹Execution Trajectory”进行严密拓扑与顺序度量的“轨迹语义相似度评估中枢Trajectory Evaluation Engine”一、轨迹评估的双维数学度量模型Levenshtein 距离 DAG 同构度[ 金标标准轨迹 (Golden Trajectory): S [Tool_A, Tool_B, Tool_C] ] [ 实际预测轨迹 (Actual Trajectory): T [Tool_A, Tool_X, Tool_B, Tool_C] ] │ ▼ ┌────────────────────────────────────────────────────────┐ │ 维度 1: 序列编辑距离相似度 (Levenshtein Trajectory Sim)│ │ 计算将预测序列转换为金标序列所需的 [插入/删除/替换] 步数│ │ 公式: $Sim_{seq} 1 - \frac{\text{Levenshtein}(S, T)}{\max(|S|, |T|)}$│ │ 本例: 插入了 Tool_X, 距离1, 相似度 $1 - 1/4 0.75$ │ └──────────────────────────────┬─────────────────────────┘ │ ▼ ┌────────────────────────────────────────────────────────┐ │ 维度 2: 任务有向无环图同构度 (DAG Graph Edit Distance) │ │ 计算节点依赖拓扑的因果保真度与多余冗余边判定 │ └──────────────────────────────┬─────────────────────────┘ │ ▼ ┌────────────────────────────────────────────────────────┐ │ 综合轨迹评测得分 0.6 × 序列相似度 0.4 × 拓扑同构度 │ └────────────────────────────────────────────────────────┘二、生产级 Python Agent 轨迹相似度评测引擎实现实操from typing import List, Dict, Any from pydantic import BaseModel class TrajectoryStep(BaseModel): step_index: int tool_name: str class TrajectoryEvaluationReport(BaseModel): golden_path: List[str] actual_path: List[str] levenshtein_similarity: float redundant_steps_count: int missing_steps_count: int is_optimal_trajectory: bool class AgentTrajectoryEvaluator: staticmethod def calculate_levenshtein_similarity(golden_seq: List[str], actual_seq: List[str]) - float: 计算两个工具调用序列的编辑距离相似度 (0.0 ~ 1.0) m, n len(golden_seq), len(actual_seq) if m 0 and n 0: return 1.0 if m 0 or n 0: return 0.0 # 构建 DP 动态规划矩阵 dp [[0] * (n 1) for _ in range(m 1)] for i in range(m 1): dp[i][0] i for j in range(n 1): dp[0][j] j for i in range(1, m 1): for j in range(1, n 1): if golden_seq[i - 1] actual_seq[j - 1]: dp[i][j] dp[i - 1][j - 1] else: dp[i][j] 1 min( dp[i - 1][j], # 删除 dp[i][j - 1], # 插入 dp[i - 1][j - 1] # 替换 ) edit_distance dp[m][n] max_len max(m, n) similarity 1.0 - (edit_distance / max_len) return round(similarity, 4) classmethod def evaluate_trajectory(cls, golden_tools: List[str], actual_tools: List[str]) - TrajectoryEvaluationReport: sim cls.calculate_levenshtein_similarity(golden_tools, actual_tools) # 统计多走的冤枉路 (Redundant Steps) redundant max(0, len(actual_tools) - len(golden_tools)) missing max(0, len(golden_tools) - len(actual_tools)) is_optimal (sim 1.0 and redundant 0) print(f 【轨迹评测】金标: {golden_tools} | 实际: {actual_tools}) print(f └── 轨迹语义相似度: {sim*100:.1f}% | 冗余多余步骤: {redundant} 步) return TrajectoryEvaluationReport( golden_pathgolden_tools, actual_pathactual_tools, levenshtein_similaritysim, redundant_steps_countredundant, missing_steps_countmissing, is_optimal_trajectoryis_optimal )三、在自动化测试与大模型选型中的实战应用在评测 GPT-4o、Claude 3.5 与开源 Qwen2.5 在复杂 ReAct 任务下的执行效率时golden_trajectory [query_dwd_sql, calculate_growth_rate, send_feishu_alert] # 模型 A 虽然得到了最终结果但多调了无用的搜索 model_a_actual [google_search, query_dwd_sql, calculate_growth_rate, send_feishu_alert] report AgentTrajectoryEvaluator.evaluate_trajectory(golden_trajectory, model_a_actual) # 自动捕获到多余的 google_search 冗余步骤并扣分四、生产治理收益通过在多智能体系统评测体系中推行轨迹相似度度量精准揪出“结果正确但过程极度浪费”的劣质推理路径全团队具备了定量评估大模型规划决策效率Planning Efficiency的核心标尺推动智能体系统朝着“以最少步骤、最低成本、最短延迟达成目标”的极致工程方向稳健演进。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →