A required branch is marked optional
Detect: Recommendation appears without a mandatory risk assessment.
Recover: Validate join policies against acceptance tests and block release.
Represent bounded agent work as explicit dependencies, enabling reproducible scheduling, parallel branches, and precise restart boundaries.
A directed acyclic graph models tasks as nodes and dependencies as edges without allowing a path back to an earlier node. It fits workflows whose overall structure is known before execution, even when individual nodes use probabilistic models. The graph exposes the critical path and makes prerequisites visible to schedulers and reviewers.
A DAG is not a complete model for open-ended agent behavior. Replanning and repeated critique require a bounded subworkflow or an external state machine. Separate the graph definition from each execution instance so retries, artifact versions, and task status do not mutate the intended dependency structure.
A prototype may implement dependencies as ordinary function calls. Draw the actual graph to expose accidental serialization and missing validation steps.
Production persists node outcomes and schedules only ready nodes. Make artifact identity include relevant input versions so cached output cannot survive a material source change.
At scale, prioritize critical-path tasks, enforce pool limits, and partition large graphs. A wide fan-out can overwhelm a shared model endpoint even when the scheduler has abundant capacity.
Specifies typed node inputs, dependency edges, and terminal success conditions.
Finds ready nodes and allocates constrained worker capacity without violating dependencies.
Retains immutable outputs with input hashes and schema versions for reuse.
Tracks node attempts, terminal outcomes, and graph-level completion separately.
Defines whether downstream work requires all branches or a permitted subset.
flowchart TD
I["Tender package"] --> P["Parse specifications"]
I --> C["Retrieve supplier credentials"]
P --> T["Technical comparison"]
P --> F["Commercial normalization"]
C --> R["Supplier risk review"]
T --> J["Validated evidence join"]
F --> J
R --> J
J --> A["Procurement recommendation"]Validate references, reject cycles, and identify disconnected nodes before accepting an execution.
Pin source document and configuration versions to produce reproducible execution identity.
Queue independent nodes with concurrency limits for their particular tools and model providers.
Check each result before marking its dependency satisfied; quarantine invalid artifacts.
Start downstream nodes only when their declared join policy is met.
Commit the final artifact or expose blocked nodes and their precise upstream causes.
Procurement · Illustrative enterprise scenario, not a reported customer outcome.
A manufacturer must compare bids with inconsistent price schedules, engineering specifications, and supplier documentation.
An ad hoc script repeats expensive parsing after any downstream failure and cannot explain which checks were omitted.
The assistant must create a comparable evidence package with every mandatory review completed before recommendation.
A versioned DAG separates extraction, specification matching, price normalization, credentials verification, and final scoring.
If currency normalization fails, technical findings remain available, but commercial ranking is blocked until the affected node succeeds.
Track critical-path duration, reusable-node rate, queue delay, and incomplete mandatory branches. Procurement approval remains a separate controlled action.
| Decision | Benefit | Cost |
|---|---|---|
| Static dependencies | Reviewers can understand and test the workflow before execution. | Unexpected investigations need an explicit extension mechanism. |
| Artifact reuse | Successful expensive nodes need not rerun after downstream failure. | Correct cache keys and retention become operational responsibilities. |
| Wide parallelism | Independent analyses can finish sooner. | Provider quotas and memory pressure can move the bottleneck elsewhere. |
Detect: Recommendation appears without a mandatory risk assessment.
Recover: Validate join policies against acceptance tests and block release.
Detect: Input digest differs from artifact provenance.
Recover: Invalidate that node and its dependent successors.
Declare required artifacts as graph edges.
Represent skipped, failed, and completed states independently.
Restart only failed nodes and invalidated descendants.