104、【Agent】【OpenCode】webfetch 工具提示词
【声明】本博客所有内容均为个人业余时间创作所述技术案例均来自公开开源项目如GithubApache基金会不涉及任何企业机密或未公开技术如有侵权请联系删除背景上篇 blog【Agent】【OpenCode】task 工具提示词参数内容接着分析了 Task 工具的另一个例子greeting-responder可以进行人设隔离然后分析了 Task 工具的参数内容description任务简述必选项为了人机交互体验设计的是给人类用户看的 UI 标签prompt详细指令必选项给 AI 看的完整剧本内容高度自包含subagent_type专家类型必选项指定要使用的特定类型的专业智能体task_id会话锚点可选项可以让任务在之前同一个子智能体会话中继续command触发源可选项触发此任务的原始命令用来审计与调试下面继续分析OpenCode下面看下一个工具 WebFetch其提示词路径在opencode/packages/opencode/src/tool/webfetch.txt这里的WebFetch 工具不是一个简单的网页抓取器而是在 AI 编程工具生态中一个非常讲究内容净化与标准化的接口下面从几个角度进行分析网页内容净化器工具默认将网页内容转换为 Markdown 格式网页原始的 HTML 一般充满着大量的divspanCSS 样式和各种 JavaScript 脚本这些内容对于浏览器渲染页面非常重要但对 AI 来说全是噪声干扰而 Markdown 格式则剥离了这些干扰只保留标题段落列表和代码块等语义结构可以大幅减少 AI 需要处理的 Token 数量并提升 AI 对网页核心信息的理解准确率相当于在 AI 读取网页前先安排了一个排版编辑把 HTML 清洗成干净的纯文本通用兜底方案Usage notes 这里提到如果系统中存在更专业的工具比如专门用来搜索全网的 GeneralSearch或者专门用来读取特定文档库的插件如果这些专业的工具能解决问题就优先用它们只有当那些专业工具都不适用或者明确知道一个 URL 需要读取时才轮到 WebFetch 工具出场WebFetch 只是一个通用的兜底工具AI 应该根据任务的最优解来动态选择工具而不是盲目迷信单一工具WebFetch 的存在是为了保证 AI 在面对任何未知 URL 时都有一个保底的手段去获取信息安全与容错机制这里提到了几个关键的细节HTTP 自动升级为 HTTPS这是个强制性的安全策略防止 AI 在抓取信息时因为访问不安全的 HTTP 协议而遭到中间人攻击或者被目标网站直接拦截URL 必须完整有效要求传入的必须是带有https://的完整链接避免 AI 因为传入相对路径比如/about而导致抓取失败只读属性Read Only明确声明该工具不会修改任何文件应对海量信息自动总结大模型的上下文窗口虽然越来越大但依然是昂贵有限的如果 WebFetch 抓回来一本几十万字的在线电子书直接塞给 AI 会导致上下文爆炸所以这里做了防溢出提示当检测到内容过长时应该自动进行截断或总结摘要处理有了这个工具OpenCode 就可以直接阅读互联网上任意公开的 URL获取最新信息OK下面看下参数内容url目标地址必填项信息获取的唯一坐标必须是完整的合法路径format输出格式必填项默认为 Markdown 格式还可以选 Text纯文本HTML原始源码通过将格式设置为必填强制 AI 根据不同任务性质选择合适的数据格式养成按需索取的习惯timeout超时控制可选项防止任务无限挂起防止网络问题或目标服务器无响应导致工作流卡死默认 120s两分钟OK本篇先到这里如有疑问欢迎评论区留言讨论祝各位功力大涨技术更上一层楼更多内容见下篇 blog