Auto-instrument every LangChain chain step, LLM calls, tool use, retriever queries, with zero code changes. Get full span trees, per-step cost attribution, and inline evals on every response.
Free tier · No credit card · 2-minute setup
Every chain step, LLM call, tool invocation, retriever query, embedding, becomes its own span with input, output, token counts, latency, and USD cost.
USD cost broken down per LLM node in the chain, across nested sub-chains and tool calls, know exactly which step in your pipeline is expensive.
LLM-as-judge scoring (hallucination, relevance, faithfulness, toxicity) runs automatically on chain outputs, warn mode logs scores, block mode intercepts bad responses.
import fluiq
fluiq.instrument(api_key="fl_...") # patches LangChain automatically
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
llm = ChatOpenAI(model="gpt-4o")
prompt = ChatPromptTemplate.from_template("Summarise this: {text}")
chain = prompt | llm | StrOutputParser()
# Every step is a separate trace span with cost:
result = chain.invoke({"text": "Your document content here"})Every call to these methods is automatically traced, no decorators, no wrappers, no manual spans.
BaseLLM.__call__() / invoke()BaseChatModel.__call__() / invoke()BaseChain.invoke() / run()BaseTool.run() / arun()BaseRetriever.get_relevant_documents()BaseEmbeddings.embed_documents()BaseEmbeddings.embed_query()ConversationalRetrievalChain.invoke()Free tier. No credit card. Full traces, security scanning, and evals on your first LangChain call.
50,000 free traces / month · 1,000 evals / month · 14-day retention