Summary
./engine validate reports Missing tool implementations: set_output (and sometimes ask_user) for many templates, even though these are built-in EventLoopNode tools and work at runtime.
Evidence
./engine validate examples/templates/support_triage
# WARNING: Missing tool implementations: set_output
Affected templates include: support_triage, invoice_review, hourly_tracking, deep_research, meeting_scheduler, all supervisors/*, supervised_agreement_analysis.
Built-in registration lives in core/engine/graph/event_loop/node.py — not in per-agent tools.py.
Validator logic: core/engine/runner/runner.py → validate() checks self._tool_registry.has_tool(tool_name) only.
Expected behavior
set_output and ask_user should not appear in missing-tool warnings
- Validate should still catch genuinely missing custom tools (e.g.
fetch_broker_transactions without tools.py)
Proposed fix
File: core/engine/runner/runner.py (or shared constant)
BUILTIN_NODE_TOOLS = frozenset({"set_output", "ask_user"})
# skip these when building missing_tools list
Add/update test in core/tests/ for validate on an agent that only uses set_output.
Acceptance criteria
Effort
~1 hour
Summary
./engine validatereports Missing tool implementations: set_output (and sometimesask_user) for many templates, even though these are built-in EventLoopNode tools and work at runtime.Evidence
./engine validate examples/templates/support_triage # WARNING: Missing tool implementations: set_outputAffected templates include:
support_triage,invoice_review,hourly_tracking,deep_research,meeting_scheduler, allsupervisors/*,supervised_agreement_analysis.Built-in registration lives in
core/engine/graph/event_loop/node.py— not in per-agenttools.py.Validator logic:
core/engine/runner/runner.py→validate()checksself._tool_registry.has_tool(tool_name)only.Expected behavior
set_outputandask_usershould not appear in missing-tool warningsfetch_broker_transactionswithouttools.py)Proposed fix
File:
core/engine/runner/runner.py(or shared constant)Add/update test in
core/tests/for validate on an agent that only usesset_output.Acceptance criteria
./engine validate examples/templates/support_triage— no missing-tool warning forset_outputEffort
~1 hour