FluiqFluiqDocs
  • ObservabilityTrace every call, cost, and latency
  • SecurityBlock attacks, redact PII and secrets
  • OptimizationCache repeated prompts automatically
  • EvaluationScore responses and whole agent runs
  • DatasetsGolden sets that capture whole agent runs
  • Prompt ManagementVersion and deploy prompt templates
  • AlertsPush eval and security events to Slack

LLM Providers

  • OpenAI
  • Anthropic
  • Google Gemini
  • Google Vertex AI

Agent Frameworks

  • LangChain
  • LangGraph
  • CrewAI
  • Google ADK
  • MCP

Vector Databases

  • Pinecone
  • Chroma
  • Weaviate
  • FAISS
  • Qdrant
14 integrations · zero wrappersView all
Pricing
  • Fluiq DocsGuides, concepts & SDK reference
  • Code SamplesCopy-paste integration snippets
  • LLM Cost CalculatorCompare OpenAI, Claude & Gemini pricing
  • polygateOpen-source unified LLM client
  • InfragerCloud diagrams to secure Terraform
Contact
Get API key

Language

Getting Started

Quickstart

Pillars

ObservabilitySecurityEvaluationOptimization

Reference

PromptsDatasetsConfigurationAlerts
Code Examples

Datasets

Curate golden datasets straight from your real traffic, then re-run evaluation and security over them as a regression suite. Trace-backed examples capture the whole agent run, not just an input/output pair, so full agentic evaluation works offline, forever.

Build a dataset from traces

Open any run in the Traces drawer and click Add to Dataset. On a root span this captures the entire run; pick an existing dataset or create a new one inline. You can also add the currently open example from the Prompts playground.

Trajectory capture

When you add a trace-backed example, Fluiq pins the run's whole trajectory into a retention-independent store: every span, including LLM calls, agent/task steps, tool calls, MCP calls, the multi-agent DAG, and media references. Media is offloaded to object storage and re-linked on read. The pinned snapshot means a dataset run evaluates the exact trajectory even after the original trace has passed its retention window.

Why the whole trajectory?

A single input/output pair can only be scored as one turn. Pinning the full run lets Fluiq re-run agentic evaluation (tool-selection correctness, trajectory quality, and multi-agent coordination) and security, exactly as it would on a live trace. Expand any example in the Datasets dashboard to inspect the captured steps, agents, tools, and MCP calls.

Connect Agents

Rather than adding runs one at a time, click Connect Agents on a dataset and pick a traced agent. Fluiq imports every run of that agent to date (deduplicated, full trajectory pinned) and keeps the dataset in sync; future runs of a linked agent are appended automatically.

Batch evaluation & security

From a dataset you can launch three kinds of batch run over every example: agentic evaluation (tool selection, trajectory, coordination against the pinned trajectory), security (risk level and detections), and a metrics run that grades each example's recorded answer against its expected_output with the metrics you pick (hallucination, faithfulness, relevance, toxicity, coherence, completeness). Results roll up into a per-run report with per-metric averages and per-example scores.

Compare runs. Every report has a Compare vs… selector: pick any earlier run of the same kind and Fluiq diffs them — per-metric score deltas (computed only over examples present in both runs) and every example classified as regressed, improved, or unchanged. That's your regression gate before shipping a prompt or model change; the same check runs headless in CI via python -m fluiq.ci (see Evaluation).

Programmatic access

Datasets are also reachable over the API: list datasets, add examples, and fetch an example's pinned trajectory.

Python
import os, requests

BASE = "https://api.fluiq.ai/api/v1"
H = {"Authorization": f"Bearer {os.environ['FLUIQ_API_KEY']}"}

# Create a dataset and add an example captured from a trace
ds = requests.post(f"{BASE}/datasets", headers=H,
                   json={"name": "checkout-regressions"}).json()

requests.post(f"{BASE}/datasets/{ds['dataset_id']}/examples", headers=H, json={
    "input": "Refund my last order",
    "expected_output": "Opened refund #4821",
    # link the run so Fluiq pins its full trajectory for agentic eval
    "metadata": {"source_trace_id": "0f9c...e21"},
})

Pass a source_trace_id in an example's metadata (use the run's root trace id) and Fluiq snapshots that run's whole trajectory into the dataset automatically.