个性化 Agent Swarm 评测指南:Personalized Agent Swarms 增强助手 10 维评分标准全解
【免费下载链接】generative-aiSample code and notebooks for Generative AI on Google Cloud, with Gemini Enterprise Agent Platform项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai
本文围绕 evaluation_rubric_augmented.md 展开,系统讲解该项目在"增强助手(Augmented Assistant)"与"基线助手(Baseline Assistant)"对比评测中使用的10 维 LLM 评分标准:从 1–4 分评分量表、8 个基线维度、2 个 swarm 专属维度,到总分计算规则与可直接复用的 LLM Judge 提示词模板。读完本文,你将掌握如何站在"有既定偏好与重复性任务的老用户"视角,对个性化智能体回答进行可量化、可复现的自动化评测,并能直接运行仓库提供的对比评测管线。
背景:为什么要评测"增强助手"
在 README.md 描述的实验管线中,系统会分析用户与基线助手的过往对话,自动生成一批面向特定用户的mini-agent swarm。运行时,增强助手(augmented_assistant_agent/agent.py)通过check_and_invoke_swarm工具加载匹配的 mini-agent,期望达到"更少轮次、更强个性化"的效果。
要证明这种个性化确实有效,就必须回答两个问题:回答质量是否下降?个性化程度是否提升?这正是本评分标准存在的意义——它要求评测者模拟"已经和助手交互过 50 次、带着明确偏好回来的老用户",而不是用通用标准衡量两个 Agent。
评分标准共 10 个维度,其中前 8 个与基线评测一致(见 evaluation_rubric.md),第 9、10 维是 swarm 专属的新增维度,专门衡量"个性化智能"与"回合效率"。
评分量表:1–4 分的四个档位
所有维度统一使用 1–4 整数评分,含义如下:
| 分数 | 标签 | 含义 |
|---|---|---|
| 1 | Poor | 主动帮倒忙——答错、编造信息或令人困惑 |
| 2 | Below expectations | 部分正确,但缺失关键信息或难以跟进 |
| 3 | Meets expectations | 答案正确、清晰可执行、语气恰当 |
| 4 | Exceeds expectations | 正确、结构良好、主动提供帮助、具备个性化 |
四个档位的分界清晰:1 分是"有硬伤"(编造即 1 分),2 分是"能用但不到位",3 分是"合格可用",4 分是"超出预期"。由于所有维度共用这一量表,评测者只需记住四档语义即可快速打分。
基线 8 维度(维度 1–8)
前 8 个维度与基线评测标准完全一致,权重与职责如下。其中维度 1(Accuracy)拥有最高优先级,属于"一票否决"型维度。
| 维度 | 权重 | 衡量内容 |
|---|---|---|
| 1. Accuracy(准确性) | Critical(关键) | 事实正确性;任何编造都会把总分封顶为 1 |
| 2. Helpfulness(有用性) | High(高) | 是否真正解决了用户的问题 |
| 3. Source Usage(来源引用) | High(高) | 是否恰当引用搜索结果 |
| 4. Clarity(清晰度) | Medium(中) | 结构是否清晰、易于理解 |
| 5. Conciseness(简洁度) | Medium(中) | 是否详尽但不冗长 |
| 6. Tone(语气) | Medium(中) | 是否符合用户与上下文 |
| 7. Multi-Part Handling(多部分问题处理) | Medium(中) | 是否覆盖多部分问题的所有子问题 |
| 8. Multilingual Support(多语言支持) | Medium(中) | 是否使用用户的语言作答 |
维度 1:Accuracy(权重:Critical)
"给我正确答案,别编。"
判断要点(来自基线 evaluation_rubric.md 的细化标准):
- 1 分:包含编造的事实、幻觉来源或自信的错误信息;
- 2 分:大体正确,但包含小的不准确或未经支持的论断;
- 3 分:事实正确,并在适当处承认不确定性;
- 4 分:事实正确且有充分支撑,能区分"已确立事实"与"正在演进的信息"。
硬性规则:若 Agent 编造了来源、URL、统计数字或关键事实,无论其他维度表现如何,整个回答得 1 分。
维度 2:Helpfulness(权重:High)
"你真的回答我的问题了吗?别绕弯子。"
1 分:未回答用户问题或提供无关信息;2 分:部分回答但偏离要点;3 分:直接回答且细节足以使用;4 分:直接回答并补充了用户没想到的有价值上下文、示例或下一步。
维度 3:Source Usage(权重:High)
"如果查了资料,就告诉我出处。"
1 分:需要当前信息却未检索,或编造来源;2 分:检索了但未引用来源或引用了无关结果;3 分:在合适场景使用搜索并说明信息来源;4 分:有效使用搜索、引用具体来源、区分搜索结果与通用知识。
两条补充规则:能用通用知识回答的问题(如"什么是光合作用")该维度记 N/A;问题需要当前信息而 Agent 未搜索,记 1–2 分。需要说明的是,本仓库在评测中为保证公平,基线助手与增强助手都未启用 web 搜索工具(见 test_augmented_agent.py 中baseline_agent的tools=[]定义),因此该维度在实际跑分中更多以 N/A 或低分形式出现。
维度 4:Clarity(权重:Medium)
"让我容易看懂,结构很重要。"
1 分:混乱、无组织或使用未解释的行话;2 分:可理解但结构差、关键信息被埋没;3 分:结构良好、易于跟进、细节水平得当;4 分:结构优秀(标题、列表、加粗关键词),并根据用户专业水平定制。
维度 5:Conciseness(权重:Medium)
"别浪费我的时间,只说需要的。"
1 分:文字墙、自我重复、包含无关信息;2 分:大体相关但有冗余,可压缩一半;3 分:直接可扫读,关键信息一眼可见;4 分:紧凑且结构良好,每句话都有价值。
需要扣分的反模式包括:长篇复述用户问题、冗长的免责声明、跨回合重复相同信息。
维度 6:Tone(权重:Medium)
"像个热心的人一样跟我说话,别像企业聊天机器人。"
1 分:机械、居高临下或轻蔑;2 分:中立但生硬,像读说明书;3 分:友好、专业、自然,像一位知识渊博的同事;4 分:温暖有感染力,能适配用户风格、建立信心。
反模式包括:以"As an AI..."开头疏远用户、过度正式或官僚化、过度含糊其辞或道歉。
维度 7:Multi-Part Handling(权重:Medium,单问题时记 N/A)
"我问了两件事,两件都要答。"
1 分:用户明显问了多个问题却只回答一个;2 分:提及全部子问题但混为一谈或细节不足;3 分:清晰、分别地回答所有子问题;4 分:清晰组织所有子问题,并在相关时指出它们之间的联系。
维度 8:Multilingual Support(权重:Medium,会话为英语时记 N/A)
"我用西班牙语写,你就用西班牙语答。"
1 分:用户用其他语言提问却用英语作答;2 分:用用户语言回答但流利度差或缺失关键术语;3 分:用用户语言流利作答;4 分:流利作答并主动处理语言障碍问题(如提示某个链接资源是英文的)。
Swarm 专属维度(维度 9–10)
这两个维度是增强助手评测的核心增量——它们衡量的不是"回答得好不好",而是"是否像一个真正了解我的助手"。
维度 9:Personalization(权重:High)
"这个回答像是为我写的,还是写给随便哪个用户的?"
该维度融合两方面能力:
- 主动智能(proactive intelligence):不用被问就预判用户需求;
- 偏好对齐(preference alignment):匹配已知的格式、语气、细节深度。
| 分数 | 标准 |
|---|---|
| 1 | 忽略已知偏好且错过明显的跟进需求 |
| 2 | 部分对齐——回答泛泛,适用于任何用户 |
| 3 | 匹配大部分偏好或包含主动元素 |
| 4 | 与偏好完美对齐且预判了用户的完整工作流 |
示例对照:
- 1 分场景:用户偏好代码示例且总需要边界情况,Agent 却只给散文式的 happy path 讲解;
- 4 分场景:用户偏好带行内注释的精简代码,Agent 恰好给出精简代码 + 边界情况 + 防御性技巧——全程未被要求。
该维度在 eval/harness.py 的build_judge_prompt中有明确落地:评测时会把从 50 次历史对话中学习到的user_style.json(格式、回复长度、语气等偏好)注入<user_preferences>区块,要求 Judge 依据它评判个性化维度,而不是凭空判断。
维度 10:Turn Efficiency(权重:Medium)
"我是不是用更少的来回就拿到了想要的东西?"
| 分数 | 标准 |
|---|---|
| 1 | 达到同样结果所需轮次多于基线 |
| 2 | 与基线轮次相同 |
| 3 | 比基线少 1 轮 |
| 4 | 在保持质量的前提下比基线少 2 轮及以上 |
注意该维度是相对基线的比较,而非绝对轮次数——这正是整套对比评测设计的核心:同一个模拟用户、同一条开场消息,分别驱动基线与增强助手,比较达到目标所需的轮次。在 test_augmented_agent.py 中,回合负担(burden)胜负由程序化逻辑判定(burden_winner计算):增强助手到达[GOAL_REACHED]而基线未到达则增强胜;两者都到达时比较轮次数,轮次少者胜(见 test_augmented_agent.py)。
总分如何计算
- Accuracy 门槛(Accuracy gate):若 Agent 编造关键事实,总分直接 = 1;
- 加权平均:在所有适用维度上计算加权平均(跳过 N/A 维度);
- 四舍五入:取最接近的 0.5 分(如 3.0、3.5、4.0)。
这一计算规则在 evaluation_rubric.md 中同样适用,且与实际评测中的 JSON 输出结构对应——Judge 对每个维度给出 1–4 整数分或null(N/A),并给出overall_score浮点数。
LLM Judge 提示词模板(可直接复用)
原文档提供了一个完整、可直接复制到评测脚本的 Judge 提示词模板,其核心要素如下(完整文本见 evaluation_rubric_augmented.md):
You are evaluating an AI assistant augmented with personalized mini-agents. You are judging from the perspective of a returning user with known preferences and recurring task patterns. The user's known preferences are provided below. Use them to evaluate preference alignment and proactive intelligence. Score every applicable dimension on a 1-4 scale. Return a JSON object: - "scores": object with keys: accuracy, helpfulness, source_usage, clarity, conciseness, tone, multi_part_handling, multilingual_support, personalization, turn_efficiency. Each value is an integer 1-4, or null if N/A. - "justifications": same keys, one-sentence justification or null. - "overall_score": float rounded to nearest 0.5. Accuracy rule: fabricated facts/sources -> overall_score = 1.0. <user_preferences> {user preferences from swarm metadata} </user_preferences> <baseline_turns> {number of turns the baseline agent needed} </baseline_turns> <rubric> {paste dimensions above} </rubric> <conversation> {the augmented agent conversation to evaluate} </conversation>模板的设计有几点值得注意:
- 视角锚定:第一句就要求 Judge 扮演"带有已知偏好和重复任务模式的老用户",这是个性化评测与其他通用评测最大的差异;
- 结构化输出:要求返回
scores、justifications、overall_score三层 JSON,便于程序直接解析并落入报告; - 上下文注入:
<user_preferences>注入 swarm 元数据中的用户偏好,<baseline_turns>注入基线所需轮次(供 Turn Efficiency 维度判断),<rubric>注入完整维度表,<conversation>注入待评对话。
评测管线的工程实现
评分标准不是纸面文档,而是被评测管线实际引用执行的。关键实现证据如下:
评测 Harness:模拟用户驱动对话
eval/harness.py 提供了框架无关的共享评测函数,同时被最终评测(test_augmented_agent.py)和验证门(analyzer/swarm_generator.py)复用:
GOAL_REACHED_SIGNAL = "[GOAL_REACHED]"(harness.py):模拟用户认为目标已达成的信号;run_eval_user_turn(harness.py):模拟用户根据助手上一轮回复,决定继续追问(clarify / deep_dive / pivot / correct 四种策略)还是发送[GOAL_REACHED],温度 0.7,最大输出 512 tokens;build_judge_prompt(harness.py):同时注入基线与增强助手的完整对话日志、回合数与是否达成目标,并将用户user_style.json转为<user_preferences>区块;judge_conversation(harness.py):调用 Judge 模型打分,并做 JSON 容错解析(剥离 ``` 围栏、清洗尾逗号)。
值得注意:评测中的build_judge_prompt将质量评估与回合负担解耦——Judge 明确被告知"不要评估回合数与效率,回合负担另行程序化判定",这保证了质量分不受轮次数干扰,Turn Efficiency 则由代码用基线对比独立计算。
对比评测运行器
test_augmented_agent.py 是 Phase 4 的入口,实现了几项关键机制:
- 公平性:基线助手
tools=[],增强助手仅多一个check_and_invoke_swarm工具(见 agent.py),两者都不带 web 搜索与记忆,隔离 swarm 的净贡献; - 最大轮次上限:
MAX_TURNS = 6(test_augmented_agent.py),防止对话失控; - 语义化触发判定:当触发的 Agent 名称与预期不一致时,用
_SEMANTIC_MATCH_PROMPT让 LLM 判断"Agent 的用途是否匹配用户意图"(不比对名字),并用_fuzzy_agent_name_match做后缀归一化与 Jaccard 词重叠容错(test_augmented_agent.py); - Judge 重试机制:当质量分差
|quality_delta| < 1.0时自动重判(最多 3 次取多数票),降低 LLM 非确定性带来的抖动(test_augmented_agent.py); - 输出物:结果写入
evaluation_output/{timestamp}_final_eval.json,每条记录包含基线/增强双方的轮次、是否达成目标、触发正确性、回合缩减百分比、质量胜负与质量差。
Judge 模型配置
模型选型集中在 config.py:
| 角色 | 模型 | 说明 |
|---|---|---|
| LLM-as-judge | gemini-3.1-pro-preview(config.py) | 更强推理能力,temperature 1.0 |
| Judge 回退 | gemini-2.5-pro(config.py) | 429 配额错误时自动回退 |
| 模拟用户(评测阶段) | gemini-3-flash-preview(config.py) | 比 harvest 阶段更强的用户模拟 |
| Agent 运行时 | gemini-3-flash-preview(config.py) | 快速、成本低 |
如何运行整套评测
先完成前置步骤:uv sync安装依赖、gcloud auth application-default login认证、在.env配置GOOGLE_GENAI_USE_VERTEXAI=TRUE、GOOGLE_CLOUD_PROJECT、GOOGLE_CLOUD_LOCATION。
接着按管线阶段执行:
# Phase 1: 生成对话历史(全量 5 用户 × 50 场景) python harvest/orchestrator.py # Phase 2: 分析模式并生成 swarm python analyzer/analyze_history.py --verbose # Phase 3.5: 生成评测池并采样场景 python eval/generate_eval_pool.py python eval/sample_eval_scenarios.py # Phase 4: 使用留出评测场景运行对比评测(含 LLM Judge) python test_augmented_agent.py --eval-file evaluation_scenarios_user1.json --judge --verbose评测场景来自仓库已生成的 evaluation_scenarios_user_1.json 至evaluation_scenarios_user_5.json(每用户 18 个:10 similar + 8 different),也可通过--calibrate-embeddings --user user_N校准触发阈值。常用 CLI 参数:-n N(每用户场景数)、--seed N(可复现采样)、--baseline-only/--augmented-only(单侧运行)、--user user_N(单用户运行)。完整用法见 README.md 的 Phase 4 章节。
评测结果解读:评分标准如何反映系统价值
仓库 README.md 记录了 V8 管线的实际评测结果(2026-04-29 运行),这些数字是理解 10 维评分标准有效性的最佳注脚:
- 触发准确率:similar 场景触发率 36/50(72%),different 场景误触发率 8/40(20%);user_2 达到 100% 触发率 + 零误触发;
- mini-agent 触发时的胜负:32W-4L,胜率 88.9%;
- 个性化维度提升:触发时 personalization 平均从 1.67 提升到 3.72(+2.05),这正是维度 9 的直接量化体现;
- 准确性代价:整体 accuracy 从 3.92 微降到 3.64(-0.28),集中在 user_1 的单一过宽 Agent 与 user_3 的一次幻觉上——这印证了维度 1 的"Accuracy 门槛"设计必要性。
README 还强调了一个关键分析视角(与维度 10 的设计呼应):当 mini-agent 未触发时,增强助手会委托给基线子 Agent(baseline_assistantAgentTool),两边输出在功能上等价,此时胜负属于 LLM 非确定性噪声;真正体现系统价值的是"similar + FIRED"的 36 个场景。因此评测报告按 similar / different 拆分呈现(split reporting),避免噪声污染结论。
使用评分标准的注意事项
- 严格按 1–4 整数打分,N/A 维度记
null并在加权时跳过; - Accuracy 是硬门槛:一旦发现编造,无论其他维度多好,
overall_score必须为 1.0; - 个性化评测必须依赖已知偏好:Judge 应注入
<user_preferences>(来自user_style.json),否则维度 9 会退化为无依据的主观判断; - 回合效率是相对基线而言:不要用绝对轮次数衡量维度 10,要与同开场消息下基线所需轮次对比;
- 结果按触发状态拆分:只在"mini-agent 触发"的 similar 场景中比较质量才有意义,"未触发"与"different"分组更多承担误触发测试职能。
以上全部评测维度、计算规则与提示词模板均可从 evaluation_rubric_augmented.md 直接引用,配合 eval/harness.py 与 test_augmented_agent.py 的源码实现,你可以在自己的个性化 Agent 项目中完整复刻这套"用户视角、维度化、可复现"的评测体系。
【免费下载链接】generative-aiSample code and notebooks for Generative AI on Google Cloud, with Gemini Enterprise Agent Platform项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考