Documentation / Build

Explore long-running research

Prepare durable async work and governed publication. These checks validate contracts locally; they do not run an AI provider.

Validate a durable wait

Download the async workflow.

shell
rippflow controls validate async.workflow.yaml --json

Expected: ok: true, async phases and a policy digest. Real execution requires issued callback credentials, budgets and an installed provider adapter.

Add governed search and publication

Download the search tool, publish tool and workflow.

shell
rippflow tools validate research.search-tool.yaml
rippflow tools validate research.publish-tool.yaml
rippflow controls validate research.workflow.yaml --json

Expected: valid manifests and workflow policy. Publication remains approval-gated in a real installation.

Governed workflow definition

JSON

json
{
  "name": "long-running-governed-research-workflow",
  "version": 1,
  "controls": {
    "policyVersion": 1,
    "limits": {
      "maxIterations": 6,
      "maxToolCalls": 12,
      "maxConcurrentOperations": 2,
      "maxDuration": "2h"
    },
    "budgets": [
      {
        "name": "research-budget",
        "resource": "model_cost",
        "unit": "usd",
        "limit": "2.00",
        "enforcement": "hard"
      }
    ]
  },
  "phases": {
    "search-corpus-loop": {
      "type": "mcp_tool",
      "order": 1,
      "tool": "research-corpus-search",
      "toolVersion": "1.0.0",
      "serverRef": "research-mcp",
      "timeout": "20s",
      "controls": {
        "budget": "research-budget"
      }
    },
    "async-deep-synthesis": {
      "type": "async_tool",
      "order": 2,
      "requires": [
        "search-corpus-loop"
      ],
      "tool": "research-agent",
      "timeout": "30m",
      "callback": {
        "required": true,
        "authenticated": true
      },
      "adapter": {
        "kind": "aws_lambda",
        "target": "arn:aws:lambda:us-east-1:111122223333:function:customer-research-agent",
        "supportsStatusLookup": true
      },
      "controls": {
        "budget": "research-budget"
      }
    },
    "publish-dossier": {
      "type": "mcp_tool",
      "order": 3,
      "requires": [
        "async-deep-synthesis"
      ],
      "tool": "research-dossier-publish",
      "toolVersion": "1.0.0",
      "serverRef": "research-mcp",
      "timeout": "30s",
      "controls": {
        "budget": "research-budget"
      },
      "terminal": true
    }
  }
}

YAML

yaml
name: long-running-governed-research-workflow
version: 1

controls:
  policyVersion: 1
  limits:
    maxIterations: 6
    maxToolCalls: 12
    maxConcurrentOperations: 2
    maxDuration: 2h
  budgets:
    - name: research-budget
      resource: model_cost
      unit: usd
      limit: "2.00"
      enforcement: hard

phases:
  search-corpus-loop:
    type: mcp_tool
    order: 1
    tool: research-corpus-search
    toolVersion: 1.0.0
    serverRef: research-mcp
    timeout: 20s
    controls:
      budget: research-budget

  async-deep-synthesis:
    type: async_tool
    order: 2
    requires:
      - search-corpus-loop
    tool: research-agent
    timeout: 30m
    callback:
      required: true
      authenticated: true
    adapter:
      kind: aws_lambda
      target: arn:aws:lambda:us-east-1:111122223333:function:customer-research-agent
      supportsStatusLookup: true
    controls:
      budget: research-budget

  publish-dossier:
    type: mcp_tool
    order: 3
    requires:
      - async-deep-synthesis
    tool: research-dossier-publish
    toolVersion: 1.0.0
    serverRef: research-mcp
    timeout: 30s
    controls:
      budget: research-budget
    terminal: true

Download: JSON · YAML

Verified sources

Checked 2026-11-05.

Let's talk

Contact Rippflow

Tell us about your workflows, deployment or pricing.

We'll reply to your email.

Search docs

Search workflows, handlers and operations.