Five kinds of “planning” in the AI tooling landscape
The word “planning” is overloaded. At least five distinct approaches exist today, and they solve different problems:
The first two are design-time planning — they produce a plan before work begins, and a human (or the model itself) follows it step by step. The last three introduce runtime planning — execution graphs are generated and scheduled programmatically, with independent branches running in parallel. The difference is who executes: Claude Code Teams spawns autonomous agents; FIM One DAG dispatches steps within a single orchestrator.
These approaches are not competitors; they are complementary layers. A Kiro-style spec can define what to build, while a FIM One DAG can schedule how to execute the subtasks concurrently. Claude Code’s plan mode ensures a human agrees with the approach; FIM One’s PlanAnalyzer verifies the outcome automatically.
Three-Layer Nesting: The Full-Power Architecture
Both Claude Code Teams and FIM One DAG, at full capacity, exhibit a three-layer nested architecture:- Layer 1 — Human gate: User reviews the plan and approves before execution begins.
- Layer 2 — DAG orchestration: The approved plan is decomposed into tasks with dependency edges. Independent tasks run in parallel; downstream tasks wait for their blockers to resolve.
- Layer 3 — ReAct inner loop: Each task is executed by an agent running a full ReAct cycle (Perceive → Reason → Act → Observe), capable of multi-step reasoning, tool use, and autonomous retry.
Full-Power Runtime: FIM One vs Claude Code Teams
Both are genuine Agents — the core loop is identical: Perceive → Reason → Act → Feedback. The difference lies in how they orchestrate parallel work at full capacity.Real-World Benchmark: v0.5 RAG System
Claude Code Teams built FIM One’s entire v0.5 RAG subsystem in a single session:- 8 phases: Embedding → Reranker → Loaders → Chunking → VectorStore → Retrieval → KB Backend → Frontend + Docs
- 46 tests passing, frontend build clean
- Wall time: ~5 minutes
- Token cost: ~100k tokens per agent task × 8+ tasks ≈ 800k+ total tokens
- Dependency edges: Phase 5 depends on Phase 4 + 1b; Phase 6 depends on Phase 5 + 2 + 3 — a genuine DAG
Converging, Not Competing
The boundary between “team collaboration” and “pipeline scheduling” is blurring:- Claude Code Teams’
blockedBy/blocksIS a DAG — tasks have explicit dependency edges, and the leader dispatches newly-unblocked tasks as predecessors complete. This is topological scheduling with extra steps (messages). - FIM One’s DAG could benefit from agent autonomy — instead of single LLM calls per step, letting each step run a full ReAct loop would handle complex sub-tasks better.
Structured Output Degradation
All structured LLM call sites in the DAG pipeline (Planner, Analyzer, Tool Selection) use a unifiedstructured_llm_call() utility that implements a 3-level degradation chain:
Each text-based level retries once with a reformat prompt before falling to the next. The result is a
StructuredCallResult containing the parsed value, which extraction level succeeded, and accumulated token usage.
This design means the same prompt works reliably across GPT-4 (native FC), Claude (JSON mode), and local models (plain text), with consistent error handling and retry logic in one place instead of scattered across four call sites.
Three Execution Layers: Control Spectrum
The five planning approaches above describe the landscape. Within FIM One itself, three execution layers offer a control spectrum — from full human control to full AI autonomy:
The design principle: give users exactly as much control as they want.
- Need to prove every loan approval passes five specific steps? → Workflow.
- Need to research three topics in parallel then synthesize? → DAG.
- Need to draft and refine until satisfied? → Agent.
- Not sure? →
execution_mode: "auto"lets the LLM classify the query and route to DAG or ReAct at runtime.
- Dify offers only the Workflow layer (static visual DAGs).
- LangGraph offers only a code-level graph DSL (developer-defined topology, dynamic routing — structurally equivalent to visual workflows but requiring Python).
- Manus offers only the Agent layer (autonomous execution, no user-defined structure).