Building Production-Ready Coding Agents with Skills and Observability

langfuse_/_clickhouse · Tech · 2026 · source Agentic: yes · promotional bias: med · source-backed · extracted with prompt 0.5.5 (schema v2)

Generated from extraction.json — do not edit by hand. Every claim cites verbatim source evidence; stated means the quote directly asserts the claim, implied means it supports it indirectly.

Problem

Domain: Coding-agent skills for LLM observability integration

Langfuse needed coding agents to add observability, prompt management, and evaluation correctly across diverse user codebases, despite hundreds of documentation pages, outdated model pretraining, many integration choices, and limited visibility into what agents struggled with during setup.

Constraints:

Architecture

Langfuse built a coding-agent skill that acts like an expert integration guide. The skill defines the desired interaction style, references product modules instead of duplicating docs, asks follow-up questions before implementation, exposes a sitemap and markdown documentation paths, wraps existing APIs in an agent-friendly CLI, and adds a natural-language documentation search endpoint. Langfuse then instruments coding-agent runs with traces, reviews those traces to improve the skill, creates basic LLM-as-judge evaluations over file-system and diff state, and uses bounded auto-research plus human review to propose skill improvements.

Diagram confidence: reconstructed (reconstructed from prose).

flowchart LR
  developer-user[Developer user] --> coding-agent-runtime[Coding agent runtime]
  coding-agent-runtime --> langfuse-skill[Langfuse skill]
  langfuse-skill --> skill-style-guide[Skill style guide]
  langfuse-skill --> product-module-references[Product module references]
  langfuse-skill --> documentation-access-layer[Documentation access layer]
  documentation-access-layer --> documentation-sitemap[Documentation sitemap]
  documentation-access-layer --> markdown-documentation-endpoint[Markdown documentation endpoint]
  documentation-access-layer --> documentation-search-endpoint[Documentation search endpoint]
  coding-agent-runtime --> langfuse-cli[Langfuse CLI]
  langfuse-cli --> langfuse-apis[Langfuse APIs]
  coding-agent-runtime --> repository[Repository]
  coding-agent-runtime --> trace-instrumentation[Trace instrumentation]
  trace-instrumentation --> production-signal-loop[Production signal loop]
  documentation-search-endpoint --> production-signal-loop
  repository --> evaluation-templates[Evaluation templates]
  evaluation-templates --> llm-as-judge-checks[LLM-as-judge checks]
  production-signal-loop --> auto-research-optimizer[Auto-research optimizer]
  auto-research-optimizer --> target-function[Target function]
  auto-research-optimizer --> human-reviewer[Human reviewer]
Drag to pan · scroll or use +/− to zoom · reconstructed from the source's described component topology

Components

Component Role Interacts with
Developer user Person asking a coding agent to add Langfuse tracing, prompt management, evaluations, or observability to a repository. Coding agent runtime
Coding agent runtime Claude Code or similar coding agent that reads the skill, edits repositories, invokes tools, and performs integration work. Developer user, Langfuse skill, Repository, Langfuse CLI, Documentation access layer
Langfuse skill Skill package that gives the coding agent professional guidance for implementing Langfuse with best practices and up-to-date references. Coding agent runtime, Skill style guide, Product module references, Documentation access layer
Skill style guide Guidance in the skill markdown that tells agents how to interact, including asking follow-up questions before making implementation decisions. Langfuse skill, Coding agent runtime
Product module references Pointers from the skill to different Langfuse product areas so the agent can progressively disclose only relevant hints. Langfuse skill, Documentation access layer
Documentation sitemap High-level map of available documentation that agents inspect before fetching pages. Documentation access layer, Coding agent runtime
Markdown documentation endpoint Documentation rendering path that returns markdown through request headers or .md URLs so agents avoid parsing HTML. Documentation access layer, Coding agent runtime
Documentation search endpoint Natural-language search API backed by Langfuse's docs Q&A/RAG stack that returns relevant documentation chunks and creates server-side search telemetry. Documentation access layer, Coding agent runtime, Production signal loop
Documentation access layer Combined sitemap, markdown, and natural-language search surface that gives agents current canonical docs instead of stale embedded context. Langfuse skill, Documentation sitemap, Markdown documentation endpoint, Documentation search endpoint
Langfuse CLI Agent-facing wrapper over existing APIs, enabling agents to do work that users previously performed in the UI. Coding agent runtime, Langfuse APIs, Repository
Langfuse APIs Underlying API surface for tracing, prompt management, evaluation setup, and backend configuration. Langfuse CLI
Repository User codebase where the coding agent adds instrumentation, evaluation setup, prompt-management migration, or other Langfuse changes. Coding agent runtime, Langfuse CLI, Evaluation templates
Trace instrumentation Langfuse tracing applied to coding-agent runs so the team can see what the agent did at runtime. Coding agent runtime, Production signal loop
Production signal loop Feedback loop that analyzes traces and search telemetry to discover user problems, documentation gaps, and skill-improvement opportunities. Trace instrumentation, Documentation search endpoint, Auto-research optimizer
Evaluation templates Basic scenario checks for sample repositories, such as expecting OpenAI instrumentation and retrieval spans after running the skill. Repository, LLM-as-judge checks
LLM-as-judge checks Natural-language checks evaluated over filesystem and git diff state before and after skill runs. Evaluation templates
Auto-research optimizer Agentic exploration loop that proposes skill improvements against a target function. Production signal loop, Target function, Human reviewer
Target function Objective definition for auto-research, such as improving prompt migration into Langfuse prompt management. Auto-research optimizer
Human reviewer Langfuse team member who reviews auto-research suggestions and accepts only the useful ones. Auto-research optimizer

Data flow

A developer asks a coding agent to add Langfuse to a repository. The coding agent reads the Langfuse skill, asks clarifying questions, inspects product-module references, uses the sitemap or search endpoint to retrieve current documentation, invokes the Langfuse CLI over APIs, and edits the repository. The run is traced in Langfuse; traces and search telemetry are reviewed to discover errors, documentation gaps, new use cases, and skill improvements. Evaluation templates and LLM-as-judge checks compare filesystem and diff state before and after skill execution.

4 supporting quotes
“user comes in, ask coding engine to do something, and then the skill kind of has like a reference of like the skill MD”transcript, stated
“ask follow-up questions before making decision because there's so much you can be doing, and then references for the different product modules to kind of like progressively disclose additional hints that the agent might need to have. And then it can call the”transcript, stated
“Now we wrapped it in a CLI, and now an agent can just do everything humans needed to do in the UI in the past.”transcript, stated
“question, get something back that's relevant directly. It solved for the problem and two, we get to track these search parameters um because uh like if a coding agent fetches documentation, it's very difficult to understand what did like cloud code and”transcript, stated

Why this architecture

Langfuse chose a skill-based architecture because users wanted coding agents to perform integrations instead of reading documentation, while stale model pretraining and a large, flexible product surface made naive agent implementation slow and error-prone. The skill provides formalized shortcuts and current references without becoming another stale documentation cache, and observability closes the loop by showing what agents actually did.

4 supporting quotes
“needed to read like hundreds of pages of docs, like figure out your own mental model. And now you kind of expect like to be hand-holded by a custom agent to do this. And we've come a long way in achieving this kind of vision. And I just want to explain what we learned on the way. First”transcript, stated
“skills are kind of like a formalized shortcut to make things more reliable where you historically would have built a workflow.”transcript, stated
“being in pretraining context might even be like a disadvantage if uh you don't fetch up-to-date information. So, we're just like, "Oh, we get like all of these hallucinations of methods that have been uh available in the past, but they're not uh available”transcript, stated
“you need to see the execution trace of someone being upset by like a production email to then derive that you need to add a skill”transcript, stated

Models used: Claude Code · Coding agents · Langfuse · LLM-as-a-judge · Docs Q&A RAG stack · Langfuse CLI

Scale

Alternatives considered (roads not taken)

Let coding agents rely on pretraining context

Rejected because: Langfuse interfaces changed, so pretraining caused agents to use outdated methods and hallucinated APIs.

“being in pretraining context might even be like a disadvantage if uh you don't fetch up-to-date information. So, we're just like, "Oh, we get like all of these hallucinations of methods that have been uh available in the past, but they're not uh available”transcript, stated
“hallucinations of methods that have been uh available in the past, but they're not uh available there today." So, yeah, we we felt like when skills launched, this is like the exact pattern that we need in order to help teams achieve this. So, I'll use an”transcript, stated

Embed full documentation in the skill

Rejected because: Duplicating dynamic docs in user-space skills would recreate the same staleness problem as pretraining data.

3 supporting quotes
“referenced because there's a huge, I'd say, incentive for like developers on the team, but also for users in the community to just contribute a lot of context to the skill”transcript, stated
“However, then the same thing applies that applies to pre-training context. It's kind of like it goes out of date.”transcript, stated
“have the documentation and now we have yet another representation of what LangFuse is. So, you rather try to point us to straight to the reference of documentation and because otherwise you just duplicate all our content. And six, we applied I'm more of like auto research to the scale”transcript, stated

Fetch documentation pages one by one

Rejected because: Agents looped through pages inefficiently, so Langfuse added a sitemap and natural-language search over documentation chunks.

3 supporting quotes
“fetching one, then learning something, then fetching another one, always with like thought process in the meantime.”transcript, stated
“expose to like a coding agent by the skill of like go there first in order to learn what kind of like documentation is available. And two, I mean, there's like this whole content negotiation that if you send like an a request header that you want markdown that you get markdown back from the”transcript, stated
“this query. Why is this exciting? One, you don't need to fetch five different docs page where you can just ask a question, get something back that's relevant directly. It solved for the problem and two, we get to track these search parameters um because uh like if a coding agent fetches”transcript, stated

Wait for a perfect universal eval setup

Rejected because: Use cases were too broad, so five basic evaluation templates were better than having no guardrail at all.

“basic eval setup is better than none because we initially struggled to get this done because it's like so broad.”transcript, stated
“Some LangFuse users built like chat applications, real-time voice, video generation, like batch processing of like invoices”transcript, stated

Default the data region to Europe

Rejected because: Agents do not mind additional configuration prompts, and US enterprises also cared about data region.

“we always defaulted to Europe, and now we kind of like for an agent like adding another environment variable, like they don't care.”transcript, stated
“we always prompt for figure out what data region the user is actually in and don't assume Europe, for example. Two, hallucinated CLI parameters because it just oh, this like includes the word trace. I've seen trace things in CLIs before. I just assume what”transcript, stated

Optimize auto-research for speed measured by number of turns

Rejected because: The optimizer removed documentation fetching, which defeated the purpose of current references.

“function was very hard for this. Um this we we assumed like a trunk migration should be fast. Fast we measured in like the number of turns, but if we uh basically asked to minimize the number of turns, then like our uh like the agent that tried to optimize the”transcript, stated
“the agent that tried to optimize the scale just took out all of the notes that we had to um like fetch documentation”transcript, stated

Patterns

observability-tracing (production-operations)

Langfuse instruments coding-agent runs and reviews traces to understand runtime behavior, discover new use cases, and improve existing skills.

3 supporting quotes
“So what we now see is what many teams do is they have the agent runtime, they trace everything. I mean, I'm building LangFuse this I put my logo here but you can also use whatever you want.”transcript, stated
“the concept of tracing is what you need to like identify what happens at runtime when a trace when like an agent executed”transcript, stated
“looking at traces still like gets you to like 80% of the detail.”transcript, stated

tool-use-orchestration (agent-control)

The Langfuse skill gives coding agents a CLI over the existing API surface so agents can create evaluations, manage prompts, configure regions, and perform UI-like workflows programmatically.

“we always had like APIs for everything because teams built their own”transcript, stated
“Now we wrapped it in a CLI, and now an agent can just do everything humans needed to do in the UI in the past.”transcript, stated

rag-retrieval (retrieval)

The skill exposes sitemap and natural-language documentation search so agents retrieve relevant, current documentation chunks instead of relying on stale pretraining or full-page browsing.

3 supporting quotes
“we have this agent sitemap kind of that we just expose to like a coding agent by the skill”transcript, stated
“Therefore, we built like a rec stack and now we just surface this uh rec stack again via like a search endpoint. So, like a coding agent can just ask whatever natural language query about LangFuse and we'll get back documentation chunks for this query.”transcript, stated
“a coding agent can just ask whatever natural language query about LangFuse and we'll get back documentation chunks for this query.”transcript, stated

context-compaction (context-management)

Langfuse references canonical documentation and uses progressive disclosure, sitemap navigation, markdown rendering, and search to avoid stuffing a full documentation cache into the skill.

3 supporting quotes
“references for the different product modules to kind of like progressively disclose additional hints that the agent might need to have.”transcript, stated
“you rather try to point us to straight to the reference of documentation and because otherwise you just duplicate all our content.”transcript, stated
“you can just add like a dot MD to any documentation page or you can request markdown and you'll get a markdown page.”transcript, stated

eval-driven-development (quality)

Langfuse creates basic skill-evaluation templates and checks repository changes with LLM-as-judge before accepting skill modifications.

3 supporting quotes
“Um then uh basic eval setup is better than none because we initially struggled to get this done because it's like so broad.”transcript, stated
“our checks are just natural language statements that we then via LLM as a judge try to um like evaluate on top of the file system and diff state”transcript, stated
“we were able to make changes and see that we didn't break anything.”transcript, stated

llm-as-judge (evaluation)

The skill's basic evals use natural-language statements evaluated by an LLM judge over filesystem and git diff state.

3 supporting quotes
“natural language statements that we then via LLM as a judge try to um like evaluate on top of the file system and diff state”transcript, stated
“Uh so, for example, we uh we expect that our open eye instrumentation was added because they can open the eye example.”transcript, stated
“And we, because it's rag, we expect like some retrieval spans to show up in our trace. Because if they if they're no retrieval spans, then probably we only capture, for example, LM calls.”transcript, stated

human-in-the-loop-gate (workflow)

Auto-research generates skill-improvement ideas, but humans review and accept only the useful suggestions; the team also wants approval gates before pushing prompts remotely.

3 supporting quotes
“then human review the suggestions. Like we didn't accept all because many didn't make sense because our target function wasn't perfect.”transcript, stated
“we human reviewed all of the ideas to make the changes to the skill.”transcript, stated
“we want to suggest a plan or ask for a question suggest plan to a user before doing anything”transcript, stated

prompt-versioning (prompt-operations)

Langfuse's prompt-management use case moves prompts from local git into managed prompt infrastructure and links prompt versions to production traces.

“help teams move prompts from their local Git repository into LangFuse prompt management”transcript, stated
“linking prompt versions to prod traces, so then you can see how like different prompt versions impact like for example production results.”transcript, stated

Tradeoffs

Use skills as a middle ground

Chose Formalized shortcuts that preserve agent flexibility over Rigid workflows or fully unconstrained agents.

Rationale: Skills make agents more reliable for known domains while still allowing multi-domain requests that would be awkward across multiple workflows.

3 supporting quotes
“balance between workflow being very reliable and agent now having kind of like unlimited capabilities.”transcript, stated
“skills are kind of like a formalized shortcut to make things more reliable where you historically would have built a workflow.”transcript, stated
“an agent can just like progressively get the context needed to then solve like a problem that's multi-domain.”transcript, stated

Reference dynamic content

Chose Canonical documentation references, sitemap, markdown pages, and search over Duplicating extensive docs inside the skill.

Rationale: Referencing keeps the skill current and avoids another stale copy of fast-changing product information.

3 supporting quotes
“Dynamic content should be referenced, otherwise you have just duplicates, and the auto research was uh very helpful to explore things, but um it's bound by the target function.”transcript, stated
“It's kind of like it goes out of date. And now we have the documentation and now we have yet another representation of what LangFuse is.”transcript, stated
“So, you rather try to point us to straight to the reference of documentation and because otherwise you just duplicate all our content. And six, we applied I'm more of like auto research to the scale of, "Okay, if we have a target function, how can like agents help us improve the agent?”transcript, stated

Add explicit region prompts for agents

Chose Ask the agent to determine the user's data region over Defaulting to Europe to reduce human setup friction.

Rationale: Extra environment variables are cheap for agents, and enterprise region assumptions caused wrong setups.

3 supporting quotes
“Then we learned some US enterprises also care about data So, we always defaulted to Europe, and now we kind of like for an agent like adding another environment variable, like they don't care.”transcript, stated
“for an agent like adding another environment variable, like they don't care. Like, it's not effort for them.”transcript, stated
“Thus, we always prompt for figure out what data region the user is actually in and don't assume Europe, for example.”transcript, stated

Expose search server-side

Chose Natural-language docs search endpoint over Only local documentation fetching from user machines.

Rationale: Search returns relevant chunks faster and lets Langfuse observe which questions agents ask, revealing documentation gaps.

3 supporting quotes
“you don't need to fetch five different docs page where you can just ask a question, get something back that's relevant directly.”transcript, stated
“if they um ask questions about LangFuse to our search endpoint, we can track the searches”transcript, stated
“understand what problems do they run into, where do we need to add more documentation pages”transcript, stated

Start with basic evals

Chose Five practical evaluation setups with LLM-as-judge checks over Waiting for a perfect evaluation framework across every Langfuse use case.

Rationale: The product serves too many application types for one perfect eval, but basic checks were enough to catch regressions when modifying the skill.

“we just created like five uh different ones and this was already helpful.”transcript, stated
“This was already helpful because there we were able to make changes and see that we didn't break anything.”transcript, stated

Keep human review in auto-research

Chose Human-reviewed recommendations over Autonomously applying all agent-suggested skill changes.

Rationale: Auto-research expanded exploration capacity, but imperfect target functions meant many ideas did not make sense.

“it allowed us to experiment much more than we could have explored manually with the time that we have as we are like a very small team.”transcript, stated
“we didn't accept all because many didn't make sense because our target function wasn't perfect.”transcript, stated

Gotchas (what bit them)

Pretraining context became a liability as Langfuse changed.

Root cause: Models remembered old SDK methods and interfaces that no longer existed.

Resolution: Force agents toward current documentation through skills, sitemap, markdown docs, and search endpoints.

3 supporting quotes
“if you're like 2 years in, like the project evolves, like interfaces change”transcript, stated
“hallucinations of methods that have been uh available in the past, but they're not uh available there today.”transcript, stated
“But then, if you're like 2 years in, like the project evolves, like interfaces change, uh and now being in pretraining context might even be like a disadvantage if uh you don't fetch up-to-date information.”transcript, stated

Agents implemented first, failed, and only then fetched docs.

Root cause: Without the skill, the coding agent was not primed to discover the right setup or documentation path before editing.

Resolution: Use the skill to ask follow-up questions, fetch current docs, and guide the agent toward the best-fit setup first.

3 supporting quotes
“implements the instrumentation based on the outdated pre-training context, then tries to verify whether tracing works, then realize, "Oh, it doesn't work."”transcript, stated
“only in a second step fetches up-to-date information to then correct the issue.”transcript, stated
“ask follow-up questions before making decision because there's so much you can be doing”transcript, stated

Agents hallucinated CLI parameters.

Root cause: They generalized from words such as trace and prior CLI patterns instead of checking the actual command surface.

Resolution: Advertise the help flag more aggressively, accepting one more turn to ground the agent in real CLI options.

3 supporting quotes
“hallucinated CLI parameters because it just oh, this like includes the word trace.”transcript, stated
“And we just advertise the the help flag more aggressively. It takes another turn, but it's fast, and thereby like it directly knows what the CLI can do.”transcript, stated
“It takes another turn, but it's fast, and thereby like it directly knows what the CLI can do.”transcript, stated

Duplicated skill content goes stale like pretraining data.

Root cause: Embedding dynamic docs inside the skill creates another representation of Langfuse that can drift from canonical documentation.

Resolution: Reference canonical docs and expose discovery mechanisms rather than copying large content into the skill.

“now we have the documentation and now we have yet another representation of what LangFuse is.”transcript, stated
“you rather try to point us to straight to the reference of documentation”transcript, stated

Auto-research optimized away the behavior the skill was meant to preserve.

Root cause: The target function measured speed in turns, so the optimizer removed documentation-fetching notes.

Resolution: Design target functions to include current-documentation usage, prompt-version trace links, approval gates, and other best-practice constraints.

3 supporting quotes
“if we uh basically asked to minimize the number of turns, then like our uh like the agent that tried to optimize the scale just took out all of the notes”transcript, stated
“then negates the whole thing of we want to fetch up-to-date context”transcript, stated
“Learnings, like the target function really matters. Like I think it's it sounds obvious, but for us defining like the right target function was very hard for this.”transcript, stated

Skill distribution and updates remain operationally immature.

Root cause: Skills are cached in user/agent environments, package-management conventions are weak, and auto-upgrading depends on the coding agent platform.

Resolution: Explore timestamp checks, well-known skill discovery, and user alerts when installed skills are old.

3 supporting quotes
“there's no like package management for this, which then like a year like tells the user this is outdated.”transcript, stated
“adding like a timestamp of uh this is the current date where it was fetched uh the skill, uh and then just uh oh, if this like older than a month, then try to update. But then we go to second problem of skill distribution and like installing into like the agent environment. Usually, this is kind”transcript, stated
“auto upgrading doesn't really uh really work, but it really depends on the coding agent that you use.”transcript, stated

Evaluation

Langfuse evaluates the skill by manually inspecting coding-agent traces, creating five basic scenario templates, using LLM-as-judge checks over filesystem and git diff state, checking for instrumentation and retrieval spans, tracking documentation search telemetry, and human-reviewing auto-research suggestions before changing the skill.

Metrics: Trace review coverage · Documentation search queries · OpenAI instrumentation present · Retrieval spans present · Filesystem state before and after skill run · Git diff state before and after skill run · Accepted auto-research suggestions · Number of turns · Data-region selection correctness · CLI parameter hallucinations

4 supporting quotes
“looking at traces still like gets you to like 80% of the detail.”transcript, stated
“our checks are just natural language statements that we then via LLM as a judge try to um like evaluate on top of the file system and diff state”transcript, stated
“And we, because it's rag, we expect like some retrieval spans to show up in our trace. Because if they if they're no retrieval spans, then probably we only capture, for example, LM calls.”transcript, stated
“we accepted three out of the six improvements that were suggested”transcript, stated

Outcomes

The source gives concrete scale: three years of product growth, 478 documentation pages, five product areas, billions-trace positioning, thousands of community/cloud users, five eval setups, three of six auto-research suggestions accepted, and future examples involving 100 feedback executions.

4 supporting quotes
“the skill is the primary way of how things get done. This is also like now the advertised way across all of our documentation”transcript, stated
“after like conversing with the agent now for the for similar thing, it looks way more detailed like like detailed evals that are relevant and detailed steps are regarding tool execution.”transcript, stated
“we can track the searches and thereby understand what problems do they run into”transcript, stated
“And the task was, "Okay, how do we improve the skill to migrate prompts out of any kind of like code base into our managed prompt system?" And in the end, we accepted three out of the six improvements that were suggested, which I think is a success.”transcript, stated