hermes agent微调需五步:一选deepseek-r1-0528-qwen3基座模型并规范ms_agent数据格式;二用lora配置低秩适配参数;三注入工具描述嵌入增强语义理解;四嵌入json语法实时校验与惩罚机制;五导出模型并热加载tool_definition.yaml实现动态工具注册。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望提升Hermes Agent在特定任务上的表现,例如增强工具调用准确性、改善多语言情感识别一致性或适配私有API协议,则需对模型进行针对性微调。以下是实施微调的具体路径:
一、选择适配的基座模型与数据格式
微调效果高度依赖基座模型的语言能力与结构兼容性。Hermes Agent推荐使用DeepSeek-R1-0528-Qwen3 (8B)作为起点,该模型已针对Agent场景优化Function Calling结构,并原生支持messages/sharegpt/alpaca/query-response四类主流格式的自动转换。数据需严格遵循Agent行为范式,即包含system提示、user query、tool call指令及tool response闭环。
1、访问魔搭平台,下载ms_agent数据集(含3万条Agent格式API调用样本);
2、校验每条样本是否包含完整的tool_calls字段与valid JSON格式的参数嵌套;
3、将数据统一转换为Qwen3.5支持的messages格式,确保system角色中明确声明可用工具列表及其参数schema。
二、配置LoRA微调参数与训练环境
为降低显存占用并保持推理速度,Hermes Agent默认采用LoRA(Low-Rank Adaptation)方式进行参数高效微调。该方法仅更新注意力层中的低秩矩阵,不修改原始权重,适合消费级GPU部署。
1、安装ms-swift框架并启用LLM训练模块:pip install -e .[llm];
2、设置LoRA目标模块为q_proj、v_proj、o_proj和gate_proj,rank设为64,alpha设为128;
3、启动训练时指定--use_lora True --lora_r 64 --lora_alpha 128 --lora_dropout 0.1。
三、注入工具调用先验知识
单纯监督微调易导致模型在未见工具上泛化失败。需在训练前向embedding层注入工具语义先验,使模型理解工具名与功能间的映射关系。此步骤通过构造工具描述嵌入向量并拼接至input embedding实现。
1、提取每个工具的官方文档摘要,使用sentence-transformers/all-MiniLM-L6-v2生成128维描述向量;
2、将向量与对应tool_name token embedding相加,存入model.embed_tokens.weight扩展槽位;
3、在data collator中启用tool-aware masking,强制模型在生成tool_calls时关注工具描述嵌入位置。
四、验证结构化输出合规性
Agent微调的核心指标是JSON格式合法率与参数填充完整率。必须在训练循环中嵌入实时语法校验,避免模型输出非法字符串导致下游解析中断。
1、在trainer.compute_loss阶段插入json.loads()异常捕获逻辑;
2、对每次生成的tool_calls字符串执行strict validation:检查双引号闭合、逗号分隔、参数键名匹配schema;
3、若校验失败,将该样本loss权重提升3倍并标记为hard negative,引导模型聚焦格式纠错。
五、部署微调后模型并热加载工具定义
微调完成的模型需与运行时工具注册机制解耦,以支持动态增删API。Hermes Agent提供tool_registry hot-swap接口,允许在不重启服务前提下注入新工具描述。
1、导出微调后模型权重至safetensors格式,保留原始tokenizer与config.json;
2、编写tool_definition.yaml文件,按规范声明name、description、parameters及required字段;
3、调用hermes_tool_registry.load_from_yaml("tool_definition.yaml")触发运行时工具重载。











