[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XG3YPSPE8RYYW1FPGT7VF7":3,"skill-same:01M6XG3YPSPE8RYYW1FPGT7VF7":92},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":62,"commitSha":63,"skillDirectory":64,"forksCount":14,"repositoryHtmlUrl":65,"repositoryHomepageUrl":6,"ownerHtmlUrl":66,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":67,"install":68,"resources":81},"01M6XG3YPSPE8RYYW1FPGT7VF7","langsmith-observability",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.","fadrienne\u002FMyGitHub","fadrienne","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F197874571?v=4","01M6X64V8VWCRSMFZ4EPS2BWXG","Francesca Adrienne","01M6X64VD5MW4F9PHDWQKS7ZAF",0,"MIT","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fllm-tools\u002Flangsmith\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],"observability","langsmith observability","LangSmith","observability platform","when","outputs","for","LLM Applications","synthetic","systematic","platform","testing","use","model","applications","Tools","Evaluation","monitoring","tracing","debugging","2026-11-10 10:12:30",false,"---\nname: langsmith-observability\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.\ncategory: llm-tools\nversion: 1.0.0\nauthor: Synthetic Sciences\nlicense: MIT\ntags: [Observability, LangSmith, Tracing, Evaluation, Monitoring, Debugging, Testing, LLM Ops, Production]\ndependencies: [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\n## Credential Setup\n\nCredentials are auto-injected by openscience when connected via the dashboard.\n\n```bash\n# Verify credentials\n[ -n \"$LANGSMITH_API_KEY\" ] && echo \"LANGSMITH_API_KEY set\" || echo \"NOT SET\"\n```\n\nIf not set: connect LangSmith at https:\u002F\u002Fapp.syntheticsciences.ai -> Services, then restart openscience.\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\n## Credential Setup\n\nCredentials are auto-injected by openscience when connected via the dashboard.\n\n```bash\n# Verify credentials\n[ -n \"$LANGSMITH_API_KEY\" ] && echo \"LANGSMITH_API_KEY set\" || echo \"NOT SET\"\n```\n\nIf not set: connect LangSmith at https:\u002F\u002Fapp.syntheticsciences.ai -> Services, then restart openscience.\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,"tags":49,"author":57,"license":15,"version":58,"category":59,"description":7,"dependencies":60},[50,26,51,40,52,53,54,55,56],"Observability","Tracing","Monitoring","Debugging","Testing","LLM Ops","Production","Synthetic Sciences","1.0.0","llm-tools",[61],"langsmith>=0.2.0","main","4aa39efd1cdab0b4657ecee16c92a92011a5b10f","openscience\u002Fbackend\u002Fcli\u002Fskills\u002Fllm-tools\u002Flangsmith","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub","https:\u002F\u002Fgithub.com\u002Ffadrienne","2026-10-28 00:43:09",{"source":8,"skillName":5,"commands":69,"prompt":79,"zipAvailable":80},[70,73,76],{"tool":71,"command":72},"npx","npx skills add fadrienne\u002FMyGitHub --skill langsmith-observability",{"tool":74,"command":75},"bunx","bunx skills add fadrienne\u002FMyGitHub --skill langsmith-observability",{"tool":77,"command":78},"pnpm","pnpm dlx skills add fadrienne\u002FMyGitHub --skill langsmith-observability","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fllm-tools\u002Flangsmith\u002FSKILL.md",true,[82,88],{"path":83,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fadvanced-usage.md","REFERENCE","参考文档",12006,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fllm-tools\u002Flangsmith\u002Freferences\u002Fadvanced-usage.md",{"path":89,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Ftroubleshooting.md",10983,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fopenscience\u002Fbackend\u002Fcli\u002Fskills\u002Fllm-tools\u002Flangsmith\u002Freferences\u002Ftroubleshooting.md",[93,122,145,179,206,232],{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":102,"publishedAt":44},"01M7167B28PK20HP7R7ZED2DY0","statistical-power","Sample size calculation, power analysis, and effect size conversion for scientific studies. Use BEFORE data collection (a priori) to determine required N, or after (post-hoc) to compute achieved power. Covers parametric tests (t-test, ANOVA, chi-square, proportions, correlation, regression), simulation-based power for complex\u002Fclustered\u002Fnested designs, and power curves. Use this skill when someone asks 'how many samples do I need', 'what is my power', 'what effect size can I detect', or any variant. Pairs with \u002Fexperimental-design (choose design first, then compute power) and \u002Fstatistical-analysis (analyze data after collection).","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fstatistical-power\u002FSKILL.md",[99],{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[103,104,105,106,107,108,109,110,28,111,112,113,114,115,116,117,118,119,120,121],"power","statistical power","effect","scipy","regression","choose","design","uv","Bash","collection","analysis","calculation","ANOVA","conversion","analyze","t-test","chi-square","simulation","sample",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":129,"publishedAt":44},"01M71677EBCM8EPCE9BZCK8505","statistical-analysis","Guided statistical analysis with test selection and reporting. Use when you need help choosing appropriate tests for your data, assumption checking, power analysis, and APA-formatted results. Best for academic research reporting, test selection guidance. For implementing specific models programmatically use statsmodels.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fstatistical-analysis\u002FSKILL.md",[128],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[113,130,103,131,132,133,28,134,135,136,30,137,36,138,139,140,141,142,143,144],"statistical analysis","academic research","implementing","selection","you","reporting","data","tests","with","test","research","results","statsmodels","models","help",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":160,"publishedAt":44},"01M71673R93XAHFH81DBNVNG7H","scientific-writing","Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRAD structure, citations (APA\u002FAMA\u002FVancouver), figures\u002Ftables, reporting guidelines (CONSORT\u002FSTROBE\u002FPRISMA), for research papers and journal submissions.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fscientific-writing\u002FSKILL.md",[151,154,155],{"categoryNo":152,"categoryName":153,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":156,"categoryName":157,"taxonomyType":158,"taxonomyTypeDesc":159},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[161,162,163,164,165,166,167,168,169,170,111,171,172,173,174,175,176,177,135,178],"writing","scientific","scientific writing","Citations","deep","deep research","never","papers","journal","false","api","prisma","structure","openrouter","Outlines","core skill","read","features",{"skillNo":180,"name":181,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":189,"publishedAt":44},"01M7166ZPKXBF4EBPHVTJPQBB1","scientific-visualization","Meta-skill for publication-ready figures. Use when creating journal submission figures requiring multi-panel layouts, significance annotations, error bars, colorblind-safe palettes, and specific journal formatting (Nature, Science, Cell). Orchestrates matplotlib\u002Fseaborn\u002Fplotly with publication styles. For quick exploration use seaborn or plotly directly.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fscientific-visualization\u002FSKILL.md",[185,188],{"categoryNo":186,"categoryName":187,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},[190,162,191,192,193,194,195,196,197,169,28,198,199,200,201,202,203,204,30,205],"visualization","scientific visualization","error","ready","quick","exploration","meta-skill","Meta","safe","plotly","annotations","formatting","Publication","figures","panel","submission",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":218,"publishedAt":44},"01M7166VXJWQSSC3RQZP60WBGR","research-code","Debug, profile, review, and restructure Python research and analysis code. Use when analysis scripts crash, produce wrong results, run too slowly, or need a correctness review. Covers: reading tracebacks and diagnosing root causes, hypothesis-driven debugging, reviewing code for common statistical\u002Fnumerical errors, profiling data pipelines, improving reproducibility (seeds, environments, determinism), and structuring analysis scripts for sharing. Distinct from \u002Fexploratory-data-analysis (which understands data) and \u002Fstatistical-analysis (which chooses and runs tests) — this skill focuses on the code itself.","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fresearch-code\u002FSKILL.md",[212,215],{"categoryNo":213,"categoryName":214,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":216,"categoryName":217,"taxonomyType":158,"taxonomyTypeDesc":159},"01JBSEEDCAT000000000000030","开发工程师",[219,220,140,221,222,223,224,110,43,28,111,113,225,226,227,228,229,230,177,231],"code","research code","which","memory","data-analysis","errors","common","review","data pipelines","run","scripts","line","write",{"skillNo":233,"name":234,"nameZh":6,"description":235,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":236,"licenseFileUrl":6,"sourceHtmlUrl":237,"categories":238,"keywords":245,"publishedAt":44},"01M7166CF5HSR7SVZYZFWTDX55","markdown-mermaid-writing","Comprehensive markdown and Mermaid diagram writing skill. Use when creating any scientific document, report, analysis, or visualization. Establishes text-based diagrams as the default documentation standard with full style guides (markdown + mermaid), 24 diagram type references, and 9 document templates.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002Fscientific-agent-skills\u002Fskills\u002Fmarkdown-mermaid-writing\u002FSKILL.md",[239,242,243,244],{"categoryNo":240,"categoryName":241,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",{"categoryNo":152,"categoryName":153,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":100,"categoryName":101,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":156,"categoryName":157,"taxonomyType":158,"taxonomyTypeDesc":159},[161,246,247,248,249,250,190,251,252,28,111,113,253,254,255,256,257,258,162,177],"markdown mermaid writing","mermaid","markdown","community","diagrams","project","default","team","guides","text","documentation","references","diagram"]