[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ADVTMWQKDMKJN7Q6W9QZ02":3,"skill-same:01M6ADVTMWQKDMKJN7Q6W9QZ02":98},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":46,"linkOnly":47,"markdownContent":48,"markdownBody":49,"frontMatter":50,"refName":64,"commitSha":65,"skillDirectory":66,"forksCount":67,"repositoryHtmlUrl":68,"repositoryHomepageUrl":69,"ownerHtmlUrl":70,"ownerBlogUrl":71,"ownerDescription":72,"updatedAt":73,"install":74,"resources":87},"01M6ADVTMWQKDMKJN7Q6W9QZ02","observability-langsmith",null,"LLM observability platform for tracing, evaluation, and monitoring. Use when debugging LLM applications, evaluating model outputs against datasets, monitoring production systems, or building systematic testing pipelines for AI applications.","davila7\u002Fclaude-code-templates","davila7","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6216945?v=4","01M6ADEWWFPS191NFM0Y1EX1JH","Daniel Avila","01M6ADJHGM78PHQRD3XZTFDVKK",33481,"MIT","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Fobservability-langsmith\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45],"observability","LangSmith","observability langsmith","ops","when","outputs","for","orchestra","LLM Applications","systematic","platform","observability platform","use","testing","model","applications","llm ops","Evaluation","monitoring","tracing","debugging","research","2026-11-10 10:12:30",false,"---\nname: observability-langsmith\ndescription: LLM observability platform for tracing, evaluation, and monitoring. Use when debugging LLM applications, evaluating model outputs against datasets, monitoring production systems, or building systematic testing pipelines for AI applications.\nlicense: MIT\nmetadata:\n  version: 1.0.0\n  author: Orchestra Research\n  tags: [Observability, LangSmith, Tracing, Evaluation, Monitoring, Debugging, Testing, LLM Ops, Production]\n  dependencies: [langsmith>=0.2.0]\n---\n\n# LangSmith - LLM Observability Platform\n\nDevelopment platform for debugging, evaluating, and monitoring language models and AI applications.\n\n## When to use LangSmith\n\n**Use LangSmith when:**\n- Debugging LLM application issues (prompts, chains, agents)\n- Evaluating model outputs systematically against datasets\n- Monitoring production LLM systems\n- Building regression testing for AI features\n- Analyzing latency, token usage, and costs\n- Collaborating on prompt engineering\n\n**Key features:**\n- **Tracing**: Capture inputs, outputs, latency for all LLM calls\n- **Evaluation**: Systematic testing with built-in and custom evaluators\n- **Datasets**: Create test sets from production traces or manually\n- **Monitoring**: Track metrics, errors, and costs in production\n- **Integrations**: Works with OpenAI, Anthropic, LangChain, LlamaIndex\n\n**Use alternatives instead:**\n- **Weights & Biases**: Deep learning experiment tracking, model training\n- **MLflow**: General ML lifecycle, model registry focus\n- **Arize\u002FWhyLabs**: ML monitoring, data drift detection\n\n## Quick start\n\n### Installation\n\n```bash\npip install langsmith\n\n# Set environment variables\nexport LANGSMITH_API_KEY=\"your-api-key\"\nexport LANGSMITH_TRACING=true\n```\n\n### Basic tracing with @traceable\n\n```python\nfrom langsmith import traceable\nfrom openai import OpenAI\n\nclient = OpenAI()\n\n@traceable\ndef generate_response(prompt: str) -> str:\n    response = client.chat.completions.create(\n        model=\"gpt-4o\",\n        messages=[{\"role\": \"user\", \"content\": prompt}]\n    )\n    return response.choices[0].message.content\n\n# Automatically traced to LangSmith\nresult = generate_response(\"What is machine learning?\")\n```\n\n### OpenAI wrapper (automatic tracing)\n\n```python\nfrom langsmith.wrappers import wrap_openai\nfrom openai import OpenAI\n\n# Wrap client for automatic tracing\nclient = wrap_openai(OpenAI())\n\n# All calls automatically traced\nresponse = client.chat.completions.create(\n    model=\"gpt-4o\",\n    messages=[{\"role\": \"user\", \"content\": \"Hello!\"}]\n)\n```\n\n## Core concepts\n\n### Runs and traces\n\nA **run** is a single execution unit (LLM call, chain, tool). Runs form hierarchical **traces** showing the full execution flow.\n\n```python\nfrom langsmith import traceable\n\n@traceable(run_type=\"chain\")\ndef process_query(query: str) -> str:\n    # Parent run\n    context = retrieve_context(query)  # Child run\n    response = generate_answer(query, context)  # Child run\n    return response\n\n@traceable(run_type=\"retriever\")\ndef retrieve_context(query: str) -> list:\n    return vector_store.search(query)\n\n@traceable(run_type=\"llm\")\ndef generate_answer(query: str, context: list) -> str:\n    return llm.invoke(f\"Context: {context}\\n\\nQuestion: {query}\")\n```\n\n### Projects\n\nProjects organize related runs. Set via environment or code:\n\n```python\nimport os\nos.environ[\"LANGSMITH_PROJECT\"] = \"my-project\"\n\n# Or per-function\n@traceable(project_name=\"my-project\")\ndef my_function():\n    pass\n```\n\n## Client API\n\n```python\nfrom langsmith import Client\n\nclient = Client()\n\n# List runs\nruns = list(client.list_runs(\n    project_name=\"my-project\",\n    filter='eq(status, \"success\")',\n    limit=100\n))\n\n# Get run details\nrun = client.read_run(run_id=\"...\")\n\n# Create feedback\nclient.create_feedback(\n    run_id=\"...\",\n    key=\"correctness\",\n    score=0.9,\n    comment=\"Good answer\"\n)\n```\n\n## Datasets and evaluation\n\n### Create dataset\n\n```python\nfrom langsmith import Client\n\nclient = Client()\n\n# Create dataset\ndataset = client.create_dataset(\"qa-test-set\", description=\"QA evaluation\")\n\n# Add examples\nclient.create_examples(\n    inputs=[\n        {\"question\": \"What is Python?\"},\n        {\"question\": \"What is ML?\"}\n    ],\n    outputs=[\n        {\"answer\": \"A programming language\"},\n        {\"answer\": \"Machine learning\"}\n    ],\n    dataset_id=dataset.id\n)\n```\n\n### Run evaluation\n\n```python\nfrom langsmith import evaluate\n\ndef my_model(inputs: dict) -> dict:\n    # Your model logic\n    return {\"answer\": generate_answer(inputs[\"question\"])}\n\ndef correctness_evaluator(run, example):\n    prediction = run.outputs[\"answer\"]\n    reference = example.outputs[\"answer\"]\n    score = 1.0 if reference.lower() in prediction.lower() else 0.0\n    return {\"key\": \"correctness\", \"score\": score}\n\nresults = evaluate(\n    my_model,\n    data=\"qa-test-set\",\n    evaluators=[correctness_evaluator],\n    experiment_prefix=\"v1\"\n)\n\nprint(f\"Average score: {results.aggregate_metrics['correctness']}\")\n```\n\n### Built-in evaluators\n\n```python\nfrom langsmith.evaluation import LangChainStringEvaluator\n\n# Use LangChain evaluators\nresults = evaluate(\n    my_model,\n    data=\"qa-test-set\",\n    evaluators=[\n        LangChainStringEvaluator(\"qa\"),\n        LangChainStringEvaluator(\"cot_qa\")\n    ]\n)\n```\n\n## Advanced tracing\n\n### Tracing context\n\n```python\nfrom langsmith import tracing_context\n\nwith tracing_context(\n    project_name=\"experiment-1\",\n    tags=[\"production\", \"v2\"],\n    metadata={\"version\": \"2.0\"}\n):\n    # All traceable calls inherit context\n    result = my_function()\n```\n\n### Manual runs\n\n```python\nfrom langsmith import trace\n\nwith trace(\n    name=\"custom_operation\",\n    run_type=\"tool\",\n    inputs={\"query\": \"test\"}\n) as run:\n    result = do_something()\n    run.end(outputs={\"result\": result})\n```\n\n### Process inputs\u002Foutputs\n\n```python\ndef sanitize_inputs(inputs: dict) -> dict:\n    if \"password\" in inputs:\n        inputs[\"password\"] = \"***\"\n    return inputs\n\n@traceable(process_inputs=sanitize_inputs)\ndef login(username: str, password: str):\n    return authenticate(username, password)\n```\n\n### Sampling\n\n```python\nimport os\nos.environ[\"LANGSMITH_TRACING_SAMPLING_RATE\"] = \"0.1\"  # 10% sampling\n```\n\n## LangChain integration\n\n```python\nfrom langchain_openai import ChatOpenAI\nfrom langchain_core.prompts import ChatPromptTemplate\n\n# Tracing enabled automatically with LANGSMITH_TRACING=true\nllm = ChatOpenAI(model=\"gpt-4o\")\nprompt = ChatPromptTemplate.from_messages([\n    (\"system\", \"You are a helpful assistant.\"),\n    (\"user\", \"{input}\")\n])\n\nchain = prompt | llm\n\n# All chain runs traced automatically\nresponse = chain.invoke({\"input\": \"Hello!\"})\n```\n\n## Production monitoring\n\n### Hub prompts\n\n```python\nfrom langsmith import Client\n\nclient = Client()\n\n# Pull prompt from hub\nprompt = client.pull_prompt(\"my-org\u002Fqa-prompt\")\n\n# Use in application\nresult = prompt.invoke({\"question\": \"What is AI?\"})\n```\n\n### Async client\n\n```python\nfrom langsmith import AsyncClient\n\nasync def main():\n    client = AsyncClient()\n\n    runs = []\n    async for run in client.list_runs(project_name=\"my-project\"):\n        runs.append(run)\n\n    return runs\n```\n\n### Feedback collection\n\n```python\nfrom langsmith import Client\n\nclient = Client()\n\n# Collect user feedback\ndef record_feedback(run_id: str, user_rating: int, comment: str = None):\n    client.create_feedback(\n        run_id=run_id,\n        key=\"user_rating\",\n        score=user_rating \u002F 5.0,  # Normalize to 0-1\n        comment=comment\n    )\n\n# In your application\nrecord_feedback(run_id=\"...\", user_rating=4, comment=\"Helpful response\")\n```\n\n## Testing integration\n\n### Pytest integration\n\n```python\nfrom langsmith import test\n\n@test\ndef test_qa_accuracy():\n    result = my_qa_function(\"What is Python?\")\n    assert \"programming\" in result.lower()\n```\n\n### Evaluation in CI\u002FCD\n\n```python\nfrom langsmith import evaluate\n\ndef run_evaluation():\n    results = evaluate(\n        my_model,\n        data=\"regression-test-set\",\n        evaluators=[accuracy_evaluator]\n    )\n\n    # Fail CI if accuracy drops\n    assert results.aggregate_metrics[\"accuracy\"] >= 0.9, \\\n        f\"Accuracy {results.aggregate_metrics['accuracy']} below threshold\"\n```\n\n## Best practices\n\n1. **Structured naming** - Use consistent project\u002Frun naming conventions\n2. **Add metadata** - Include version, environment, user info\n3. **Sample in production** - Use sampling rate to control volume\n4. **Create datasets** - Build test sets from interesting production cases\n5. **Automate evaluation** - Run evaluations in CI\u002FCD pipelines\n6. **Monitor costs** - Track token usage and latency trends\n\n## Common issues\n\n**Traces not appearing:**\n```python\nimport os\n# Ensure tracing is enabled\nos.environ[\"LANGSMITH_TRACING\"] = \"true\"\nos.environ[\"LANGSMITH_API_KEY\"] = \"your-key\"\n\n# Verify connection\nfrom langsmith import Client\nclient = Client()\nprint(client.list_projects())  # Should work\n```\n\n**High latency from tracing:**\n```python\n# Enable background batching (default)\nfrom langsmith import Client\nclient = Client(auto_batch_tracing=True)\n\n# Or use sampling\nos.environ[\"LANGSMITH_TRACING_SAMPLING_RATE\"] = \"0.1\"\n```\n\n**Large payloads:**\n```python\n# Hide sensitive\u002Flarge fields\n@traceable(\n    process_inputs=lambda x: {k: v for k, v in x.items() if k != \"large_field\"}\n)\ndef my_function(data):\n    pass\n```\n\n## References\n\n- **[Advanced Usage](references\u002Fadvanced-usage.md)** - Custom evaluators, distributed tracing, hub prompts\n- **[Troubleshooting](references\u002Ftroubleshooting.md)** - Common issues, debugging, performance\n\n## Resources\n\n- **Documentation**: https:\u002F\u002Fdocs.smith.langchain.com\n- **Python SDK**: https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flangsmith-sdk\n- **Web App**: https:\u002F\u002Fsmith.langchain.com\n- **Version**: 0.2.0+\n- **License**: MIT\n","# LangSmith - LLM Observability Platform\n\nDevelopment platform for debugging, evaluating, and monitoring language models and AI applications.\n\n## When to use LangSmith\n\n**Use LangSmith when:**\n- Debugging LLM application issues (prompts, chains, agents)\n- Evaluating model outputs systematically against datasets\n- Monitoring production LLM systems\n- Building regression testing for AI features\n- Analyzing latency, token usage, and costs\n- Collaborating on prompt engineering\n\n**Key features:**\n- **Tracing**: Capture inputs, outputs, latency for all LLM calls\n- **Evaluation**: Systematic testing with built-in and custom evaluators\n- **Datasets**: Create test sets from production traces or manually\n- **Monitoring**: Track metrics, errors, and costs in production\n- **Integrations**: Works with OpenAI, Anthropic, LangChain, LlamaIndex\n\n**Use alternatives instead:**\n- **Weights & Biases**: Deep learning experiment tracking, model training\n- **MLflow**: General ML lifecycle, model registry focus\n- **Arize\u002FWhyLabs**: ML monitoring, data drift detection\n\n## Quick start\n\n### Installation\n\n```bash\npip install langsmith\n\n# Set environment variables\nexport LANGSMITH_API_KEY=\"your-api-key\"\nexport LANGSMITH_TRACING=true\n```\n\n### Basic tracing with @traceable\n\n```python\nfrom langsmith import traceable\nfrom openai import OpenAI\n\nclient = OpenAI()\n\n@traceable\ndef generate_response(prompt: str) -> str:\n    response = client.chat.completions.create(\n        model=\"gpt-4o\",\n        messages=[{\"role\": \"user\", \"content\": prompt}]\n    )\n    return response.choices[0].message.content\n\n# Automatically traced to LangSmith\nresult = generate_response(\"What is machine learning?\")\n```\n\n### OpenAI wrapper (automatic tracing)\n\n```python\nfrom langsmith.wrappers import wrap_openai\nfrom openai import OpenAI\n\n# Wrap client for automatic tracing\nclient = wrap_openai(OpenAI())\n\n# All calls automatically traced\nresponse = client.chat.completions.create(\n    model=\"gpt-4o\",\n    messages=[{\"role\": \"user\", \"content\": \"Hello!\"}]\n)\n```\n\n## Core concepts\n\n### Runs and traces\n\nA **run** is a single execution unit (LLM call, chain, tool). Runs form hierarchical **traces** showing the full execution flow.\n\n```python\nfrom langsmith import traceable\n\n@traceable(run_type=\"chain\")\ndef process_query(query: str) -> str:\n    # Parent run\n    context = retrieve_context(query)  # Child run\n    response = generate_answer(query, context)  # Child run\n    return response\n\n@traceable(run_type=\"retriever\")\ndef retrieve_context(query: str) -> list:\n    return vector_store.search(query)\n\n@traceable(run_type=\"llm\")\ndef generate_answer(query: str, context: list) -> str:\n    return llm.invoke(f\"Context: {context}\\n\\nQuestion: {query}\")\n```\n\n### Projects\n\nProjects organize related runs. Set via environment or code:\n\n```python\nimport os\nos.environ[\"LANGSMITH_PROJECT\"] = \"my-project\"\n\n# Or per-function\n@traceable(project_name=\"my-project\")\ndef my_function():\n    pass\n```\n\n## Client API\n\n```python\nfrom langsmith import Client\n\nclient = Client()\n\n# List runs\nruns = list(client.list_runs(\n    project_name=\"my-project\",\n    filter='eq(status, \"success\")',\n    limit=100\n))\n\n# Get run details\nrun = client.read_run(run_id=\"...\")\n\n# Create feedback\nclient.create_feedback(\n    run_id=\"...\",\n    key=\"correctness\",\n    score=0.9,\n    comment=\"Good answer\"\n)\n```\n\n## Datasets and evaluation\n\n### Create dataset\n\n```python\nfrom langsmith import Client\n\nclient = Client()\n\n# Create dataset\ndataset = client.create_dataset(\"qa-test-set\", description=\"QA evaluation\")\n\n# Add examples\nclient.create_examples(\n    inputs=[\n        {\"question\": \"What is Python?\"},\n        {\"question\": \"What is ML?\"}\n    ],\n    outputs=[\n        {\"answer\": \"A programming language\"},\n        {\"answer\": \"Machine learning\"}\n    ],\n    dataset_id=dataset.id\n)\n```\n\n### Run evaluation\n\n```python\nfrom langsmith import evaluate\n\ndef my_model(inputs: dict) -> dict:\n    # Your model logic\n    return {\"answer\": generate_answer(inputs[\"question\"])}\n\ndef correctness_evaluator(run, example):\n    prediction = run.outputs[\"answer\"]\n    reference = example.outputs[\"answer\"]\n    score = 1.0 if reference.lower() in prediction.lower() else 0.0\n    return {\"key\": \"correctness\", \"score\": score}\n\nresults = evaluate(\n    my_model,\n    data=\"qa-test-set\",\n    evaluators=[correctness_evaluator],\n    experiment_prefix=\"v1\"\n)\n\nprint(f\"Average score: {results.aggregate_metrics['correctness']}\")\n```\n\n### Built-in evaluators\n\n```python\nfrom langsmith.evaluation import LangChainStringEvaluator\n\n# Use LangChain evaluators\nresults = evaluate(\n    my_model,\n    data=\"qa-test-set\",\n    evaluators=[\n        LangChainStringEvaluator(\"qa\"),\n        LangChainStringEvaluator(\"cot_qa\")\n    ]\n)\n```\n\n## Advanced tracing\n\n### Tracing context\n\n```python\nfrom langsmith import tracing_context\n\nwith tracing_context(\n    project_name=\"experiment-1\",\n    tags=[\"production\", \"v2\"],\n    metadata={\"version\": \"2.0\"}\n):\n    # All traceable calls inherit context\n    result = my_function()\n```\n\n### Manual runs\n\n```python\nfrom langsmith import trace\n\nwith trace(\n    name=\"custom_operation\",\n    run_type=\"tool\",\n    inputs={\"query\": \"test\"}\n) as run:\n    result = do_something()\n    run.end(outputs={\"result\": result})\n```\n\n### Process inputs\u002Foutputs\n\n```python\ndef sanitize_inputs(inputs: dict) -> dict:\n    if \"password\" in inputs:\n        inputs[\"password\"] = \"***\"\n    return inputs\n\n@traceable(process_inputs=sanitize_inputs)\ndef login(username: str, password: str):\n    return authenticate(username, password)\n```\n\n### Sampling\n\n```python\nimport os\nos.environ[\"LANGSMITH_TRACING_SAMPLING_RATE\"] = \"0.1\"  # 10% sampling\n```\n\n## LangChain integration\n\n```python\nfrom langchain_openai import ChatOpenAI\nfrom langchain_core.prompts import ChatPromptTemplate\n\n# Tracing enabled automatically with LANGSMITH_TRACING=true\nllm = ChatOpenAI(model=\"gpt-4o\")\nprompt = ChatPromptTemplate.from_messages([\n    (\"system\", \"You are a helpful assistant.\"),\n    (\"user\", \"{input}\")\n])\n\nchain = prompt | llm\n\n# All chain runs traced automatically\nresponse = chain.invoke({\"input\": \"Hello!\"})\n```\n\n## Production monitoring\n\n### Hub prompts\n\n```python\nfrom langsmith import Client\n\nclient = Client()\n\n# Pull prompt from hub\nprompt = client.pull_prompt(\"my-org\u002Fqa-prompt\")\n\n# Use in application\nresult = prompt.invoke({\"question\": \"What is AI?\"})\n```\n\n### Async client\n\n```python\nfrom langsmith import AsyncClient\n\nasync def main():\n    client = AsyncClient()\n\n    runs = []\n    async for run in client.list_runs(project_name=\"my-project\"):\n        runs.append(run)\n\n    return runs\n```\n\n### Feedback collection\n\n```python\nfrom langsmith import Client\n\nclient = Client()\n\n# Collect user feedback\ndef record_feedback(run_id: str, user_rating: int, comment: str = None):\n    client.create_feedback(\n        run_id=run_id,\n        key=\"user_rating\",\n        score=user_rating \u002F 5.0,  # Normalize to 0-1\n        comment=comment\n    )\n\n# In your application\nrecord_feedback(run_id=\"...\", user_rating=4, comment=\"Helpful response\")\n```\n\n## Testing integration\n\n### Pytest integration\n\n```python\nfrom langsmith import test\n\n@test\ndef test_qa_accuracy():\n    result = my_qa_function(\"What is Python?\")\n    assert \"programming\" in result.lower()\n```\n\n### Evaluation in CI\u002FCD\n\n```python\nfrom langsmith import evaluate\n\ndef run_evaluation():\n    results = evaluate(\n        my_model,\n        data=\"regression-test-set\",\n        evaluators=[accuracy_evaluator]\n    )\n\n    # Fail CI if accuracy drops\n    assert results.aggregate_metrics[\"accuracy\"] >= 0.9, \\\n        f\"Accuracy {results.aggregate_metrics['accuracy']} below threshold\"\n```\n\n## Best practices\n\n1. **Structured naming** - Use consistent project\u002Frun naming conventions\n2. **Add metadata** - Include version, environment, user info\n3. **Sample in production** - Use sampling rate to control volume\n4. **Create datasets** - Build test sets from interesting production cases\n5. **Automate evaluation** - Run evaluations in CI\u002FCD pipelines\n6. **Monitor costs** - Track token usage and latency trends\n\n## Common issues\n\n**Traces not appearing:**\n```python\nimport os\n# Ensure tracing is enabled\nos.environ[\"LANGSMITH_TRACING\"] = \"true\"\nos.environ[\"LANGSMITH_API_KEY\"] = \"your-key\"\n\n# Verify connection\nfrom langsmith import Client\nclient = Client()\nprint(client.list_projects())  # Should work\n```\n\n**High latency from tracing:**\n```python\n# Enable background batching (default)\nfrom langsmith import Client\nclient = Client(auto_batch_tracing=True)\n\n# Or use sampling\nos.environ[\"LANGSMITH_TRACING_SAMPLING_RATE\"] = \"0.1\"\n```\n\n**Large payloads:**\n```python\n# Hide sensitive\u002Flarge fields\n@traceable(\n    process_inputs=lambda x: {k: v for k, v in x.items() if k != \"large_field\"}\n)\ndef my_function(data):\n    pass\n```\n\n## References\n\n- **[Advanced Usage](references\u002Fadvanced-usage.md)** - Custom evaluators, distributed tracing, hub prompts\n- **[Troubleshooting](references\u002Ftroubleshooting.md)** - Common issues, debugging, performance\n\n## Resources\n\n- **Documentation**: https:\u002F\u002Fdocs.smith.langchain.com\n- **Python SDK**: https:\u002F\u002Fgithub.com\u002Flangchain-ai\u002Flangsmith-sdk\n- **Web App**: https:\u002F\u002Fsmith.langchain.com\n- **Version**: 0.2.0+\n- **License**: MIT\n",{"name":5,"license":15,"metadata":51,"description":7},{"tags":52,"author":60,"version":61,"dependencies":62},[53,25,54,41,55,56,57,58,59],"Observability","Tracing","Monitoring","Debugging","Testing","LLM Ops","Production","Orchestra Research","1.0.0",[63],"langsmith>=0.2.0","main","2b749c82b5d11fac39d9a6e021ce3f5b8a541bd1","cli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Fobservability-langsmith",3931,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates","https:\u002F\u002Faitmpl.com","https:\u002F\u002Fgithub.com\u002Fdavila7","https:\u002F\u002Fdanielavila.me","Building AI dev tools with LLMs","2026-11-14 06:14:46",{"source":8,"skillName":5,"commands":75,"prompt":85,"zipAvailable":86},[76,79,82],{"tool":77,"command":78},"npx","npx skills add davila7\u002Fclaude-code-templates --skill observability-langsmith",{"tool":80,"command":81},"bunx","bunx skills add davila7\u002Fclaude-code-templates --skill observability-langsmith",{"tool":83,"command":84},"pnpm","pnpm dlx skills add davila7\u002Fclaude-code-templates --skill observability-langsmith","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Fobservability-langsmith\u002FSKILL.md",true,[88,94],{"path":89,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":92,"sourceHtmlUrl":93},"references\u002Fadvanced-usage.md","REFERENCE","参考文档",12006,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Fobservability-langsmith\u002Freferences\u002Fadvanced-usage.md",{"path":95,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":96,"sourceHtmlUrl":97},"references\u002Ftroubleshooting.md",10983,"https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Fobservability-langsmith\u002Freferences\u002Ftroubleshooting.md",[99,126,153,186,221,240],{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":108,"publishedAt":46},"01M70NHBTQ8BV0A2SCAZXEPHCX","wealthville-pool-scoring","Score DeFi liquidity pools before providing liquidity. Returns a 0-100 pool score and an Enter\u002FHold\u002FExit\u002FReduce\u002FAvoid verdict with calibrated confidence for ~68,800 Solana pools and 575 EVM pools, plus a public miss-inclusive track record. Use when asked whether a pool is worth LPing into, which pools look best right now, or how accurate the scores have actually been.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fweb-data\u002Fwealthville-pool-scoring\u002FSKILL.md",[105],{"categoryNo":106,"categoryName":107,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[109,110,111,112,113,30,114,115,36,28,116,117,118,119,120,121,122,123,124,125],"scoring","pool","wealthville pool scoring","liquidity","which","exit","now","reduce","with","record","track","verdict","evm","solana","how","public","look",{"skillNo":127,"name":128,"nameZh":6,"description":129,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":130,"categories":131,"keywords":133,"publishedAt":46},"01M70MB6VR8ERJ4EM8D5KHBMEV","technical-debt-auditor","Scans a codebase and produces a quantified technical debt report with a prioritized remediation plan. Analyzes dead code, TODO\u002FFIXME\u002FHACK markers, dependency staleness, complexity hotspots, code duplication signals, test coverage gaps, unused exports, and outdated patterns. Use this skill when the user asks to audit their codebase for tech debt, wants a health check of their code quality, says things like \"where should I focus refactoring\", \"find code smells\", \"audit my codebase\", \"what technical debt do we have\", \"prioritize cleanup work\", or asks about code quality metrics. Also trigger when the user mentions \"code rot\", \"legacy cleanup\", \"refactoring priorities\", or wants to understand the overall health of a project before a major effort. Trigger even if the user doesn't say \"technical debt\" explicitly — any request to systematically assess code quality and identify improvement priorities belongs here.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdevelopment\u002Ftechnical-debt-auditor\u002FSKILL.md",[132],{"categoryNo":106,"categoryName":107,"taxonomyType":21,"taxonomyTypeDesc":22},[134,135,136,137,138,139,140,141,142,143,144,28,145,146,147,148,149,150,151,152],"technical debt","debt","technical","technical debt auditor","auditor","coverage","complexity","markers","project","cleanup","unused","code","todo","work","plan","focus","signals","audit","dependency",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":168,"publishedAt":46},"01M70KPYH9QNHCNME5GJQGE22K","readonly-sql-guard","Make an agent's database access provably read-only. Use when an agent runs caller-supplied SQL against a production\u002FERP\u002Fanalytics database (a \"query\" MCP tool, text-to-SQL, an admin console), or when reviewing DB-access code for write\u002FDDL\u002Fside-effect\u002Ftransaction-escape risks. Checks what a statement CALLS, not just its shape.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fdatabase\u002Freadonly-sql-guard\u002FSKILL.md",[159,162,163],{"categoryNo":160,"categoryName":161,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":106,"categoryName":107,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":164,"categoryName":165,"taxonomyType":166,"taxonomyTypeDesc":167},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[169,170,171,172,173,174,175,30,176,177,178,179,180,181,182,36,183,184,28,185],"readonly","guard","sql guard","sql","readonly sql guard","erp","effect","read-only","db","just","tool","calls","only","MCP","access","database","query",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":190,"licenseFileUrl":191,"sourceHtmlUrl":192,"categories":193,"keywords":197,"publishedAt":46},"01M6AFY6F7CC2BBZP1QD6VTNVC","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FSKILL.md",[194],{"categoryNo":195,"categoryName":196,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,30,220],"artifacts builder","web","web artifacts builder","artifacts","builder","state","routing","state management","component","css","frontend","ui","Tools","file","components","shadcn","react","Tailwind","suite","jsx","html","single-file","ui components",{"skillNo":222,"name":223,"nameZh":6,"description":224,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":190,"licenseFileUrl":225,"sourceHtmlUrl":226,"categories":227,"keywords":230,"publishedAt":46},"01M6AFWF33SFV9Z3SF4PEEE4BF","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FSKILL.md",[228,229],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":195,"categoryName":196,"taxonomyType":21,"taxonomyTypeDesc":22},[231,37,232,233,234,199,39,208,209,44,235,236,237,30,238,117,239],"webapp testing","webapp","browser","playwright","toolkit","logs","screenshots","local","behavior",{"skillNo":241,"name":242,"nameZh":6,"description":243,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":190,"licenseFileUrl":244,"sourceHtmlUrl":245,"categories":246,"keywords":254,"publishedAt":46},"01M6AF67Q67JJJ5V51JR2P52KA","discernment-nudge","After you give a substantive answer or draft that the user may act on — advice or recommendations, drafted artifacts such as goals, plans, pitches, proposals, or emails, estimates or projections, analysis or interpretation of data, factual claims they may rely on, or a multi-step argument — invoke this skill BEFORE finalizing your reply and then, if it applies, append 2-3 short follow-up questions, each tied to something specific in what you just produced, that help the user check key facts, probe the reasoning or assumptions, and notice missing context. Do this at most once per conversation. Skip it when the user asked a trivial how-to or simple lookup, wants a purely educational explanation, asked you only to format, convert, or assemble a file from content they provided, is writing code they will run, is doing creative writing or casual chat, or already asked you to double-check, cite, or review — the skill file explains these boundaries and the exact output format.","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fdavila7\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fdiscernment-nudge\u002FSKILL.md",[247,250,251],{"categoryNo":248,"categoryName":249,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":106,"categoryName":107,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":252,"categoryName":253,"taxonomyType":166,"taxonomyTypeDesc":167},"01JBSEEDCAT000000000000036","内容创作者",[255,256,257,258,259,260,261,262,201,263,211,145,264,265,266,267,268,181,269,28,270,271,272,273,274,123,275],"discernment nudge","nudge","interpretation","help","run","reasoning","data","writing","lookup","content","review","conversation","short","up","invoke","you","analysis","claims","argument","assemble","recommendations"]