hermes - 💡(How to fix) Fix Feature: Add `skills` parameter to `delegate_task` (like `cronjob` already has) [1 participants]

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…
GitHub stats
NousResearch/hermes-agent#18963Fetched 2026-05-03 04:53:14
View on GitHub
Comments
0
Participants
1
Timeline
5
Reactions
0
Author
Participants
Timeline (top)
labeled ×5

The cronjob tool already supports a skills parameter that loads specified skills before executing a scheduled job. The delegate_task tool has no equivalent — subagents start with completely blank context, no access to the skill library. The parent must manually copy relevant skill guidance into the context field, which is error-prone, token-wasteful, and fragile.

This led to a real failure mode today: a research subagent given toolsets=["web"] fell into a 42-call search loop because it could only search, not navigate URLs. Our delegate-task-guide skill documents the toolset selection pitfall, but the subagent had no way to load it.

Error Message

The cronjob tool already supports a skills parameter that loads specified skills before executing a scheduled job. The delegate_task tool has no equivalent — subagents start with completely blank context, no access to the skill library. The parent must manually copy relevant skill guidance into the context field, which is error-prone, token-wasteful, and fragile.

Root Cause

This led to a real failure mode today: a research subagent given toolsets=["web"] fell into a 42-call search loop because it could only search, not navigate URLs. Our delegate-task-guide skill documents the toolset selection pitfall, but the subagent had no way to load it.

Code Example

delegate_task(
    goal="Analyze the source code at these URLs...",
    toolsets=["browser", "terminal", "file"],
    skills=["delegate-task-guide", "read-write-safety"],
    context="Fetch https://github.com/example/repo/blob/main/src/index.ts and summarize..."
)

---

delegate_task(
    description="Analyze A2A plugin source code",
    goal="Fetch and summarize the source code...",
    toolsets=["web"]  # ← Wrong toolset
)
RAW_BUFFERClick to expand / collapse

Summary

The cronjob tool already supports a skills parameter that loads specified skills before executing a scheduled job. The delegate_task tool has no equivalent — subagents start with completely blank context, no access to the skill library. The parent must manually copy relevant skill guidance into the context field, which is error-prone, token-wasteful, and fragile.

This led to a real failure mode today: a research subagent given toolsets=["web"] fell into a 42-call search loop because it could only search, not navigate URLs. Our delegate-task-guide skill documents the toolset selection pitfall, but the subagent had no way to load it.

Current Behavior

ToolCan pass skills?Mechanism
cronjob✅ Yesskills: ["skill-a", "skill-b"] — loaded before execution
delegate_task❌ NoSubagents get zero skills; parent must copy guidance into context

Proposed Behavior

Add an optional skills parameter to delegate_task, mirroring the existing cronjob pattern:

delegate_task(
    goal="Analyze the source code at these URLs...",
    toolsets=["browser", "terminal", "file"],
    skills=["delegate-task-guide", "read-write-safety"],
    context="Fetch https://github.com/example/repo/blob/main/src/index.ts and summarize..."
)
  • Skills are loaded into the subagent context before execution (same as cronjob)
  • Empty list or omitted means no skills (preserves current default behavior)
  • Explicit skills=[] could confirm "deliberately no skills" for clarity

Why Not Auto-Inherit All Parent Skills

That would bloat every subagent context with ~20+ skill schemas, most of which are unused for any given task. Explicit opt-in keeps subagent context lean while still providing access to critical skill knowledge. The cronjob approach is already opt-in and works well.

Real-World Failure (Today)

A delegate_task call was made to analyze a GitHub project:

delegate_task(
    description="Analyze A2A plugin source code",
    goal="Fetch and summarize the source code...",
    toolsets=["web"]  # ← Wrong toolset
)

The subagent could only use SearXNG search and Reddit tools (no browser, no terminal). It couldn't navigate to the GitHub URLs provided. Instead, it searched for them — 42 search API calls, zero source files actually fetched. It kept searching with different query variants, never finding what it needed because the tool didn't support URL navigation.

If the subagent had been able to load the delegate-task-guide skill, it would have had guidance on toolset selection and an explicit exit condition ("after 3 failed attempts, stop"). Instead, it had no access to that knowledge and looped until the parent interrupted it.

Benefits

  1. Consistency — Both async (cronjob) and sync (delegate_task) subagents use the same skill-loading pattern
  2. Token efficiency — Skills are loaded once, not manually duplicated into context
  3. Freshness — Skills stay current (loaded at execution time), not stale (manually copied weeks ago)
  4. Discoverability — Parent agents already know their skill names; passing them is natural
  5. Pitfall prevention — Task-specific skills like delegate-task-guide, read-write-safety, and systematic-debugging can prevent entire categories of subagent failures

Environment

  • Hermes Agent: v0.12.0 (2026-4-30), 39 commits behind latest
  • OS: Ubuntu 25.10 (Questing Quokka), kernel 6.17.0-23-generic, x86_64
  • CPU: 12th Gen Intel i7-12700H
  • GPU: NVIDIA RTX 3060 Laptop 6GB, driver 595.58.03
  • RAM: 30 GB
  • Python: 3.13.7
  • Model: glm-5.1:cloud via custom provider (Ollama)
  • Enabled toolsets: web, browser, terminal, file, delegation, cronjob, skills, memory, session_search, todo, clarify, messaging, vision, image_gen, tts, homeassistant, reddit, robloxstudio, searxng
  • Installed skills: 130
  • Profile: default (Hazel)

Related Code

  • cron/scheduler.py — existing skills parameter handling for cron jobs (reference implementation)
  • tools/delegate_task.py — current delegate_task tool definition (needs the new parameter)
  • agent/skill_commands.py — skill loading logic (could be reused)
  • skills/ directory — skill discovery and loading infrastructure already exists

extent analysis

TL;DR

Add an optional skills parameter to the delegate_task function to load specified skills before executing a task, similar to the existing cronjob tool.

Guidance

  • Review the cron/scheduler.py file to understand how the skills parameter is handled in the cronjob tool.
  • Modify the tools/delegate_task.py file to add the new skills parameter, allowing subagents to load specified skills before execution.
  • Reuse the skill loading logic from agent/skill_commands.py to load the specified skills into the subagent context.
  • Test the updated delegate_task function with different skill configurations to ensure it works as expected.

Example

# Example usage of the updated delegate_task function
delegate_task(
    goal="Analyze the source code at these URLs...",
    toolsets=["browser", "terminal", "file"],
    skills=["delegate-task-guide", "read-write-safety"],
    context="Fetch https://github.com/example/repo/blob/main/src/index.ts and summarize..."
)

Notes

The proposed solution assumes that the existing skill loading infrastructure can be reused for the delegate_task tool. If there are any issues with skill discovery or loading, additional modifications may be necessary.

Recommendation

Apply the workaround by adding the skills parameter to the delegate_task function, as it provides a consistent and efficient way to load skills for subagents, similar to the cronjob tool.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

hermes - 💡(How to fix) Fix Feature: Add `skills` parameter to `delegate_task` (like `cronjob` already has) [1 participants]