第一次接触配置文件时,我也曾被那些看似复杂的参数和格式吓到。但实际使用后发现,配置文件就像我们日常使用的菜谱——把做菜需要的所有原料和步骤提前写好,下次直接按步骤操作就行,不用每次都重新想一遍。在OpenClaw中,配置文件的作用完全类似。
简单来说,配置文件就是一个参数集合文件。它把程序运行需要的各种参数集中存储在一个文件里,避免了每次运行程序时都要在命令行输入大量参数。想象一下,如果你每天做菜时都要重新回忆油盐酱醋的用量,那得多麻烦?配置文件就是解决这个问题的。
在OpenClaw中,配置文件主要管理三类参数:
OpenClaw支持两种配置文件格式:YAML和CONF。对于新手,我强烈建议从YAML开始,原因有三:
这里是一个简单的YAML示例:
yaml复制model:
type: yolov5s # 模型类型
weight: ./weights/best.pt # 权重文件路径
inference:
img_size: 640 # 输入图片尺寸
device: 0 # 使用GPU 0
相比之下,CONF格式更简洁,但可读性稍差:
conf复制model.type=yolov5s
model.weight=./weights/best.pt
inference.img_size=640
inference.device=0
新手最常见的问题就是:"配置文件从哪里来?"通常有三种方式:
使用官方提供的默认配置文件
configs目录下default.yaml或demo.conf从命令行参数生成
bash复制openclaw infer --save-config my_config.yaml
这个命令会把当前使用的参数保存为配置文件
手动创建新文件
提示:建议新手先从官方配置文件开始,复制一份进行修改,而不是从头创建。这样可以避免格式错误。
现在我们来深入解析YAML配置文件中最关键的几个参数。记住,作为新手,你不需要理解所有参数,掌握下面这些就能应对80%的使用场景。
模型参数是配置文件的核心,直接决定了使用哪个模型进行推理。
yaml复制model:
type: yolov5s # 模型架构
weight: ./weights/best.pt # 权重文件路径
num_classes: 80 # 类别数量
type:指定模型架构,如yolov5s、yolov5m等。这个必须与你下载的权重文件匹配。weight:权重文件路径。这是训练好的模型参数,相当于模型的"记忆"。num_classes:模型需要识别的类别数量。如果你使用自定义数据集训练过模型,这里要改成你的类别数。常见问题:如果weight路径错误,会报"Unable to load weights"错误。检查路径是否正确,以及文件是否存在。
推理参数控制着模型如何处理输入数据。
yaml复制inference:
img_path: ./data/images # 输入图片路径
img_size: 640 # 输入尺寸
batch_size: 8 # 批处理大小
device: 0 # 使用GPU 0
conf_thres: 0.4 # 置信度阈值
img_path:可以是一个图片文件,也可以是一个包含多张图片的目录img_size:模型处理的图片尺寸。通常保持为训练时的尺寸(如640)batch_size:一次处理多少张图片。GPU内存越大,可以设得越高device:0表示第一个GPU,-1表示使用CPUconf_thres:只显示置信度高于此值的检测结果输出参数决定了结果如何保存和展示。
yaml复制output:
save_path: ./runs/detect # 结果保存路径
save_img: True # 是否保存带标注的图片
save_txt: True # 是否保存检测结果文本文件
save_conf: False # 是否在文本结果中保存置信度
save_path:所有输出文件都会保存在这个目录下save_img:设为True会保存标注后的图片,方便可视化save_txt:保存检测结果的坐标和类别信息,可用于后续分析虽然推荐使用YAML,但有些场景下可能会遇到CONF格式的配置文件。这里简单介绍一下关键区别。
CONF格式的主要特点:
同样的配置,CONF格式如下:
conf复制model.type=yolov5s
model.weight=./weights/best.pt
inference.img_path=./data/images
inference.img_size=640
output.save_path=./runs/detect
转换技巧:
现在我们来实际操作一下如何修改和使用配置文件。我会以Windows系统为例,但Linux/macOS的操作也类似。
注意:YAML对缩进敏感,修改时不要改变原有的缩进格式。建议使用支持YAML高亮的编辑器。
修改好配置文件后,执行推理就非常简单了:
bash复制openclaw infer --config my_config.yaml
这个命令会加载配置文件中所有参数,无需再手动输入其他参数。
如果想临时覆盖配置文件中的某些参数,可以这样做:
bash复制openclaw infer --config my_config.yaml --img_size 320
这样会使用配置文件的所有参数,但img_size会被临时改为320。
新手在使用配置文件时,90%的问题都集中在以下几个方面:
症状:
解决方案:
症状:
解决方案:
症状:
解决方案:
掌握这些技巧可以大幅提升你的工作效率:
可以为不同场景创建多个配置文件:
使用时只需指定不同的配置文件即可切换环境。
YAML支持配置继承,可以创建一个base.yaml包含通用配置,然后其他文件继承并覆盖特定参数:
yaml复制# base.yaml
model:
type: yolov5s
weight: ./weights/base.pt
# custom.yaml
_base_: base.yaml
model:
weight: ./weights/custom.pt
可以在配置文件中使用环境变量:
yaml复制model:
weight: ${MODEL_PATH:-./weights/default.pt}
这样会优先使用MODEL_PATH环境变量,如果不存在则使用默认值。
使用以下命令验证配置文件是否正确:
bash复制openclaw check-config my_config.yaml
这会检查所有参数是否有效,避免运行时出错。
在使用OpenClaw配置文件的实践中,我总结出几个特别有用的经验:
版本控制:将配置文件纳入版本控制(如Git),但记得排除权重文件(太大且经常变化)。
参数文档:在团队中维护一个配置参数说明文档,记录每个参数的作用和可选值。
渐进式修改:不要一次性修改大量参数,应该逐个调整并测试效果。
备份习惯:修改配置文件前先备份,特别是生产环境的配置。
性能调优:通过配置文件可以轻松尝试不同参数组合,找到最佳性能配置。
一个特别有用的技巧是使用变量来管理常用路径:
yaml复制paths:
weights: ./weights
data: ./data
model:
weight: ${paths.weights}/best.pt
inference:
img_path: ${paths.data}/images
这样当路径需要变更时,只需修改一处即可。