如果自行构建 Harness,需要完成哪些工作?

考查重点:模型工具循环与运行环境。搭建模型与工具的交互循环、文件和执行环境、状态持久化及上下文组装,再补权限、超时、取消和独立验收;用失败恢复任务验证 Harness

本题目录

参考答案

核心回答

自行构建 Harness,需要把模型输出接成可执行、可观察、可恢复的任务系统。最小闭环包括模型适配、上下文组装、工具执行、运行循环和任务状态;可用于真实任务时,还要补权限与隔离、超时和取消、持久化恢复、运行预算以及独立验收。

例如修复一个登录缺陷:模型决定读哪些代码、怎样修改;Harness 负责在允许范围内读写文件、启动检查,收集真实结果并交回模型。模型提出完成时,系统检查修改是否满足需求、相关验证是否完成,再结束任务。

实现可以先放在一个进程里,把接口和状态分清楚,不需要一开始就拆成多服务或多 Agent。

从最小循环搭起

模型适配层处理输入消息、结构化调用、流式事件和接口异常。上下文层为每轮准备目标、约束、当前进度、必要历史与工具说明;长日志放外部,返回关键摘要和可继续读取的位置。

循环至少区分四个分支:提出工具调用、需要用户补充、提出完成、运行失败。工具执行器检查参数和权限,再调用处理器,返回成功、失败或未知状态。动作结果要与调用标识关联并更新任务状态,不能把“准备执行”写成“执行成功”。

工具可以从读文件、应用补丁和运行检查开始;后续再按需求接 MCP 等外部能力。增加工具前先确定它的输入、结果、错误和副作用,避免只堆能力名称。

怎样保存与恢复

任务状态需要保存目标、约束、当前阶段、产物、已经完成的动作和未决操作。聊天历史可以作为上下文材料,但不能代替业务状态。

假设补丁已经写入文件,服务在记录成功前崩溃。恢复时应先查看文件和操作记录,确认补丁是否生效,再决定继续验证或重新执行。直接从旧快照重复所有动作,可能造成重复修改或重复业务请求。

检查点也不等于自动回滚。以 LangGraph 为例,恢复中断时节点会从开头重新执行,暂停前的副作用可能重复发生;要拆分准备、等待和执行,或使用业务幂等机制。内存检查点只适合单进程演示,跨重启恢复需要持久存储。

执行控制与验收怎样落地

  • 执行环境:限制工作目录、文件和网络访问;权限由执行层落实,提示词不形成沙箱。
  • 运行控制:任务与单次工具分别设超时,支持取消,记录取消后进程或远端动作的真实状态。
  • 预算:限制轮数、总时间与费用,发现重复动作且没有新信息时停止或调整。
  • 可观测性:关联模型调用、工具参数、结果、耗时及状态变化,完整日志可回查。
  • 验收:按预定需求核对行为、产物和检查结果;只生成了总结或测试进程启动,不等于任务通过。

可以用一个带故障的任务验证整套运行层:工具超时、执行后断连、重启恢复、用户中途取消、模型提前声称完成,分别检查状态是否正确、操作是否重复和剩余工作能否解释。

追问

必须有 Todo、长期记忆和多 Agent 吗?

不必须。待办清单能帮助长任务,长期记忆解决跨任务经验,多 Agent 解决分工;它们都不是最小执行闭环的必选项。

有 checkpoint 就能保证只执行一次吗?

不能。保存状态与外部动作通常不是同一个事务。需要动作标识、结果查询、幂等或业务补偿,才能处理两者之间的失败窗口。

回放是否需要重新执行所有工具?

调试回放可以读取历史结果来分析决策;重新执行可能改变环境,应与只读回放分开,并标明使用历史结果还是现场结果。

对应教程

参考资料

相关面经

7 篇

小红书

AI 评测工程师(Agent 方向)
一面、二面
查看原面经 →
从零写一个能用的 harness,至少需要哪些组件。我回答是至少要 agent loop, 工具,权限,todo write,可能还要一个上下文压缩就够了

快手

Agent 开发工程师
二面
查看原面经 →
你怎么理解 Agent Harness?在项目中会怎样搭建它?和直接使用托管式 Agent 服务相比,各自的差异是什么?

快手

AI全栈开发
实习一面、二面
查看原面经 →
讲下 Harness 是什么,是怎么做的

字节跳动

AI 应用开发工程师
一面
查看原面经 →
项目追问
模型外面的 Harness 工程包含哪些模块?还有哪些模块需要考虑?

DeepSeek

Agent 开发
查看原面经 →
定制了哪些能力?任务调度/状态回退/checkpoint/trace回放?
展开剩余 2 篇面经

字节跳动

Agent 开发实习生
实习一面
查看原面经 →
你们的harness层现在是怎么去构建的?

快手

面经合集
查看原面经 →
追问
如果让你构筑你会做哪些工作?

收录题集

4 个来源,共4 份题集

Agent 机制与项目追问

Guide · JavaGuide · 3 条原题

查看题集 →

Harness Engineering 面试题

卡码笔记 · 个人整理 · 1 条原题

查看题集 →

Agent 面试题

小林 Coding · 个人整理 · 1 条原题

查看题集 →

概念考察:Harness Engineering、Context Engineering 与前沿范式

Onefly · zero2Agent · 1 条原题

查看题集 →

相关题目

4 题