当前位置: 首页 > news >正文

90、【Agent】【OpenCode】grep 工具提示词

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景

上篇 blog
【Agent】【OpenCode】glob 工具提示词(参数内容)
分析了 Glob 工具的参数内容,其中pattern(搜索模式)是必填项,path(搜索范围)是可选项,默认使用当前的工作目录进行搜索,如果想在当前项目中搜索,直接忽略删掉该字段,使用默认值即可,不要填入undefine或者null这样的字段,如果 AI 知道目标文件在哪个具体路径下,则鼓励填入路径,缩小搜索范围,以提升速度,接着介绍了 Grep 工具,Grep 作为极速的内容搜索工具,核心作用是按文件内容查找文件,其本质是 Bash 中grep命令的封装版,支持完整的正则表达式,可以根据文件内容的正则表达式 Regex 来快速定位代码片段,下面继续分析

OpenCode

下面继续看 Grep 工具剩下的提示词

  • 提示可以通过 Glob 通配符模式搜索指定文件,比如*.js*.{ts,tsx}
  • 返回结果按修改时间排序,并且内容自带行号(和前面介绍的 Read 工具一样),让 AI 能精准定位到代码的具体位置

和之前 Glob 工具一样,这里对 Grep 和 Task 工具做了边界界定

  • 简单任务:如果知道文件里有什么特殊的内容,用 Grep 工具可以直接找出带有这些内容的文件,一步到位
  • 复杂任务:如果是一个开放式的问题,AI 需要先用 Glob 搜索文件名,再用 Grep 工具找内容,可能还要反复几轮,就应该用 Task 工具,和之前一样

这里提到了 Glob 和 Grep 工具的配合,下面说下它们之间的关系,做个比喻,就像一个学生在图书馆里找书,其中 Glob 工具是看书名和目录,而 Grep 工具则是翻开书,去读书里面的文字,这两个工具的分工完全不同,缺一不可

  • Glob 工具找的是外壳(文件名),Glob 能识别文件叫什么名字,是什么后缀,在哪个文件夹里,比如想找所有的 Vue 组件可以用 Glob 搜索**/*.vue,但 Glob 根本不知道这些*.vue文件里面写的是什么内容,是登录逻辑,还是注销逻辑
  • Grep 找的是文件内容,Grep 能钻进文件里,看里面的代码,文字具体写了什么,比如想找哪里定义了用户登录的函数,可以先用 Grep 去搜索function login,但 Grep 搜索非常消耗资源,如果直接用 Grep 漫无目的地去翻遍整个硬盘,则速度会非常慢

所以此时就需要组合使用 Grep 和 Glob,在复杂的变成任务中,AI 经常需要找同时满足名字和内容两个条件的文件,此时单靠一个工具是搞不定的,比如用户提了个需求:查找所有关于用户注册的测试文件,此时

  • 如果只用 Grep 工具搜 register(注册),那能找出一堆包含【register】关键词的文件,但是,这些可能是后端代码,也可能是前端页面,甚至是一个文档,无法精准筛选出那些是测试文件
  • 如果只用 Glob 工具搜**/*.test.js(测试文件),那可能会找出几百个测试文件,但 AI 不知道哪些才是写用户注册逻辑的

所以正确的执行逻辑一定是先用 Glob 工具圈地,快速,低成本地筛选出目标文件,比如src/**/*.js,瞬间把搜索范围从几万个文件缩小到几百个源文件,然后再用 Grep 工具深挖,在 Glob 工具划定的范围里,快速完成内容检索

在真实的 Linux 命令行中,也经常会看到这种先 Glob 后 Grep 的组合,比如

  • 先 Glob 定范围,再 Grep 找内容

find . -name “*.js” -exec grep “register” {} +

  • 用更现代的rg命令(ripgrep),下面的-g参数就是先做 Glob 过滤

rg “register” -g “*.js”

而不是类似下面这种全盘扫描,慢且危险,会把一些构建目录中几万行无关代码页翻出来

grep -r “register” .


OK,本篇先,到这里,如有疑问,欢迎评论区留言讨论,祝各位功力大涨,技术更上一层楼!!!更多内容见下篇 blog

http://www.jsqmd.com/news/860609/

相关文章:

  • GetQzonehistory终极指南:5分钟免费备份你的QQ空间完整历史记录
  • 绝了!只需输入需求,这几款AI论文工具直接生成毕业论文!
  • Android NDK/JNI开发深度指南:从基础到实战
  • 毕业设计定制精选【芳芯科技】多功能脊椎按摩仪
  • Java实战:熵权法原理详解+房产价值评估系统设计(上)—— 构建客观多指标评价模型
  • 中间件五种模式详解
  • 如何优化鸿蒙 App 的启动速度?
  • 别再被 “无效降重” 坑了!Paperxie 凭什么解决你卡了 N 次的论文查重难题?
  • 轻量化无感空间架构,替代传统UWB重型部署体系
  • 【ElevenLabs客家话语音实战指南】:20年语音AI专家亲授3大本地化适配陷阱与5步高保真合成法
  • 设计个人职场技能成长图谱生成程序,根据岗位自动规划技能学习进阶路线。
  • 为什么你的毛玻璃总像“磨砂塑料”?:资深UI动效师用光学折射模型+Alpha通道分析揭示真实质感生成原理
  • 论文查重 + 降重双杀!Paperxie 凭什么成为大学生熬夜救星?
  • Delft3D水动力与泥沙运动模拟
  • 数据结构笔记(持续更新)
  • 【2026】ISCC 社团活动统计
  • 太顶了!输入主题,这几款AI论文软件自动生成毕业论文初稿!
  • 为Claude Code配置Taotoken作为可靠的后端模型服务
  • 探灵直播2026最新官方正版免费下载 一键转存 永久更新 (看到速转存 资源随时走丢)
  • ElevenLabs越南语API响应延迟突增?独家诊断工具包(含cURL压测脚本+越南CDN节点路由优化表)
  • 2026年AI自动剪辑视频靠谱吗?5款工具对比帮你选对不踩坑
  • 回顾Java知识点,面试题汇总Day10(持续更新)
  • 国内大学生必备的AI论文写作工具有哪些?
  • 大牛直播SDK(SmartMediaKit)Android Unity3D 播放器集成文档
  • Redis常用命令
  • 华为云云容器引擎CCE 2026-Q1优化升级,全面进化您的云原生体验!
  • ElevenLabs丹麦文语音合规性警报:GDPR+丹麦数据保护局2024新规下,语音缓存、日志与语音指纹处理的7项强制操作
  • 亲测新加坡家具物流优质公司分享
  • 编写跨部门沟通协作效率监测程序,统计沟通频次耗时,优化职场协作工作流程。
  • 如何学习Three.js