起因:在 agent 开发中遇到的新概念
前两天用 agent 开发的时候,遇到个一个新概念——递归读取。现在来学习一下,记一下笔记
先说术语:递归的英文怎么说?
递归中文给我的感觉就是两次词硬凑在一起,显得让人看不懂
去搜了一下英文:
- 递归:
recursion - 递归的:
recursive - 递归读取目录:
recursively read a directory - 更常见的技术说法:
recursive directory traversal
recursion 有“返回、再次回到”的含义。程序执行一个规则时,遇到相同结构,就会再次使用自己这套规则。
不递归读取:只看「可见的这一层」
首先既然是有递归读取——那么肯定还有不递归读取
这张图的话讲的是不递归:意思就是扫描目录的时候,只读取这一层的目录,如果这个目录里有文件夹,文件夹内的文件就不读取。——我有一个好的想法——叫可见目录——就是只能读取目前能看见的

递归读取(recursive directory traversal):读取全部文件
这是第二张——递归读取。简单来说就是读取全部文件,不仅可以读取这一层的文件,下面的文件都可以读取

这张图写的可以进入子目录继续读,那么子子目录呢?——查了一下是可以的
递归读取的两种方式:DFS 与 BFS
第三张图:递归读取分为两种:DSF(深度优先)和 BFS(广度优先)

DFS——Depth-First Search(深度优先搜索) BFS——Breadth-FIrst Search(广度优先搜索) Breadth 是“宽度
听名字就知道 DFS 是一直往下读取的,而 BFS 是一层一层读取的
什么时候该用递归,什么时候不用?
第四张:如何选择正确的读取方式呢?这个我就有点好奇了

只在当前目录找就不递归,如果不确定在不在当前目录就递归找
DFS 还是 BFS,怎么选?
那么什么时候该用 DFS,什么时候改用 BFS 呢




如果想知道最短路径就用 BFS,如果不介意,就像看当层有没有就看 DFS
看完四张图的感受
看了这四张图,大致都了解了,不得不感叹现在 ai 的强大,比书上网上的容易看懂多了