需通过子代理委派机制实现任务拆解与并行执行:一、用/delegate指令启动单个同步子代理;二、用batch_runner.py批量并行调度最多3个子代理;三、在run_agent.py中嵌入动态委派逻辑;四、基于cron定时触发子代理;五、利用profile实现多业务线环境隔离。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您在使用HermesAgent执行多步骤任务时希望将部分环节交由独立智能体完成,则需通过子代理委派机制实现任务拆解与并行执行。以下是具体操作路径:
一、使用delegate_tool.py启动单个子代理
该方法适用于明确划分职责的单一子任务,父Agent调用工具后进入同步等待状态,直至子代理返回结果。每个子代理拥有独立上下文、终端会话和工具集配置能力。
1、在交互式终端中输入指令:/delegate --task "分析当前目录下所有Python文件的函数复杂度"
2、确认子代理初始化日志输出,检查其加载的toolset是否包含code_analyzer和file_scanner
3、观察父Agent控制台显示“Waiting for delegate result...”,表示已进入阻塞等待模式
4、子代理执行完毕后,原始会话中自动插入结构化报告,含函数名、圈复杂度值及高风险标记
二、通过batch_runner.py批量委派多个子代理
此方式支持并行调度最多3个子代理,适用于需从异构数据源同步采集信息的场景,各子代理间资源隔离,失败任务不影响其余执行流。
1、准备JSONL格式的任务清单文件delegation_tasks.jsonl,每行包含task、toolset和timeout字段
2、执行批处理命令:python batch_runner.py --dataset_file=delegation_tasks.jsonl --batch_size=3 --num_workers=3
3、监控日志中出现类似[Worker-0] launched delegate with PID 12894的进程标识符
4、当所有worker状态变为COMPLETED,系统自动触发aggregate_results()函数合并输出
三、在run_agent.py中嵌入动态委派逻辑
该方案允许主Agent根据运行时条件(如工具调用次数、响应置信度或外部API返回码)实时决策是否创建子代理,实现自适应任务分流。
1、修改run_agent.py中的tool_call_handler函数,在if tool_name == "delegate_task"分支内插入判断逻辑
2、添加条件语句:if current_step_complexity > 7 and not has_subagent_context():
3、在条件块内调用DelegateTool.create_subagent(task_spec, isolated_env=True)
4、确保subagent_config.yaml中已预设max_turns: 15与resource_limit: {"cpu": "2", "memory": "4G"}
四、基于cron调度器定时触发子代理委派
适用于周期性重复任务,例如每日凌晨扫描代码仓库变更、生成合规性报告等,子代理在指定时间点自动激活并执行预设流程。
1、在cron/scheduler.py中注册新任务:scheduler.add_job(delegate_daily_audit, 'cron', hour=2, minute=30)
2、定义delegate_daily_audit函数,内部调用DelegateTool.run_batch(...)并传入audit_profile
3、验证hermes_state.db中cron_jobs表新增记录,status字段为ACTIVE
4、手动触发一次测试执行:hermes --cron-run job_id=audit_20260421
五、利用profile隔离不同业务线的子代理环境
通过profile机制可为财务、研发、法务等不同部门配置专属子代理运行沙箱,确保工作目录、历史记忆与工具权限完全物理隔离。
1、创建专用profile:hermes --setup-profile finance-team --base-dir /opt/hermes/finance
2、为该profile安装定制toolset:hermes --profile finance-team --install-tool accounting_calculator
3、在finance-team profile下启动主Agent后,所有/delegate指令均默认继承该profile的环境变量与磁盘挂载点
4、检查/opt/hermes/finance/.hermes/config.yaml中isolation_mode: strict是否生效











