Skip to content

archon-workflow-builder generates single-node YAMLs that drop user input ($ARGUMENTS missing) #1535

@ogimbel

Description

@ogimbel

Summary

archon-workflow-builder generates single-node DAG workflows whose prompt templates describe how to handle the user's invocation message but do not reference the $ARGUMENTS substitution variable. As a result, the harness captures the user message as workflow_start.content but never injects it into the node's conversation. The agent sees an empty input section and asks the user for the missing parameter, even though the user did pass one.

Reproduction

  1. Run archon-workflow-builder with a prompt asking for a single-node DAG that takes a user-provided string as input (e.g. 'Build sparc-research workflow: SPARC Phase 0 — single-node DAG that conducts research on a topic provided by the user').
  2. The generated YAML has a ## Input-style section in the prompt that says things like 'the subject provided by the user' but never includes $ARGUMENTS literally.
  3. Run the workflow with a user input: archon workflow run <name> 'Subject: Foo'.
  4. Observe in .archon/logs/<run-id>.jsonl:
    • workflow_start.content correctly captures 'Subject: Foo'
    • node_complete.tokens.input is ~9 (just the YAML system content, no user message)
  5. The agent in its response asks the user to provide the subject.

Diagnosis

references/variables.md (embedded in the binary) documents that $ARGUMENTS (alias $USER_MESSAGE) is the only mechanism to interpolate the user invocation message into a node prompt. The workflow-builder doesn't include this token when emitting single-node YAMLs that take user input.

Working bundled multi-node workflows like archon-workflow-builder itself reference $ARGUMENTS directly (e.g. Issue: $ARGUMENTS in the classify node).

Fix

Either (a) make the workflow-builder always include $ARGUMENTS in any ## Input / ## Subject section it generates for single-node workflows that take user input, or (b) add a YAML-level metadata flag like accepts_user_input: true that the harness uses to auto-prepend the user message as a user-role message.

Workaround

Manually patch the generated YAML to include $ARGUMENTS somewhere in the node prompt:

prompt: |
  ## Input
  The user's invocation message (verbatim):

  $ARGUMENTS

  Treat the text above as <whatever the workflow expects>.

After this edit the user input flows through correctly (verified with sparc-research running successfully end-to-end after the patch, run id 18b13dd4e0da86838c5cc7b15a7ba40a, duration 6m4s).

Environment

  • archon v0.3.9 (macOS arm64 binary at ~/.local/bin/archon)
  • All three custom workflows generated by archon-workflow-builder in the same session exhibited the same bug

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium priority - Backlog, when time permitsarea: workflowsWorkflow enginebugSomething is broken

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions