Some checks failed
Build & Deploy / 🔍 Prepare (push) Successful in 20s
Build & Deploy / 🧪 QA (push) Failing after 34s
Build & Deploy / 🏗️ Build (push) Has started running
Build & Deploy / 🚀 Deploy (push) Has been cancelled
Build & Deploy / 🧪 Smoke Test (push) Has been cancelled
Build & Deploy / ⚡ Lighthouse (push) Has been cancelled
Build & Deploy / 🔔 Notify (push) Has been cancelled
94 lines
2.8 KiB
Plaintext
94 lines
2.8 KiB
Plaintext
Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
|
|
|
const core = require('@sentry/core');
|
|
const nodeCore = require('@sentry/node-core');
|
|
const instrumentation = require('./instrumentation.js');
|
|
|
|
const instrumentLangGraph = nodeCore.generateInstrumentOnce(
|
|
core.LANGGRAPH_INTEGRATION_NAME,
|
|
options => new instrumentation.SentryLangGraphInstrumentation(options),
|
|
);
|
|
|
|
const _langGraphIntegration = ((options = {}) => {
|
|
return {
|
|
name: core.LANGGRAPH_INTEGRATION_NAME,
|
|
setupOnce() {
|
|
instrumentLangGraph(options);
|
|
},
|
|
};
|
|
}) ;
|
|
|
|
/**
|
|
* Adds Sentry tracing instrumentation for LangGraph.
|
|
*
|
|
* This integration is enabled by default.
|
|
*
|
|
* When configured, this integration automatically instruments LangGraph StateGraph and compiled graph instances
|
|
* to capture telemetry data following OpenTelemetry Semantic Conventions for Generative AI.
|
|
*
|
|
* @example
|
|
* ```javascript
|
|
* import * as Sentry from '@sentry/node';
|
|
*
|
|
* Sentry.init({
|
|
* integrations: [Sentry.langGraphIntegration()],
|
|
* });
|
|
* ```
|
|
*
|
|
* ## Options
|
|
*
|
|
* - `recordInputs`: Whether to record input messages (default: respects `sendDefaultPii` client option)
|
|
* - `recordOutputs`: Whether to record response text (default: respects `sendDefaultPii` client option)
|
|
*
|
|
* ### Default Behavior
|
|
*
|
|
* By default, the integration will:
|
|
* - Record inputs and outputs ONLY if `sendDefaultPii` is set to `true` in your Sentry client options
|
|
* - Otherwise, inputs and outputs are NOT recorded unless explicitly enabled
|
|
*
|
|
* @example
|
|
* ```javascript
|
|
* // Record inputs and outputs when sendDefaultPii is false
|
|
* Sentry.init({
|
|
* integrations: [
|
|
* Sentry.langGraphIntegration({
|
|
* recordInputs: true,
|
|
* recordOutputs: true
|
|
* })
|
|
* ],
|
|
* });
|
|
*
|
|
* // Never record inputs/outputs regardless of sendDefaultPii
|
|
* Sentry.init({
|
|
* sendDefaultPii: true,
|
|
* integrations: [
|
|
* Sentry.langGraphIntegration({
|
|
* recordInputs: false,
|
|
* recordOutputs: false
|
|
* })
|
|
* ],
|
|
* });
|
|
* ```
|
|
*
|
|
* ## Captured Operations
|
|
*
|
|
* The integration captures the following LangGraph operations:
|
|
* - **Agent Creation** (`StateGraph.compile()`) - Creates a `gen_ai.create_agent` span
|
|
* - **Agent Invocation** (`CompiledGraph.invoke()`) - Creates a `gen_ai.invoke_agent` span
|
|
*
|
|
* ## Captured Data
|
|
*
|
|
* When `recordInputs` and `recordOutputs` are enabled, the integration captures:
|
|
* - Input messages from the graph state
|
|
* - Output messages and LLM responses
|
|
* - Tool calls made during agent execution
|
|
* - Agent and graph names
|
|
* - Available tools configured in the graph
|
|
*
|
|
*/
|
|
const langGraphIntegration = core.defineIntegration(_langGraphIntegration);
|
|
|
|
exports.instrumentLangGraph = instrumentLangGraph;
|
|
exports.langGraphIntegration = langGraphIntegration;
|
|
//# sourceMappingURL=index.js.map
|