Skip to content

Latest commit

 

History

History
21 lines (11 loc) · 1.88 KB

File metadata and controls

21 lines (11 loc) · 1.88 KB

🌟 Introduction

Scarffold(工具模块)为模型提供了统一的调用工具接口,并通过工具的具体实现在环境中探索或是从外部收集相关信息。初赛阶段,工具模块将开发者的运维流程抽象出来,设计了四种常见的工具,降低了内核工具调用的门槛,有利于模型理解并正确调用工具。工具模块保持良好的可扩展性,便于添加针对内核问题或是对解决内核问题有帮助的工具

⚡️ Get Started

由于我们实验出于方便,部分工具使用了硬编码,可看工具具体实现检查各个工具使用硬编码的地方,修改路径即可

🗝️ customize your own tools

工具模块具有良好的可扩展性,可以按照以下步骤添加任意工具

./tools目录下添加工具:在def __call__中实现工具操作主要逻辑,function_calling会调用具体工具的def __call__代码

./configs目录下添加工具的配置:以.yaml文件格式配置工具,要求,工具包含name和docstring属性,如有参数,需包含name type required description

./tools/init.py下添加工具信息:易于理解不做解释,此处在初始化时加载会让环境能够知道可使用的工具有哪些,能够对模型调用工具进行检查

📚 example

在决赛实现了内核代码调用关系的理解框架之后,我们添加了trace工具,该工具能够获取调用了某个函数的具体函数,便于逐步进行函数级的根因分析,找到某函数进行的某些操作导致错误的根因,可以以此工具的添加加深对定制工具的理解(PS:可以添加gdb工具但是由于不是所有数据都具有vmcore,为了泛化性的追求以及对比标准的benchmark的效果,我们暂时没有采用gdb工具,如需要添加请按照上述步骤进行)