<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anand Kumar</title>
    <description>The latest articles on DEV Community by Anand Kumar (@anandkrceo).</description>
    <link>https://dev.to/anandkrceo</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4083723%2F87b85a6a-687a-454e-87f9-09fad9b67e3c.jpeg</url>
      <title>DEV Community: Anand Kumar</title>
      <link>https://dev.to/anandkrceo</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/anandkrceo"/>
    <language>en</language>
    <item>
      <title>Splyntra: Open-Source Observability and Security for AI Agents</title>
      <dc:creator>Anand Kumar</dc:creator>
      <pubDate>Tue, 18 Aug 2026 17:58:39 +0000</pubDate>
      <link>https://dev.to/anandkrceo/splyntra-open-source-observability-and-security-for-ai-agents-4ga1</link>
      <guid>https://dev.to/anandkrceo/splyntra-open-source-observability-and-security-for-ai-agents-4ga1</guid>
      <description>&lt;p&gt;AI agents are becoming increasingly capable.&lt;/p&gt;

&lt;p&gt;They can call tools, interact with APIs, retrieve information, execute multi-step workflows, delegate tasks to other agents, and make decisions with limited human intervention.&lt;/p&gt;

&lt;p&gt;But there is a problem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Once an AI agent starts doing real work, simply logging the final response is not enough.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You need to know:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What did the agent actually do?&lt;/li&gt;
&lt;li&gt;Which LLM calls did it make?&lt;/li&gt;
&lt;li&gt;Which tools did it invoke?&lt;/li&gt;
&lt;li&gt;How much did the run cost?&lt;/li&gt;
&lt;li&gt;Where did latency come from?&lt;/li&gt;
&lt;li&gt;Did it expose PII or secrets?&lt;/li&gt;
&lt;li&gt;Was there a prompt injection?&lt;/li&gt;
&lt;li&gt;Did a tool call perform an unsafe action?&lt;/li&gt;
&lt;li&gt;Did a new model or prompt version make the agent worse?&lt;/li&gt;
&lt;li&gt;Can you reproduce and debug the entire execution?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is the problem we are building &lt;strong&gt;Splyntra&lt;/strong&gt; to solve.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Splyntra?
&lt;/h2&gt;

&lt;p&gt;Splyntra is an &lt;strong&gt;observability and security platform for AI agents&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The core idea is simple:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Observe what your agents did and understand whether it was safe — in the same execution trace.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Traditional application monitoring was primarily designed around request → response systems.&lt;/p&gt;

&lt;p&gt;AI agents are different.&lt;/p&gt;

&lt;p&gt;A single agent execution can look more like:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;User Request
     │
     ▼
   Agent
     │
     ├──► LLM Call
     │
     ├──► Tool Call
     │       │
     │       └──► Database
     │
     ├──► Retrieval
     │
     ├──► Another LLM Call
     │
     └──► Final Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Every step introduces new observability and security concerns.&lt;/p&gt;

&lt;p&gt;Splyntra treats the &lt;strong&gt;agent run as the first-class unit of observability&lt;/strong&gt; and attaches performance, cost, and security signals to the individual spans inside that run. (&lt;a href="https://www.splyntra.com/docs" rel="noopener noreferrer"&gt;Splyntra&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  One trace. Multiple signals.
&lt;/h2&gt;

&lt;p&gt;One of the ideas behind Splyntra is that observability and security shouldn't have to live in completely separate systems.&lt;/p&gt;

&lt;p&gt;The same trace that tells you:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent → LLM → Tool → Database → Response
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;can also tell you:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Latency
Token Usage
Cost
PII Detected
Secret Detected
Prompt Injection
Tool Risk
Policy Violation
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Splyntra combines these signals into a unified view.&lt;/p&gt;

&lt;p&gt;For example, instead of seeing:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Agent execution failed."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;you can investigate:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Agent Run
│
├── LLM Call
│   ├── 2,431 tokens
│   ├── $0.012
│   └── 420ms
│
├── Tool: crm.read
│   ├── 180ms
│   └── PII detected
│
└── Tool: refund.execute
    ├── 95ms
    └── Risk: HIGH
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This makes debugging agent behavior significantly more actionable.&lt;/p&gt;

&lt;h2&gt;
  
  
  Built on OpenTelemetry
&lt;/h2&gt;

&lt;p&gt;Splyntra is &lt;strong&gt;OpenTelemetry-native&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;That means you don't have to adopt a completely proprietary telemetry format just to understand your AI agents.&lt;/p&gt;

&lt;p&gt;If you're already producing OpenTelemetry data, Splyntra can ingest OTLP directly and work with GenAI-related telemetry such as model names and token information. (&lt;a href="https://www.splyntra.com/docs" rel="noopener noreferrer"&gt;Splyntra&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;The architecture is intentionally straightforward:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;AI Agent
   │
   ▼
OpenTelemetry / Splyntra SDK
   │
   ▼
OTLP Collector
   │
   ├── Traces
   ├── Logs
   ├── Metrics
   ├── Security Signals
   └── Evaluation Data
          │
          ▼
      Splyntra
          │
          ▼
       Dashboard
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The goal is to avoid creating another isolated telemetry ecosystem.&lt;/p&gt;

&lt;h2&gt;
  
  
  Five pillars
&lt;/h2&gt;

&lt;p&gt;Splyntra is built around five major capabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Observability
&lt;/h3&gt;

&lt;p&gt;Understand exactly what happened during an agent execution.&lt;/p&gt;

&lt;p&gt;You can capture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Agent execution traces&lt;/li&gt;
&lt;li&gt;LLM calls&lt;/li&gt;
&lt;li&gt;Tool calls&lt;/li&gt;
&lt;li&gt;Retrieval operations&lt;/li&gt;
&lt;li&gt;Agent handoffs&lt;/li&gt;
&lt;li&gt;Latency&lt;/li&gt;
&lt;li&gt;Token usage&lt;/li&gt;
&lt;li&gt;Cost&lt;/li&gt;
&lt;li&gt;Structured logs&lt;/li&gt;
&lt;li&gt;Metrics&lt;/li&gt;
&lt;li&gt;Agent replay&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This gives developers a complete execution timeline instead of just the final output. (&lt;a href="https://github.com/splyntra/splyntra" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Security
&lt;/h3&gt;

&lt;p&gt;AI agents introduce a new security surface.&lt;/p&gt;

&lt;p&gt;A prompt can contain malicious instructions.&lt;/p&gt;

&lt;p&gt;A tool can expose sensitive information.&lt;/p&gt;

&lt;p&gt;An LLM response can accidentally contain secrets.&lt;/p&gt;

&lt;p&gt;Splyntra provides detection for areas including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;PII&lt;/li&gt;
&lt;li&gt;Secrets&lt;/li&gt;
&lt;li&gt;Prompt injection&lt;/li&gt;
&lt;li&gt;Content moderation&lt;/li&gt;
&lt;li&gt;Unsafe tool calls&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These signals can contribute to a unified risk score for an agent execution. (&lt;a href="https://www.splyntra.com/docs" rel="noopener noreferrer"&gt;Splyntra&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;The objective is to move security closer to the actual agent execution rather than treating it as something completely separate.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Evaluation
&lt;/h3&gt;

&lt;p&gt;Observability tells you what happened.&lt;/p&gt;

&lt;p&gt;Evaluation helps answer:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Was it good?&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Splyntra supports evaluation workflows around datasets, scorers, regression detection, benchmarks, and CI gating.&lt;/p&gt;

&lt;p&gt;For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Pull Request
     │
     ▼
Run Agent Evaluation
     │
     ├── Accuracy
     ├── Tool Calls
     ├── Latency
     ├── Cost
     └── Regression
            │
            ▼
       CI Gate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This allows agent behavior to become part of the engineering lifecycle rather than something manually tested after deployment. (&lt;a href="https://github.com/splyntra/splyntra" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Governance
&lt;/h3&gt;

&lt;p&gt;As agents become more autonomous, the question changes from:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Can this agent call the API?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;to:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Should this agent be allowed to call the API under these conditions?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Splyntra's governance capabilities include concepts such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Activity ledger&lt;/li&gt;
&lt;li&gt;Delegation&lt;/li&gt;
&lt;li&gt;Spend limits&lt;/li&gt;
&lt;li&gt;Approval workflows&lt;/li&gt;
&lt;li&gt;Policy enforcement&lt;/li&gt;
&lt;li&gt;RBAC / ABAC / ReBAC&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These capabilities are particularly important for enterprise agent deployments. (&lt;a href="https://github.com/splyntra/splyntra" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Agent Identity
&lt;/h3&gt;

&lt;p&gt;Agents increasingly behave like software principals.&lt;/p&gt;

&lt;p&gt;They may need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Credentials&lt;/li&gt;
&lt;li&gt;Scoped permissions&lt;/li&gt;
&lt;li&gt;Delegated access&lt;/li&gt;
&lt;li&gt;Trust relationships&lt;/li&gt;
&lt;li&gt;Cross-agent communication&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Splyntra includes an agent identity layer designed around these requirements. (&lt;a href="https://www.splyntra.com/docs" rel="noopener noreferrer"&gt;Splyntra&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  Instrumenting a Python agent
&lt;/h2&gt;

&lt;p&gt;Getting started with Python is intentionally lightweight.&lt;/p&gt;

&lt;p&gt;Install the SDK:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pip &lt;span class="nb"&gt;install &lt;/span&gt;splyntra
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then instrument your agent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="n"&gt;splyntra&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Splyntra&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;trace_agent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;trace_tool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;trace_llm&lt;/span&gt;

&lt;span class="n"&gt;splyntra&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Splyntra&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="n"&gt;api_key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;YOUR_API_KEY&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="n"&gt;project&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;my-project&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nd"&gt;@trace_agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;support_agent&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;workflow&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;refund&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;run_agent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;plan&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;call_llm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;execute_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;plan&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt;

&lt;span class="nd"&gt;@trace_llm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;gpt-4o&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;provider&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;openai&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;call_llm&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# Your LLM implementation
&lt;/span&gt;    &lt;span class="bp"&gt;...&lt;/span&gt;

&lt;span class="nd"&gt;@trace_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;crm.read&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;execute_tool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;action&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;dict&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="c1"&gt;# Your tool implementation
&lt;/span&gt;    &lt;span class="bp"&gt;...&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run your agent and you can inspect the resulting execution trace in Splyntra.&lt;/p&gt;

&lt;p&gt;The Python SDK also supports instrumentation approaches for supported frameworks. (&lt;a href="https://github.com/splyntra/splyntra" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;You can find the Python package here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://pypi.org/project/splyntra/2.0.1/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Splyntra on PyPI&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  TypeScript / JavaScript
&lt;/h2&gt;

&lt;p&gt;For JavaScript and TypeScript applications:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @splyntra/sdk
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can wrap your existing agent, LLM calls, and tools without having to rewrite your architecture:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;Splyntra&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;wrapAgent&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;wrapTool&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="nx"&gt;wrapLLM&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@splyntra/sdk&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Splyntra&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;SPLYNTRA_API_KEY&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;project&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;my-project&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="na"&gt;instrument&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;langgraph&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;callLLM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;wrapLLM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prompt&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Your LLM call&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;gpt-4o&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;openai&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;readCRM&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;wrapTool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Your tool call&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;crm.read&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;runAgent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;wrapAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="k"&gt;async &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;callLLM&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;query&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;support_agent&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;refund&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nf"&gt;runAgent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Refund my order&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The TypeScript SDK also provides decorators and a CLI for evaluation workflows and CI gating. (&lt;a href="https://github.com/splyntra/splyntra" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/@splyntra/sdk?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Splyntra TypeScript SDK on npm&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Framework integrations
&lt;/h2&gt;

&lt;p&gt;Agent infrastructure is fragmented.&lt;/p&gt;

&lt;p&gt;Teams are building agents with different frameworks and orchestration systems.&lt;/p&gt;

&lt;p&gt;Splyntra is designed to work across that ecosystem.&lt;/p&gt;

&lt;p&gt;Current integrations include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenAI&lt;/li&gt;
&lt;li&gt;Anthropic&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;li&gt;LangGraph&lt;/li&gt;
&lt;li&gt;OpenAI Agents&lt;/li&gt;
&lt;li&gt;CrewAI&lt;/li&gt;
&lt;li&gt;MCP&lt;/li&gt;
&lt;li&gt;LlamaIndex&lt;/li&gt;
&lt;li&gt;Chroma&lt;/li&gt;
&lt;li&gt;Google ADK&lt;/li&gt;
&lt;li&gt;Pydantic AI&lt;/li&gt;
&lt;li&gt;Dify&lt;/li&gt;
&lt;li&gt;n8n&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal isn't to force teams to rebuild their agents.&lt;/p&gt;

&lt;p&gt;It's to provide a common observability and security layer underneath them. (&lt;a href="https://github.com/splyntra/splyntra" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  Self-host it
&lt;/h2&gt;

&lt;p&gt;Splyntra is designed with a self-host-first approach.&lt;/p&gt;

&lt;p&gt;You can start the complete local stack with:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/splyntra/splyntra.git

&lt;span class="nb"&gt;cd &lt;/span&gt;splyntra

docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The local environment includes the dashboard, collector, detectors, evaluation components, and infrastructure. (&lt;a href="https://github.com/splyntra/splyntra" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;The architecture uses familiar infrastructure rather than trying to reinvent the database or telemetry layer.&lt;/p&gt;

&lt;p&gt;The core stack includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Go&lt;/li&gt;
&lt;li&gt;OpenTelemetry&lt;/li&gt;
&lt;li&gt;ClickHouse&lt;/li&gt;
&lt;li&gt;PostgreSQL&lt;/li&gt;
&lt;li&gt;Docker&lt;/li&gt;
&lt;li&gt;Kubernetes / Helm&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This keeps the infrastructure relatively boring while allowing the product layer to focus on agent-specific problems. (&lt;a href="https://github.com/splyntra/splyntra" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;h2&gt;
  
  
  Open source and open core
&lt;/h2&gt;

&lt;p&gt;Splyntra follows an open-core model.&lt;/p&gt;

&lt;p&gt;The community edition provides the source-available core with capabilities including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;OpenTelemetry collector&lt;/li&gt;
&lt;li&gt;Tracing&lt;/li&gt;
&lt;li&gt;Logs&lt;/li&gt;
&lt;li&gt;Metrics&lt;/li&gt;
&lt;li&gt;Cost analytics&lt;/li&gt;
&lt;li&gt;Detection&lt;/li&gt;
&lt;li&gt;Evaluation&lt;/li&gt;
&lt;li&gt;Dashboard&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The client SDKs and integrations are Apache-2.0 licensed, while some governance, identity, SSO, control-plane, billing, and advanced capabilities are part of the commercial offering. (&lt;a href="https://github.com/splyntra/splyntra" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;)&lt;/p&gt;

&lt;p&gt;You can explore the implementation directly on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/splyntra/splyntra?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;Splyntra GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why we are building this
&lt;/h2&gt;

&lt;p&gt;The next generation of software won't just contain APIs and microservices.&lt;/p&gt;

&lt;p&gt;It will contain agents.&lt;/p&gt;

&lt;p&gt;Agents that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Browse the web&lt;/li&gt;
&lt;li&gt;Query databases&lt;/li&gt;
&lt;li&gt;Execute transactions&lt;/li&gt;
&lt;li&gt;Write code&lt;/li&gt;
&lt;li&gt;Call APIs&lt;/li&gt;
&lt;li&gt;Communicate with other agents&lt;/li&gt;
&lt;li&gt;Access enterprise systems&lt;/li&gt;
&lt;li&gt;Make decisions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That changes the observability problem.&lt;/p&gt;

&lt;p&gt;For traditional applications, you might ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Why did this request fail?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;For agentic systems, you increasingly need to ask:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Why did the agent make this decision?"&lt;/p&gt;

&lt;p&gt;"Which tools did it use?"&lt;/p&gt;

&lt;p&gt;"What information influenced it?"&lt;/p&gt;

&lt;p&gt;"How much did the execution cost?"&lt;/p&gt;

&lt;p&gt;"Was the action safe?"&lt;/p&gt;

&lt;p&gt;"Can I reproduce the behavior?"&lt;/p&gt;

&lt;p&gt;"Did the latest model change introduce a regression?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;These are not separate questions.&lt;/p&gt;

&lt;p&gt;They are different dimensions of the same agent execution.&lt;/p&gt;

&lt;p&gt;That's the problem space Splyntra is targeting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try it yourself
&lt;/h2&gt;

&lt;p&gt;If you're building AI agents, we'd love for you to try Splyntra and tell us what you think.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/splyntra/splyntra?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;github.com/splyntra/splyntra&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Documentation:&lt;/strong&gt; &lt;a href="https://www.splyntra.com/docs?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;splyntra.com/docs&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python SDK:&lt;/strong&gt; &lt;a href="https://pypi.org/project/splyntra/2.0.1/?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;PyPI – splyntra&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TypeScript / JavaScript SDK:&lt;/strong&gt; &lt;a href="https://www.npmjs.com/package/@splyntra/sdk?utm_source=chatgpt.com" rel="noopener noreferrer"&gt;npm – @splyntra/sdk&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're working on agent infrastructure, security, evaluation, or observability, we'd especially love feedback on the architecture and the developer experience.&lt;/p&gt;

&lt;p&gt;⭐ Star the repository if you find it useful, open an issue if you find something broken, and contribute if you'd like to help shape the future of agent observability.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;Splyntra — Observe. Evaluate. Secure. Govern. Trust.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>opensource</category>
      <category>security</category>
    </item>
  </channel>
</rss>
