来源:互联网 更新时间:2026-08-19 14:19
构建编码智能体从来不是一件轻松的事。结合我们在 AutoDev、ArchGuard Co-mate、ChocoBuilder 等智能体项目上摸爬滚打的经验,我们开始在 Shire 语言中尝试一种新的 RAG 工作流。说白了,就是利用先前搭建好的 IDE 基础设施——代码生成、校验、执行那一套接口——现在终于可以打造出更靠谱、更可信的编码智能体了。
现在,你可以用 Shire 配合自定义的 RAG 流程来编排智能体。看下面这段代码:
用自己写的 prompt 和 IDE 接口捞取代码数据
对代码做向量化、检索,以及常规的代码搜索
把参数传给下一个流程(execute 函数)
---
name: "Search"
variables:
"placeholder": /.*.ja va/ { splitting | embedding }
"input": "博客创建流程"
afterStreaming: {
case condition {
default { searching($output) | execute("SummaryQuestion.shire", $output, $input) }
}
}
---
xxx
User: $input
Response:
再配合代码校验、代码执行这些能力,一个完整、可信的编码智能体就搭起来了。

Shire 是一种简化的 AI 编码智能体语言,能让大型语言模型(LLM)与集成开发环境(IDE)自由对话,从而实现自动化编程。
简单概括,通过 Shire 你能做到:
调用封装好的 IDE API,生成 prompt 所需的数据。在 Shire 里,数据在 prompt 中以变量形式存在。
定义在 IDE 中的行为——怎么触发、怎么执行、结果如何处理。
定义简单的数据流——数据怎么处理、怎么存储。
所以,用 Shire 作为中间语言,你可以访问自己的 IDE 数据,生成与 AI 模型对话的 prompt,实现真正的自动化编程。
在先前的 Shire 中,你可以通过 variables 自定义 Pattern Action,从 IDE 里拉取数据。比如:
---
variables:
"logContent": /.*.ja va/ { grep("error.log") | head }
---
检查用户的代码是否有问题:$logContent
这里定义了一个变量 logContent,它的值是从所有 *.ja va 文件中检索 error.log 的结果。最后把结果发给 LLM,由 AI 来处理。
Shire 的代码校验是在生命周期中的 onStreamingDone 阶段执行的——也就是 Streaming 完成后,通过一系列后处理器对生成内容做处理。当前版本支持三个函数:
parseCode 把文本解析成代码块。
verifyCode 检查代码错误或 PSI 问题。
runCode 运行生成的文本代码。
因此,你可以这样处理 LLM 生成的代码:
---
onStreamingEnd: { parseCode | sa veFile | openFile | verifyCode | runCode }
---
生成一个 python hello world,使用 markdown block返回
启动 Shire 指令的那一刻,一场精心编排的编码舞蹈就开始了。首先,Shire RAG 工作流调用 LLM,这个强大的语言模型迅速生成一段 Python 的 Hello World 代码块。
生成的代码块接着通过 sa veFile 保存到指定文件。
为了确保准确性和可靠性,启动 verifyCode 函数做严格的语法校验。
一旦通过校验,就用 runCode 函数运行这段代码。
这一刻,代码仿佛被赋予了生命,在 IDE 中输出 "Hello, World!"。
借助我们之前做 RAGScript 和相关 RAG 项目的经验,通过简单的函数就可以实现代码的检索和查询。例如:
---
name: "Search"
variables:
"testTemplate": /.*.kt/ { splitting | embedding | searching("blog") }
---
$testTemplate
这里定义了一个变量 testTemplate,它的值是从所有 *.kt 文件中检索 blog 的结果。接着把结果发给 LLM,由 AI 处理。

当我们使用领先的 AI IDE(比如 AutoDev VSCode 版本)的业务知识解释功能时,通常会分 3~5 个步骤:
根据不同的上下文或业务需求,这个流程可能略有差异,但基本套路是一样的。而在使用 Shire 开发时,由于只需要和 LLM 交互两次,所以可以简化为两步:
把用户的问题发给 LLM 并检索
由 LLM 总结上一步的结果
尽管简化了,但如何抽象出这种原子能力,对 Shire 提出了更高的要求。这里我们只是作为一个 PoC 来展示,后续版本会提供更多能力。
有了上面这些基础,可以开始搭建 RAG 流程了。比如:
---
name: "Search"
variables:
"placeholder": /.*.ja va/ { splitting | embedding }
"lang": "ja va"
"input": "博客创建流程"
afterStreaming: {
case condition {
default { searching($output) | execute("summary.shire", $input, $output) }
}
}
---
[]: 这里写一些 CoT 相关的指令
这里定义了一个变量 placeholder,它的值是从所有 *.ja va 文件中检索“博客创建流程”的结果。默认情况下,embedding 的结果会存在内存中,所以在 afterStreaming 时可以直接拿来用。
afterStreaming 在 Streaming 完成后执行,这里用 searching 函数结合上一步的结果进行检索,最后把结果传给下一个流程。
第一步中,我们指定了下一个指令的名称为 summary.shire,传递了两个参数:$input 和 $output。在这个流程里,可以直接使用这两个参数:
[]: 这里写一些 prompt 代码信息如下: $output 用户的问题: $input
随后,Shire 会自动执行这个指令,把结果返回给用户——也就是问题的总结。
实现 Shire RAG 工作流可没那么简单。在人力有限的情况下,我们做了大量调研、试验和场景验证。我们调研了被广泛采用的编码 RAG 工具,尝试了不同的编码智能体实现方式,以探索更多可能性。
Shire RAG 工作流主要使用的技术栈如下:
推理框架:ONNX Runtime
Embedding 模型:Sentence Transformers all-MiniLM-L6-v2
相似度算法:Jaccard similarity(默认)
数据存储:内存(默认)、本地文件(项目目录)、未来:SQLite
Tokenizer:HF Tokenizer
除了 RAG 部分,基于 NLP 与搜索的传统检索方式也支持,比如:
similarCode 变量:通过 Jaccard 等算法检索相似代码。
similarTestCase 变量:通过 TF-IDF 检索相似测试用例。
我们还在尝试把更多算法和技术集成到 Shire RAG 工作流中,提供更丰富的能力。
基于我们构建的 LLM 开发框架 ChocoBuilder,现在可以支持:
Office 文档:docx, pptx, xlsx 文件
PDF 文档
非二进制文件
IDE 支持语言代码文件
IDE 不支持语言代码文件
当然,现在版本的代码拆分机制还不够完善,后续版本会提供更多支持。
目前的版本只能满足一些简单需求,实际开发中还需要更多能力。后续版本会持续增强:
支持更多存储方式,比如向量数据库。
支持对结果重排,如 LIM、LLM Rerank 等。
支持更多检索方式,如 BM25+、BM42 等。
……
腾讯ima怎么把微信内容一键导入知识库?
黄金价格不断创新高!黄金稳定币XAU、PAXG市值达11亿美元
CC币价格预测(2026-2035):Canton币今日价格走势+长期价格预测
新浪互联网热点小时报丨2026年07月26日16时_今日实时互联网热点速递
2026鸣潮账号交易安全指南:五大交易平台对比与风险避坑分析
腾讯ima怎么创建共享知识库?
今日比特币暴涨分析:Metaplanet的比特币BTC投资推动股价上涨17%
新浪机器学习热点小时报丨2026年07月25日18时_今日实时机器学习热点速递
新浪人工智能热点小时报丨2026年07月30日18时_今日实时人工智能热点速递
蚂蚁庄园今日答案7月21日(今日已更新) 蚂蚁庄园今天正确答案是什么呢
比特币(BTC)核心周期指标复刻历史走势 价格或跌破5.8万美元关键支撑位
Celestia价格预测2026-2032:TIA币能否引领山寨币上涨行情?历史价格回顾
2026年三角洲行动账号交易指南:5大交易平台对比与安全选购建议
车载冰箱重置到出厂设置几步?
抖音怎么取消申请退货退款?抖音上取消退货怎么操作
腾讯ima知识库怎么分类管理?
短剧《史上最强洪荒修为》剧情介绍
WorkBuddy微信版怎么获得积分?
Windy卫星云图怎么看?云层变化识别技巧
TRUMP价格走势与WEPE预售进展解析
手机号码测吉凶
本站所有软件,都由网友上传,如有侵犯你的版权,请发邮件haolingcc@hotmail.com 联系删除。 版权所有 Copyright@2012-2013 haoling.cc