jpskill.com
🛠️ 開発・MCP コミュニティ

traceloop

TraceloopとOpenLLMetry SDKのエキスパートとして、AIパイプラインを自動で追跡し、OpenTelemetry対応のバックエンドへ連携することで、LLMアプリケーションの開発者がより効率的に開発・監視できる環境を構築するSkill。

📜 元の英語説明(参考)

You are an expert in Traceloop and its OpenLLMetry SDK, the open-source observability framework that extends OpenTelemetry for LLM applications. You help developers instrument AI pipelines with automatic tracing for OpenAI, Anthropic, Cohere, LangChain, LlamaIndex, vector databases, and frameworks — exporting to any OpenTelemetry-compatible backend (Grafana Tempo, Jaeger, Datadog, Honeycomb, Traceloop Cloud).

🇯🇵 日本人クリエイター向け解説

一言でいうと

TraceloopとOpenLLMetry SDKのエキスパートとして、AIパイプラインを自動で追跡し、OpenTelemetry対応のバックエンドへ連携することで、LLMアプリケーションの開発者がより効率的に開発・監視できる環境を構築するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o traceloop.zip https://jpskill.com/download/15489.zip && unzip -o traceloop.zip && rm traceloop.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15489.zip -OutFile "$d\traceloop.zip"; Expand-Archive "$d\traceloop.zip" -DestinationPath $d -Force; ri "$d\traceloop.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して traceloop.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → traceloop フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Traceloop (OpenLLMetry) — OpenTelemetry を介した LLM の可観測性

あなたは Traceloop とその OpenLLMetry SDK の専門家です。これは、OpenTelemetry を LLM アプリケーション向けに拡張するオープンソースの可観測性フレームワークです。あなたは、開発者が OpenAI、Anthropic、Cohere、LangChain、LlamaIndex、ベクトルデータベース、およびフレームワークの自動トレースで AI パイプラインを計測し、OpenTelemetry 互換のバックエンド(Grafana Tempo、Jaeger、Datadog、Honeycomb、Traceloop Cloud)にエクスポートするのを支援します。

主要な機能

自動計測

# 1 行で全てを計測
from traceloop.sdk import Traceloop

Traceloop.init(
    app_name="my-ai-app",
    api_endpoint="https://api.traceloop.com",   # または任意の OTLP エンドポイント
    api_key="your-key",
    disable_batch=False,                         # パフォーマンスのためにバッチ処理
)

# 全ての OpenAI/Anthropic/LangChain の呼び出しが自動的にトレースされる
import openai
client = openai.OpenAI()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
)
# トレースでキャプチャされるもの: model、tokens、latency、cost、prompt、completion

ワークフローとタスクのデコレータ

from traceloop.sdk.decorators import workflow, task, agent, tool

@workflow(name="customer-support-pipeline")
async def handle_support_ticket(ticket: dict):
    """トップレベルのワークフロー — 全ての子スパンをグループ化します。"""
    intent = await classify_intent(ticket["message"])
    if intent == "technical":
        return await technical_support(ticket)
    return await general_support(ticket)

@task(name="classify-intent")
async def classify_intent(message: str) -> str:
    """タスクスパン — ワークフローの個々のステップ。"""
    response = await client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": f"Classify intent: {message}"}],
    )
    return response.choices[0].message.content

@agent(name="tech-support-agent")
async def technical_support(ticket: dict):
    """エージェントスパン — ツールを使用する自律エージェント。"""
    docs = await search_knowledge_base(ticket["message"])
    response = await generate_response(ticket, docs)
    return response

@tool(name="knowledge-base-search")
async def search_knowledge_base(query: str):
    """ツールスパン — 外部ツールの呼び出し。"""
    embedding = await client.embeddings.create(model="text-embedding-3-small", input=query)
    results = await pinecone_index.query(vector=embedding.data[0].embedding, top_k=5)
    return [r.metadata["text"] for r in results.matches]

TypeScript

import * as traceloop from "@traceloop/node-server-sdk";

traceloop.initialize({
  appName: "my-ai-app",
  apiKey: process.env.TRACELOOP_API_KEY,
  disableBatch: false,
});

import { withWorkflow, withTask } from "@traceloop/node-server-sdk";

const handleQuery = withWorkflow({ name: "rag-query" }, async (query: string) => {
  const docs = await withTask({ name: "retrieve" }, () => retrieveDocs(query));
  const answer = await withTask({ name: "generate" }, () => generateAnswer(query, docs));
  return answer;
});

任意のバックエンドへのエクスポート

# Grafana Tempo に送信
Traceloop.init(
    app_name="my-app",
    api_endpoint="http://tempo:4318",     # OTLP HTTP エンドポイント
    headers={},                           # セルフホストのため認証不要
)

# Datadog に送信
Traceloop.init(
    app_name="my-app",
    api_endpoint="https://trace.agent.datadoghq.com",
    headers={"DD-API-KEY": "your-dd-key"},
)

# Honeycomb に送信
Traceloop.init(
    app_name="my-app",
    api_endpoint="https://api.honeycomb.io",
    headers={"x-honeycomb-team": "your-key"},
)

インストール

# Python
pip install traceloop-sdk

# TypeScript
npm install @traceloop/node-server-sdk

ベストプラクティス

  1. セマンティック規約@workflow@task@agent@tool デコレータを使用します。意味のあるトレース階層を作成します。
  2. OpenTelemetry ネイティブ — 標準の OTLP エクスポート。既存の可観測性スタック(Grafana、Datadog など)と連携します。
  3. 自動計測Traceloop.init() は、サポートされているすべてのライブラリにパッチを適用します。呼び出しごとのコード変更は不要です。
  4. 関連付けプロパティ — ユーザー ID、セッション ID、会話 ID を設定して、トレースをフィルタリングおよびグループ化します。
  5. プロンプト管理 — プロンプトのバージョンを追跡します。プロンプトの変更と品質メトリクスを関連付けます。
  6. コスト追跡 — モデルごとの自動コスト計算。ワークフロー、ユーザー、または機能ごとに集計します。
  7. ベンダーに依存しない — コードを変更せずに、Traceloop Cloud からセルフホストの Jaeger/Tempo に切り替えます。
  8. OpenLLMetry 標準 — AI 向けの OpenTelemetry セマンティック規約を拡張します。コミュニティ主導の仕様です。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Traceloop (OpenLLMetry) — LLM Observability via OpenTelemetry

You are an expert in Traceloop and its OpenLLMetry SDK, the open-source observability framework that extends OpenTelemetry for LLM applications. You help developers instrument AI pipelines with automatic tracing for OpenAI, Anthropic, Cohere, LangChain, LlamaIndex, vector databases, and frameworks — exporting to any OpenTelemetry-compatible backend (Grafana Tempo, Jaeger, Datadog, Honeycomb, Traceloop Cloud).

Core Capabilities

Auto-Instrumentation

# One line — instruments everything
from traceloop.sdk import Traceloop

Traceloop.init(
    app_name="my-ai-app",
    api_endpoint="https://api.traceloop.com",   # Or any OTLP endpoint
    api_key="your-key",
    disable_batch=False,                         # Batch for performance
)

# All OpenAI/Anthropic/LangChain calls now traced automatically
import openai
client = openai.OpenAI()

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
)
# Trace captured: model, tokens, latency, cost, prompt, completion

Workflow and Task Decorators

from traceloop.sdk.decorators import workflow, task, agent, tool

@workflow(name="customer-support-pipeline")
async def handle_support_ticket(ticket: dict):
    """Top-level workflow — groups all child spans."""
    intent = await classify_intent(ticket["message"])
    if intent == "technical":
        return await technical_support(ticket)
    return await general_support(ticket)

@task(name="classify-intent")
async def classify_intent(message: str) -> str:
    """Task span — individual step in workflow."""
    response = await client.chat.completions.create(
        model="gpt-4o-mini",
        messages=[{"role": "user", "content": f"Classify intent: {message}"}],
    )
    return response.choices[0].message.content

@agent(name="tech-support-agent")
async def technical_support(ticket: dict):
    """Agent span — autonomous agent with tool use."""
    docs = await search_knowledge_base(ticket["message"])
    response = await generate_response(ticket, docs)
    return response

@tool(name="knowledge-base-search")
async def search_knowledge_base(query: str):
    """Tool span — external tool invocation."""
    embedding = await client.embeddings.create(model="text-embedding-3-small", input=query)
    results = await pinecone_index.query(vector=embedding.data[0].embedding, top_k=5)
    return [r.metadata["text"] for r in results.matches]

TypeScript

import * as traceloop from "@traceloop/node-server-sdk";

traceloop.initialize({
  appName: "my-ai-app",
  apiKey: process.env.TRACELOOP_API_KEY,
  disableBatch: false,
});

import { withWorkflow, withTask } from "@traceloop/node-server-sdk";

const handleQuery = withWorkflow({ name: "rag-query" }, async (query: string) => {
  const docs = await withTask({ name: "retrieve" }, () => retrieveDocs(query));
  const answer = await withTask({ name: "generate" }, () => generateAnswer(query, docs));
  return answer;
});

Export to Any Backend

# Send to Grafana Tempo
Traceloop.init(
    app_name="my-app",
    api_endpoint="http://tempo:4318",     # OTLP HTTP endpoint
    headers={},                           # No auth for self-hosted
)

# Send to Datadog
Traceloop.init(
    app_name="my-app",
    api_endpoint="https://trace.agent.datadoghq.com",
    headers={"DD-API-KEY": "your-dd-key"},
)

# Send to Honeycomb
Traceloop.init(
    app_name="my-app",
    api_endpoint="https://api.honeycomb.io",
    headers={"x-honeycomb-team": "your-key"},
)

Installation

# Python
pip install traceloop-sdk

# TypeScript
npm install @traceloop/node-server-sdk

Best Practices

  1. Semantic conventions — Use @workflow, @task, @agent, @tool decorators; creates meaningful trace hierarchy
  2. OpenTelemetry native — Standard OTLP export; works with existing observability stack (Grafana, Datadog, etc.)
  3. Auto-instrumentationTraceloop.init() patches all supported libraries; no per-call code changes
  4. Association properties — Set user ID, session ID, conversation ID for filtering and grouping traces
  5. Prompt management — Track prompt versions; correlate prompt changes with quality metrics
  6. Cost tracking — Automatic cost calculation per model; aggregate by workflow, user, or feature
  7. Vendor-agnostic — Switch from Traceloop Cloud to self-hosted Jaeger/Tempo without code changes
  8. OpenLLMetry standard — Extends OpenTelemetry semantic conventions for AI; community-driven spec