91、【Agent】【OpenCode】grep 工具提示词(参数内容)

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

背景

上篇 blog
【Agent】【OpenCode】grep 工具提示词

分析了 Grep 工具剩下的提示词:可以通过 Glob 通配符模式搜索指定文件,返回结果按修改时间排序,并且内容自带行号,然后重点提到了 Glob 和 Grep 工具的配合,类似在图书馆里找书,其中 Glob 工具是看书名和目录,而 Grep 工具则是翻开书,去读书里面的文字,Glob 工具找的是外壳(文件名),而 Grep 找的是文件内容,在复杂的编程任务中,经常需要找同时满足名字和内容两个条件的文件,此时单靠一个工具搞不定,就需要先用 Glob 工具圈地,快速,低成本地筛选出目标文件,然后再用 Grep 工具深挖,在 Glob 工具划定的范围里,快速完成内容检索,在真实的 Linux 命令行中,也经常会看到这种先 Glob 后 Grep 的组合,并举了例子,下面继续分析

OpenCode

下面继续看 Grep 工具的参数内容

  • pattern(搜索的内容,必填项) :唯一必填的参数,让 AI 填入想要在文件里查找的内容,这里的内容是 regex pattern 正则模式,不是普通字符串,AI 可以使用强大的正则语法来进行模糊匹配 ,比如,AI 填入 log.*Error,就能匹配到 logErrorlog_an_Error 等各种变体,或者填入 function\\s+\\w+,可以找出所有 JS 函数定义,相当于 Linux 命令行里的
bash 复制代码
grep -E ...

让 AI 具备极强的语义搜索能力

  • path(可选项):圈定搜索的范围,是 AI 的空间定位参数,决定了 Grep 工具从哪个文件夹开始向下递归搜索,如果 AI 没传这个参数,工具默认在当前工作目录下全盘扫描
  • include(可选项)允许 AI 在调用 Grep 工具时,直接带上一组 Glob 通配符作为过滤器 ,比如当 AI 传入 include: "*.js",Grep 工具在底层先执行一次快速的 Glob 匹配,把所有的 .js 文件挑出来,然后只在这些文件里运行正则搜素,排除其他文件的干扰

下面看下一个工具 Edit

其路径位于 opencode/packages/opencode/src/tool/edit.txt

Edit 工具是 AI 可以调用的文件编辑器 ,这里的提示词规范了 AI 应该如何精准,安全的对文件进行编辑,指出并解决了 AI 在编辑中最容易出现的三个问题:上下文丢失,定位不准,以及覆盖冲突,下面来详细分析下

第一条规则:先读后写,是核心安全机制,有如下作用

  • 防止 AI 幻觉,防止覆盖:防止 AI 在不知道文件当前内容的情况下盲目修改,或者用自己记忆中的旧版本内容,去覆盖用户刚刚修改过的新代码
  • 锁机制(底层逻辑) :在 OpenCode 等工具的底层,这也属于是分布式系统中常见的锁机制:AI 读取文件时,客户端会记录这个文件的快照(比如修改时间 mtime),当 AI 发起编辑请求时,客户端会检查这个快照是否还有效,如果文件在 AI 读取后,编辑前被外部(比如用户手动保存,或者 linter 自动格式化等)修改过,此时再编辑就会直接报错失败,强制 AI 重新读取最新版本,避免丢失更新的问题

第二条规则,行号前缀格式细节,这里主要教 AI 如何把 Read 工具读回来的带行号的展示层和真实文件内容进行剥离

  • 首先解释下行号前缀格式,之前分析 Read 工具说了,为了让用户和 AI 方便阅读,返回的并不是文件原始内容,而是经过装饰的,装饰格式为:行号 + 冒号 + 空格,比如,文件里真实的一行代码是
python 复制代码
const a = 1

那么 Read 工具返回的时候,会变成

python 复制代码
1: const a = 1

这里的 1: 就是行号前缀(line number prefix)


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

相关推荐
100个铜锣烧2 小时前
高级提示技术:Chain-of-Thought与ReAct——让大模型学会“思考”和“行动”
人工智能·大模型·提示词工程
JackHCC2 小时前
快手OneRetrieval:可编辑生成式电商召回
人工智能·机器学习
前端之虎陈随易2 小时前
编程语言级别的Skill市场,AI Agent 的未来形态
前端·vue.js·人工智能·typescript·node.js
QiLinkOS2 小时前
第三视觉理解徐玉生与他的商业活动(30)
大数据·c++·人工智能·算法·开源协议
武汉唯众智创3 小时前
当汉字成为心理CT:AI汉字联想投射分析的技术实现与心理评估价值
人工智能·ai心理健康·ai心理评估·本土化心理测评·校园心理健康解决方案·ai心理监测·多模态情绪模型
Longvox3 小时前
Agent为什么会死循环?
人工智能·ai编程
前端一小卒3 小时前
我用 TypeScript 从零手写了一个 Claude Code,然后发现它的核心只有 30 行
前端·agent
陈天伟教授3 小时前
FreeCAD 启动后小窗口闪现即退的解决思路
人工智能·机器人·工业设计
酒旅Agent开发实战4 小时前
AI 旅行规划助手如何接入真实酒旅数据:从自然语言到酒店预订的全流程 MCP 实战
人工智能·ai·旅游·skill·酒店api·机票api
workflower4 小时前
设备单元级(L1)实施路径
人工智能·线性代数·矩阵·机器人·开源