关于Agent Harness,我整理了一个最小版!

 Datawhale干货 

作者:陈思州,Datawhale成员

前面讲 Agent 评测时,我提到:评测 Agent 不能只看最终答案,还要看它用了什么工具、拿到了什么结果、有没有按任务要求完成。那这些东西要怎么稳定记录下来?这就需要一个 harness。

现在有一个观点是 Agent = model + harness;

我会把 harness 理解成:把 Agentic model 放进一个可运行、可记录、可评分的小环境里。它不一定一开始就很复杂,只要能把任务、工具、执行过程和评分结果串起来,就已经很有价值。

这篇按 4 个问题梳理:1. 一个最 mini 的 harness 解决什么问题?2. 它最少需要哪些模块?3. 一个 eval case 可以怎么写?4.公开资料里有哪些参考?

一个最 mini 的 harness 解决什么问题

如果只是手动测试 Agent,很容易只看到最后回答。比如用户问“请判断这个项目是否支持插件系统”,Agent 回答“当前 README 没有插件系统相关说明,不能确认支持”。

这句话看起来合理,但我们还需要知道:它有没有真的读取 README?有没有读错文件?有没有调用无关工具?有没有把工具结果里没有的信息写进答案?

mini harness 要解决的就是这个问题。

它把任务放进一个固定环境里,让 Agent 使用指定工具完成任务,同时记录执行过程,最后用评分器判断结果。

这样我们看到的就不只是一句回答,而是一条完整记录:任务是什么,环境里有什么,Agent 调用了什么工具,工具返回了什么,最后为什么被判成功或失败。

mini harness 最少需要哪些模块

我会把最小结构拆成 5 个模块:

  • Task:任务输入

  • Environment:可操作环境

  • Tools:工具接口

  • Trace:执行记录

  • Grader:评分器

Task 是任务本身,比如“根据 README 判断是否支持插件系统”。

Environment 是任务环境,对 coding agent 来说可能是一个代码仓库,对文档 agent 来说可能是一组文件。

Tools 是 Agent 能使用的工具,比如 read_file、list_files、run_tests。

Trace 记录每一步用了什么工具、传了什么参数、返回了什么。

Grader 负责给出结果判断,第一版可以先用规则或测试脚本,比如是否读取指定文件、是否通过测试、是否写出证据里没有的结论。

这 5 个模块合起来,就能构成一个最小可用的 Agent harness。

一个 eval case 可以怎么写

一个 mini eval case 可以先写得很小,重点是任务、环境和评分规则都明确。

{  "id": "case_001",  "task": "判断项目是否支持插件系统",  "environment": {    "files": {      "README.md": "本项目支持本地启动、基础登录和配置管理。",      "config.md": "配置项包括 port、theme、log_level。"    }  },  "tools": ["list_files", "read_file"],  "grader": {    "must_read": ["README.md"],    "answer_should_include": "不能确认支持插件系统",    "answer_should_not_include": "支持插件系统"  }}

这条 case 覆盖了几个基本点:任务目标明确,环境内容固定,工具范围清楚,评分规则也可检查。它适合用来测试 Agent 是否会基于文件内容回答,而不是根据经验补结论。

跑完后,harness 至少要记录 trace:

{  "case_id": "case_001",  "trace": [    {      "tool": "list_files",      "arguments": {"path": "."},      "result": ["README.md", "config.md"]    },    {      "tool": "read_file",      "arguments": {"path": "README.md"},      "result": "本项目支持本地启动、基础登录和配置管理。"    }  ],  "answer": "当前 README 没有插件系统相关说明,不能确认支持插件系统。",  "grade": {    "success": true,    "reason": "读取了 README,回答没有超出文件内容。"  }}

这条记录的价值在于可以定位问题。如果 Agent 没有调用 read_file,说明工具使用有问题;如果读了 README 但仍然回答“支持插件系统”,说明结果使用有问题;如果反复读取无关文件,说明轨迹效率有问题。手动试用容易只留下主观感觉,harness 会留下可分析的执行记录。

公开资料里有哪些参考

Anthropic 的 Agent Evals 文章很适合作为主参考。它把 eval harness 和 agent harness 分得很清楚:eval harness 负责跑评测、记录步骤、评分和汇总结果;agent harness 负责让模型作为 Agent 工作,比如处理输入、编排工具调用、返回结果。它还强调,评估一个 Agent 时,评到的是模型和 harness 一起工作的效果。

SWE-agent 的重点是 Agent-Computer Interface。它说明 coding agent 的表现不只取决于模型,也取决于外部接口怎么设计。比如怎么查看文件、怎么编辑代码、怎么运行测试、怎么把错误信息反馈给模型,这些都会影响最终效果。

Terminal-Bench 的任务结构也很适合参考。一个任务通常包含 instruction、隔离环境和测试脚本。harness 负责把模型接到终端环境里,让它执行命令、安装依赖、调试错误,最后用测试脚本验证任务是否完成。

SWE-bench 则展示了 coding agent 的典型评测流程:给一个真实 issue,让模型生成 patch,再把 patch 放进环境里运行测试。这里的 harness 负责准备环境、应用 patch、执行测试、汇总结果。

这些资料放在一起看,harness 的价值在于把 Agent 的运行过程变成可以复现、可以记录、可以评分的实验。

写在最后:先把 Harness 的骨架搭出来

一个 mini Agent harness 不需要一开始做成完整平台。第一版只要能串起任务、环境、工具、执行记录和评分器,就已经能帮我们观察 Agent 到底哪里出问题。

有了这套结构,我们就不只是“试一下 Agent 好不好用”,而是能分析问题出在任务理解、工具选择、参数填写、结果读取、步骤冗余,还是评分规则本身不清楚。

封面来源|AGI Hunt

图片

一起“赞”三连

内容概要:本文提出了一种基于神经网络的数据驱动迭代学习控制(ILC)算法,专门用于解决具有未知动态模型和重复任务特征的非线性单输入单输出(SISO)离散时间系统在无人车路径跟踪中的应用问题,并通过Matlab代码实现了算法的仿真验证。该方法充分利用神经网络强大的非线性逼近能力和自适应学习特性,结合迭代学习控制在周期性任务中逐步优化控制输入的优势,即使在缺乏精确系统数学模型的前提下,也能有效提升无人车在复杂环境下的路径跟踪精度与系统稳定性。算法的核心在于通过多次运行过程中不断修正控制律,实现对期望轨迹的渐近跟踪。; 适合人群:具备一定现代控制理论基础知识、熟悉迭代学习控制基本概念,并拥有Matlab编程与仿真实践经验的研究生、科研人员及自动化、机器人领域的相关工程师。; 使用场景及目标:① 解决无人车在模型未知或难以精确建模的复杂动态环境中的高精度路径跟踪控制问题;② 为一类具有重复运行特性的非线性系统提供一种不依赖精确模型的先进控制策略;③ 推动数据驱动与人工智能方法在自动化控制领域的工程应用与学术研究发展。; 阅读建议:读者应重点理解神经网络在控制律中的设计与集成方式、迭代学习机制的具体实现流程,以及两者融合的创新点。务必结合所提供的Matlab代码进行详细的阅读、调试与仿真分析,通过改变参数和工况来观察控制效果,以深化对算法内在机理和性能特点的掌握。
内容概要:本文档是一份面向参与大学生创新创业训练计划(大创项目)的在校学生的系统性指导资源,全面覆盖国家级与省级项目的申报、执行、中期检查、结题全流程。内容包括大创项目的政策解读、分类与级别说明、申报流程与时间节点、评审标准解析,并提供创新训练、创业训练、创业实践三类项目的申报书撰写指南与范文。文档重点围绕物联网、数据分析、Web应用三大技术方向,提供可运行的完整项目实现案例,如基于ESP32的智慧农场系统、基于Python与Tableau的公交数据可视化平台、基于Spring Boot的校园协作平台,涵盖技术架构、代码实现、系统部署等细节。此外,还包括答辩PPT制作技巧、中期检查与结题报告的撰写模板,以及各类工具与学习资源推荐,助力学生从项目构思到成果落地的全过程。; 适合人群:参与大创项目的在校本科生,尤其是计算机、数据科学、物联网等相关专业,具备一定编程基础和科研兴趣的学生。; 使用场景及目标:①指导学生高效撰写符合评审要求的申报书、答辩材料、中期报告与结题报告;②提供三大主流技术方向的完整项目范例,帮助学生快速搭建原型系统,提升技术实践能力;③辅助团队进行项目规划、进度管理与成果总结,确保项目顺利立项与结题。; 阅读建议:建议根据项目所处阶段选择性阅读对应章节,申报阶段重点学习第1-4章,执行阶段参考第5-9章的技术实现案例,结题阶段使用第6章模板。应结合自身项目特点灵活应用范文与代码,避免照搬,注重原创性与可行性,并积极与指导教师沟通完善方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值