TL;DR: Harness Engineering 的核心是为 AI 打造一个“数字隔离区”。通过 MCP 协议 提供工具、利用 LangGraph 编排逻辑、并结合 Docker 沙盒 隔离风险,你可以构建一个敢于直接修改代码并运行测试的自主 Agent。本文将分享一套完整的 Harness 架构实现方案。
引言
在 Harness Engineering 的理论篇中,我们明确了“Agent = Model + Harness”的公式。现在,让我们进入工程实战:如何从零开始搭建这套约束系统?
2026 年 Harness 实战技术栈
要构建一个工业级的 Harness,你需要以下三项核心技术:
- MCP (Model Context Protocol):作为 Agent 的“外设接口”,用于连接文件、数据库和 API。
- LangGraph / PydanticAI:用于编排 Agent 的“思维链路”,支持循环、状态持久化和条件分支。
- Docker / WASM 沙盒:作为 Agent 的“物理隔离”,确保代码运行不会污染宿主机。
实战步骤:构建一个“自愈式代码 Agent”
我们将搭建一个能够自动修复代码 Lint 错误的 Agent。
第一步:定义节点与状态 (LangGraph)
首先,我们需要在 Harness 层定义 Agent 的工作流逻辑:
# 使用 LangGraph 定义状态机
from langgraph.graph import StateGraph, END
def generate_code(state):
# 调用大模型生成代码
return {"code": ai_output}
def run_linter(state):
# Harness 在沙盒中运行 npm run lint
result = sandbox.run("npm run lint")
return {"errors": result.stderr if result.returncode != 0 else None}
def fix_errors(state):
# 将错误信息反馈给模型进行修复
return {"code": ai_fixed_output}
# 构建图:generate -> lint -> (if error) fix -> lint
workflow = StateGraph(AgentState)
workflow.add_node("generate", generate_code)
workflow.add_node("lint", run_linter)
workflow.add_node("fix", fix_errors)
workflow.add_conditional_edges("lint", lambda s: "fix" if s["errors"] else END)
第二步:配置 MCP 工具集
通过 MCP,我们为 Agent 提供了“读写文件”的能力,但 Harness 会对其进行严格审计:
{
"mcpServers": {
"filesystem": {
"command": "npx",
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/safe/dir"]
}
}
}
第三步:设计人机协作 (Human-in-the-Loop)
在 Harness 中加入一个审批节点。当 Agent 想要执行 git push 时,必须触发:
def human_approval(state):
print("Agent 申请提交代码,请确认 (y/n):")
if input() == "y":
return {"approved": True}
return {"approved": False}
Harness 优化的三大秘诀
1. 差异化模型策略 (Model Tiering)
不要用最贵的模型做所有的事。
- 任务执行:用 Claude 3.7 (最强大)。
- 输出校验:用 GPT-4o-mini (最快、最省钱)。
- 简单的 Lint 检查:直接用正则表达式或原生工具,不调模型。
2. 上下文清理 (Context Pruning)
在“生成-报错-修复”的循环中,上下文会迅速堆积。Harness 应该只保留最新的报错信息和当前的尝试路径,剔除过时的错误日志,防止模型产生混乱。
3. 环境快照 (Environment Snapshot)
在 Agent 开始大规模修改前,Harness 必须自动创建一个 Git 分支或目录快照。一旦 Agent 跑偏,可以一键回滚。
典型架构图
总结
Harness Engineering 的实战核心在于不信任模型,但利用模型。通过 LangGraph 的流程控制、MCP 的能力扩展和沙盒的安全隔离,你不仅是在写 Prompt,而是在构建一个真正的“数字大脑外骨骼”。
下一步,你可以了解如何将多个这种受约束的 Agent 组合成一个 多 Agent 系统 (Multi-Agent System)。
相关阅读: