langfuse-tracing — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited langfuse-tracing (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
_shared/langfuse/
├── shared.ts # Base: Tracer, withTrace()
├── gemini.ts # Gemini: text, tools, images
├── anthropic.ts # Anthropic: Claude text, tools
└── openai.ts # OpenAI: text, tools, imagesimport { withTrace, traceLLMGemini } from '../_shared/langfuse/gemini.ts';
Deno.serve(async (req: Request) => {
return await withTrace(
{
name: 'my-function',
userId: user.id,
sessionId: item_id,
input: { prompt: 'analyze this' },
metadata: { function: 'my-function' },
tags: ['ai', 'analysis'],
},
async (tracer) => {
// Your AI calls here
const { text } = await traceLLMGemini(tracer, {
model: 'gemini-2.5-flash',
messages: [{ role: 'user', content: 'Hello' }],
});
return new Response(JSON.stringify({ result: text }));
}
);
});const { text, usage } = await traceLLMGemini(tracer, {
model: 'gemini-2.5-flash',
messages: [{ role: 'user', content: 'Summarize this' }],
temperature: 0.7,
maxTokens: 500,
});const { data } = await traceLLMGemini<{ title: string; price: number }>(tracer, {
model: 'gemini-2.5-flash',
messages: [{ role: 'user', content: 'Extract product info' }],
schema: {
type: 'object',
properties: {
title: { type: 'string' },
price: { type: 'number' },
},
required: ['title', 'price'],
},
});
// data.title, data.price are typed!const result = await traceLLMWithToolsGemini(tracer, 'agent-name', {
model: 'gemini-2.5-flash',
messages: [{ role: 'user', content: 'Get weather in SF' }],
tools: [{
name: 'get_weather',
description: 'Get current weather',
parameters: {
type: 'object',
properties: { location: { type: 'string' } },
required: ['location'],
},
}],
});
if (result.message.tool_calls) {
// Execute tools
}✅ Traces: Function execution with nested operations ✅ Generations: LLM calls with prompts and responses ✅ Usage: Token counts and costs ✅ Latency: Timing for each operation ✅ Metadata: Custom tags and context ✅ Errors: Automatic error tracking
Set environment variables in .env.local:
LANGFUSE_PUBLIC_KEY=pk-lf-xxxxx
LANGFUSE_SECRET_KEY=sk-lf-xxxxx
LANGFUSE_HOST=https://cloud.langfuse.comGemini: traceLLMGemini, streamLLMGemini, traceLLMWithToolsGemini, traceImageEditGemini Anthropic: traceLLMAnthropic, streamLLMAnthropic, traceLLMWithToolsAnthropic OpenAI: traceLLMOpenAI, streamLLMOpenAI, traceLLMWithToolsOpenAI, traceImageEditOpenAI
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.