Skip to content

Support staged re-invocation of agents (bidirectional workflows) #65

@aviraldua93

Description

@aviraldua93

Feature Request: Staged agent re-invocation

Problem

In real company workflows, the same role both directs work (going down) and reviews results (coming back up). For example:

  • VP Engineering sets technical direction → ICs execute → same VP reviews the output
  • TPM writes the spec → ICs implement → same TPM validates against spec

Currently, Conductor's DAG model requires creating separate agent nodes for the same role at different stages:

vp_engineering (direction)  →  ...  →  vp_report (review)    # same person, 2 nodes
tpm (spec)                  →  ...  →  tpm_report (validate)  # same person, 2 nodes

This doubles agent count (11 nodes for a 7-role workflow), wastes tokens, and feels artificial.

Industry comparison

Framework Re-invocation support
LangGraph ✅ Conditional backward edges, stateful re-triggers
CrewAI ✅ Supervisor sends agents back with new instructions
AutoGen ✅ Conversational protocol, natural re-invocation
Conductor ❌ Separate nodes required for same role at different stages

Proposed solution

Allow an agent node to appear at multiple stages in the workflow with different inputs:

agents:
  - name: vp_engineering
    stages:
      - stage: direction
        input: [ceo.output]
        prompt: "Set technical direction..."
        routes:
          - to: tpm
      - stage: review
        input: [tpm_report.output, dev_manager_report.output]
        prompt: "Review your team's output..."
        routes:
          - to: ceo_decision

Or alternatively, allow the same agent name to be referenced at multiple points in the DAG:

routes:
  - to: vp_engineering  # second invocation with different context

Why this matters

  • Reduces agent count (fewer API calls, lower cost)
  • More realistic workflows (same persona reviews its own team's work)
  • Aligns with how LangGraph, CrewAI, and AutoGen handle this pattern

Workaround

Create duplicate nodes (vp_engineering + vp_report) with the same persona but different prompts. Works but feels like a hack.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions