ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Data-Juicer 智能体轨迹连贯性评估:agent_trace_coherence_mapper 算子深度解析

Data-Juicer 智能体轨迹连贯性评估:agent_trace_coherence_mapper 算子深度解析 人工智能大模型数据工程数据清洗数据增强数据质检【免费下载链接】data-juicerData processing for and with foundation models! ➡️ ➡️ 项目地址https://gitcode.com/gh_mirrors/da/data-juicer点击查看免费下载本文基于仓库文档 agent_trace_coherence_mapper 算子说明并结合其源码实现、单元测试与真实配置示例系统讲解 Data-Juicer 中该 LLM 评估算子的定位、参数、工作原理与实战用法。agent_trace_coherence_mapper是 Data-Juicer 中面向Agent 交互日志的 LLM 评估类 mapper 算子用于对展平后的会话轨迹text进行1–5 分的连贯性打分聚焦目标、少有偏题并将score、reason、eval_kind写入样本的meta字段。它通常与agent_dialog_normalize_mapper等算子搭配构成 Agent 数据质检流水线中“轨迹质量”维度的关键一环。读完本文你将掌握该算子的全部参数语义、底层评分流程、输出元数据格式以及如何在真实配置中启用并验证它。算子定位评估什么、在什么场景使用依据文档与源码 agent_trace_coherence_mapper.py该算子属于mapper类型标签为cpu, api, text——即纯 CPU 推理编排、依赖外部 LLM API、作用于文本字段。其核心职责是Coherence of the flattened sessiontext(goal focus, few detours). 展平后的会话text的连贯性聚焦目标少有偏题。也就是说它评判的是一整段 Agent 会话轨迹而非单轮对话是否始终围绕用户目标推进目标是否清晰、是否频繁绕路/偏题、是否在合理推进子目标。其设计灵感来自 OpenJudge 的 trajectory 风格评测源码 docstring 中注明了参考TrajectoryAccuracyGrader但 Data-Juicer 统一采用 1–5 分制并对摘录长度做了封顶截断。典型应用场景Agent 数据质量筛选在 Agent 交互日志数据集中把轨迹连贯性作为质量轴配合阈值过滤低质量样本Bad-case 归因分析将分数写入meta后可与 demos/agent 中的 bad-case 报告、洞察分析流程联动定位“偏题/兜圈子”类问题数据洞察与可视化与其他dialog_*评分轴一同构成 Agent 交互质量的量化画像。输入与输出约定输入字段算子默认读取样本的text字段由text_key指定该字段应为已展平的会话轨迹文本。最直接的来源是前置算子agent_dialog_normalize_mapper见 agent_dialog_normalize_mapper.py它会把原始messages/choices结构归一化为text、dialog_history、query、response四个字段其中text即“用户/助手交替的扁平化会话文本”可能包含工具调用摘要与工具结果。输出写入 meta 的评分对象算子为每个样本执行一次 LLM API 调用然后把结果写入meta[MetaKeys.agent_trace_coherence]即meta[agent_trace_coherence]键名定义见 constant.py。写入对象包含字段说明score1–5 的浮点分数越高效用越好reason简短理由默认英文可通过preferred_output_lang切换为简体中文最长 2000 字符eval_kind固定为agent_trace标识该评分属于轨迹评估轴特殊情况下还会写入输入为空文本{skipped: True, reason: empty_input}LLM 连续多次返回空响应{error: empty_llm_response}无法解析出合法 JSON{error: json_parse_failed, raw: raw[:8000]}以上逻辑见基类 dialog_quality_llm_base.py 的process_single。参数配置详解原文档列出的全部参数如下表下面结合源码逐一说明语义与注意事项基类实现见 dialog_quality_llm_base.pyname 参数名type 类型default 默认值desc 说明api_modelstrqwen-turbo调用的 LLM 模型名通过prepare_model(model_typeapi, ...)注册 API 模型api_endpointOptional[str]None自定义 API endpoint为空时使用api_model对应的默认服务地址response_pathOptional[str]None从 API 返回结构中提取文本的路径适配不同厂商的响应格式history_keystrdialog_history对话历史字段名本算子为轨迹评估该字段主要用于与同类算子保持一致的接口约定query_keystrquery最后一轮用户消息字段名response_keystrresponse最后一轮助手回复字段名text_keystrtext本算子实际打分的展平会话字段名max_roundNonNegativeInt8参与评估的最大对话轮数供轮级评估用本算子主要受trajectory_text_max_chars约束max_query_chars_for_promptNonNegativeInt6000单条用户消息进 prompt 的最大字符数max_response_chars_for_promptNonNegativeInt8000单条助手回复进 prompt 的最大字符数trajectory_text_max_charsNonNegativeInt12000轨迹文本进 prompt 的最大字符数超过则截断是控制该算子 token 开销的核心参数tool_types_keystragent_tool_types工具类型列表在 meta 中的键名工具相关性评估用primary_tool_keystrprimary_tool_type主要工具类型在 meta 中的键名工具相关性评估用try_numPositiveInt2API 调用的最大尝试次数某次返回空串即重试overwriteboolFalse为True时即使meta中已有该键也重新评估默认保留已有结果model_paramsOptional[Dict]None传给prepare_model的额外模型参数如密钥配置、额外 header 等sampling_paramsOptional[Dict]None采样参数未指定时默认{max_tokens: 384, temperature: 0.2}也可显式覆盖preferred_output_langstrenreason输出语言en输出英文zh或zh-CN等 zh 前缀输出简体中文JSON 键名始终为英文kwargs透传给基类 Mapper 的其它关键字参数要点解读trajectory_text_max_chars是成本与质量的平衡点轨迹越长信息越全但 token 开销越大。真实配置中常下调例如 agent_interaction_quality_analysis.yaml 中设置为10000。sampling_params默认低温度基类会setdefault(max_tokens, 384)与setdefault(temperature, 0.2)保证评分输出的稳定性配置示例中也常显式给出{ max_tokens: 320, temperature: 0.15 }。overwrite用于重复实验流水线断点续跑时若某样本meta已含agent_trace_coherence默认直接跳过避免重复烧钱需要强制重评时置True。语言参数只影响自由文本由 agent_output_locale.py 可知无论preferred_output_lang取值如何要求 LLM 输出的 JSON键名score/reason始终保持英文以利于解析仅reason的书写语言随设置切换。工作原理评分标准与提示词构造1–5 分评分标准系统提示词源码中_system_prompt()agent_trace_coherence_mapper.py定义了如下评分标准直接透传给 LLM5 分轨迹紧密贴合、清晰服务于用户目标3 分完成了任务但存在冗余或轻微偏离1 分严重偏题、原地打转或未能推进合理的子目标截断补偿规则如果摘录看起来被截断或不完整默认给出4–5 分除非看到明确的不连贯证据并在reason中说明不能仅因为信息缺失就给 3 分。这条“截断补偿”规则是该算子的关键设计由于输入是有限长度摘录LLM 不应因“看不到后续内容”而误判为低质量。用户内容构造_build_user_content()调用工具函数build_agent_trace_eval_user_content见 dialog_quality_llm_utils.py读取sample[text_key]若非字符串或空白则返回空串触发skipped分支超过max_chars即trajectory_text_max_chars时调用clip_text_for_dialog_prompt做截断并标注text truncated最终 prompt 用户块格式为### Session trace excerpt (may include tool output) 截断后的会话轨迹文本完整调用链基类process_singledialog_quality_llm_base.py的执行流程若not overwrite且meta已有目标键 → 直接返回样本构造用户块为空则写skipped拼接系统提示词 _system_prompt() JSON 输出指令dialog_score_json_instruction 语言约束子句rubric_reason_language_clause通过get_model(self.model_key, rankrank)拿到客户端最多尝试try_num次调用extract_json_object从回复中提取{...}并json.loads兼容 json 代码围栏见 dialog_quality_llm_utils.pynormalize_score_1_5将分数强制钳位到[1.0, 5.0]、reason截断到 2000 字符并写入eval_kind agent_trace写回meta[agent_trace_coherence]。值得注意该算子被同时注册到TAGGING_OPS与OPERATORS两个注册表装饰器TAGGING_OPS.register_module(OP_NAME)、OPERATORS.register_module(OP_NAME)因此既可当作普通 mapper 执行也可参与 tagging 类流程。在真实流水线中的用法与配置示例最小可运行链路Agent 轨迹评估通常的链路是agent_dialog_normalize_mapper把原始 messages 展平成text→agent_trace_coherence_mapper评分。参考 minimal_configs/06_one_dialog_mapper.yaml 的 normalize 写法project_name: agent-minimal-06 dataset_path: demos/local/demo-agent-data-content.jsonl np: 2 export_path: ./outputs/agent_minimal/06_one_dialog_mapper.jsonl text_keys: id process: - agent_dialog_normalize_mapper: messages_key: messages choices_key: response_choices text_key: text history_key: dialog_history query_key: query response_key: response extract_tool_skill_tags: true官方示例中的轨迹连贯性配置在 demos/agent/agent_interaction_quality_analysis.yaml 中该算子与dialog_coreference_mapper、dialog_topic_shift_mapper、agent_tool_relevance_mapper等一组质量轴并列配置- agent_trace_coherence_mapper: api_model: qwen-turbo preferred_output_lang: zh trajectory_text_max_chars: 10000 try_num: 2 sampling_params: { max_tokens: 320, temperature: 0.15 } text_key: text运行方式与 Data-Juicer 其它流水线一致例如通过 tools/process_data.py 执行--config指向上述 YAML 即可。输出样本的meta中会出现agent_trace_coherence: {score: x, reason: ..., eval_kind: agent_trace}后续可被llm_analysis_filter、bad-case 信号分析等下游算子消费参见 demos/agent/scripts/bad_case_signal_support.py 中对agent_trace_coherence键的引用。测试验证仓库单元测试 tests/ops/mapper/test_dialog_quality_llm.py 覆盖了该算子的核心行为test_agent_trace_coherence_mappermock LLM 客户端返回{score: 4, reason: ok}断言process_single后meta[agent_trace_coherence]的score 4.0、eval_kind agent_trace验证“评分写入 meta”的主链路test_agent_trace_skips_empty_text对text为空白字符串的样本断言 meta 中写入skipped验证空输入短路逻辑同一测试文件还验证了分数归一化normalize_score_1_5将 10 钳位为 5.0与 JSON 提取extract_json_object等底层工具函数。这些测试可在本地通过pytest tests/ops/mapper/test_dialog_quality_llm.py运行复现。实践建议与注意事项务必先做 normalizetext必须是展平的完整会话轨迹否则评分对象缺失。agent_dialog_normalize_mapper会把同一用户回合内的多段 assistant含 tool 调用摘要与 tool 结果拼接保留避免下游只见最后一段助手回复而误判“没干活/偏题”见 demos/agent/BAD_CASE_INSIGHTS_ZH.md 的说明。合理设置trajectory_text_max_chars默认 12000 字符实际项目中可依据轨迹平均长度与成本预算下调官方示例用 10000。截断不会导致误判——评分标准明确要求截断摘录偏向 4–5 分。善用overwrite与try_num断点续跑时保持overwrite: False避免重复调用网络不稳时可适当提高try_num默认 2。控制采样随机性评分类任务建议保持低temperature默认 0.2必要时显式覆盖sampling_params。语言参数若下游报告面向中文团队设preferred_output_lang: zh让reason输出简体中文JSON 键名不受影响解析逻辑无需改动。分数语义score是 1–5 的连续浮点模型输出整数也会被规范化与dialog_*各质量轴口径一致可统一用于阈值过滤与群体对比。赞分享人工智能大模型数据工程数据清洗数据增强数据质检【免费下载链接】data-juicerData processing for and with foundation models! ➡️ ➡️ 项目地址https://gitcode.com/gh_mirrors/da/data-juicer点击查看免费下载相关推荐data-juicer 人物轨迹视频描述算子 video_captioning_from_human_tracks_mapper 深度解析data juicer 人物轨迹视频描述算子 video_captioning_from_human_tracks_mapper 深度解析 本文以 data j人工智能大模型数据工程数据清洗数据增强数据质检Data-Juicer 对话话题切换质量评估dialog_topic_shift_mapper 算子深度解析与实战配置Data Juicer 对话话题切换质量评估dialog_topic_shift_mapper 算子深度解析与实战配置 导读 dialog_topic_shi人工智能大模型数据工程数据清洗数据增强数据质检探索先进轨迹评估RPG Trajectory Evaluation 深度解析探索先进轨迹评估RPG Trajectory Evaluation 深度解析 在机器人和自动驾驶领域精确、高效的轨迹规划与评估是关键技术之一。今天我们要介上一篇抖音批量下载教程无水印视频、整站主页与直播录制一份配置全部搞定下一篇Magisk Root 安装实战3 步修补 boot 分区拿最高权限OTA 升级不丢 Root创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表