news 2026/5/23 22:45:26

92、【Agent】【OpenCode】edit 工具提示词

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
92、【Agent】【OpenCode】edit 工具提示词

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

背景

上篇 blog
【Agent】【OpenCode】grep 工具提示词(参数内容)
继续分析了 Grep 工具的参数内容,其中pattern是唯一必填的参数,这里的内容是 regex pattern 正则模式,不是普通字符串,AI 可以使用强大的正则语法来进行模糊匹配,path是可选项,圈定了搜索的范围,决定了 Grep 工具从哪个文件夹开始向下递归搜索,如果没传这个参数,工具默认在当前工作目录下全盘扫描,include也是可选项,允许 AI 在调用 Grep 工具时,直接带上一组 Glob 通配符作为过滤器,Grep 工具在底层先执行一次快速的 Glob 匹配,只在 Glob 匹配出的文件里运行正则搜素,排除其他文件的干扰,接着开始分析 Edit 工具,Edit 工具是 AI 可以调用的文件编辑器,并分析了两条规则:先读后写,行号格式前缀细节,下面继续分析

OpenCode

下面继续分析 Edit 工具提示词

上篇 blog 分析到了行号前缀格式细节,下面继续

  • 冒号和空格之后的所有内容,才是文件里真实存在的东西,AI 在进行字符串匹配时,必须完全无视前缀,提取空格之后的内容
  • 提示词这里强调,绝对不能在要编辑的文件里带上类似1:这样的行号前缀格式,Edit 工具检测到会直接报错,因为文件的真实内容里是绝对不可能包含这种行号装饰的

举个例子,假设有个 Python 文件,真实内容如下(注意第二行前面有 4 个空格):

deftest():print("hello")

当 AI 调用 Read 工具时,它看到返回的内容是这样的

1:deftest():2:print("hello")

此时 AI 必须极其聪明地识别出,第二行的开头2:是前缀,而紧接着的 4 个空格才是文件真实的缩进,此时可能有三种情况

  • 错误的 oldString(AI 幻觉):AI 把看到的一整行都复制下来
2:print(\"hello\")

结果 Edit 工具会报错,因为真实的文件里没有2:

  • 半吊子的 oldString(丢了缩进):AI 去掉了行号,但把缩进也当成前缀的一部分给误删掉了,结果是
print(\"hello\")

对于 Python 这种靠缩进识别语法的语言,会导致代码逻辑错误,或者因为匹配不到(如果原文件必须带缩进匹配)而失败

  • 完美的 oldString(符合提示词要求):AI 严格按照提示词,只取冒号 + 空格之后的所有内容,并且完美保留了后面的原始缩进
print(\"hello\")

注意前面保留了那 4 个空格,所以这里的第二条规则,实际上在教 AI 如何正确解析 Read 工具的返回格式,精准提取出空格之后的真实代码,既不带上多余的行号,也不丢掉必要的缩进

上面提到了 oldString,提示词里还有 newString,这里先简要介绍下

  • oldString(原本要替换掉的旧代码):AI 在文件里想要精准定位,并抹除的那段原始代码,oldString相当于一个锚点,Edit 工具会去文件里找到这段一模一样的段落,然后将其替换掉
  • newString(即将要换上去的新代码):格式完全自由,不需要考虑行号前缀,只需要把 AI 想要生成的最终代码(包括缩进和换行)放进去即可,Edit 工具会直接把oldString所在的位置挖掉,然后把newString填进去

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/23 22:42:55

解决Claude Code密钥被封与Token不足的替代接入方案

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 解决Claude Code密钥被封与Token不足的替代接入方案 对于频繁使用Claude Code编程助手的开发者而言,开发流程中突然遇到…

作者头像 李华
网站建设 2026/5/23 22:40:15

UE5 Layouts配置文件:UI跨端适配的隐形骨架

1. 为什么Layouts配置文件是UE5界面开发里最常被忽略的“隐形骨架”在UE5编辑器里拖拽控件、调整锚点、预览响应式效果——这些操作你可能每天都在做。但当你把一个精心设计的UMG界面从PC端移植到平板或电视大屏时,突然发现按钮错位、文本被裁切、整个布局像被揉皱的…

作者头像 李华
网站建设 2026/5/23 22:38:35

AI肖像生成的技术边界与伦理挑战

我不能按照您的要求生成相关内容。原因如下:该输入内容本质上是一篇AI生成的媒体宣传类软文片段,核心是推广一个名为“Towards AI”的科技媒体平台,并附带一段关于“用AI重绘10位改变科技世界的女性先驱肖像”的创意概念。但输入中完全缺失所…

作者头像 李华
网站建设 2026/5/23 22:38:13

Vibe Stack:轻量级AI协作协议提升工程交付效率40%

1. 项目概述:当“ vibe coding”不再是玄学,而是一套可复现的工程加速系统你有没有见过这样的工程师?他不写满屏的注释,但代码合并请求(PR)总在20分钟内被批准;他不用每天站会汇报进度&#xff…

作者头像 李华
网站建设 2026/5/23 22:37:44

激活函数、损失函数与优化算法:神经网络三大核心组件协同原理

1. 项目概述:为什么这三个概念是神经网络的“心脏、血压计和方向盘”如果你刚学完线性回归,突然跳进深度学习,第一反应往往是:这玩意儿怎么这么多“函数”?激活函数、损失函数、优化算法——光听名字就像三座并排而立的…

作者头像 李华
网站建设 2026/5/23 22:37:32

VideoDownloadHelper完整指南:高效获取网页视频资源的专业方案

VideoDownloadHelper完整指南:高效获取网页视频资源的专业方案 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper VideoDownloadHelp…

作者头像 李华