Fluid Forge
Why Forge
Concepts
Get Started
  • Consume a Data Product
  • See it run
  • Demos
  • Local (DuckDB)
  • Source-Aligned (Postgres → DuckDB)
  • AI Forge + Data Models
  • MCP Output Port — Serve to AI Agents
  • GCP (BigQuery)
  • Snowflake Team Collaboration
  • Declarative Airflow
  • Orchestration Export
  • Jenkins CI/CD
  • Universal Pipeline
  • 11-Stage Production Pipeline
  • Catalog Forge End-to-End
CLI Reference
  • Agent Policy (concept)
  • MCP Output Port — Serve to Agents
  • MCP deep-dive
  • AI-assisted authoring
  • LLM providers & backends
  • Overview
  • Quickstart
  • Examples
  • Your own CI
  • Your own scaffolding
  • Custom validator
  • Apply hook
  • Reference
  • Overview
  • Architecture
  • GCP (BigQuery)
  • AWS (S3 + Athena)
  • Snowflake
  • Local (DuckDB)
  • Custom Providers
  • Roadmap
GitHub
Why Forge
Concepts
Get Started
  • Consume a Data Product
  • See it run
  • Demos
  • Local (DuckDB)
  • Source-Aligned (Postgres → DuckDB)
  • AI Forge + Data Models
  • MCP Output Port — Serve to AI Agents
  • GCP (BigQuery)
  • Snowflake Team Collaboration
  • Declarative Airflow
  • Orchestration Export
  • Jenkins CI/CD
  • Universal Pipeline
  • 11-Stage Production Pipeline
  • Catalog Forge End-to-End
CLI Reference
  • Agent Policy (concept)
  • MCP Output Port — Serve to Agents
  • MCP deep-dive
  • AI-assisted authoring
  • LLM providers & backends
  • Overview
  • Quickstart
  • Examples
  • Your own CI
  • Your own scaffolding
  • Custom validator
  • Apply hook
  • Reference
  • Overview
  • Architecture
  • GCP (BigQuery)
  • AWS (S3 + Athena)
  • Snowflake
  • Local (DuckDB)
  • Custom Providers
  • Roadmap
GitHub
  • Introduction

    • Home
    • Why Fluid Forge
    • Getting Started
    • Snowflake Quickstart
    • See it run
    • Forge Data Model
    • Vision & Roadmap
    • Playground
    • FAQ
  • Concepts

    • Concepts
    • Builds, Exposes, Bindings
    • What is a contract?
    • Quality, SLAs & Lineage
    • Governance & Policy
    • Agent Policy (LLM/AI governance)
    • Providers vs Platforms
    • Fluid Forge vs alternatives
  • Data Products

    • Consume a Data Product
    • Product Types — SDP, ADP, CDP
  • Walkthroughs

    • Walkthrough: Local Development
    • Source-Aligned: Postgres → DuckDB → Parquet
    • AI Forge And Data-Model Journeys
    • Walkthrough: MCP Output Port
    • Walkthrough: Deploy to Google Cloud Platform
    • Walkthrough: Snowflake Team Collaboration
    • Declarative Airflow DAG Generation - The FLUID Way
    • Generating Orchestration Code from Contracts
    • Jenkins CI/CD for FLUID Data Products
    • Universal Pipeline
    • The 11-Stage Pipeline
    • End-to-End Walkthrough: Catalog → Contract → Transformation
  • CLI Reference

    • CLI Reference
    • Core workflow

      • fluid init
      • fluid demo
      • fluid forge
      • fluid validate
      • fluid plan
      • fluid apply
      • fluid diff
      • fluid status
    • Build & ship

      • fluid bundle
      • fluid generate
      • fluid generate artifacts
      • fluid validate-artifacts
      • fluid verify-signature
      • fluid generate iac
      • fluid generate-airflow
      • fluid generate-pipeline
      • fluid viz-graph
      • fluid publish
      • fluid ship
      • fluid rollback
      • fluid schedule-sync
    • AI & Agents

      • fluid ai
      • fluid agents
      • fluid mcp
      • fluid memory
      • fluid stats
      • fluid skills
    • Quality & governance

      • fluid test
      • fluid verify
      • fluid contract-tests
      • fluid contract-validation
      • fluid policy
      • fluid policy check
      • fluid policy compile
      • fluid policy apply
    • Standards & interoperability

      • fluid odps
      • fluid odps-bitol
      • fluid odcs
      • fluid export
      • fluid export-odps
      • fluid exporters
      • fluid import
      • fluid market
      • fluid datamesh-manager
    • Project & workspace

      • fluid product-new
      • fluid product-add
      • fluid workspace
      • fluid contract
      • fluid split
      • fluid config
      • fluid providers
      • fluid plugins
      • fluid provider-init
      • fluid auth
      • fluid secrets
      • fluid ide
      • fluid scaffold-ci
      • fluid scaffold-composer
      • fluid scaffold-ide
      • fluid docs
      • fluid runs
      • fluid retention
      • fluid describe
      • fluid doctor
      • fluid roadmap
      • fluid version
    • Catalog adapters

      • Source Catalog Integration (V1.5)
      • Publishing to a Catalog — Overview
      • BigQuery Catalog
      • Snowflake Horizon Catalog
      • Databricks Unity Catalog
      • Google Dataplex Catalog
      • AWS Glue Data Catalog
      • DataHub Catalog
      • Data Mesh Manager Catalog
      • OpenMetadata Catalog
    • CLI by task

      • CLI by task
      • Add quality rules
      • Add agent governance
      • Debug a failed pipeline run
      • Switch clouds with one line
  • Recipes

    • Recipes
    • Recipe — add a quality rule
    • Recipe — switch clouds with one line
    • Recipe — tag PII in your schema
    • Write a contract that consumes another contract
    • Generate per-environment overlays
  • SDK & Plugins

    • SDK & Plugins
    • Quickstart — your first plugin
    • Examples

      • Runnable examples
      • Example: hello-scaffold — the minimal viable plugin
      • Example: gitlab-ci-scaffold — generate a complete CI project
      • Example: steward-validator — a custom governance rule
      • Example: prod-key-guard — apply-time invariant check
    • Journeys

      • Journeys
      • Your own CI/CD

        • You have your own CI/CD setup, no problem
        • GitLab CI — the bundle template
        • GitHub Actions — the bundle template
        • Jenkins — the bundle template
        • CircleCI — the bundle template
      • You have a strict project layout, no problem
      • You have governance rules, no problem
      • You want a check at apply time, no problem
    • Reference

      • Reference
      • Roles reference
      • Entry points reference
      • Trust model
      • Packaging
      • Companion packages
  • Providers

    • Providers
    • Provider Architecture
    • GCP Provider
    • AWS Provider
    • Snowflake Provider
    • Local Provider
    • Creating Custom Providers
    • Provider Roadmap
  • AI & Agents

    • MCP Server
    • Built-in And Custom Forge Guidance
    • Forge Discovery Guide
    • Forge Memory Guide
    • Authoring Forge Tools
    • Guided fluid forge UX
    • LLM Providers
    • LiteLLM Backend
    • Capability Warnings
    • Cost Tracking
    • FLUID Forge Contract GPT Packet
    • Agentic Primitives
  • Operate & Deploy

    • Airflow Integration
    • Blueprints
    • Source-Aligned Acquisition
  • Govern & Secure

    • Governance, Compliance & the Business Case
    • Governance & Compliance
    • Network Safety
    • Credential Resolver — Security Model
  • Configuration & Reference

    • Environment Variables
    • Typed Errors
    • Typed CLI Errors
    • API Stability — fluid_build.api
  • Architecture & Releases

    • V1.5 Catalog Integration — Architecture Deep-Dive
    • V1.5 + V2 Hardening — Release Notes
  • Project

    • Contributing to Fluid Forge
    • Fluid Forge Docs Baseline: CLI 0.9.0
    • Fluid Forge Docs Baseline: CLI 0.8.11
    • Fluid Forge Docs Baseline: CLI 0.8.10
    • Fluid Forge Docs Baseline: CLI 0.8.9
    • Fluid Forge Docs Baseline: CLI 0.8.8
    • Fluid Forge Docs Baseline: CLI 0.8.7
    • Fluid Forge Docs Baseline: CLI 0.8.6
    • Fluid Forge Docs Baseline: CLI 0.8.5
    • Fluid Forge Docs Baseline: CLI 0.8.4
    • Fluid Forge Docs Baseline: CLI 0.8.3
    • Fluid Forge Docs Baseline: CLI 0.8.0
    • Fluid Forge Docs Baseline: CLI 0.7.11
    • Fluid Forge Docs Baseline: CLI 0.7.9
    • Fluid Forge v0.7.1 - Multi-Provider Export Release

Capability Warnings

When you start a fluid forge data-model from-intent run, the CLI checks the (provider, model) combo you picked against a capability catalog. If the combo is missing something the run needs (tool use, structured-output enforcement, prompt caching, extended thinking), or the combo isn't catalogued at all, you see a one-paragraph warning at the top of stdout and the run continues with degraded behaviour.

This page tells you what those warnings mean, what to do about them, and which (provider, model) combos are catalogued.

What the banner looks like

A typical run on a degraded combo prints something like this just after the v2-preview banner:

⚠ openai/o1-mini does not reliably support tool use — agent runs may produce degraded output.
⚠ Note for openai/o1-mini: o1 reasoning models do not support tool use or streaming.
  Multi-turn tool loops will degrade to single-shot prompts.
capability_warnings_count=2 provider=openai model=o1-mini

The first lines are user-facing warnings (printed via the standard CLI console — also fed through the secret-redaction filter so they're safe to share in bug reports). The trailing capability_warnings_count=… is a structured log line for telemetry.

When the banner fires

Missing required capability

The "what's required" set depends on the usage profile of the run:

  • agent_loop — the multi-turn tool-driven loop (fluid forge --agent-loop) requires both tool_use AND structured_output. If either is missing, you'll get a warning per gap.
  • staged_pipeline — the default fluid forge data-model from-intent pipeline requires structured_output only (each stage is one LLM call; no tools). Tool-use gaps don't warn here.

Concretely:

  • gpt-3.5 on the staged pipeline → warns (no strict structured output).
  • o1-mini on the agent loop → warns twice (no tool use, no streaming).
  • gemma2:9b on the agent loop → warns (predates Ollama's tool-calling support).
  • claude-sonnet-4-6 on either → silent (full support).

Unknown (provider, model)

If your model isn't in the catalog, you always get an "is not in the capability catalog" warning. The run still proceeds with the conservative _FALLBACK_CAPABILITIES (streaming on, tool_use off, structured_output off) so you get something — but if your model actually supports more than that, see Adding a model to the catalog.

Operational notes

Even when a combo passes the requirements check, the catalog may still surface a note field as a warning. Examples:

  • claude-opus-4-7 — "Temperature is deprecated on Opus 4.7 — providers drop it automatically."
  • gemma4 — "gemma4 is the project's default Ollama model. Tool-use accuracy is acceptable for the staged pipeline; the multi-turn agent loop may need more iterations to converge than on hosted providers."
  • Any Ollama llama3.1 — "Tool-use accuracy on Ollama-served llama3.1 is lower than on hosted Anthropic / OpenAI / Gemini models. Expect more tool-call validation errors."

Notes are informational — they don't block the run.

Silencing the banner

The warnings are useful by default, but two opt-outs exist:

# Per-run silence
FLUID_QUIET=1 fluid forge data-model from-intent intent.yaml ...

# Same effect — alternative env var name some CI systems prefer
FLUID_NONINTERACTIVE=1 fluid forge data-model from-intent intent.yaml ...

The warnings are still recorded to telemetry (capability_warnings_count=… log line) so silencing the print doesn't lose the signal — useful for CI runs where stdout is consumed by another tool.

Model coverage matrix

The catalog lives at fluid_build.copilot.agents.capability_catalog.CAPABILITY_CATALOG. Resolution is by longest-prefix match within a provider — claude-3-5-sonnet-20241022 resolves to the claude-3-5-sonnet row, etc.

Anthropic

Prefixtool_usestructured_outputstreamingprompt_cachingextended_thinkingNotes
claude-opus-4-7✅✅✅✅✅Temperature is deprecated; providers drop it automatically
claude-sonnet-4-7✅✅✅✅✅
claude-sonnet-4-6✅✅✅✅
claude-sonnet-4-5✅✅✅✅
claude-haiku-4-5✅✅✅✅
claude-3-5-sonnet✅✅✅✅
claude-3-5-haiku✅✅✅✅
claude-3-opus✅✅✅✅
claude-3 (catch-all)✅✅✅

OpenAI

Prefixtool_usestructured_outputstreamingextended_thinkingNotes
o1❌✅❌✅o1 reasoning models do not support tool use or streaming. Multi-turn tool loops will degrade to single-shot prompts.
o3✅✅✅✅
o4✅✅✅✅
gpt-4.1✅✅✅
gpt-4.1-mini✅✅✅
gpt-4.1-nano✅✅✅
gpt-4o✅✅✅
gpt-4-turbo✅✅✅
gpt-4 (pre-4o)✅❌✅Lacks strict JSON-Schema response format. Schema validation may fail on edge cases.
gpt-3.5✅❌✅Should not be used for stage agent runs — the staged outputs require strict schema enforcement.

Google Gemini

Prefixtool_usestructured_outputstreamingNotes
gemini-2.5✅✅✅
gemini-2.0✅✅✅
gemini-1.5✅✅✅responseSchema budget is small; very large schemas may still fail

Ollama

Ollama is a runtime, not a model — capabilities depend on the model loaded. The catalog covers what the project's default llm_models.json exposes plus the most common community models.

Prefixtool_usestructured_outputstreamingNotes
llama3.2✅❌✅
llama3.1✅❌✅Tool-use accuracy on Ollama-served llama3.1 is lower than on hosted models. Expect more tool-call validation errors.
qwen3-coder✅❌✅Tuned for code generation; tool-use latency is higher than llama3.x but accuracy on structured args is better
qwen3✅❌✅
qwen (catch-all)✅❌✅
gemma4✅❌✅The project's default Ollama model. Acceptable for the staged pipeline; multi-turn agent loop may need more iterations to converge
gemma3✅❌✅
gemma2❌❌✅Predates Ollama's tool-calling support. Use gemma3+ for the agent loop.
gemma (1.x)❌❌✅Predates tool calling
mistral✅❌✅
mixtral✅❌✅
deepseek✅❌✅
phi❌❌✅Phi-family models are too small for reliable tool calling. Use them for completion-style prompts only.

Ollama context windows

The token-budget catalog at fluid_build.copilot.agents.token_budget.DEFAULT_CONTEXT_WINDOWS covers per-model windows: llama3.1/3.2/3.3 128K, qwen3-coder 256K, qwen3/qwen2.5/gemma4/gemma3 128K, gemma2/gemma/llama3 8K, mistral/mixtral/deepseek 32K, phi-4 16K, phi-3 4K, phi 2K. Override via capability_matrix["context_window"] if you've configured a custom context window on your local server.

Adding a model to the catalog

Catalog entries are tiny dataclass instances. To add a model the project doesn't yet know about:

# fluid_build/copilot/agents/capability_catalog.py — append to CAPABILITY_CATALOG
ProviderCapabilities(
    provider="ollama",
    model_prefix="my-fancy-model",
    tool_use=True,
    structured_output=False,
    streaming=True,
    notes=("Operational caveat goes here.",),
),

And bump the context-window catalog at fluid_build/copilot/agents/token_budget.py::DEFAULT_CONTEXT_WINDOWS:

"my-fancy-model": 128_000,

A test in tests/copilot/test_capability_catalog.py and tests/copilot/test_token_budget.py for the new entry pins the change against future regressions.

See also

  • LLM Providers → Run-start capability warnings — where this fits in the provider config flow
  • Typed Errors — when a degraded run fails, you'll see one of the seven typed errors
  • Agentic primitives → Token-budget pre-flight & compaction — how the token-budget catalog (paired with this one) prevents context-overflow failures
Edit this page on GitHub
Last Updated: 5/17/26, 6:10 PM
Contributors: fas89, Claude Opus 4.7 (1M context)
Prev
LiteLLM Backend
Next
Cost Tracking