<?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: Kyonis </title>
    <description>The latest articles on DEV Community by Kyonis  (@kyonis).</description>
    <link>https://dev.to/kyonis</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3825995%2F4c307214-dc74-4910-aa90-2b9e5e1ec177.png</url>
      <title>DEV Community: Kyonis </title>
      <link>https://dev.to/kyonis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kyonis"/>
    <language>en</language>
    <item>
      <title>Our Open-Source RegTech Stack: From €5,400/mo to €800/mo (80% Cost Reduction)</title>
      <dc:creator>Kyonis </dc:creator>
      <pubDate>Sun, 15 Mar 2026 23:24:10 +0000</pubDate>
      <link>https://dev.to/kyonis/our-open-source-regtech-stack-from-eu5400mo-to-eu800mo-80-cost-reduction-jl9</link>
      <guid>https://dev.to/kyonis/our-open-source-regtech-stack-from-eu5400mo-to-eu800mo-80-cost-reduction-jl9</guid>
      <description>&lt;p&gt;We built &lt;a href="https://kyonis.com" rel="noopener noreferrer"&gt;Kyonis&lt;/a&gt;, an agent-native KYC/AML compliance API. Before writing a single line of code, we made a critical decision: &lt;strong&gt;100% open-source stack&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The result? An 80% reduction in infrastructure costs compared to a proprietary stack. Here's exactly what we use and why.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Cost Comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Proprietary&lt;/th&gt;
&lt;th&gt;Open-Source&lt;/th&gt;
&lt;th&gt;Savings&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cloud hosting&lt;/td&gt;
&lt;td&gt;€3,000/mo (AWS)&lt;/td&gt;
&lt;td&gt;€400-800/mo (Scaleway)&lt;/td&gt;
&lt;td&gt;75%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LLM/AI&lt;/td&gt;
&lt;td&gt;€1,500/mo&lt;/td&gt;
&lt;td&gt;€200-400/mo (local + API)&lt;/td&gt;
&lt;td&gt;80%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Monitoring&lt;/td&gt;
&lt;td&gt;€500/mo (Datadog)&lt;/td&gt;
&lt;td&gt;€0 (Grafana)&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cache&lt;/td&gt;
&lt;td&gt;€100/mo (Redis Cloud)&lt;/td&gt;
&lt;td&gt;€0 (Valkey)&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Search&lt;/td&gt;
&lt;td&gt;€200/mo (Elastic)&lt;/td&gt;
&lt;td&gt;€0 (PostgreSQL pg_trgm)&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;API Gateway&lt;/td&gt;
&lt;td&gt;€100/mo (Kong)&lt;/td&gt;
&lt;td&gt;€0 (Traefik)&lt;/td&gt;
&lt;td&gt;100%&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€5,400/mo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;€800-1,200/mo&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;~80%&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;That's &lt;strong&gt;€75,000 saved over 18 months&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Our Stack
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Backend: FastAPI + Go
&lt;/h3&gt;

&lt;p&gt;The API layer uses &lt;strong&gt;FastAPI&lt;/strong&gt; (Python) for its async capabilities and auto-generated OpenAPI docs. But for sanctions screening — where we need sub-500ms response times across 100K+ entries — we use a &lt;strong&gt;Go microservice&lt;/strong&gt; with in-memory fuzzy matching.&lt;/p&gt;

&lt;p&gt;Why not all Go? Because Python has the best AI/ML ecosystem (spaCy, HuggingFace, sentence-transformers). Why not all Python? Because Go gives us 10x throughput on the hot path.&lt;/p&gt;

&lt;h3&gt;
  
  
  Database: PostgreSQL Does Everything
&lt;/h3&gt;

&lt;p&gt;No Elasticsearch. No dedicated search engine. PostgreSQL 16 with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;pg_trgm&lt;/strong&gt; for fuzzy name matching (sanctions screening)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;tsvector&lt;/strong&gt; for full-text search&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GIN indexes&lt;/strong&gt; for fast trigram lookups&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Partitioned tables&lt;/strong&gt; for the audit trail (7-year retention)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One database instead of three. Simpler ops, fewer things that break at 3am.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cache: Valkey (not Redis)
&lt;/h3&gt;

&lt;p&gt;Redis changed its license. &lt;a href="https://valkey.io/" rel="noopener noreferrer"&gt;Valkey&lt;/a&gt; is the Linux Foundation fork — 100% compatible, truly open-source. Drop-in replacement, zero migration effort.&lt;/p&gt;

&lt;h3&gt;
  
  
  Message Queue: NATS (not Kafka)
&lt;/h3&gt;

&lt;p&gt;Kafka requires ZooKeeper, JVM tuning, and a PhD in distributed systems. &lt;a href="https://nats.io/" rel="noopener noreferrer"&gt;NATS&lt;/a&gt; is a single binary, 10MB RAM, and handles everything we need. JetStream gives us persistence when required.&lt;/p&gt;

&lt;h3&gt;
  
  
  AI: Hybrid Strategy (80% Local, 20% Cloud)
&lt;/h3&gt;

&lt;p&gt;This is where it gets interesting:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Level 1 — Ollama (Mistral 7B)&lt;/strong&gt;: Text extraction, classification, summarization. Cost: ~€0.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Level 2 — spaCy + HuggingFace&lt;/strong&gt;: NER for names, companies, addresses in KYC documents. Cost: €0.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Level 3 — Claude API (20% of requests)&lt;/strong&gt;: Complex risk profiles, adverse media analysis, regulatory reports. Cost: ~€200-400/mo.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Level 4 — Deterministic rules engine&lt;/strong&gt;: Hard-coded regulatory thresholds, auditable scoring. Cost: €0.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;80% of requests never hit a paid API. The local models handle extraction and classification. Claude only steps in for complex reasoning.&lt;/p&gt;

&lt;h3&gt;
  
  
  Monitoring: Grafana Stack
&lt;/h3&gt;

&lt;p&gt;Grafana + Prometheus + Loki replaces Datadog. Same dashboards, same alerts, zero monthly bill.&lt;/p&gt;

&lt;h3&gt;
  
  
  Infrastructure: Scaleway Kapsule
&lt;/h3&gt;

&lt;p&gt;We chose &lt;a href="https://www.scaleway.com/" rel="noopener noreferrer"&gt;Scaleway&lt;/a&gt; over AWS:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kubernetes managed (Kapsule) — no cluster management overhead&lt;/li&gt;
&lt;li&gt;Paris datacenter — GDPR native, data stays in France&lt;/li&gt;
&lt;li&gt;3-5x cheaper than equivalent AWS setup&lt;/li&gt;
&lt;li&gt;Startup program with up to €36K credits&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Data: Open Data First
&lt;/h2&gt;

&lt;p&gt;12 data sources, all free:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sanctions&lt;/strong&gt;: OFAC, EU, UN, HMT, DFAT (government APIs, free)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Company registries&lt;/strong&gt;: API Sirene (France), Companies House (UK), SEC EDGAR (US) — all free&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adverse media&lt;/strong&gt;: GDELT Project (free, updated every 15 minutes)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Offshore leaks&lt;/strong&gt;: ICIJ database (Panama/Pandora Papers, free)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;UBO&lt;/strong&gt;: OpenOwnership registry (free)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Total data cost at launch: &lt;strong&gt;€0/month&lt;/strong&gt;. We add OpenSanctions (€500/mo) when we hit 50+ paying customers.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Result
&lt;/h2&gt;

&lt;p&gt;An API that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Screens against global sanctions in &amp;lt;500ms&lt;/li&gt;
&lt;li&gt;Runs full KYC verification in &amp;lt;3 seconds&lt;/li&gt;
&lt;li&gt;Includes explainable reasoning in every response&lt;/li&gt;
&lt;li&gt;Is discoverable by AI agents via MCP&lt;/li&gt;
&lt;li&gt;Costs €95/month to run (not €5,400)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;p&gt;Free Sandbox plan: 500 verifications/month, no credit card.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🌐 &lt;a href="https://kyonis.com" rel="noopener noreferrer"&gt;kyonis.com&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;📖 &lt;a href="https://docs.kyonis.com" rel="noopener noreferrer"&gt;Documentation&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🔌 &lt;a href="https://api.kyonis.com/docs" rel="noopener noreferrer"&gt;API&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;🤖 &lt;a href="https://mcp.kyonis.com" rel="noopener noreferrer"&gt;MCP Server&lt;/a&gt; for Claude Desktop&lt;/li&gt;
&lt;li&gt;💻 &lt;a href="https://github.com/contactkyonis-droid/kyonis" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you're building a fintech or compliance tool, give it a spin and let me know what you think.&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>architecture</category>
      <category>python</category>
      <category>devops</category>
    </item>
    <item>
      <title>Build a KYC Agent with LangChain + Kyonis in 50 Lines of Python</title>
      <dc:creator>Kyonis </dc:creator>
      <pubDate>Sun, 15 Mar 2026 23:12:25 +0000</pubDate>
      <link>https://dev.to/kyonis/build-a-kyc-agent-with-langchain-kyonis-in-50-lines-of-python-3kni</link>
      <guid>https://dev.to/kyonis/build-a-kyc-agent-with-langchain-kyonis-in-50-lines-of-python-3kni</guid>
      <description>&lt;p&gt;Banks spend $270B/year on compliance. 95%+ of sanctions screening results are false positives. And most compliance APIs aren't designed for AI agents.&lt;/p&gt;

&lt;p&gt;We built &lt;a href="https://kyonis.com" rel="noopener noreferrer"&gt;Kyonis&lt;/a&gt; to fix this — an agent-native KYC/AML API with sanctions screening in &amp;lt;500ms, full explainability, and a free tier.&lt;/p&gt;

&lt;p&gt;Here's how to build a compliance agent in 50 lines of Python.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install
&lt;/h2&gt;

&lt;p&gt;pip install kyonis langchain-anthropic&lt;/p&gt;

&lt;p&gt;Get your free API key (500 verifications/month): &lt;a href="https://app.kyonis.com/register" rel="noopener noreferrer"&gt;app.kyonis.com/register&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Agent
&lt;/h2&gt;

&lt;p&gt;from langchain_anthropic import ChatAnthropic&lt;br&gt;
from kyonis.langchain_tool import get_kyonis_tools&lt;br&gt;
from langchain.agents import initialize_agent, AgentType&lt;/p&gt;

&lt;p&gt;llm = ChatAnthropic(model="claude-sonnet-4-20250514")&lt;br&gt;
tools = get_kyonis_tools(api_key="sk_sandbox_...")&lt;/p&gt;

&lt;p&gt;agent = initialize_agent(tools, llm, agent=AgentType.OPENAI_FUNCTIONS)&lt;/p&gt;

&lt;p&gt;result = agent.run(&lt;br&gt;
    "Screen these people against sanctions lists: "&lt;br&gt;
    "1. Jean Dupont (France) "&lt;br&gt;
    "2. Mohammed Al-Rashid (Iraq) "&lt;br&gt;
    "Give me the risk level for each."&lt;br&gt;
)&lt;br&gt;
print(result)&lt;/p&gt;

&lt;h2&gt;
  
  
  What Happens Under the Hood
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;LangChain agent receives the request&lt;/li&gt;
&lt;li&gt;Agent calls &lt;code&gt;kyonis_aml_screen&lt;/code&gt; for each person&lt;/li&gt;
&lt;li&gt;Kyonis screens against OFAC, EU, UN, HMT sanctions (&amp;lt;500ms)&lt;/li&gt;
&lt;li&gt;Each result includes a &lt;code&gt;reasoning&lt;/code&gt; field explaining the decision&lt;/li&gt;
&lt;li&gt;Agent compiles a human-readable summary&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  The Response
&lt;/h2&gt;

&lt;p&gt;Every Kyonis response includes explainability:&lt;/p&gt;

&lt;p&gt;{&lt;br&gt;
  "match": true,&lt;br&gt;
  "score": 0.92,&lt;br&gt;
  "reasoning": "Matched against OFAC SDN entry using fuzzy matching (Jaro-Winkler: 0.92). Country match confirmed.",&lt;br&gt;
  "sources": ["OFAC", "EU_SANCTIONS"],&lt;br&gt;
  "latency_ms": 417&lt;br&gt;
}&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Agent-Native Matters
&lt;/h2&gt;

&lt;p&gt;Traditional compliance APIs return raw data. Kyonis returns &lt;strong&gt;reasoned decisions&lt;/strong&gt; that AI agents can act on directly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;reasoning&lt;/code&gt; field → agent understands &lt;em&gt;why&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;Structured scores → agent can make decisions&lt;/li&gt;
&lt;li&gt;MCP server → Claude discovers Kyonis automatically&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try It
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Free tier: 500 verifications/month&lt;/li&gt;
&lt;li&gt;No credit card required&lt;/li&gt;
&lt;li&gt;MCP server for Claude Desktop&lt;/li&gt;
&lt;li&gt;SDK for Python &amp;amp; TypeScript&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 &lt;a href="https://kyonis.com" rel="noopener noreferrer"&gt;kyonis.com&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://github.com/contactkyonis-droid/kyonis" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt;&lt;br&gt;
👉 &lt;a href="https://docs.kyonis.com" rel="noopener noreferrer"&gt;API Docs&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>python</category>
      <category>langchain</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
