尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

browser-harness 自愈合机制完整解析:Agent 自己写代码,让 Harness 随每个任务进化

browser-harness 自愈合机制完整解析:Agent 自己写代码,让 Harness 随每个任务进化 browser-harness 自愈合机制完整解析Agent 自己写代码让 Harness 随每个任务进化【免费下载链接】browser-harnessBrowser Harness | Self-healing harness that enables LLMs to complete any task.项目地址: https://gitcode.com/gh_mirrors/br/browser-harnessbrowser-harnessBrowser Harness是一个连接大语言模型LLM与真实浏览器的自愈合框架Agent 在完成任务的过程中发现缺少某个操作能力时会自己编写辅助函数补充进来Harness 因此随每个任务不断进化。它的核心就藏在一个文件里——agent_helpers.py。本文将从新手视角带你完整看懂这套自愈合机制的设计思路。首次连接浏览器时Chrome 会弹出这个允许远程调试授权窗口点击Allow后 Agent 才能通过 CDP 协议接管你的浏览器。自愈合是怎么发生的一次缺失、一次补写、永久学会先看一张 ASCII 流程图来自 README.md它是理解整个机制的关键● agent: 想上传一个文件 │ ● agent-workspace/agent_helpers.py → 缺少上传助手函数 │ ● agent 自己把它写出来 agent_helpers.py │ 新增的助手函数 ✓ 文件上传成功整个过程分三步发现缺口Agent 执行任务时发现缺少某个浏览器原语比如上传文件自己写代码Agent 把缺失的助手函数直接写进 agent-workspace/agent_helpers.py永久学会下一次运行任何任务时这个函数都会被自动加载同类操作一次就会、次次可用。这就是自愈合的本质框架不预置所有能力而是让 Agent 在实战中把缺口补上——用得越多Harness 越聪明。核心文件 agent_helpers.py给 Agent 留出的空白笔记本agent-workspace/agent_helpers.py 在初始状态几乎是空的文件头注释直接点明了它的用途Agent-editable browser helpers. Add task-specific browser primitives here. Core helpers from browser_harness.helpers load this file when BH_AGENT_WORKSPACE points at this directory, or when this repos default agent-workspace exists. 三个要点值得注意Agent-editableAgent 可编辑这是整个仓库中 Agent 唯一被允许动笔的浏览器能力扩展点按需加载只要工作区指向该目录核心助手模块就会自动读取它只加不改核心代码受保护Agent 的任务特定扩展全部隔离在这里。自动加载机制一次 exec全局生效写了就生效不是靠魔法而是 src/browser_harness/helpers.py 末尾一个极简的加载函数实现的第 653-668 行def _load_agent_helpers(): p AGENT_WORKSPACE / agent_helpers.py if not p.exists(): return spec importlib.util.spec_from_file_location(browser_harness_agent_helpers, p) ... for name, value in vars(module).items(): if name.startswith(_): continue globals()[name] value _load_agent_helpers()逻辑非常直白检查agent-workspace/agent_helpers.py是否存在用importlib按文件路径把它加载成模块把其中所有公开函数以下划线开头的除外注入到全局命名空间。于是 CLI 入口 src/browser_harness/run.py 执行用户脚本时exec(code, globals())这些自写函数就像内置助手一样直接可用。每次 CLI 调用都会重新加载所以新写的助手在下一次调用立刻生效——这就是愈合能实时完成的技术基础。核心受保护 工作区可写自愈合的安全边界为什么敢让 AI 自己改代码因为 AGENTS.md 划定了清晰的职责边界区域路径权限核心代码src/browser_harness/受保护Agent 不改可写工作区agent-workspace/Agent 唯一可编辑区域领域技能agent-workspace/domain-skills/Agent 读写沉淀站点经验SKILL.md 中还有一条硬性设计约束核心助手保持简短。任务特定的助手扩展一律放入$BH_AGENT_WORKSPACE/agent_helpers.py。核心库越薄扩展点就越清晰Agent 的自愈也因此始终发生在安全边界之内。除了代码层面的自愈合Agent 还会把站点经验写成 Markdown 存入 agent-workspace/domain-skills/——目前仓库已收录 GitHub、LinkedIn、Amazon 等上百个站点的技能文件。配合环境变量BH_DOMAIN_SKILLS1启用后导航到某个站点时goto_url()会主动返回对应的技能文件名Agent 先查手册再动手而不是每次重新摸索。为什么这个设计值得关注对新手友好你不需要预先学习整套 APIAgent 缺什么就补什么越用越强每个任务都可能给 Harness 留下一个可复用的新函数核心零污染自写代码全部隔离在 agent-workspace/agent_helpers.py升级核心版本不受影响。如果想本地体验克隆仓库后按 install.md 引导 Agent 完成浏览器连接即可git clone https://gitcode.com/gh_mirrors/br/browser-harness浏览器远程调试的设置与故障排查可参考 docs/setup-remote-debugging.png 对应的chrome://inspect/#remote-debugging页面以及 docs/MCP.md 中把 Harness 接入任意 MCP 客户端的配置说明。小结browser-harness 的自愈合机制可以浓缩为一句话核心保持极简并受保护把进化的权利交给 Agent 自己的工作区。agent_helpers.py 这本空白笔记本正是它最精妙的设计——每完成一个任务它都比上一次更懂你的浏览器。【免费下载链接】browser-harnessBrowser Harness | Self-healing harness that enables LLMs to complete any task.项目地址: https://gitcode.com/gh_mirrors/br/browser-harness创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表