AGPL-3.0-or-later · forever.

the workflow library

t4-deep-research-brief

an agent works the web inside hard caps, then the brief. A pack showcase file, shown whole to read; nika run t4-deep-research-brief.nika.yaml is the honest affordance — this site never fabricates a replay for it.

  • 4tasksthe plan below walks them
  • 4wavesrun together when they can
  • infer · agent · invokeverbsthe whole grammar it speaks
  • browseread, then runno fabricated replay

the plan

derived from the file, never drawn by hand
planinfer
investigateagent
briefinfer
saveinvoke

the file, whole

t4-deep-research-brief.nika.yaml
t4-deep-research-brief.nika.yaml
nika: v1workflow:  id: deep-research-brief  description: "plan → budgeted research agent → thinking synthesis → brief on disk"model: ollama/qwen3.5:4b   # local default · per-task overrides below pick stronger modelsvars:  topic:    type: string    required: true    description: "What to research"tasks:  plan:    infer:      model: anthropic/claude-haiku-4-5    # planning is a fast-model job      prompt: "Break '${{ vars.topic }}' into 4 sharp research queries · no overlap."      schema:        type: object        required: [queries]        properties:          queries:            type: array            items: { type: string }  investigate:    with:      plan_queries: ${{ tasks.plan.output.queries }}    agent:      system: |        You are a rigorous researcher. Work the queries one by one ·        fetch sources · keep verbatim quotes · note what each source        actually supports. Call nika:done when the plan is exhausted.      prompt: "Research plan · ${{ with.plan_queries }}"      tools:        - "nika:fetch"                 # the web        - "nika:write"                 # scratch notes        - "nika:done"                  # the loop-completion sentinel      max_turns: 25      max_tokens_total: 150000      schema:        type: object        required: [findings, sources]        properties:          findings:            type: array            items: { type: string }          sources:            type: array            items: { type: string }  brief:    with:      investigate_findings: ${{ tasks.investigate.output.findings }}      investigate_sources: ${{ tasks.investigate.output.sources }}    infer:      prompt: |        Findings · ${{ with.investigate_findings }}        Sources · ${{ with.investigate_sources }}        Write the executive brief · what's true · what's contested ·        what it means · what to do. Two pages max.      thinking:        enabled: true        budget_tokens: 8000  save:    with:      brief: ${{ tasks.brief.output }}    invoke:      tool: "nika:write"      args:        path: "./research/${{ vars.topic }}.md"        content: "${{ with.brief }}"        create_dirs: trueoutputs:  brief: ${{ tasks.brief.output }}  sources:    value: ${{ tasks.investigate.output.sources }}    description: "Every source the agent actually used"

lines 3540: agent: three tools granted, caps it cannot exceed. Source: the spec pack · open it in the playground →

Watch the recorded one replay on the home page, walk the showcase gallery, or install and run the file yourself.