Maguyva 的 C 支持:面向系统与嵌入式代码的调用图
在 C 里,调用图就是架构。智能体应当先读懂它,再动手修改。
扩展名
.c, .h
Ada 把一个包承诺做什么(.ads)与它如何做(.adb)分离开来。这是优秀的工程实践,但也意味着一次修改会涉及多个文件,而文本搜索无法替你把它们联系起来。长期运行的 Ada 系统还多了一层:泛型、标记类型、任务和受保护对象,它们之间的关系比任何单个文件都更重要。
Maguyva 会在智能体提出修改之前把这张依赖图交给它,这也正是高可靠评审所要求的顺序。
Maguyva 覆盖 .ads、.adb 和 .ada。子程序实现体以及过程和函数规格都会被提取为可调用符号,因此例程的规格和实现体都可以搜索。符号匹配不区分大小写,与 Ada 本身一致。
导入来自 with 和 use 子句,关键字会被去掉,图谱中保存的是包名。图谱还记录调用、标记类型上的继承与重写、实例化、类型引用、读写,以及异常的抛出与处理边。
在结构搜索中,任务类型、受保护类型、记录类型和接口类型可以作为类型定义选取,入口实现体可以作为方法选取。
Flight_Control.Sensors,它们调用了其中哪些子程序?”(dependency_search 的 incoming 方向)Compute_Trajectory 的规格、实现体和所有调用方。”(find_symbol)get_task_context)Put_Line、Put 和 Get 等常用文本 I/O 调用是特意保留的。use 子句会改变可见性,但在结构搜索中不会被选为导入;with 子句会。find_symbol。最适合场景
智能体工作流
引擎细节
常用 MCP 入口工具
用来一次找到某个子程序的规格和实现体,以及它的引用。
在修改包规格之前使用 incoming 遍历,查看所有依赖它的单元。
适用于“解释遥测任务如何把数据交给日志受保护对象”这类提示词。