Skip to content

R12 of devagentic#210 — worker tool surface for run_pipeline / propose_pipeline #100

@PowerCreek

Description

@PowerCreek

R12 of devagentic#210 — worker tool surface for run_pipeline / propose_pipeline

Filed on hermes-agent because the work lives client-side (MCP tool surface). devagentic provides the GraphQL mutations (executeWorkflowPipeline from NousResearch#258, writeWorkflowPipeline from NousResearch#261); R12 wires those into hermes-agent's MCP tool registry so workers can call them directly.

What R12 was supposed to be

Per devagentic#210: "worker tool surface for run_pipeline / propose_pipeline (wired in hermes-agent MCP)."

Today workers don't have a direct tool to invoke a workflow-pipeline. They could in principle call GraphQL via existing surfaces, but a first-class run_pipeline tool with proper arg validation + result shape makes the pipeline economy actually consumable from worker bootstraps.

Proposed Phase 1

New MCP tools in hermes-agent's tool registry:

run_pipeline(pipeline_id: str, user_id: str) -> RunResult

Wraps devagentic's executeWorkflowPipeline mutation. Returns the full PipelineRun structure (run_id, status, node_outcomes, error_message).

propose_pipeline(name: str, intent: str, version: int, nodes: list, edges: list, user_id: str) -> ShadowNodeRef

Wraps devagentic's writeWorkflowPipeline mutation. Returns the resulting doc id + carve-spec-applied (the existing return shape).

Tool descriptor wiring

Both tools get OpenAI-compat function descriptors so worker dispatches can tool_choice: required against them. Surfaces in the same MCP registry the existing tools (writeArtifact, readArtifact, etc.) live in.

Acceptance

Composition

  • devagentic#213 — kind:workflow-pipeline schema
  • devagentic#258 — pipeline runtime (executeWorkflowPipeline)
  • devagentic#261 — writeWorkflowPipeline mutation
  • devagentic#295 — temporary client-tier tools-strip; while that's in place, workers dispatched through client-tier auto-route can't actually USE these tools. R12 only becomes useful for client-tier workers AFTER devagentic#295's strip is disabled (which requires this repo's fix: response handler ignores message.tool_calls — "returned no content" false-positive on tool-bearing prompts #99 to land first).
  • hermes-agent#99 — proper message.tool_calls handling; gates the client-tier usefulness of R12.

Recommendation

Stay Backlog until hermes#99 lands. After #99 the tools become useful for client-tier workers; without it they only work for orchestrator-tier dispatches (which can already call the GraphQL mutations directly anyway, so the wiring is less load-bearing).

Parent

devagentic#210 (Flow-aware router umbrella).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions