Agent 的工作模式一般是收到需求,然后通过 rg/grep 查找对应的实现,查找的时候会猜测需要定义的类型或者函数的名字,如果找不到就开始进入实现了。
这也是重复内容的主要原因,它没有整体的概览,比如整个模块有哪些函数,定义了哪些类型。
所以我弄了一个小工具,sview,Structure view 的缩写,接受一个代码文件,返回文件的概览和行数范围,让 Agent 可以拿到整体概览。
现在已经支持了主流的编程语言以及 Markdown。Markdown 主要是方便 Agent 编辑文件的时候看章节结构,避免弄乱了章节层次。