[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EAYXSTZBJB6DYX69AE2RVJ":3,"skill-same:01M6EAYXSTZBJB6DYX69AE2RVJ":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":60,"commitSha":61,"skillDirectory":62,"forksCount":63,"repositoryHtmlUrl":64,"repositoryHomepageUrl":6,"ownerHtmlUrl":65,"ownerBlogUrl":6,"ownerDescription":66,"updatedAt":67,"install":68,"resources":81},"01M6EAYXSTZBJB6DYX69AE2RVJ","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.","luokai0\u002Fai-agent-skills-by-luo-kai","luokai0","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F266954973?v=4","01M6E16VNT42JB8B3X3254QWJ7","luo kai","01M6E16VTFVP6S5XJF1V1MPV90",14,"MIT","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F18-ai-agents-and-automation (by Luo Kai)\u002F16-other-agents\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],"langsmith observability","observability","use","LangSmith","LLM Applications","systematic","systems","platform","observability platform","datasets","pipelines","testing","ops","model","applications","Production","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.\nversion: 1.0.0\nauthor: luo-kai\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## 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,"tags":49,"author":56,"license":15,"version":57,"description":7,"dependencies":58},[50,27,51,40,52,53,54,55,39],"Observability","Tracing","Monitoring","Debugging","Testing","LLM Ops","luo-kai","1.0.0",[59],"langsmith>=0.2.0","main","4d2fb89cdfb75f3f6fd3c6c5ec9ad90ea129eb3c","ai-agent-skills\u002F18-ai-agents-and-automation (by Luo Kai)\u002F16-other-agents\u002Flangsmith",1,"https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai","https:\u002F\u002Fgithub.com\u002Fluokai0","a solo builder.","2026-05-06 04:29:04",{"source":8,"skillName":5,"commands":69,"prompt":79,"zipAvailable":80},[70,73,76],{"tool":71,"command":72},"npx","npx skills add luokai0\u002Fai-agent-skills-by-luo-kai --skill langsmith-observability",{"tool":74,"command":75},"bunx","bunx skills add luokai0\u002Fai-agent-skills-by-luo-kai --skill langsmith-observability",{"tool":77,"command":78},"pnpm","pnpm dlx skills add luokai0\u002Fai-agent-skills-by-luo-kai --skill langsmith-observability","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F18-ai-agents-and-automation (by Luo Kai)\u002F16-other-agents\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\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F18-ai-agents-and-automation (by Luo Kai)\u002F16-other-agents\u002Flangsmith\u002Freferences\u002Fadvanced-usage.md",{"path":89,"resourceType":84,"resourceTypeDesc":85,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Ftroubleshooting.md",10983,"https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F18-ai-agents-and-automation (by Luo Kai)\u002F16-other-agents\u002Flangsmith\u002Freferences\u002Ftroubleshooting.md",[93,119,136,164,196,230],{"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":99,"publishedAt":44},"01M6F2SKTE208174C7S7JJCZC7","write-contracts","Generates secure Aptos Move V2 smart contracts with Object model, Digital Asset integration, security patterns, and storage type guidance. Includes comprehensive storage decision framework for optimal data structure selection. Triggers on: 'write contract', 'create NFT collection', 'build marketplace', 'implement minting', 'generate Move module', 'create token contract', 'build DAO', 'implement staking'. Ask storage questions when: 'store', 'track', 'registry', 'mapping', 'list', 'collection'.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fwrite-contracts\u002FSKILL.md",[],[100,101,102,103,104,105,106,107,37,108,109,110,111,112,113,114,115,116,117,118],"write","contracts","write contracts","storage","secure","create","generate","collection","decision","ask","smart-contracts","selection","objects","structure","nft","token","aptos","critical","move",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":44},"01M6F2RFXJ6T9MKW0A7N7GM45B","web-search","通用网络搜索技能，支持多引擎搜索（百度、必应、DuckDuckGo），无需API密钥即可获取实时信息","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fweb-search-ex-skill\u002FSKILL.md",[],[126,127,128,129,130,131,132,133,134,135],"web","search","web search","搜索","baidu","bing","duckduckgo","百度","多引擎","internet",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":145,"publishedAt":44},"01M6F2K968G1FZEZFPW2E6B222","solo-build","Execute implementation plan tasks with TDD workflow, auto-commit, and phase gates. Use when user says \"build it\", \"start building\", \"execute plan\", \"implement tasks\", \"ship it\", or references a track ID. Do NOT use for planning (use \u002Fplan) or scaffolding (use \u002Fscaffold).","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fsolo-build\u002FSKILL.md",[142],{"categoryNo":143,"categoryName":144,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[146,147,148,149,150,151,152,153,127,154,155,156,100,157,158,159,160,161,162,163],"build","solo","solo build","MCP","workflow","commit","tasks","code","Bash","plan","read","auto","references","context7","query","scaffolding","ship it","project",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":176,"publishedAt":44},"01M6F2GKN39SGHSPWYB3662YC8","react-email","Use when building HTML email templates with React components, adding a visual email editor to an application using the React Email visual editor, rendering emails to HTML, or sending emails with Resend. Covers welcome emails, password resets, notifications, order confirmations, newsletters, transactional emails, and the embeddable email editor component.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Freact-email-skills\u002FSKILL.md",[170,173],{"categoryNo":171,"categoryName":172,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":174,"categoryName":175,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",[177,178,179,180,181,182,183,184,185,186,187,188,189,26,190,191,192,193,194,195],"react","email","react email","github","editor","components","react components","component","welcome","https","notifications","password","node","html","resend","visual","emails","rendering","with",{"skillNo":197,"name":198,"nameZh":6,"description":199,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":200,"categories":201,"keywords":212,"publishedAt":44},"01M6F2FBVGVDFSG8SSFJGXA40C","APITester Agent-Driven API Testing","Test API endpoints and document responses. Define tests in plain English, run them, get formatted results. Agent-driven Postman alternative.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fopenclaw-api-tester\u002FSKILL.md",[202,203,206,207],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":204,"categoryName":205,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":143,"categoryName":144,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":208,"categoryName":209,"taxonomyType":210,"taxonomyTypeDesc":211},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[35,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229],"api","api testing","driven","APITester Agent Driven API Testing","test","run","postman","results","plain english","tester","endpoints","document","get","define","tests","english","api-tester",{"skillNo":231,"name":232,"nameZh":6,"description":233,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":234,"categories":235,"keywords":236,"publishedAt":44},"01M6F273Y3NGAPVJZ608BC0G9G","hubspot-implementation-plan","Generate a phased implementation plan from a HubSpot audit report. Creates prioritized, sequenced cleanup processes with effort estimates, dependencies, and automation feasibility. Use after running \u002Fhubspot-audit.","https:\u002F\u002Fgithub.com\u002Fluokai0\u002Fai-agent-skills-by-luo-kai\u002Fblob\u002Fmain\u002Fai-agent-skills\u002F22-clawhub-skills\u002Fhubspot-implementation-plan\u002FSKILL.md",[],[155,237,238,239,240,241,242,106,243,244,245,246,247,26,248,249,195,250],"implementation","hubspot","hubspot implementation plan","automation","feasibility","cleanup","planning","report","audit","audit report","phased implementation","dependencies","processes","hubspot audit"]