Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@
"user-events/custom"
]
},
"features/triggers",
"features/automations",
"features/embedded-analytics"
]
},
Expand Down Expand Up @@ -465,9 +465,9 @@
"group": "Traces",
"pages": [
"api-reference/traces/overview",
"api-reference/traces/get-trace-details",
"api-reference/traces/get-trace",
"api-reference/traces/get-thread-details",
"api-reference/traces/search-traces",
"api-reference/traces/search",
"api-reference/traces/create-public-trace-path",
"api-reference/traces/delete-public-trace-path"
]
Expand Down Expand Up @@ -504,9 +504,9 @@
]
},
{
"group": "Triggers",
"group": "Automations",
"pages": [
"api-reference/triggers/create-slack-trigger"
"api-reference/automations/create-slack-automation"
]
},
{
Expand Down Expand Up @@ -614,6 +614,11 @@
"tagId": "GTM-KJ4S6Z9C"
}
},
"analytics": {
"posthog": {
"apiKey": "phc_oOlj3H19T2JlGbFXmrGrjSLbDPDNyPKYdIFaTdrkXOY"
}
},
"redirects": [
{
"source": "/ci/cache/busted/1773936454",
Expand Down
2 changes: 1 addition & 1 deletion introduction.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: "LangWatch: The Complete LLMOps Platform"
description: "Ship AI agents 8x faster with comprehensive observability, evaluation, and prompt optimization. Open-source platform, with over 2.5k stars on GitHub."
description: "Ship AI agents 8x faster with comprehensive observability, evaluation, and prompt optimization. Open-source platform, with over 3k stars on GitHub."
sidebarTitle: Introduction
keywords: langwatch, llm, ai, observability, evaluation, prompt optimization, llmops, open-source, github
---
Expand Down
1,439 changes: 728 additions & 711 deletions llms-full.txt

Large diffs are not rendered by default.

21 changes: 12 additions & 9 deletions llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,17 @@ Always navigate to docs links using the .md extension for better readability.

## Get Started

- [LangWatch: The Complete LLMOps Platform](https://langwatch.ai/docs/introduction.md): Ship AI agents 8x faster with comprehensive observability, evaluation, and prompt optimization. Open-source platform, with over 2.5k stars on GitHub.
- [Better Agents](https://langwatch.ai/docs/better-agents/overview.md): Build reliable, testable, production-grade AI agents with Better Agents CLI - the reliability layer for agent development
- [LangWatch: The Complete LLMOps Platform](https://langwatch.ai/docs/introduction.md): Ship AI agents 8x faster with comprehensive observability, evaluation, and prompt optimization. Open-source platform, with over 3k stars on GitHub.

### LangWatch Skills

- [Skills Directory](https://langwatch.ai/docs/skills/directory.md): Get started with LangWatch in seconds. Copy a prompt, install a skill, or set up the MCP — your AI agent does the rest.
- [Code Prompts](https://langwatch.ai/docs/skills/code-prompts.md): Copy a prompt, paste it into your coding assistant, done.
- [Platform Prompts](https://langwatch.ai/docs/skills/platform-prompts.md): Ask your chat assistant to query performance, set up evaluators, and create scenarios.
- [Prompt Recipes](https://langwatch.ai/docs/skills/recipes.md): Domain-specific, actionable recipes for improving your AI agent.

- [LangWatch MCP Server](https://langwatch.ai/docs/integration/mcp.md): Use the LangWatch MCP Server to extend your coding assistant with deep LangWatch insights for tracing, testing, and agent evaluations.
- [Better Agents](https://langwatch.ai/docs/better-agents/overview.md): Build reliable, testable, production-grade AI agents with Better Agents CLI - the reliability layer for agent development

## Agent Simulations

Expand Down Expand Up @@ -82,11 +90,6 @@ Always navigate to docs links using the .md extension for better readability.
- [Capturing Metadata and Attributes](https://langwatch.ai/docs/integration/python/tutorials/capturing-metadata.md): Learn how to enrich your traces and spans with custom metadata and attributes using the LangWatch Python SDK.
- [Capturing Metadata and Attributes](https://langwatch.ai/docs/integration/typescript/tutorials/capturing-metadata.md): Learn how to enrich your traces and spans with custom metadata and attributes using the LangWatch TypeScript SDK.

#### Tracking Conversations

- [Tracking Conversations](https://langwatch.ai/docs/integration/python/tutorials/tracking-conversations.md): Group related traces into conversations using thread_id so you can view and evaluate entire chat sessions in LangWatch.
- [Tracking Conversations](https://langwatch.ai/docs/integration/typescript/tutorials/tracking-conversations.md): Group related traces into conversations using thread_id so you can view and evaluate entire chat sessions in LangWatch.

#### Tracking LLM Costs

- [Tracking LLM Costs and Tokens](https://langwatch.ai/docs/integration/python/tutorials/tracking-llm-costs.md): Track LLM costs and tokens with LangWatch to monitor efficiency and support performance evaluations in agent testing.
Expand Down Expand Up @@ -306,9 +309,9 @@ Always navigate to docs links using the .md extension for better readability.
## Traces

- [Overview](https://langwatch.ai/docs/api-reference/traces/overview.md): Search, retrieve, and share LangWatch traces via the REST API. Traces capture the full execution of your LLM pipelines including all spans, evaluations, and metadata.
- [Search traces](https://langwatch.ai/docs/api-reference/traces/search.md)
- [Get trace details](https://langwatch.ai/docs/api-reference/traces/get-trace.md)
- [Get Trace Details](https://langwatch.ai/docs/api-reference/traces/get-trace-details.md)
- [Get thread details](https://langwatch.ai/docs/api-reference/traces/get-thread-details.md)
- [Search Traces](https://langwatch.ai/docs/api-reference/traces/search-traces.md)
- [Create public path for single trace](https://langwatch.ai/docs/api-reference/traces/create-public-trace-path.md)
- [Delete an existing public path for a trace](https://langwatch.ai/docs/api-reference/traces/delete-public-trace-path.md)

Expand Down
10 changes: 5 additions & 5 deletions skills/code-prompts.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ import { PROMPTS } from "/snippets/prompts-data.jsx"
</Tab>

<Tab title="Skills">
<SkillInstall title="Instrument my agent with open telemetry" skill="langwatch/skills/tracing" slashCommand="/langwatch-tracing" />
<SkillInstall title="Write evaluations for my agent" skill="langwatch/skills/evaluations" slashCommand="/langwatch-evaluations" />
<SkillInstall title="Write scenario tests and a CI pipeline for my agent" skill="langwatch/skills/scenarios" slashCommand="/langwatch-scenarios" />
<SkillInstall title="Version my prompts" skill="langwatch/skills/prompts" slashCommand="/langwatch-prompts" />
<SkillInstall title="Do all of the above" skill="langwatch/skills/level-up" slashCommand="/langwatch-level-up" highlighted />
<SkillInstall title="Instrument my agent with open telemetry" skill="langwatch/skills/tracing" slashCommand="/tracing" />
<SkillInstall title="Write evaluations for my agent" skill="langwatch/skills/evaluations" slashCommand="/evaluations" />
<SkillInstall title="Write scenario tests and a CI pipeline for my agent" skill="langwatch/skills/scenarios" slashCommand="/scenarios" />
<SkillInstall title="Version my prompts" skill="langwatch/skills/prompts" slashCommand="/prompts" />
<SkillInstall title="Do all of the above" skill="langwatch/skills/level-up" slashCommand="/level-up" highlighted />
</Tab>

<Tab title="MCP">
Expand Down
10 changes: 5 additions & 5 deletions skills/directory.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ Don't want to install skills? Copy a ready-to-paste prompt instead: [Code Prompt

Install any skill with a single command:

<SkillInstall title="Instrument my agent with open telemetry" skill="langwatch/skills/tracing" slashCommand="/langwatch-tracing" />
<SkillInstall title="Write evaluations for my agent" skill="langwatch/skills/evaluations" slashCommand="/langwatch-evaluations" />
<SkillInstall title="Write scenario tests and a CI pipeline for my agent" skill="langwatch/skills/scenarios" slashCommand="/langwatch-scenarios" />
<SkillInstall title="Version my prompts" skill="langwatch/skills/prompts" slashCommand="/langwatch-prompts" />
<SkillInstall title="Do all of the above" skill="langwatch/skills/level-up" slashCommand="/langwatch-level-up" highlighted />
<SkillInstall title="Instrument my agent with open telemetry" skill="langwatch/skills/tracing" slashCommand="/tracing" />
<SkillInstall title="Write evaluations for my agent" skill="langwatch/skills/evaluations" slashCommand="/evaluations" />
<SkillInstall title="Write scenario tests and a CI pipeline for my agent" skill="langwatch/skills/scenarios" slashCommand="/scenarios" />
<SkillInstall title="Version my prompts" skill="langwatch/skills/prompts" slashCommand="/prompts" />
<SkillInstall title="Do all of the above" skill="langwatch/skills/level-up" slashCommand="/level-up" highlighted />

<Tip>
**Starting an agent from scratch?** Use [Better Agents](/better-agents/overview) to scaffold a production-ready project with all LangWatch features built in.
Expand Down
12 changes: 6 additions & 6 deletions skills/recipes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,11 @@ import { PROMPTS } from "/snippets/prompts-data.jsx"
</Tab>

<Tab title="Skills">
<SkillInstall title="What should I do next to improve my agent?" skill="langwatch/skills/recipes/improve-setup" slashCommand="/langwatch-improve-setup" highlighted />
<SkillInstall title="Debug and improve my agent instrumentation" skill="langwatch/skills/recipes/debug-instrumentation" slashCommand="/langwatch-debug-instrumentation" />
<SkillInstall title="Evaluate my multimodal agent" skill="langwatch/skills/recipes/evaluate-multimodal" slashCommand="/langwatch-evaluate-multimodal" />
<SkillInstall title="Generate an evaluation dataset from my RAG knowledge base" skill="langwatch/skills/recipes/generate-rag-dataset" slashCommand="/langwatch-generate-rag-dataset" />
<SkillInstall title="Check my agent doesn't give prescriptive advice" skill="langwatch/skills/recipes/test-compliance" slashCommand="/langwatch-test-compliance" />
<SkillInstall title="Test my CLI is well usable by AI agents" skill="langwatch/skills/recipes/test-cli-usability" slashCommand="/langwatch-test-cli-usability" />
<SkillInstall title="What should I do next to improve my agent?" skill="langwatch/skills/recipes/improve-setup" slashCommand="/improve-setup" highlighted />
<SkillInstall title="Debug and improve my agent instrumentation" skill="langwatch/skills/recipes/debug-instrumentation" slashCommand="/debug-instrumentation" />
<SkillInstall title="Evaluate my multimodal agent" skill="langwatch/skills/recipes/evaluate-multimodal" slashCommand="/evaluate-multimodal" />
<SkillInstall title="Generate an evaluation dataset from my RAG knowledge base" skill="langwatch/skills/recipes/generate-rag-dataset" slashCommand="/generate-rag-dataset" />
<SkillInstall title="Check my agent doesn't give prescriptive advice" skill="langwatch/skills/recipes/test-compliance" slashCommand="/test-compliance" />
<SkillInstall title="Test my CLI is well usable by AI agents" skill="langwatch/skills/recipes/test-cli-usability" slashCommand="/test-cli-usability" />
</Tab>
</Tabs>
26 changes: 9 additions & 17 deletions snippets/copy-line.jsx
Original file line number Diff line number Diff line change
@@ -1,40 +1,32 @@
import React, { useState } from "react";
const { useState } = React;

const trackEvent = (name, props) => {
try { window.posthog?.capture(name, props); } catch {}
};

export const CopyLine = ({ text }) => {
const [copied, setCopied] = useState(false);

const handleCopy = () => {
navigator.clipboard.writeText(text);
setCopied(true);
trackEvent("docs_copy_line", { text });
setTimeout(() => setCopied(false), 2000);
};

return (
<div
style={{
border: "1px solid var(--border-color, #e5e7eb)",
borderRadius: "12px",
padding: "10px 16px",
display: "flex",
alignItems: "center",
justifyContent: "space-between",
gap: "12px",
cursor: "pointer",
transition: "background 0.15s",
marginBottom: "8px",
}}
className="lw-copy-prompt"
onClick={handleCopy}
onMouseOver={(e) => { e.currentTarget.style.background = "var(--bg-hover, #f9fafb)"; }}
onMouseOut={(e) => { e.currentTarget.style.background = "transparent"; }}
>
<span style={{ fontSize: "14px" }}>"{text}"</span>
<button
onClick={(e) => { e.stopPropagation(); handleCopy(); }}
style={{
display: "flex", alignItems: "center", padding: "4px",
border: "none", background: "transparent",
color: copied ? "var(--success-text, #059669)" : "var(--text-muted, #9ca3af)",
cursor: "pointer", transition: "all 0.15s",
color: copied ? "#059669" : "#9ca3af",
cursor: "pointer",
}}
>
{copied ? (
Expand Down
32 changes: 12 additions & 20 deletions snippets/copy-prompt.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
import React, { useState } from "react";
const { useState } = React;

const trackEvent = (name, props) => {
try { window.posthog?.capture(name, props); } catch {}
};

export const CopyPrompt = ({ title, prompt, boldPrefix }) => {
const [copied, setCopied] = useState(false);
Expand All @@ -10,46 +14,34 @@ export const CopyPrompt = ({ title, prompt, boldPrefix }) => {
const handleCopy = () => {
navigator.clipboard.writeText(prompt);
setCopied(true);
trackEvent("docs_copy_prompt", { title: boldPrefix ? `${boldPrefix} ${title}` : title });
setTimeout(() => setCopied(false), 2000);
};

return (
<div
style={{
border: "1px solid var(--border-color, #e5e7eb)",
borderRadius: "12px",
padding: "12px 16px",
display: "flex",
alignItems: "center",
justifyContent: "space-between",
gap: "12px",
cursor: "pointer",
transition: "background 0.15s",
marginBottom: "8px",
}}
className="lw-copy-prompt"
onClick={handleCopy}
onMouseOver={(e) => { e.currentTarget.style.background = "var(--bg-hover, #f9fafb)"; }}
onMouseOut={(e) => { e.currentTarget.style.background = "transparent"; }}
>
<span style={{ fontSize: "14px" }}>
{boldPrefix ? <><strong>{boldPrefix}</strong> {title}</> : title}
</span>
<button
className={copied ? "lw-copy-btn lw-copy-btn-copied" : "lw-copy-btn"}
onClick={(e) => { e.stopPropagation(); handleCopy(); }}
style={{
display: "flex", alignItems: "center", gap: "6px",
padding: "6px 12px", borderRadius: "8px",
border: "1px solid var(--border-color, #e5e7eb)",
background: copied ? "var(--success-bg, #ecfdf5)" : "transparent",
color: copied ? "var(--success-text, #059669)" : "inherit",
background: copied ? "#ecfdf5" : "transparent",
color: copied ? "#059669" : undefined,
cursor: "pointer", fontSize: "13px", fontWeight: 500,
transition: "all 0.15s", whiteSpace: "nowrap",
whiteSpace: "nowrap",
}}
>
{copied ? (
<><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><polyline points="20 6 9 17 4 12" /></svg>Copied!</>
) : (
<><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2" /><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" /></svg>Copy Prompt</>
<><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="2" strokeLinecap="round" strokeLinejoin="round"><rect x="9" y="9" width="13" height="13" rx="2" ry="2" /><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" /></svg>Copy Full Prompt</>
)}
</button>
</div>
Expand Down
Loading
Loading