PageSourceSearch

https://kopern.ai/en/blog

html kopern.ai collected 2026-10-05 12:23:38 UTC 252,270 bytes, 1 lines download raw bytes

1<!DOCTYPE html><!--zJMEv86jptEv1OFkGWSL1--><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5"/><link rel="preload" href="/_next/static/media/797e433ab948586e-s.p.dbea232f.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" as="image" href="/logo_small.png"/><link rel="preload" href="https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776865360402.jpeg?alt=media&amp;token=1f2f2eb2-98e0-4943-b4ed-1322f6a50aa6" as="image"/><link rel="preload" href="https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864883838.jpeg?alt=media&amp;token=7cbb8c56-9a20-4ddd-b019-bbd75f6c18cf" as="image"/><link rel="preload" href="https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864516931.jpeg?alt=media&amp;token=2b8efaf9-b093-47cb-b0b4-428e1d856135" as="image"/><link rel="preload" href="https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864240350.jpeg?alt=media&amp;token=52f2fd31-54eb-4a4b-9379-156d3572e193" as="image"/><link rel="preload" href="https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864054104.jpeg?alt=media&amp;token=66c51a44-b672-466d-868b-d771ba75d518" as="image"/><link rel="preload" href="https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776166145353.jpeg?alt=media&amp;token=d129c7e0-c859-4764-a35e-773cb4ff30dd" as="image"/><link rel="preload" href="/blog/workflow_monitor/blind.jpeg" as="image"/><link rel="preload" href="/blog/mcp_journey/dead_end.jpeg" as="image"/><link rel="preload" href="/blog/production_grade_ai/iteration_1.jpeg" as="image"/><link rel="stylesheet" href="/_next/static/chunks/9ff2748c5049a4a4.css?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/2473c16c0c2f6b5f.css?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/8e533c7b3b901b07.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E"/>
1<script src="/_next/static/chunks/2ea703d6a08da49d.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/67c9d06fa8700707.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/4af27f77bd5de33b.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/797fcb0710da3be2.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/turbopack-42c82d9a39f9e86a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/d96012bcfc98706a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/73e3194f06db260e.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/586874a0e3a0b2da.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/c459da24e5de9d10.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/abbaad18e04b9d49.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/a51ef5039fd53285.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/9e23a0d69e1f66a9.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/a1c7696cfea1328a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/6e127ce322ae25c8.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/741dd708061fe346.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/6ba55f017255994b.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/6c03270009136281.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/dd87cd4c8cee6be6.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<script src="/_next/static/chunks/9c6bfdb345bf0918.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" async=""></script>
1<link rel="preload" href="/blog/building_kopern/starting.jpeg" as="image"/><meta name="next-size-adjust" content=""/><meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff"/><meta name="theme-color" media="(prefers-color-scheme: dark)" content="#1a1625"/><title>Blog — Kopern</title><meta name="description" content="Behind the scenes of building Kopern: engineering decisions, AI agent insights, and product updates."/><meta name="application-name" content="Kopern"/><link rel="author" href="https://kopern.ai"/><meta name="author" content="Kopern"/><link rel="manifest" href="/manifest.webmanifest"/><meta name="generator" content="Next.js"/><meta name="keywords" content="AI agent builder,AI agent platform,AI agent grading,LLM agent orchestration,custom AI tools,tool calling,AI agent testing,multi-agent teams,MCP server,Model Context Protocol,Claude agent,GPT agent,Gemini agent,Mistral agent,AI automation,AI pipeline builder,agentic AI,agent evaluation,AI grading,no-code AI agent,AI agent deployment,AI chat widget,AI webhook integration,AI Slack bot,embeddable AI chat,AI agent connector,n8n AI agent,Zapier AI agent,AI agent API,AI agent optimization,prompt optimization,AI agent sandbox,constructeur agent IA,agent IA personnalisé,orchestration multi-agents,évaluation agent IA,chatbot IA personnalisé,déploiement agent IA,AI workflow monitoring,LLM quality testing,AI endpoint grading,AI agent monitoring,LLM drift detection,AI quality assurance,Bluesky AI bot,social media AI agent,AI workflow quality,LLM benchmark"/><meta name="creator" content="Kopern"/><meta name="publisher" content="Kopern"/><meta name="robots" content="index, follow"/><meta name="googlebot" content="index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1"/><meta name="category" content="technology"/><link rel="canonical" href="https://kopern.ai/en/blog"/><link rel="alternate" hrefLang="en" href="https://kopern.ai/en/blog"/><link rel="alternate" hrefLang="fr" href="https://kopern.ai/fr/blog"/><meta name="format-detection" content="telephone=no, address=no, email=no"/><meta property="og:title" content="Blog — Kopern"/><meta property="og:description" content="Behind the scenes of building Kopern: engineering decisions, AI agent insights, and product updates."/><meta property="og:url" content="https://kopern.ai/en"/><meta property="og:locale" content="en_US"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:creator" content="@kopern_ai"/><meta name="twitter:title" content="Kopern — AI Agent Builder, Orchestrator &amp; Grader"/><meta name="twitter:description" content="Build, test, deploy, and connect production-grade AI agents with tool calling, grading, multi-agent teams, and external connectors."/><meta name="twitter:image" content="https://kopern.ai/twitter-image"/><link rel="icon" href="/favicon.ico?favicon.d80630a9.ico" sizes="48x48" type="image/x-icon"/><link rel="icon" href="/favicon.ico" sizes="any"/><link rel="icon" href="/icon.svg" type="image/svg+xml"/><link rel="apple-touch-icon" href="/apple-touch-icon.png" sizes="180x180"/>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"Kopern","url":"https://kopern.ai","logo":"https://kopern.ai/logo_small.png","description":"Build, test, deploy, and connect production-grade AI agents with tool calling, deterministic grading, multi-agent teams, MCP endpoints, and external connectors.","sameAs":["https://github.com/berch-t/kopern","https://www.npmjs.com/package/@kopern/mcp-server","https://www.linkedin.com/company/kopern","https://www.wikidata.org/wiki/Q138958921"],"foundingDate":"2026","address":{"@type":"PostalAddress","addressCountry":"FR"},"contactPoint":{"@type":"ContactPoint","contactType":"customer support","email":"[email protected]","url":"https://kopern.ai/en/pricing","availableLanguage":["English","French"]},"knowsAbout":["Artificial Intelligence","AI Agents","Large Language Models","Tool Calling","Agent Orchestration","Model Context Protocol","AI Agent Testing","AI Agent Grading","Webhook Integration","Slack Bot Development","AI Workflow Monitoring","AI Quality Assurance","Social Media Automation"]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"Kopern","url":"https://kopern.ai","description":"Build, test, grade, and deploy production-grade AI agents without code.","inLanguage":["en","fr"],"publisher":{"@type":"Organization","name":"Kopern","url":"https://kopern.ai"}}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebApplication","name":"Kopern","applicationCategory":"DeveloperApplication","applicationSubCategory":"AI Agent Builder","operatingSystem":"Web","url":"https://kopern.ai","description":"AI Agent Builder platform — create custom AI agents with tool calling (Claude, GPT, Gemini, Mistral, Ollama), test with deterministic grading, orchestrate multi-agent teams, deploy via MCP endpoints, embeddable widget, webhooks, and Slack bot.","offers":{"@type":"AggregateOffer","priceCurrency":"USD","lowPrice":"0","highPrice":"499","offerCount":"4","offers":[{"@type":"Offer","name":"Starter","price":"0","priceCurrency":"USD","description":"Free tier — 3 agents, 100K tokens/month"},{"@type":"Offer","name":"Pro","price":"79","priceCurrency":"USD","billingDuration":"P1M","description":"25 agents, 2M tokens, grading, teams, connectors"},{"@type":"Offer","name":"Usage","price":"0","priceCurrency":"USD","description":"Pay per token — unlimited agents and features"},{"@type":"Offer","name":"Enterprise","price":"499","priceCurrency":"USD","billingDuration":"P1M","description":"Unlimited everything, priority support"}]},"featureList":["Custom AI agent creation with system prompts, skills, and branding","Tool calling with JSON Schema validation and sandboxed JavaScript execution","Multi-provider LLM support: Anthropic Claude, OpenAI GPT, Google Gemini, Mistral AI, Ollama","Deterministic grading with 6 criterion types (output match, schema validation, tool usage, safety, custom script, LLM judge)","AutoResearch optimization lab (AutoTune, AutoFix, Stress Lab, Tournament, Distillation, Evolution)","Multi-agent team orchestration (parallel, sequential, conditional)","Pipeline chains with input/output mapping","GitHub repository integration with read_file, search_files, and github_write tools","MCP (Model Context Protocol) server endpoints with API key authentication","Embeddable chat widget with Shadow DOM isolation and SSE streaming","Webhook connectors (inbound and outbound) with HMAC-SHA256 signing","Slack bot integration with OAuth, thread support, and reaction checkmarks","Real-time SSE streaming for chat, grading, and execution","Extension hooks for safety, logging, and compliance (30+ event types)","Real-time billing and usage tracking per agent via Stripe","Internationalization (English and French)","Meta-agent wizard for AI-assisted agent creation","Purpose Gate for session-scoped agent focus","TillDone mode for multi-step task enforcement","Built-in bug tracking with autonomous bug fixer agent","Workflow Quality Monitor — 18 standardized tests across 6 criteria for continuous LLM quality monitoring","Public Agent Grader — test any AI endpoint or system prompt with deterministic evaluation","Social Media Integration — Bluesky AT Protocol with 9 tools for social media management","Telegram bot and WhatsApp (Meta Cloud API) connectors","Agent memory with persistent key-value storage and context compaction"],"screenshot":"https://kopern.ai/opengraph-image","browserRequirements":"Requires JavaScript. Works in all modern browsers.","softwareVersion":"1.0","inLanguage":["en","fr"],"isAccessibleForFree":true,"creator":{"@type":"Organization","name":"Kopern","url":"https://kopern.ai"}}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"What is the difference between AI agents and chatbots?","acceptedAnswer":{"@type":"Answer","text":"AI agents autonomously execute multi-step tasks using tools (APIs, databases, code), while chatbots only reply with scripted text. Agents can reason, call external services, and decide what to do next; chatbots cannot. Use a chatbot for FAQs and an AI agent for multistep workflows like triaging tickets or running RAG pipelines."}},{"@type":"Question","name":"How do you build AI agents without coding?","acceptedAnswer":{"@type":"Answer","text":"No-code AI agent builders like Kopern let you create agents through a visual interface: describe the goal, pick a template or model, configure tools via JSON schemas, and deploy. No Python, no LangChain boilerplate. Most production agents can ship in 15–60 minutes through drag-and-drop workflow editors and pre-built connectors."}},{"@type":"Question","name":"What is the best alternative to CrewAI and LangChain?","acceptedA
1nswer":{"@type":"Answer","text":"Kopern is a no-code alternative to CrewAI and LangChain with built-in grading, MCP endpoints, multi-agent teams, and deployment connectors (Slack, widget, webhooks). Unlike framework-only tools, Kopern handles the full lifecycle: build, test, grade, deploy, monitor. No Python required, works with Claude, GPT, Gemini, Mistral, and Ollama."}},{"@type":"Question","name":"How much does it cost to deploy AI agents in production?","acceptedAnswer":{"@type":"Answer","text":"Running an AI agent in production typically costs $0.01–$0.30 per conversation depending on the model and context size. Platform costs range from free tiers to $79/month for production features. Expect 30–40% lower operational costs vs traditional chatbots once deployed, thanks to higher resolution rates and autonomous handling."}},{"@type":"Question","name":"How do you test and evaluate an AI agent?","acceptedAnswer":{"@type":"Answer","text":"Test AI agents with a grading suite: define test cases with inputs and expected behaviors, then evaluate with six criterion types — output match, schema validation, tool usage, safety, custom scripts, and LLM-as-judge. Run the suite on every prompt change to catch regressions. Kopern automates this with AutoTune and AutoFix for continuous improvement."}},{"@type":"Question","name":"What is silent degradation in LLM agents?","acceptedA
1nswer":{"@type":"Answer","text":"Silent degradation is when an AI agent still returns syntactically valid outputs, but semantic quality drops over time — caused by model updates, data drift, or prompt decay. It is common in RAG pipelines. Detect it with scheduled grading (daily test runs), anomaly-based alerts, and continuous LLM observability on latency, faithfulness, and safety metrics."}},{"@type":"Question","name":"What is MCP (Model Context Protocol) and why does it matter?","acceptedAnswer":{"@type":"Answer","text":"MCP is an open standard (created by Anthropic) for connecting AI agents to external tools and data. Think USB-C for AI: one protocol, any service. Claude Code, Cursor, and VS Code all speak MCP. With Kopern, you can expose any agent as an MCP server and call it from your IDE, CI pipeline, or custom apps."}},{"@type":"Question","name":"How do I deploy an AI agent on my website?","acceptedAnswer":{"@type":"Answer","text":"Add a single 
1<script> tag with your API key to embed a chat widget. The widget runs in a Shadow DOM for CSS isolation, streams via SSE, supports markdown and mobile. You can also deploy agents as MCP endpoints, webhooks, Slack bots, Telegram bots, or WhatsApp — all from the same dashboard without writing glue code."}},{"@type":"Question","name":"Are AI agents compliant with the EU AI Act?","acceptedAnswer":{"@type":"Answer","text":"Full enforcement of the EU AI Act starts August 2, 2026. High-risk AI agents must provide technical documentation, structured human oversight, audit trails, and stop mechanisms. Kopern ships with built-in tool approval policies, session event logs, and a compliance report generator to cover Article 14 (human oversight) out of the box."}},{"@type":"Question","name":"Which LLM models can you use to build AI agents?","acceptedAnswer":{"@type":"Answer","text":"The major providers are Anthropic (Claude Opus, Sonnet, Haiku), OpenAI (GPT-4o, o1), Google (Gemini 2.5 Flash, Pro), Mistral (Large, Codestral, Nemo), and local open-source via Ollama. Kopern lets you switch models per agent and A/B test them via Tournament mode to pick the best quality-cost tradeoff."}}
1,{"@type":"Question","name":"Is Kopern free to use?","acceptedAnswer":{"@type":"Answer","text":"Yes. Kopern's free Starter tier includes 3 agents and 100K tokens/month with grading and MCP access. Pro ($79/mo) adds teams, connectors, and 2M tokens. Pay-as-you-go is available for unlimited scale. All plans include deterministic grading, multi-agent orchestration, and deployment to Slack, webhooks, and widgets."}},{"@type":"Question","name":"What is multi-agent orchestration?","acceptedAnswer":{"@type":"Answer","text":"Multi-agent orchestration means multiple specialized AI agents work together on one task. Kopern supports parallel execution (all agents run at once), sequential pipelines (output flows between agents), and conditional routing (input decides which agent runs). Useful for research teams, content pipelines, and triage workflows where one agent is not enough."}}]}</script>
1<script src="/_next/static/chunks/a6dad97d9634a72d.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" noModule=""></script>
1</head><body class="geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased"><div hidden=""><!--$--><!--/$--></div><div class="min-h-screen bg-background"><div class="sticky top-0 z-50 backdrop-blur-sm transition-all duration-300 bg-background"><nav class="flex items-center px-4 md:px-6 py-4 max-w-6xl mx-auto"><button data-slot="sheet-trigger" data-variant="ghost" data-size="icon" class="inline-flex items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-9 md:hidden h-11 w-11 shrink-0" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_5iumivb_" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu h-5 w-5" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button><a class="hidden md:flex items-center shrink-0" href="/en"><img src="/logo_small.png" alt="Kopern" class="h-7"/></a><div class="flex-1 hidden md:flex items-center justify-center gap-1"><button data-slot="dropdown-menu-trigger" data-variant="ghost" data-size="sm" class="inline-flex shrink-0 items-center justify-center text-sm whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-accent dark:hover:bg-accent/50 h-8 rounded-md px-3 has-[&gt;svg]:px-2.5 gap-2 font-semibold text-muted-foreground hover:text-foreground hover:!bg-transparent dark:hover:!bg-transparent border border-transparent hover:border-primary/50 !text-accent" type="button" id="radix-_R_1diumivb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clipboard-check h-4 w-4" aria-hidden="true"><rect width="8" height="4" x="8" y="2" rx="1" ry="1"></rect><path d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"></path><path d="m9 14 2 2 4-4"></path></svg>Quality<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 ml-0.5 opacity-60" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><a href="/en/examples"><button data-slot="button" data-variant="ghost" data-size="sm" class="inline-flex shrink-0 items-center justify-center text-sm whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-accent dark:hover:bg-accent/50 h-8 rounded-md px-3 has-[&gt;svg]:px-2.5 gap-2 font-semibold text-muted-foreground hover:text-foreground hover:!bg-transparent dark:hover:!bg-transparent border border-transparent hover:border-primary/50"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-sparkles h-4 w-4" aria-hidden="true"><path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 
11.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z"></path><path d="M20 2v4"></path><path d="M22 4h-4"></path><circle cx="4" cy="20" r="2"></circle></svg>Templates</button></a><button data-slot="dropdown-menu-trigger" data-variant="ghost" data-size="sm" class="inline-flex shrink-0 items-center justify-center text-sm whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-accent dark:hover:bg-accent/50 h-8 rounded-md px-3 has-[&gt;svg]:px-2.5 gap-2 font-semibold text-muted-foreground hover:text-foreground hover:!bg-transparent dark:hover:!bg-transparent border border-transparent hover:border-primary/50 !text-accent" type="button" id="radix-_R_3diumivb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-book-open h-4 w-4" aria-hidden="true"><path d="M12 7v14"></path><path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z"></path></svg>Documentation<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-chevron-down h-3 w-3 ml-0.5 opacity-60" aria-hidden="true"><path d="m6 9 6 6 6-6"></path></svg></button><a href="/en/blog"><button data-slot="button" data-variant="ghost" data-size="sm" class="inline-flex shrink-0 items-center justify-center text-sm whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-accent dark:hover:bg-accent/50 h-8 rounded-md px-3 has-[&gt;svg]:px-2.5 gap-2 font-semibold text-muted-foreground hover:text-foreground hover:!bg-transparent dark:hover:!bg-transparent border border-transparent hover:border-primary/50"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-newspaper h-4 w-4" aria-hidden="true"><path d="M15 18h-5"></path><path d="M18 14h-8"></path><path d="M4 22h16a2 2 0 0 0 2-2V4a2 2 0 0 0-2-2H8a2 2 0 0 0-2 2v16a2 2 0 0 1-4 0v-9a2 2 0 0 1 2-2h2"></path><rect width="8" height="4" x="10" y="6" rx="1"></rect></svg>Blog</button></a><a href="/en/pricing"><button data-slot="button" data-variant="ghost" data-size="sm" class="inline-flex shrink-0 items-center justify-center text-sm whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-accent dark:hover:bg-accent/50 h-8 rounded-md px-3 has-[&gt;svg]:px-2.5 gap-2 font-semibold text-muted-foreground hover:text-foreground hover:!bg-transparent dark:hover:!bg-transparent border border-transparent hover:border-primary/50"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-dollar-sign h-4 w-4" aria-hidden="true"><line x1="12" x2="12" y1="2" y2="22"></line><path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6"></path></svg>Pricing</button></a></div><div class="flex-1 md:hidden"></div><div class="flex items-center gap-2 shrink-0"><div class="hidden md:block"><button data-slot="dialog-trigger" data-variant="outline" data-size="sm" class="inline-flex shrink-0 items-center justify-center text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;
1size-&#x27;])]:size-4 border bg-background shadow-xs dark:bg-input/30 h-8 rounded-md px-3 has-[&gt;svg]:px-2.5 gap-2 border-destructive/40 text-destructive hover:bg-destructive/10 hover:text-destructive dark:border-red-500/30 dark:text-red-400 dark:hover:bg-red-500/10" type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_1liumivb_" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-bug h-4 w-4" aria-hidden="true"><path d="M12 20v-9"></path><path d="M14 7a4 4 0 0 1 4 4v3a6 6 0 0 1-12 0v-3a4 4 0 0 1 4-4z"></path><path d="M14.12 3.88 16 2"></path><path d="M21 21a4 4 0 0 0-3.81-4"></path><path d="M21 5a4 4 0 0 1-3.55 3.97"></path><path d="M22 13h-4"></path><path d="M3 21a4 4 0 0 1 3.81-4"></path><path d="M3 5a4 4 0 0 0 3.55 3.97"></path><path d="M6 13H2"></path><path d="m8 2 1.88 1.88"></path><path d="M9 7.13V6a3 3 0 1 1 6 0v1.13"></path></svg><span class="hidden sm:inline">Report a Bug</span></button></div><a href="https://github.com/berch-t/kopern" target="_blank" rel="noopener noreferrer" class="hidden md:block"><button data-slot="button" data-variant="ghost" data-size="icon" class="inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-accent dark:hover:bg-accent/50 size-9 h-9 w-9 text-muted-foreground hover:text-foreground hover:!bg-transparent dark:hover:!bg-transparent border border-transparent hover:border-primary/50"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-github h-4 w-4" aria-hidden="true"><path d="M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4"></path><path d="M9 18c-4.51 2-5-2-7-2"></path></svg></button></a><button data-slot="dropdown-menu-trigger" data-variant="ghost" data-size="icon" class="inline-flex shrink-0 items-center justify-center gap-2 rounded-md text-sm font-medium whitespace-nowrap transition-all outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;_svg]:pointer-events-none [&amp;_svg]:shrink-0 [&amp;_svg:not([class*=&#x27;size-&#x27;])]:size-4 hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-9 hover:!bg-transparent dark:hover:!bg-transparent border border-transparent hover:border-primary/50" type="button" id="radix-_R_3liumivb_" aria-haspopup="menu" aria-expanded="false" data-state="closed"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-languages h-4 w-4" aria-hidden="true"><path d="m5 8 6 6"></path><path d="m4 14 6-6 2-3"></path><path d="M2 5h12"></path><path d="M7 2h1"></path><path d="m22 22-5-10-5 10"></path><path d="M14 18h6"></path></svg></button><div class="h-9 w-20 animate-pulse rounded-md bg-muted hidden md:block"></div></div></nav></div><main class="max-w-7xl mx-auto px-4 md:px-6 py-6"><div class="max-w-4xl mx-auto px-4 py-12"><div class="mb-12"><h1 class="text-4xl font-bold tracking-tight mb-3">Blog</h1><p class="text-lg text-muted-foreground">Behind the scenes of building Kopern — engineering decisions, challenges, and lessons learned.</p></div><div class="flex flex-col gap-8"><a class="group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors" href="/en/blog/ai-agent-deployment-cost-roi"><div class="aspect-[2/1] overflow-hidden bg-muted"><img src="https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776865360402.jpeg?alt=media&amp;token=1f2f2eb2-98e0-4943-b4ed-1322f6a50aa6" alt="How Much Does It Cost to Deploy an AI Agent in 2026? (Real Numbers)" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"/></div><div class="p-6"><div class="flex items-center gap-3 text-sm text-muted-foreground mb-3"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>April 22, 2026</span><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock h-3.5 w-3.5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg>6<!-- --> min read</span></div><h2 class="text-2xl font-semibold mb-2 group-hover:text-primary transition-colors">How Much Does It Cost to Deploy an AI Agent in 2026? (Real Numbers)</h2><p class="text-muted-foreground mb-4 line-clamp-3">Real costs per conversation, platform fees, and ROI math for AI agents in production. With a comparison of self
1-hosted vs managed deployment options.</p><div class="flex items-center justify-between"><div class="flex flex-wrap gap-2"><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">ai-agents</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">cost</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">roi</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">pricing</span></div><span class="text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">Read more <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a><a class="group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors" href="/en/blog/ai-agents-vs-chatbots-difference"><div class="aspect-[2/1] overflow-hidden bg-muted"><img src="https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864883838.jpeg?alt=media&amp;token=7cbb8c56-9a20-4ddd-b019-bbd75f6c18cf" alt="AI Agents vs Chatbots: What&#x27;s the Real Difference in 2026?" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"/></div><div class="p-6"><div class="flex items-center gap-3 text-sm text-muted-foreground mb-3"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>April 22, 2026</span><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock h-3.5 w-3.5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg>6<!-- --> min read</span></div><h2 class="text-2xl font-semibold mb-2 group-hover:text-primary transition-colors">AI Agents vs Chatbots: What&#x27;s the Real Difference in 2026?</h2><p class="text-muted-foreground mb-4 line-clamp-3">AI agents autonomously execute multi-step tasks using tools; chatbots just reply with text. Here&#x27;s when to use each, what they cost, and how Kopern lets you ship agents without writing code.</p><div class="flex items-center justify-between"><div class="flex flex-wrap gap-2"><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">ai-agents</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">chatbots</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">comparison</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">no-code</span></div><span class="text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">Read more <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a><a class="group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors" href="/en/blog/eu-ai-act-compliance-ai-agents"><div class="aspect-[2/1] overflow-hidden bg-muted"><img src="https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864516931.jpeg?alt=media&amp;token=2b8efaf9-b093-47cb-b0b4-428e1d856135" alt="EU AI Act Compliance for AI Agents: Your August 2, 2026 Checklist" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"/></div><div class="p-6"><div class="flex items-center gap-3 text-sm text-muted-foreground mb-3"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>April 22, 2026</span><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock h-3.5 w-3.5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg>6<!-- --> min read</span></div><h2 class="text-2xl font-semibold mb-2 group-hover:text-primary transition-colors">EU AI Act Compliance for AI Agents: Your August 2, 2026 Checklist</h2><p class="text-muted-foreground mb-4 line-clamp-3">Full EU AI Act enforcement starts August 2, 2026. Penalties hit €35M or 7% of revenue. Here&#x27;s the concrete technical checklist for AI agents, and how Kopern handles Article 14 out of the box.</p><div class="flex items-center justify-between"><div class="flex flex-wrap gap-2"><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">eu-ai-act</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">compliance</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">ai-agents</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">regulation</span></div><span class="text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">Read more <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a><a class="group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors" href="/en/blog/how-to-build-ai-agents-without-code"><div class="aspect-[2/1] overflow-hidden bg-muted"><img src="https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864240350.jpeg?alt=media&amp;token=52f2fd31-54eb-4a4b-9379-156d3572e193" alt="How to Build AI Agents Without Code in 2026 (No CrewAI, No LangChain)" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"/></div><div class="p-6"><div class="flex items-center gap-3 text-sm text-muted-foreground mb-3"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>April 22, 2026</span><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock h-3.5 w-3.5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg>6<!-- --> min read</span></div><h2 class="text-2xl font-semibold mb-2 group-hover:text-primary transition-colors">How to Build AI Agents Without Code in 2026 (No CrewAI, No LangChain)</h2><p class="text-muted-foreground mb-4 line-clamp-3">You don&#x27;t need Python or LangChain to ship a production AI agent. Here&#x27;s the no-code workflow used to deploy agents to Slack, web widgets, and MCP in under an hour.</p><div class="flex items-center justify-between"><div class="flex flex-wrap gap-2"><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">ai-agents</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">no-code</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">crewai</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">langchain</span></div><span class="text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">Read more <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a><a class="group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors" href="/en/blog/how-to-test-ai-agents-grading"><div class="aspect-[2/1] overflow-hidden bg-muted"><img src="https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864054104.jpeg?alt=media&amp;token=66c51a44-b672-466d-868b-d771ba75d518" alt="How to Test AI Agents in 2026: The Complete Grading Guide" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"/></div><div class="p-6"><div class="flex items-center gap-3 text-sm text-muted-foreground mb-3"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>April 22, 2026</span><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock h-3.5 w-3.5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg>6<!-- --> min read</span></div><h2 class="text-2xl font-semibold mb-2 group-hover:text-primary transition-colors">How to Test AI Agents in 2026: The Complete Grading Guide</h2><p class="text-muted-foreground mb-4 line-clamp-3">Testing AI agents is not like testing regular software. Here are the 
16 criterion types that matter, how to build a grading suite, and how to catch silent degradation before users do.</p><div class="flex items-center justify-between"><div class="flex flex-wrap gap-2"><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">ai-agents</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">testing</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">grading</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">evaluation</span></div><span class="text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">Read more <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a><a class="group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors" href="/en/blog/how-to-use-mcp-ai-agents-claude-code-cursor-enterprise"><div class="aspect-[2/1] overflow-hidden bg-muted"><img src="https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776166145353.jpeg?alt=media&amp;token=d129c7e0-c859-4764-a35e-773cb4ff30dd" alt="How Do You Actually Use MCP to Build AI Agents in Claude Code, Cursor, and VS Code?" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"/></div><div class="p-6"><div class="flex items-center gap-3 text-sm text-muted-foreground mb-3"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>April 14, 2026</span><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock h-3.5 w-3.5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg>16<!-- --> min read</span></div><h2 class="text-2xl font-semibold mb-2 group-hover:text-primary transition-colors">
1How Do You Actually Use MCP to Build AI Agents in Claude Code, Cursor, and VS Code?</h2><p class="text-muted-foreground mb-4 line-clamp-3">A practical guide to MCP workflows for AI agent development — from database migrations to Kubernetes triage, with real enterprise examples. Build, test, grade, and deploy agents without leaving your IDE.</p><div class="flex items-center justify-between"><div class="flex flex-wrap gap-2"><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">mcp</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">claude-code</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">cursor</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">ai-agents</span></div><span class="text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">Read more <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a><a class="group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors" href="/en/blog/why-we-built-a-workflow-quality-monitor"><div class="aspect-[2/1] overflow-hidden bg-muted"><img src="/blog/workflow_monitor/blind.jpeg" alt="Why We Built a Workflow Quality Monitor (And What We Found)" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"/></div><div class="p-6"><div class="flex items-center gap-3 text-sm text-muted-foreground mb-3"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>April 7, 2026</span><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock h-3.5 w-3.5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg>8<!-- --> min read</span></div><h2 class="text-2xl font-semibold mb-2 group-hover:text-primary transition-colors">Why We Built a Workflow Quality Monitor (And What We Found)</h2><p class="text-muted-foreground mb-4 line-clamp-3">73% of LLM quality drops go undetected. We built a 4-agent monitoring pipeline to catch silent degradation before it reaches production — here&#x27;s what happened when we ran it.</p><div class="flex items-center justify-between"><div class="flex flex-wrap gap-2"><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">monitoring</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">quality-assurance</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">llm-ops</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">ai-agents</span></div><span class="text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">Read more <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a><a class="group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors" href="/en/blog/making-ai-agents-accessible-mcp-journey"><div class="aspect-[2/1] overflow-hidden bg-muted"><img src="/blog/mcp_journey/dead_end.jpeg" alt="Making AI Agents Accessible: Our MCP Journey from 0 to 32 Tools" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"/></div><div class="p-6"><div class="flex items-center gap-3 text-sm text-muted-foreground mb-3"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>April 6, 2026</span><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock h-3.5 w-3.5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg>6<!-- --> min read</span></div><h2 class="text-2xl font-semibold mb-2 group-hover:text-primary transition-colors">Making AI Agents Accessible: Our MCP Journey from 0 to 32 Tools</h2><p class="text-muted-foreground mb-4 line-clamp-3">How we built Kopern&#x27;s MCP server — 32 tools, two key types, five registry listings, and the realization that standalone tools are a dead end.</p><div class="flex items-center justify-between"><div class="flex flex-wrap gap-2"><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">mcp</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">developer-tools</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">open-source</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">npm</span></div><span class="text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">Read more <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a><a class="group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors" href="/en/blog/production-grade-ai-agent-grading-system"><div class="aspect-[2/1] overflow-hidden bg-muted"><img src="/blog/production_grade_ai/iteration_1.jpeg" alt="How We Built a Production-Grade AI Agent Grading System" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"/></div><div class="p-6"><div class="flex items-center gap-3 text-sm text-muted-foreground mb-3"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>April 5, 2026</span><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock h-3.5 w-3.5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg>6<!-- --> min read</span></div><h2 class="text-2xl font-semibold mb-2 group-hover:text-primary transition-colors">How We Built a Production-Grade AI Agent Grading System</h2><p class="text-muted-foreground mb-4 line-clamp-3">From regex-based checks to LLM judges and adversarial stress testing — the evolution of Kopern&#x27;s quality assurance engine for AI agents.</p><div class="flex items-center justify-between"><div class="flex flex-wrap gap-2"><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">grading</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">quality-assurance</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">ai-agents</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">autoresearch</span></div><span class="text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">Read more <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a><a class="group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors" href="/en/blog/building-kopern-from-zero-to-121-features"><div class="aspect-[2/1] overflow-hidden bg-muted"><img src="/blog/building_kopern/starting.jpeg" alt="Building Kopern: From Zero to 121 Features in 3 Weeks" class="w-full h-full object-cover group-hover:scale-105 transition-transform duration-300"/></div><div class="p-6"><div class="flex items-center gap-3 text-sm text-muted-foreground mb-3"><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-calendar h-3.5 w-3.5" aria-hidden="true"><path d="M8 2v4"></path><path d="M16 2v4"></path><rect width="18" height="18" x="3" y="4" rx="2"></rect><path d="M3 10h18"></path></svg>April 4, 2026</span><span class="flex items-center gap-1.5"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-clock h-3.5 w-3.5" aria-hidden="true"><circle cx="12" cy="12" r="10"></circle><path d="M12 6v6l4 2"></path></svg>6<!-- --> min read</span></div><h2 class="text-2xl font-semibold mb-2 group-hover:text-primary transition-colors">Building Kopern: From Zero to 121 Features in 3 Weeks</h2><p class="text-muted-foreground mb-4 line-clamp-3">How we built a full-stack AI agent platform from scratch in under a month — the architecture decisions, the disasters, and what we&#x27;d do differently.</p><div class="flex items-center justify-between"><div class="flex flex-wrap gap-2"><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">engineering</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">architecture</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">nextjs</span><span data-slot="badge" data-variant="secondary" class="inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&amp;&gt;svg]:pointer-events-none [&amp;&gt;svg]:size-3 bg-secondary text-secondary-foreground [a&amp;]:hover:bg-secondary/90 text-xs">firebase</span></div><span class="text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity">Read more <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-arrow-right h-3.5 w-3.5" aria-hidden="true"><path d="M5 12h14"></path><path d="m12 5 7 7-7 7"></path></svg></span></div></div></a></div></div><!--$--><!--/$--></main><footer class="border-t py-6"><div class="max-w-6xl mx-auto px-4 md:px-6 flex flex-col sm:flex-row items-center justify-between gap-2"><span class="text-sm text-muted-foreground">Kopern — AI Agent Builder &amp; Grader</span><div class="flex items-center gap-4 text-xs text-muted-foreground"><a class="hover:text-foreground transition-colors" href="/en/privacy">Privacy Policy</a><a class="hover:text-foreground transition-colors" href="/en/terms">Terms of Service</a></div></div></footer></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section>
1<script src="/_next/static/chunks/8e533c7b3b901b07.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[339756,[\"/_next/static/chunks/d96012bcfc98706a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/73e3194f06db260e.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"default\"]\n3:I[837457,[\"/_next/static/chunks/d96012bcfc98706a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/73e3194f06db260e.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"default\"]\n5:I[92825,[\"/_next/static/chunks/d96012bcfc98706a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/73e3194f06db260e.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"ClientSegmentRoot\"]\n6:I[611539,[\"/_next/static/chunks/586874a0e3a0b2da.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/c459da24e5de9d10.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/abbaad18e04b9d49.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a51ef5039fd53285.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/9e23a0d69e1f66a9.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a1c7696cfea1328a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6e127ce322ae25c8.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/741dd708061fe346.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6ba55f017255994b.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6c03270009136281.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/dd87cd4c8cee6be6.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/9c6bfdb345bf0918.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"default\"]\n9:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/73e3194f06db260e.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"OutletBoundary\"]\na:\"$Sreact.suspense\"\nc:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/73e3194f06db260e.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"ViewportBoundary\"]\ne:I[897367,[\"/_next/static/chunks/d96012bcfc98706a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/73e3194f06db260e.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"MetadataBoundary\"]\n11:I[168027,[],\"default\"]\n:HL[\"/_next/static/chunks/9ff2748c5049a4a4.css?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"style\"]\n:HL[\"/_next/static/chunks/2473c16c0c2f6b5f.css?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"style\"]\n:HL[\"/_next/static/media/797e433ab948586e-s.p.dbea232f.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"zJMEv86jptEv1OFkGWSL1\",\"c\":[\"\",\"en\",\"blog\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[[\"locale\",\"en\",\"d\"],{\"children\":[\"(public)\",{\"children\":[\"blog\",{\"children\":[\"__PAGE__\",{}]}]}]}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/9ff2748c5049a4a4.css?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]],[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/2473c16c0c2f6b5f.css?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/586874a0e3a0b2da.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/c459da24e5de9d10.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/abbaad18e04b9d49.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/a51ef5039fd53285.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/9e23a0d69e1f66a9.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/a1c7696cfea1328a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/chunks/6e127ce322ae25c8.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/chunks/741dd708061fe346.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/_next/static/chunks/6ba55f017255994b.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"async\":true,\"nonce\":\"$undefined\"}]],\"$L4\"]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/6c03270009136281.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/dd87cd4c8cee6be6.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"async\":true,\"nonce\":\"$undefined\"}
1],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/9c6bfdb345bf0918.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"$L5\",null,{\"Component\":\"$6\",\"slots\":{\"children\":[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]},\"serverProvidedParams\":{\"params\":{\"locale\":\"en\"},\"promises\":[\"$@7\"]}}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[\"$L8\",null,[\"$\",\"$L9\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@b\"}]}]]}],{},null,false,false]},null,false,false]},null,false,false]},null,false,false]},null,false,false],[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$Lc\",null,{\"children\":\"$Ld\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$Le\",null,{\"children\":[\"$\",\"$a\",null,{\"name\":\"Next.Metadata\",\"children\":\"$Lf\"}]}]}],\"$L10\"]}],false]],\"m\":\"$undefined\",\"G\":[\"$11\",[]],\"S\":true}\n"])</script>
1<script>self.__next_f.push([1,"10:[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]\n7:\"$0:f:0:1:1:children:1:children:0:props:children:1:props:serverProvidedParams:params\"\n"])</script>
1<script>self.__next_f.push([1,"12:I[924417,[\"/_next/static/chunks/586874a0e3a0b2da.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/c459da24e5de9d10.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/abbaad18e04b9d49.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a51ef5039fd53285.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/9e23a0d69e1f66a9.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a1c7696cfea1328a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6e127ce322ae25c8.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/741dd708061fe346.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6ba55f017255994b.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6c03270009136281.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/dd87cd4c8cee6be6.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/9c6bfdb345bf0918.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"LocalizedLink\"]\n:HL[\"https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776865360402.jpeg?alt=media\u0026token=1f2f2eb2-98e0-4943-b4ed-1322f6a50aa6\",\"image\"]\n"])</script>
1<script>self.__next_f.push([1,"8:[\"$\",\"div\",null,{\"className\":\"max-w-4xl mx-auto px-4 py-12\",\"children\":[[\"$\",\"div\",null,{\"className\":\"mb-12\",\"children\":[[\"$\",\"h1\",null,{\"className\":\"text-4xl font-bold tracking-tight mb-3\",\"children\":\"Blog\"}],[\"$\",\"p\",null,{\"className\":\"text-lg text-muted-foreground\",\"children\":\"Behind the scenes of building Kopern — engineering decisions, challenges, and lessons learned.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-8\",\"children\":[[\"$\",\"$L12\",\"ai-agent-deployment-cost-roi\",{\"href\":\"/blog/ai-agent-deployment-cost-roi\",\"className\":\"group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[2/1] overflow-hidden bg-muted\",\"children\":[\"$\",\"img\",null,{\"src\":\"https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776865360402.jpeg?alt=media\u0026token=1f2f2eb2-98e0-4943-b4ed-1322f6a50aa6\",\"alt\":\"How Much Does It Cost to Deploy an AI Agent in 2026? (Real Numbers)\",\"className\":\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300\"}]}],[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 text-sm text-muted-foreground mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-calendar h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1cmpym\",{\"d\":\"M8 2v4\"}],[\"$\",\"path\",\"4m81vk\",{\"d\":\"M16 2v4\"}],[\"$\",\"rect\",\"1hopcy\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}],[\"$\",\"path\",\"8toen8\",{\"d\":\"M3 10h18\"}],\"$undefined\"]}],\"April 22, 2026\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],\"$undefined\"]}],6,\" min read\"]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-2 group-hover:text-primary transition-colors\",\"children\":\"How Much Does It Cost to Deploy an AI Agent in 2026? (Real Numbers)\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-4 line-clamp-3\",\"children\":\"Real costs per conversation, platform fees, and ROI math for AI agents in production. With a comparison of self-hosted vs managed deployment options.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"span\",\"ai-agents\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"ai-agents\"}],[\"$\",\"span\",\"cost\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"cost\"}],\"$L13\",\"$L14\"]}],\"$L15\"]}]]}]]}],\"$L16\",\"$L17\",\"$L18\",\"$L19\",\"$L1a\",\"$L1b\",\"$L1c\",\"$L1d\",\"$L1e\"]}]]}]\n"])</script>
1<script>self.__next_f.push([1,":HL[\"https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864883838.jpeg?alt=media\u0026token=7cbb8c56-9a20-4ddd-b019-bbd75f6c18cf\",\"image\"]\n:HL[\"https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864516931.jpeg?alt=media\u0026token=2b8efaf9-b093-47cb-b0b4-428e1d856135\",\"image\"]\n:HL[\"https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864240350.jpeg?alt=media\u0026token=52f2fd31-54eb-4a4b-9379-156d3572e193\",\"image\"]\n:HL[\"https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864054104.jpeg?alt=media\u0026token=66c51a44-b672-466d-868b-d771ba75d518\",\"image\"]\n:HL[\"https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776166145353.jpeg?alt=media\u0026token=d129c7e0-c859-4764-a35e-773cb4ff30dd\",\"image\"]\n:HL[\"/blog/workflow_monitor/blind.jpeg\",\"image\"]\n:HL[\"/blog/mcp_journey/dead_end.jpeg\",\"image\"]\n:HL[\"/blog/production_grade_ai/iteration_1.jpeg\",\"image\"]\n:HL[\"/blog/building_kopern/starting.jpeg\",\"image\"]\n13:[\"$\",\"span\",\"roi\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"roi\"}]\n14:[\"$\",\"span\",\"pricing\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"pricing\"}]\n15:[\"$\",\"span\",null,{\"className\":\"text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\",\"children\":[\"Read more \",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"16:[\"$\",\"$L12\",\"ai-agents-vs-chatbots-difference\",{\"href\":\"/blog/ai-agents-vs-chatbots-difference\",\"className\":\"group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[2/1] overflow-hidden bg-muted\",\"children\":[\"$\",\"img\",null,{\"src\":\"https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864883838.jpeg?alt=media\u0026token=7cbb8c56-9a20-4ddd-b019-bbd75f6c18cf\",\"alt\":\"AI Agents vs Chatbots: What's the Real Difference in 2026?\",\"className\":\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300\"}]}],[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 text-sm text-muted-foreground mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-calendar h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1cmpym\",{\"d\":\"M8 2v4\"}],[\"$\",\"path\",\"4m81vk\",{\"d\":\"M16 2v4\"}],[\"$\",\"rect\",\"1hopcy\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}],[\"$\",\"path\",\"8toen8\",{\"d\":\"M3 10h18\"}],\"$undefined\"]}],\"April 22, 2026\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],\"$undefined\"]}],6,\" min read\"]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-2 group-hover:text-primary transition-colors\",\"children\":\"AI Agents vs Chatbots: What's the Real Difference in 2026?\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-4 line-clamp-3\",\"children\":\"AI agents autonomously execute multi-step tasks using tools; chatbots just reply with text. Here's when to use each, what they cost, and how Kopern lets you ship agents without writing code.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"span\",\"ai-agents\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"ai-agents\"}],[\"$\",\"span\",\"chatbots\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"chatbots\"}],[\"$\",\"span\",\"comparison\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"comparison\"}],\"$L1f\"]}],\"$L20\"]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"17:[\"$\",\"$L12\",\"eu-ai-act-compliance-ai-agents\",{\"href\":\"/blog/eu-ai-act-compliance-ai-agents\",\"className\":\"group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[2/1] overflow-hidden bg-muted\",\"children\":[\"$\",\"img\",null,{\"src\":\"https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864516931.jpeg?alt=media\u0026token=2b8efaf9-b093-47cb-b0b4-428e1d856135\",\"alt\":\"EU AI Act Compliance for AI Agents: Your August 2, 2026 Checklist\",\"className\":\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300\"}]}],[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 text-sm text-muted-foreground mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-calendar h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1cmpym\",{\"d\":\"M8 2v4\"}],[\"$\",\"path\",\"4m81vk\",{\"d\":\"M16 2v4\"}],[\"$\",\"rect\",\"1hopcy\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}],[\"$\",\"path\",\"8toen8\",{\"d\":\"M3 10h18\"}],\"$undefined\"]}],\"April 22, 2026\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],\"$undefined\"]}],6,\" min read\"]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-2 group-hover:text-primary transition-colors\",\"children\":\"EU AI Act Compliance for AI Agents: Your August 2, 2026 Checklist\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-4 line-clamp-3\",\"children\":\"Full EU AI Act enforcement starts August 2, 2026. Penalties hit €35M or 7% of revenue. Here's the concrete technical checklist for AI agents, and how Kopern handles Article 14 out of the box.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"span\",\"eu-ai-act\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"eu-ai-act\"}],[\"$\",\"span\",\"compliance\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"compliance\"}],[\"$\",\"span\",\"ai-agents\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"ai-agents\"}],\"$L21\"]}],\"$L22\"]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"18:[\"$\",\"$L12\",\"how-to-build-ai-agents-without-code\",{\"href\":\"/blog/how-to-build-ai-agents-without-code\",\"className\":\"group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[2/1] overflow-hidden bg-muted\",\"children\":[\"$\",\"img\",null,{\"src\":\"https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864240350.jpeg?alt=media\u0026token=52f2fd31-54eb-4a4b-9379-156d3572e193\",\"alt\":\"How to Build AI Agents Without Code in 2026 (No CrewAI, No LangChain)\",\"className\":\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300\"}]}],[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 text-sm text-muted-foreground mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-calendar h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1cmpym\",{\"d\":\"M8 2v4\"}],[\"$\",\"path\",\"4m81vk\",{\"d\":\"M16 2v4\"}],[\"$\",\"rect\",\"1hopcy\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}],[\"$\",\"path\",\"8toen8\",{\"d\":\"M3 10h18\"}],\"$undefined\"]}],\"April 22, 2026\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],\"$undefined\"]}],6,\" min read\"]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-2 group-hover:text-primary transition-colors\",\"children\":\"How to Build AI Agents Without Code in 2026 (No CrewAI, No LangChain)\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-4 line-clamp-3\",\"children\":\"You don't need Python or LangChain to ship a production AI agent. Here's the no-code workflow used to deploy agents to Slack, web widgets, and MCP in under an hour.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"span\",\"ai-agents\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"ai-agents\"}],[\"$\",\"span\",\"no-code\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"no-code\"}],[\"$\",\"span\",\"crewai\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"crewai\"}],\"$L23\"]}],\"$L24\"]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"19:[\"$\",\"$L12\",\"how-to-test-ai-agents-grading\",{\"href\":\"/blog/how-to-test-ai-agents-grading\",\"className\":\"group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[2/1] overflow-hidden bg-muted\",\"children\":[\"$\",\"img\",null,{\"src\":\"https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776864054104.jpeg?alt=media\u0026token=66c51a44-b672-466d-868b-d771ba75d518\",\"alt\":\"How to Test AI Agents in 2026: The Complete Grading Guide\",\"className\":\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300\"}]}],[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 text-sm text-muted-foreground mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-calendar h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1cmpym\",{\"d\":\"M8 2v4\"}],[\"$\",\"path\",\"4m81vk\",{\"d\":\"M16 2v4\"}],[\"$\",\"rect\",\"1hopcy\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}],[\"$\",\"path\",\"8toen8\",{\"d\":\"M3 10h18\"}],\"$undefined\"]}],\"April 22, 2026\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],\"$undefined\"]}],6,\" min read\"]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-2 group-hover:text-primary transition-colors\",\"children\":\"How to Test AI Agents in 2026: The Complete Grading Guide\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-4 line-clamp-3\",\"children\":\"Testing AI agents is not like testing regular software. Here are the 6 criterion types that matter, how to build a grading suite, and how to catch silent degradation before users do.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"span\",\"ai-agents\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"ai-agents\"}],[\"$\",\"span\",\"testing\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"testing\"}],[\"$\",\"span\",\"grading\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"grading\"}],\"$L25\"]}],\"$L26\"]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"1a:[\"$\",\"$L12\",\"how-to-use-mcp-ai-agents-claude-code-cursor-enterprise\",{\"href\":\"/blog/how-to-use-mcp-ai-agents-claude-code-cursor-enterprise\",\"className\":\"group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[2/1] overflow-hidden bg-muted\",\"children\":[\"$\",\"img\",null,{\"src\":\"https://firebasestorage.googleapis.com/v0/b/kopern.firebasestorage.app/o/generated-images%2F8SF8V7QtAThQTJJBsAfec1lEHFU2%2F1776166145353.jpeg?alt=media\u0026token=d129c7e0-c859-4764-a35e-773cb4ff30dd\",\"alt\":\"How Do You Actually Use MCP to Build AI Agents in Claude Code, Cursor, and VS Code?\",\"className\":\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300\"}]}],[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 text-sm text-muted-foreground mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-calendar h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1cmpym\",{\"d\":\"M8 2v4\"}],[\"$\",\"path\",\"4m81vk\",{\"d\":\"M16 2v4\"}],[\"$\",\"rect\",\"1hopcy\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}],[\"$\",\"path\",\"8toen8\",{\"d\":\"M3 10h18\"}],\"$undefined\"]}],\"April 14, 2026\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],\"$undefined\"]}],16,\" min read\"]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-2 group-hover:text-primary transition-colors\",\"children\":\"How Do You Actually Use MCP to Build AI Agents in Claude Code, Cursor, and VS Code?\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-4 line-clamp-3\",\"children\":\"A practical guide to MCP workflows for AI agent development — from database migrations to Kubernetes triage, with real enterprise examples. Build, test, grade, and deploy agents without leaving your IDE.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"span\",\"mcp\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"mcp\"}],[\"$\",\"span\",\"claude-code\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"claude-code\"}],[\"$\",\"span\",\"cursor\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"cursor\"}],\"$L27\"]}],\"$L28\"]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"1b:[\"$\",\"$L12\",\"why-we-built-a-workflow-quality-monitor\",{\"href\":\"/blog/why-we-built-a-workflow-quality-monitor\",\"className\":\"group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[2/1] overflow-hidden bg-muted\",\"children\":[\"$\",\"img\",null,{\"src\":\"/blog/workflow_monitor/blind.jpeg\",\"alt\":\"Why We Built a Workflow Quality Monitor (And What We Found)\",\"className\":\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300\"}]}],[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 text-sm text-muted-foreground mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-calendar h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1cmpym\",{\"d\":\"M8 2v4\"}],[\"$\",\"path\",\"4m81vk\",{\"d\":\"M16 2v4\"}],[\"$\",\"rect\",\"1hopcy\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}],[\"$\",\"path\",\"8toen8\",{\"d\":\"M3 10h18\"}],\"$undefined\"]}],\"April 7, 2026\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],\"$undefined\"]}],8,\" min read\"]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-2 group-hover:text-primary transition-colors\",\"children\":\"Why We Built a Workflow Quality Monitor (And What We Found)\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-4 line-clamp-3\",\"children\":\"73% of LLM quality drops go undetected. We built a 4-agent monitoring pipeline to catch silent degradation before it reaches production — here's what happened when we ran it.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"span\",\"monitoring\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"monitoring\"}],[\"$\",\"span\",\"quality-assurance\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"quality-assurance\"}],[\"$\",\"span\",\"llm-ops\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"llm-ops\"}],\"$L29\"]}],\"$L2a\"]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"1c:[\"$\",\"$L12\",\"making-ai-agents-accessible-mcp-journey\",{\"href\":\"/blog/making-ai-agents-accessible-mcp-journey\",\"className\":\"group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[2/1] overflow-hidden bg-muted\",\"children\":[\"$\",\"img\",null,{\"src\":\"/blog/mcp_journey/dead_end.jpeg\",\"alt\":\"Making AI Agents Accessible: Our MCP Journey from 0 to 32 Tools\",\"className\":\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300\"}]}],[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 text-sm text-muted-foreground mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-calendar h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1cmpym\",{\"d\":\"M8 2v4\"}],[\"$\",\"path\",\"4m81vk\",{\"d\":\"M16 2v4\"}],[\"$\",\"rect\",\"1hopcy\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}],[\"$\",\"path\",\"8toen8\",{\"d\":\"M3 10h18\"}],\"$undefined\"]}],\"April 6, 2026\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],\"$undefined\"]}],6,\" min read\"]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-2 group-hover:text-primary transition-colors\",\"children\":\"Making AI Agents Accessible: Our MCP Journey from 0 to 32 Tools\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-4 line-clamp-3\",\"children\":\"How we built Kopern's MCP server — 32 tools, two key types, five registry listings, and the realization that standalone tools are a dead end.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"span\",\"mcp\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"mcp\"}],[\"$\",\"span\",\"developer-tools\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"developer-tools\"}],[\"$\",\"span\",\"open-source\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"open-source\"}],\"$L2b\"]}],\"$L2c\"]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"1d:[\"$\",\"$L12\",\"production-grade-ai-agent-grading-system\",{\"href\":\"/blog/production-grade-ai-agent-grading-system\",\"className\":\"group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[2/1] overflow-hidden bg-muted\",\"children\":[\"$\",\"img\",null,{\"src\":\"/blog/production_grade_ai/iteration_1.jpeg\",\"alt\":\"How We Built a Production-Grade AI Agent Grading System\",\"className\":\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300\"}]}],[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 text-sm text-muted-foreground mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-calendar h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1cmpym\",{\"d\":\"M8 2v4\"}],[\"$\",\"path\",\"4m81vk\",{\"d\":\"M16 2v4\"}],[\"$\",\"rect\",\"1hopcy\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}],[\"$\",\"path\",\"8toen8\",{\"d\":\"M3 10h18\"}],\"$undefined\"]}],\"April 5, 2026\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],\"$undefined\"]}],6,\" min read\"]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-2 group-hover:text-primary transition-colors\",\"children\":\"How We Built a Production-Grade AI Agent Grading System\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-4 line-clamp-3\",\"children\":\"From regex-based checks to LLM judges and adversarial stress testing — the evolution of Kopern's quality assurance engine for AI agents.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"span\",\"grading\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"grading\"}],[\"$\",\"span\",\"quality-assurance\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"quality-assurance\"}],[\"$\",\"span\",\"ai-agents\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"ai-agents\"}],\"$L2d\"]}],\"$L2e\"]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"1e:[\"$\",\"$L12\",\"building-kopern-from-zero-to-121-features\",{\"href\":\"/blog/building-kopern-from-zero-to-121-features\",\"className\":\"group block border rounded-lg overflow-hidden hover:border-primary/50 hover:bg-muted/30 transition-colors\",\"children\":[[\"$\",\"div\",null,{\"className\":\"aspect-[2/1] overflow-hidden bg-muted\",\"children\":[\"$\",\"img\",null,{\"src\":\"/blog/building_kopern/starting.jpeg\",\"alt\":\"Building Kopern: From Zero to 121 Features in 3 Weeks\",\"className\":\"w-full h-full object-cover group-hover:scale-105 transition-transform duration-300\"}]}],[\"$\",\"div\",null,{\"className\":\"p-6\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-3 text-sm text-muted-foreground mb-3\",\"children\":[[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-calendar h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1cmpym\",{\"d\":\"M8 2v4\"}],[\"$\",\"path\",\"4m81vk\",{\"d\":\"M16 2v4\"}],[\"$\",\"rect\",\"1hopcy\",{\"width\":\"18\",\"height\":\"18\",\"x\":\"3\",\"y\":\"4\",\"rx\":\"2\"}],[\"$\",\"path\",\"8toen8\",{\"d\":\"M3 10h18\"}],\"$undefined\"]}],\"April 4, 2026\"]}],[\"$\",\"span\",null,{\"className\":\"flex items-center gap-1.5\",\"children\":[[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-clock h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"circle\",\"1mglay\",{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"}],[\"$\",\"path\",\"mmk7yg\",{\"d\":\"M12 6v6l4 2\"}],\"$undefined\"]}],6,\" min read\"]}]]}],[\"$\",\"h2\",null,{\"className\":\"text-2xl font-semibold mb-2 group-hover:text-primary transition-colors\",\"children\":\"Building Kopern: From Zero to 121 Features in 3 Weeks\"}],[\"$\",\"p\",null,{\"className\":\"text-muted-foreground mb-4 line-clamp-3\",\"children\":\"How we built a full-stack AI agent platform from scratch in under a month — the architecture decisions, the disasters, and what we'd do differently.\"}],[\"$\",\"div\",null,{\"className\":\"flex items-center justify-between\",\"children\":[[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-2\",\"children\":[[\"$\",\"span\",\"engineering\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"engineering\"}],[\"$\",\"span\",\"architecture\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"architecture\"}],[\"$\",\"span\",\"nextjs\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"nextjs\"}],\"$L2f\"]}],\"$L30\"]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"1f:[\"$\",\"span\",\"no-code\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"no-code\"}]\n20:[\"$\",\"span\",null,{\"className\":\"text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\",\"children\":[\"Read more \",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]\n21:[\"$\",\"span\",\"regulation\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"regulation\"}]\n22:[\"$\",\"span\",null,{\"className\":\"text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\",\"children\":[\"Read more \",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]\n23:[\"$\",\"span\",\"langchain\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"langchain\"}]\n24:[\"$\",\"span\",null,{\"className\":\"text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\",\"children\":[\"Read more \",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]\n25:[\"$\",\"span\",\"evaluation\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focu
1s-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"evaluation\"}"])</script>
1<script>self.__next_f.push([1,"]\n26:[\"$\",\"span\",null,{\"className\":\"text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\",\"children\":[\"Read more \",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]\n27:[\"$\",\"span\",\"ai-agents\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"ai-agents\"}]\n28:[\"$\",\"span\",null,{\"className\":\"text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\",\"children\":[\"Read more \",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]\n29:[\"$\",\"span\",\"ai-agents\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"ai-agents\"}]\n2a:[\"$\",\"span\",null,{\"className\":\"text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\",\"children\":[\"Read more \",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]\n2b:[\"$\",\"span\",\"npm\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"npm\"}]\n2c:[\"$\",\"span\",null,{\"className\":\"text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\",\"children\":[\"Read more \",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\"
1:24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]\n2d:[\"$\",\"span\",\"autoresearch\",{\"data-slot\""])</script>
1<script>self.__next_f.push([1,":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"autoresearch\"}]\n2e:[\"$\",\"span\",null,{\"className\":\"text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\",\"children\":[\"Read more \",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]\n2f:[\"$\",\"span\",\"firebase\",{\"data-slot\":\"badge\",\"data-variant\":\"secondary\",\"className\":\"inline-flex w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [\u0026\u003esvg]:pointer-events-none [\u0026\u003esvg]:size-3 bg-secondary text-secondary-foreground [a\u0026]:hover:bg-secondary/90 text-xs\",\"children\":\"firebase\"}]\n30:[\"$\",\"span\",null,{\"className\":\"text-sm text-primary flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity\",\"children\":[\"Read more \",[\"$\",\"svg\",null,{\"ref\":\"$undefined\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":24,\"height\":24,\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":2,\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"lucide lucide-arrow-right h-3.5 w-3.5\",\"aria-hidden\":\"true\",\"children\":[[\"$\",\"path\",\"1ays0h\",{\"d\":\"M5 12h14\"}],[\"$\",\"path\",\"xquz4c\",{\"d\":\"m12 5 7 7-7 7\"}],\"$undefined\"]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"31:T420,{\"@context\":\"https://schema.org\",\"@type\":\"Organization\",\"name\":\"Kopern\",\"url\":\"https://kopern.ai\",\"logo\":\"https://kopern.ai/logo_small.png\",\"description\":\"Build, test, deploy, and connect production-grade AI agents with tool calling, deterministic grading, multi-agent teams, MCP endpoints, and external connectors.\",\"sameAs\":[\"https://github.com/berch-t/kopern\",\"https://www.npmjs.com/package/@kopern/mcp-server\",\"https://www.linkedin.com/company/kopern\",\"https://www.wikidata.org/wiki/Q138958921\"],\"foundingDate\":\"2026\",\"address\":{\"@type\":\"PostalAddress\",\"addressCountry\":\"FR\"},\"contactPoint\":{\"@type\":\"ContactPoint\",\"contactType\":\"customer support\",\"email\":\"[email protected]\",\"url\":\"https://kopern.ai/en/pricing\",\"availableLanguage\":[\"English\",\"French\"]},\"knowsAbout\":[\"Artificial Intelligence\",\"AI Agents\",\"Large Language Models\",\"Tool Calling\",\"Agent Orchestration\",\"Model Context Protocol\",\"AI Agent Testing\",\"AI Agent Grading\",\"Webhook Integration\",\"Slack Bot Development\",\"AI Workflow Monitoring\",\"AI Quality Assurance\",\"Social Media Automation\"]}32:Tcc5,"])</script>
1<script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@type\":\"WebApplication\",\"name\":\"Kopern\",\"applicationCategory\":\"DeveloperApplication\",\"applicationSubCategory\":\"AI Agent Builder\",\"operatingSystem\":\"Web\",\"url\":\"https://kopern.ai\",\"description\":\"AI Agent Builder platform — create custom AI agents with tool calling (Claude, GPT, Gemini, Mistral, Ollama), test with deterministic grading, orchestrate multi-agent teams, deploy via MCP endpoints, embeddable widget, webhooks, and Slack bot.\",\"offers\":{\"@type\":\"AggregateOffer\",\"priceCurrency\":\"USD\",\"lowPrice\":\"0\",\"highPrice\":\"499\",\"offerCount\":\"4\",\"offers\":[{\"@type\":\"Offer\",\"name\":\"Starter\",\"price\":\"0\",\"priceCurrency\":\"USD\",\"description\":\"Free tier — 3 agents, 100K tokens/month\"},{\"@type\":\"Offer\",\"name\":\"Pro\",\"price\":\"79\",\"priceCurrency\":\"USD\",\"billingDuration\":\"P1M\",\"description\":\"25 agents, 2M tokens, grading, teams, connectors\"},{\"@type\":\"Offer\",\"name\":\"Usage\",\"price\":\"0\",\"priceCurrency\":\"USD\",\"description\":\"Pay per token — unlimited agents and features\"},{\"@type\":\"Offer\",\"name\":\"Enterprise\",\"price\":\"499\",\"priceCurrency\":\"USD\",\"billingDuration\":\"P1M\",\"description\":\"Unlimited everything, priority support\"}]},\"featureList\":[\"Custom AI agent creation with system prompts, skills, and branding\",\"Tool calling with JSON Schema validation and sandboxed JavaScript execution\",\"Multi-provider LLM support: Anthropic Claude, OpenAI GPT, Google Gemini, Mistral AI, Ollama\",\"Deterministic grading with 6 criterion types (output match, schema validation, tool usage, safety, custom script, LLM judge)\",\"AutoResearch optimization lab (AutoTune, AutoFix, Stress Lab, Tournament, Distillation, Evolution)\",\"Multi-agent team orchestration (parallel, sequential, conditional)\",\"Pipeline chains with input/output mapping\",\"GitHub repository integration with read_file, search_files, and github_write tools\",\"MCP (Model Context Protocol) server endpoints with API key authentication\",\"Embeddable chat widget with Shadow DOM isolation and SSE streaming\",\"Webhook connectors (inbound and outbound) with HMAC-SHA256 signing\",\"Slack bot integration with OAuth, thread support, and reaction checkmarks\",\"Real-time SSE streaming for chat, grading, and execution\",\"Extension hooks for safety, logging, and compliance (30+ event types)\",\"Real-time billing and usage tracking per agent via Stripe\",\"Internationalization (English and French)\",\"Meta-agent wizard for AI-assisted agent creation\",\"Purpose Gate for session-scoped agent focus\",\"TillDone mode for multi-step task enforcement\",\"Built-in bug tracking with autonomous bug fixer agent\",\"Workflow Quality Monitor — 18 standardized tests across 6 criteria for continuous LLM quality monitoring\",\"Public Agent Grader — test any AI endpoint or system prompt with deterministic evaluation\",\"Social Media Integration — Bluesky AT Protocol with 9 tools for social media management\",\"Telegram bot and WhatsApp (Meta Cloud API) connectors\",\"Agent memory with persistent key-value storage and context compaction\"],\"screenshot\":\"https://kopern.ai/opengraph-image\",\"browserRequirements\":\"Requires JavaScript. Works in all modern browsers.\",\"softwareVersion\":\"1.0\",\"inLanguage\":[\"en\",\"fr\"],\"isAccessibleForFree\":true,\"creator\":{\"@type\":\"Organization\",\"name\":\"Kopern\",\"url\":\"https://kopern.ai\"}}"])</script>
1<script>self.__next_f.push([1,"4:[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[[\"$\",\"head\",null,{\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$31\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"Kopern\\\",\\\"url\\\":\\\"https://kopern.ai\\\",\\\"description\\\":\\\"Build, test, grade, and deploy production-grade AI agents without code.\\\",\\\"inLanguage\\\":[\\\"en\\\",\\\"fr\\\"],\\\"publisher\\\":{\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"Kopern\\\",\\\"url\\\":\\\"https://kopern.ai\\\"}}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$32\"}}],\"$L33\"]}],\"$L34\"]}]\n"])</script>
1<script>self.__next_f.push([1,"36:I[921675,[\"/_next/static/chunks/586874a0e3a0b2da.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/c459da24e5de9d10.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/abbaad18e04b9d49.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a51ef5039fd53285.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/9e23a0d69e1f66a9.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a1c7696cfea1328a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6e127ce322ae25c8.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/741dd708061fe346.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6ba55f017255994b.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"ThemeProvider\"]\n37:I[746798,[\"/_next/static/chunks/586874a0e3a0b2da.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/c459da24e5de9d10.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/abbaad18e04b9d49.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a51ef5039fd53285.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/9e23a0d69e1f66a9.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a1c7696cfea1328a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6e127ce322ae25c8.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/741dd708061fe346.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6ba55f017255994b.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"TooltipProvider\"]\n38:I[874394,[\"/_next/static/chunks/586874a0e3a0b2da.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/c459da24e5de9d10.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/abbaad18e04b9d49.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a51ef5039fd53285.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/9e23a0d69e1f66a9.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a1c7696cfea1328a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6e127ce322ae25c8.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/741dd708061fe346.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6ba55f017255994b.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"LocaleProvider\"]\n35:T1585,"])</script>
1<script>self.__next_f.push([1,"{\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",\"mainEntity\":[{\"@type\":\"Question\",\"name\":\"What is the difference between AI agents and chatbots?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"AI agents autonomously execute multi-step tasks using tools (APIs, databases, code), while chatbots only reply with scripted text. Agents can reason, call external services, and decide what to do next; chatbots cannot. Use a chatbot for FAQs and an AI agent for multistep workflows like triaging tickets or running RAG pipelines.\"}},{\"@type\":\"Question\",\"name\":\"How do you build AI agents without coding?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"No-code AI agent builders like Kopern let you create agents through a visual interface: describe the goal, pick a template or model, configure tools via JSON schemas, and deploy. No Python, no LangChain boilerplate. Most production agents can ship in 15–60 minutes through drag-and-drop workflow editors and pre-built connectors.\"}},{\"@type\":\"Question\",\"name\":\"What is the best alternative to CrewAI and LangChain?\",\"acceptedA
1nswer\":{\"@type\":\"Answer\",\"text\":\"Kopern is a no-code alternative to CrewAI and LangChain with built-in grading, MCP endpoints, multi-agent teams, and deployment connectors (Slack, widget, webhooks). Unlike framework-only tools, Kopern handles the full lifecycle: build, test, grade, deploy, monitor. No Python required, works with Claude, GPT, Gemini, Mistral, and Ollama.\"}},{\"@type\":\"Question\",\"name\":\"How much does it cost to deploy AI agents in production?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Running an AI agent in production typically costs $0.01–$0.30 per conversation depending on the model and context size. Platform costs range from free tiers to $79/month for production features. Expect 30–40% lower operational costs vs traditional chatbots once deployed, thanks to higher resolution rates and autonomous handling.\"}},{\"@type\":\"Question\",\"name\":\"How do you test and evaluate an AI agent?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Test AI agents with a grading suite: define test cases with inputs and expected behaviors, then evaluate with six criterion types — output match, schema validation, tool usage, safety, custom scripts, and LLM-as-judge. Run the suite on every prompt change to catch regressions. Kopern automates this with AutoTune and AutoFix for continuous improvement.\"}},{\"@type\":\"Question\",\"name\":\"What is silent degradation in LLM agents?\",\"acceptedA
1nswer\":{\"@type\":\"Answer\",\"text\":\"Silent degradation is when an AI agent still returns syntactically valid outputs, but semantic quality drops over time — caused by model updates, data drift, or prompt decay. It is common in RAG pipelines. Detect it with scheduled grading (daily test runs), anomaly-based alerts, and continuous LLM observability on latency, faithfulness, and safety metrics.\"}},{\"@type\":\"Question\",\"name\":\"What is MCP (Model Context Protocol) and why does it matter?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"MCP is an open standard (created by Anthropic) for connecting AI agents to external tools and data. Think USB-C for AI: one protocol, any service. Claude Code, Cursor, and VS Code all speak MCP. With Kopern, you can expose any agent as an MCP server and call it from your IDE, CI pipeline, or custom apps.\"}},{\"@type\":\"Question\",\"name\":\"How do I deploy an AI agent on my website?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Add a single \u003cscript\u003e tag with your API key to embed a chat widget. The widget runs in a Shadow DOM for CSS isolation, streams via SSE, supports markdown and mobile. You can also deploy agents as MCP endpoints, webhooks, Slack bots, Telegram bots, or WhatsApp — all from the same dashboard without writing glue code.\"}},{\"@type\":\"Question\",\"name\":\"Are AI agents compliant with the EU AI Act?\",\"acceptedA
1nswer\":{\"@type\":\"Answer\",\"text\":\"Full enforcement of the EU AI Act starts August 2, 2026. High-risk AI agents must provide technical documentation, structured human oversight, audit trails, and stop mechanisms. Kopern ships with built-in tool approval policies, session event logs, and a compliance report generator to cover Article 14 (human oversight) out of the box.\"}},{\"@type\":\"Question\",\"name\":\"Which LLM models can you use to build AI agents?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"The major providers are Anthropic (Claude Opus, Sonnet, Haiku), OpenAI (GPT-4o, o1), Google (Gemini 2.5 Flash, Pro), Mistral (Large, Codestral, Nemo), and local open-source via Ollama. Kopern lets you switch models per agent and A/B test them via Tournament mode to pick the best quality-cost tradeoff.\"}},{\"@type\":\"Question\",\"name\":\"Is Kopern free to use?\",\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Kopern's free Starter tier includes 3 agents and 100K tokens/month with grading and MCP access. Pro ($79/mo) adds teams, connectors, and 2M tokens. Pay-as-you-go is available for unlimited scale. All plans include deterministic grading, multi-agent orchestration, and deployment to Slack, webhooks, and widgets.\"}},{\"@type\":\"Question\",\"name\":\"What is multi-agent orchestration?\",\"acceptedA
1nswer\":{\"@type\":\"Answer\",\"text\":\"Multi-agent orchestration means multiple specialized AI agents work together on one task. Kopern supports parallel execution (all agents run at once), sequential pipelines (output flows between agents), and conditional routing (input decides which agent runs). Useful for research teams, content pipelines, and triage workflows where one agent is not enough.\"}}]}"])</script>
1<script>self.__next_f.push([1,"33:[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"$35\"}}]\n"])</script>
1<script>self.__next_f.push([1,"34:[\"$\",\"body\",null,{\"className\":\"geist_a71539c9-module__T19VSG__variable geist_mono_8d43a2aa-module__8Li5zG__variable antialiased\",\"children\":[[\"$\",\"$L36\",null,{\"children\":[\"$\",\"$L37\",null,{\"children\":[\"$\",\"$L38\",null,{\"locale\":\"en\",\"dictionary\":{\"common\":{\"loading\":\"Loading...\",\"save\":\"Save\",\"cancel\":\"Cancel\",\"delete\":\"Delete\",\"back\":\"Back\",\"create\":\"Create\",\"edit\":\"Edit\",\"signIn\":\"Sign in\",\"signOut\":\"Sign out\",\"viewAll\":\"View all\",\"noResults\":\"No results\",\"copy\":\"Copy\",\"copied\":\"Copied!\",\"or\":\"or\",\"none\":\"None\",\"active\":\"Active\",\"disabled\":\"Disabled\",\"published\":\"Published\",\"all\":\"All\",\"saving\":\"Saving...\",\"creating\":\"Creating...\"},\"landing\":{\"title\":\"Build, Test \u0026 Deploy\",\"titleAccent\":\"AI Agents\",\"subtitle\":\"Create custom business AI agents, validate them through deterministic grading pipelines, and expose them as API endpoints — all from one platform.\",\"cta\":\"Get Started\",\"ctaDashboard\":\"Dashboard\",\"examples\":\"Workflow Examples\",\"customAgentCard\":{\"title\":\"Your Tailored Agent\",\"subtitle\":\"Describe your business, we handle the rest. Agent ready in 5 minutes.\"},\"features\":{\"title\":\"Built for\",\"titleAccent\":\"Production\",\"subtitle\":\"Enterprise-grade security, EU AI Act compliance, and battle-tested infrastructure from day one.\",\"agentBuilder\":{\"title\":\"Agent Builder\",\"description\":\"Configure agents with system prompts, skills, tools and extensions. Multi-model support.\"},\"grading\":{\"title\":\"Deterministic Grading\",\"description\":\"6 criterion types: output match, schema validation, tool usage, safety check, LLM judge and more.\"},\"api\":{\"title\":\"API Endpoints\",\"description\":\"Expose agents as JSON-RPC endpoints with API key auth, rate limiting and usage tracking.\"},\"security\":{\"title\":\"Secure by Design\",\"description\":\"Owner-only Firestore rules, hashed API keys, server-side key management, sandboxed execution.\"}},\"orchestration\":{\"title\":\"Multi-Agent\",\"titleAccent\":\"Orchestration\",\"subtitle\":\"Build sophisticated workflows with agent teams, pipelines, and meta-agents that create other agents.\",\"teams\":{\"title\":\"Agent Teams\",\"description\":\"Run multiple specialized agents in parallel, sequential, or conditional modes. A coordinator synthesizes their outputs into unified results.\"},\"pipelines\":{\"title\":\"Agent Pipelines\",\"description\":\"Chain agents into step-by-step workflows where each agent's output feeds the next. Built-in error handling and input mapping.\"},\"metaAgent\":{\"title\":\"Meta-Agent\",\"description\":\"Describe what you need in plain language. The meta-agent creates a fully configured agent — system prompt, skills, tools, and grading suite.\"}},\"autoResearch\":{\"title\":\"Optimization\",\"titleAccent\":\"Lab\",\"subtitle\":\"6 optimization modes to push your agents further — hill-climbing prompt tuning, one-click bug fixing, adversarial stress testing, model tournaments, cost distillation, and multi-dimensional evolution. Each mode runs experiments, grades results, and keeps only what improves performance.\",\"autotune\":{\"title\":\"AutoTune\",\"description\":\"Iteratively mutate system prompts using LLM-guided strategies. Each iteration is graded, and only improvements are kept — hill-climbing to the best config.\"},\"autofix\":{\"title\":\"AutoFix\",\"description\":\"Analyze failing grading cases, diagnose root causes, and automatically patch the system prompt to fix specific weaknesses.\"},\"stressLab\":{\"title\":\"Stress Lab\",\"description\":\"Red team your agent automatically — generate adversarial attacks (prompt injections, jailbreaks, hallucination traps, edge cases) and harden its defenses until it passes.\"},\"tournament\":{\"title\":\"Tournament Arena\",\"description\":\"Pit multiple model and config combinations against each other. A multi-round tournament reveals the best quality/cost/latency trade-off.\"},\"evolution\":{\"title\":\"Evolution Engine\",\"description\":\"Explore every combination of prompt, model, and config simultaneously. Runs parallel candidates, compares their grading scores, and converges on the best-performing setup for your use case.\"},\"distillation\":{\"title\":\"Distillation\",\"description\":\"Transfer knowledge from expensive teacher models to cheaper students. Maintain quality while dramatically reducing inference costs.\"}},\"observability\":{\"title\":\"Observability \u0026\",\"titleAccent\":\"Billing\",\"subtitle\":\"Track every token, every call, every cost — with full session tracing and pay-per-use billing.\",\"sessions\":{\"title\":\"Session Tracing\",\"description\":\"Full observability with event timelines, token counts, cost tracking, and tool execution traces for every agent session.\"},\"billing\":{\"title\":\"Pay-per-Token\",\"description\":\"Transparent usage-based billing with per-agent breakdown, historical charts, and multi-provider cost tracking.\"}},\"hero\":{\"tagline\":\"Tailored agentic AI\",\"placeholder\":\"e.g. I need an agent that reviews PRs for security vulnerabilities, checks OWASP Top 10, and generates fix suggestions...\",\"generate\":\"Generate my Agent\",\"generating\":\"Designing your agent...\",\"specReady\":\"Your agent is ready\",\"saveAgent\":\"Save \u0026 Deploy Agent\",\"signInToSave\":\"Sign in to save your agent\",\"tryAnother\":\"Try another\",\"viewSpec\":\"View full specification\"},\"metrics\":{\"agents\":\"Agents created\",\"gradingRuns\":\"Grading runs\",\"optimized\":\"Prompts optimized\",\"sessions\":\"Conversations\"},\"footer\":\"Kopern — AI Agent Builder \u0026 Grader\",\"footerPrivacy\":\"Privacy Policy\",\"footerTerms\":\"Terms of Service\",\"howItWorks\":{\"title\":\"How it\",\"titleAccent\":\"Works\",\"subtitle\":\"Complete guide to building, testing, and deploying AI agents with Kopern.\",\"searchPlaceholder\":\"Search documentation... (e.g. tools, grading, MCP)\",\"tocTitle\":\"On this page\",\"startTemplate\":\"Start from a Template\",\"startTemplateDesc\":\"Browse 25+ pre-built agents across 9 industries and customize them for your needs.\",\"quickStart\":\"Quick Start Guide\",\"quickStartDesc\":\"Step-by-step guide to create and deploy your first agent in minutes.\",\"useWizard\":\"Use the AI Wizard\",\"useWizardDesc\":\"Describe your agent in plain text and let AI generate the full configuration.\",\"noResults\":\"No results found\",\"noResultsHint\":\"Try different keywords or browse the full documentation.\",\"clearSearch\":\"Clear search\",\"resultSingular\":\"section found\",\"resultPlural\":\"sections foun
1d\"},\"faq\":{\"title\":\"Frequently Asked Questions\",\"subtitle\":\"Everything you need to know about building, testing and deploying AI agents with Kopern.\",\"items\":[{\"question\":\"What is the difference between AI agents and chatbots?\",\"answer\":\"AI agents autonomously execute multi-step tasks using tools (APIs, databases, code), while chatbots only reply with scripted text. Agents can reason, call external services, and decide what to do next. Use a chatbot for simple FAQs and an AI agent for multistep workflows like ticket triage, RAG pipelines, or research.\"},{\"question\":\"Can I build AI agents without coding?\",\"answer\":\"Yes. Kopern is a no-code AI agent builder: describe your goal, pick a template or model, and deploy in under an hour. No Python, no LangChain boilerplate. Use the visual workflow editor, pre-built connectors (Slack, widget, webhooks), and JSON-schema tool definitions to ship without writing a single function.\"},{\"question\":\"What is the best alternative to CrewAI and LangChain?\",\"answer\":\"Kopern is a no-code alternative to CrewAI and LangChain with built-in grading, MCP endpoints, multi-agent teams, and one-click deployment. Unlike framework-only tools, Kopern covers the full lifecycle — build, test, grade, deploy, monitor — and supports Claude, GPT, Gemini, Mistral, and Ollama with zero boilerplate.\"},{\"question\":\"How much does it cost to deploy AI agents in production?\",\"answer\":\"Running an AI agent costs roughly $0.01–$0.30 per conversation depending on the model and context size. Platform costs start free and scale to $79/month for production features. Teams typically see 30–40% lower operational costs versus chatbots once deployed, thanks to higher resolution and autonomous task handling.\"},{\"question\":\"How do you test and grade an AI agent?\",\"answer\":\"Define test cases with inputs and expected behaviors, then grade responses against six criteria: output match, schema validation, tool usage, safety, custom scripts, and LLM-as-judge. Run the suite on every change to catch regressions. Kopern automates grading with AutoTune and AutoFix for continuous improvement.\"},{\"question\":\"What is MCP (Model Context Protocol) and why does it matter?\",\"answer\":\"MCP is an open standard for connecting AI agents to external tools and data. Claude Code, Cursor, and VS Code all speak MCP. With Kopern, expose any agent as an MCP server and call it from your IDE, CI pipeline, or custom apps — a standard protocol replaces dozens of custom integrations.\"},{\"question\":\"Are AI agents compliant with the EU AI Act?\",\"answer\":\"Full enforcement starts August 2, 2026. High-risk AI agents must provide technical documentation, human oversight, audit trails, and stop mechanisms. Kopern ships with built-in tool approval policies, session event logs, and a compliance report generator that cover EU AI Act Article 14 requirements out of the box.\"}],\"ctaTitle\":\"Ready to build your first agent?\",\"ctaSubtitle\":\"Get started for free. No credit card required.\",\"ctaButton\":\"Start building free\",\"ctaSecondary\":\"Explore MCP docs\"}},\"nav\":{\"dashboard\":\"Dashboard\",\"agents\":\"Agents\",\"teams\":\"Teams\",\"billing\":\"Billing\",\"api\":\"API\",\"examples\":\"Templates\",\"settings\":\"Settings\",\"bugs\":\"Bug Tracker\",\"docs\":\"Documentation\",\"apiReference\":\"API Reference\",\"mcpDocs\":\"MCP Docs\",\"pricing\":\"Pricing\",\"blog\":\"Blog\",\"grader\":\"Grader\",\"monitor\":\"Monitor\",\"quality\":\"Quality\"},\"auth\":{\"title\":\"Kopern\",\"subtitle\":\"Build and validate AI agents with deterministic grading\",\"google\":\"Google\",\"github\":\"GitHub\",\"email\":\"Email\",\"password\":\"Password\",\"emailPlaceholder\":\"[email protected]\",\"passwordPlaceholder\":\"********\",\"signInBtn\":\"Sign in\",\"signUpBtn\":\"Create account\",\"switchToSignUp\":\"No account yet?\",\"switchToSignIn\":\"Already have an account?\",\"signUp\":\"Sign up\",\"failedOAuth\":\"Failed to sign in with {provider}\",\"failedSignUp\":\"Failed to create account\",\"failedSignIn\":\"Invalid credentials\",\"githubNeedsGoogle\":\"This email is already linked to a Google account. Sign in with Google first, then connect GitHub from Settings.\",\"popupBlocked\":\"Popup blocked by your browser. Please allow popups and try again.\"},\"dashboard\":{\"title\":\"Dashboard\",\"subtitle\":\"Overview of your agents and endpoints\",\"newAgent\":\"New Agent\",\"stats\":{\"agents\":\"Agents\",\"published\":\"Published\",\"apiEndpoints\":\"API Endpoints\",\"avgScore\":\"Avg. Score\",\"na\":\"N/A\"},\"recentAgents\":\"Recent Agents\",\"apiEndpoints\":\"API Endpoints\",\"noAgents\":\"No agents yet\",\"noAgentsDesc\":\"Create your first AI agent to get started\",\"createAgent\":\"Create Agent\",\"noEndpoints\":\"No API endpoints yet.\",\"noEndpointsDesc\":\"Go to an agent's MCP Servers page to create one.\"},\"agents\":{\"title\":\"Agents\",\"newAgent\":\"New Agent\",\"noAgents\":\"No agents yet\",\"noAgentsDesc\":\"Create your first AI agent to get started\",\"createAgent\":\"Create Agent\",\"createTitle\":\"Create Agent\",\"createSubtitle\":\"Set up a new AI agent with a system prompt, model, and domain\",\"detail\":{\"editConfig\":\"Edit Config\",\"skills\":\"Skills\",\"tools\":\"Tools\",\"extensions\":\"Extensions\",\"playground\":\"Playground\",\"grading\":\"Grading\",\"mcpServers\":\"MCP Servers\",\"apiKeys\":\"API Keys\",\"overview\":\"Overview\",\"systemPrompt\":\"System Prompt\",\"configuration\":\"Configuration\",\"provider\":\"Provider\",\"model\":\"Model\",\"thinking\":\"Thinking\",\"builtinTools\":\"Built-in Tools\",\"gradingScore\":\"Grading Score\",\"optimize\":\"Optimize\",\"notFound\":\"Agent not found\",\"loadingAgent\":\"Loading agent...\",\"noPrompt\":\"No system prompt defined\",\"deleteAgent\":\"Delete Agent\",\"deleteConfirm\":\"Are you sure you want to delete this agent? All skills, tools, extensions, sessions, grading suites, and MCP servers will be permanently lost.\",\"deleteSuccess\":\"Agent deleted successfully\",\"deleting\":\"Deleting...\",\"operatorView\":\"Dashboard\"},\"form\":{\"name\":\"Name\",\"namePlaceholder\":\"My AI Agent\",\"description\":\"Description\",\"descriptionPlaceholder\":\"What does this agent do?\",\"domain\":\"Domain\",\"domainPlaceholder\":\"e.g. Customer Support, DevOps\",\"systemPrompt\":\"System Prompt\",\"systemPromptPlaceholder\":\"You are a helpful AI assistant...\",\"modelProvider\":\"Model Provider\",\"modelId\":\"Model ID\",\"thinkingLevel\":\"Thinking Level\",\"builtinTools\":\"Built-in Tools\",\"builtinToolDescriptions\":{\"github_write\":\"Create branches, commit files, and open PRs on connected repos\",\"bug_management\":\"Track, update, and respond to bug reports (admin)\",\"slack_read\":\"Read messages and list channels from connected Slack workspace\",\"datagouv\":\"Search, explore, and query 50,000+ French open datasets (DVF, LEGI, cadastre, DGFiP, etc.)\",\"piste\":\"Search and read French legal texts — codes, laws, decrees, and collective agreements via the official Légifrance API\",\"memory\":\"Remember facts across conversations, recall context, and search past sessions\",\"service_email\":\"Read, send, and reply to emails via connected Google or Microsoft account\",\"service_calendar\":\"List events, check availability, create/update/cancel calendar events\",\"web_fetch\":\"Fetch any URL and extract text content — web pages, APIs, RSS feeds, robots.txt, sitemaps\",\"code_interpreter\":\"Execute Python, Node.js, or Bash code in a secure cloud sandbox — data analysis, charts, scraping\"},\"save\":\"Save Agent\",\"create\":\"Create Agent\",\"saving\":\"Saving...\",\"creating\":\"Creating...\"}},\"skills\":{\"title\":\"Skills\",\"addSkill\":\"Add Skill\",\"noSkills\":\"No skills yet\",\"noSkillsDesc\":\"Skills are markdown templates injected into the system prompt\",\"form\":{\"name\":\"Name\",\"description\":\"Description\",\"content\":\"Content\"}},\"tools\":{\"title\":\"Tools\",\"addTool\":\"Add Tool\",\"noTools\":\"No tools yet\",\"noToolsDesc\":\"Tools let your agent perform actions with JSON Schema parameters\",\"form\":{\"name\":\"Name\",\"label\":\"Label\",\"description\":\"Description\",\"parametersSchema\":\"Parameters Schema (JSON)\",\"executeCode\":\"Execute Co
1de (JavaScript)\"},\"tutorial\":\"Tutorial\",\"closeTutorial\":\"Close tutorial\"},\"extensions\":{\"title\":\"Extensions\",\"addExtension\":\"Add Extension\",\"newExtension\":\"New Extension\",\"noExtensions\":\"No extensions yet\",\"noExtensionsDesc\":\"Extensions are event hooks for custom agent behavior\",\"name\":\"Name\",\"description\":\"Description\",\"events\":\"Events\",\"blocking\":\"Blocking\",\"blockingDesc\":\"Can prevent actions (only works with blocking events)\",\"createExtension\":\"Create Extension\",\"selectEvent\":\"Select at least one event to trigger this extension.\",\"enabled\":\"Enabled\",\"disabled\":\"Disabled\",\"enable\":\"Enable\",\"disable\":\"Disable\",\"edit\":\"Edit\",\"save\":\"Save\",\"cancel\":\"Cancel\",\"loading\":\"Loading extensions...\",\"created\":\"Extension created\",\"saved\":\"Extension saved\",\"deleted\":\"Extension deleted\",\"errorCreate\":\"Failed to create extension\",\"errorSave\":\"Failed to save extension\",\"errorToggle\":\"Failed to toggle extension\",\"errorDelete\":\"Failed to delete extension\",\"categories\":{\"session\":\"Session Lifecycle\",\"message\":\"Message Lifecycle\",\"tool\":\"Tool Lifecycle\",\"agent\":\"Agent Lifecycle\",\"subAgent\":\"Sub-agent Lifecycle\",\"pipeline\":\"Pipeline Lifecycle\",\"team\":\"Team Lifecycle\",\"user\":\"User Interaction\",\"system\":\"System\",\"autoresearch\":\"Optimization Lab\"}},\"playground\":{\"title\":\"Playground\",\"sendMessage\":\"Send a message...\",\"send\":\"Send\",\"clearChat\":\"Clear chat\",\"thinking\":\"Thinking...\",\"purposePrompt\":\"What is the purpose of this session?\",\"purposePlaceholder\":\"e.g. Explore and debug the authentication flow...\",\"startSession\":\"Start Session\",\"skipPurpose\":\"Skip\",\"sessionMetrics\":\"Session Metrics\",\"tokensIn\":\"Tokens In\",\"tokensOut\":\"Tokens Out\",\"estimatedCost\":\"Est. Cost\",\"toolsCalled\":\"Tools Called\",\"contextUsed\":\"Context Used\",\"subtitle\":\"Test your agent in real-time with streaming responses\",\"emptyChat\":\"Send a message to start chatting with your agent\",\"loadingConfig\":\"Loading agent configuration...\",\"toolCalls\":\"tool calls\",\"viewSession\":\"View session\",\"delegatedTo\":\"Delegated to\",\"subAgentResult\":\"Sub-agent result\",\"tillDone\":{\"title\":\"Task List\",\"pending\":\"Pending\",\"inProgress\":\"In Progress\",\"done\":\"Done\",\"noTasks\":\"Agent must create tasks before executing\",\"clearConfirm\":\"Clear completed tasks?\",\"incomplete\":\"tasks remaining\"}},\"grading\":{\"title\":\"Grading\",\"addSuite\":\"Add Suite\",\"noSuites\":\"No grading suites yet\",\"noSuitesDesc\":\"Create a grading suite to validate your agent's behavior\",\"criteria\":{\"outputMatch\":\"Output Match\",\"schemaValidation\":\"Schema Validation\",\"toolUsage\":\"Tool Usage\",\"safetyCheck\":\"Safety Check\",\"customScript\":\"Custom Script\",\"llmJudge\":\"LLM Judge\"},\"runs\":{\"title\":\"Runs\",\"noRuns\":\"No runs yet\",\"runGrading\":\"Run Grading\",\"running\":\"Running...\",\"passed\":\"Passed\",\"failed\":\"Failed\",\"score\":\"Score\"},\"improvementNotes\":{\"title\":\"Improvement Suggestions\",\"analyzing\":\"Analyzing results and generating improvement suggestions...\",\"categories\":{\"system_prompt\":\"System Prompt\",\"skill\":\"Skill\",\"tool\":\"Tool\",\"general\":\"General\"},\"addSkill\":\"Add skill\",\"sendToLab\":\"Send to lab\",\"sendAllToLab\":\"Send all to lab\",\"applied\":\"Applied\",\"sent\":\"Sent\",\"skillAdded\":\"Skill added\",\"sentToOptimize\":\"Sent to optimization lab\",\"suggestionsSent\":\"{count} suggestions sent to lab\",\"error\":\"Error\"},\"nextSteps\":{\"title\":\"Next Steps\",\"perfectScore\":\"All tests passed! Your agent is performing well.\",\"perfectScoreOptimize\":\"You can still optimize cost or latency with Tournament or Distillation.\",\"failuresDetected\":\"{count} test(s) failed — AutoFix can diagnose root causes and patch your prompt automatically.\",\"lowScore\":\"Score below target — AutoTune can iteratively improve your agent through optimization loops.\",\"autofixCta\":\"Fix with AutoFix\",\"autotuneCta\":\"Optimize with AutoTune\",\"stressLabCta\":\"Run Stress Lab\",\"tournamentCta\":\"Compare Models\",\"viewOptimizeLab\":\"Open Optimization Lab\",\"runAgain\":\"Run Again\"}},\"mcp\":{\"title\":\"MCP Servers\",\"createServer\":\"Create Server\",\"noServers\":\"No MCP servers yet\",\"noServersDesc\":\"Create an MCP server to expose your agent as an API endpoint\",\"quickStart\":\"Quick Start\",\"endpoint\"
1:\"Endpoint\",\"apiKey\":\"API Key\",\"rateLimit\":\"Rate Limit\",\"usage\":\"Usage\",\"tokens\":\"Tokens\",\"requests\":\"Requests\",\"faq\":{\"title\":\"MCP Frequently Asked Questions\",\"items\":[{\"question\":\"How do I connect my Kopern agent to Claude Code?\",\"answer\":\"Install the Kopern MCP server with one command: claude mcp add kopern -- npx -y @kopern/mcp-server. Set KOPERN_API_KEY to your personal or agent-bound key. Claude Code will discover 32 tools for creating agents, running grading, deploying connectors, and more.\"},{\"question\":\"What is the difference between user and agent API keys?\",\"answer\":\"A user key (personal) is not bound to any agent and unlocks 30 platform tools (create/manage agents, grading, teams). An agent-bound key gives access to all 32 tools including kopern_chat and kopern_agent_info for that specific agent. Generate both from Settings or the API Keys page.\"},{\"question\":\"Can I self-host the Kopern MCP server?\",\"answer\":\"Yes. Kopern ships with Docker support: clone the repo, run docker compose up, and you get Next.js + Redis + optional Ollama + Firebase Emulator. The MCP server runs as part of the standard deployment. Point clients at your self-hosted URL via KOPERN_URL.\"},{\"question\":\"Which IDEs support MCP?\",\"answer\":\"Claude Code, Cursor, VS Code (with Copilot), Windsurf, and any MCP-compliant client. All use stdio or Streamable HTTP transport. Kopern's npm package handles the bridge automatically so a single config line enables the full toolset in any supported IDE.\"},{\"question\":\"Is MCP secure for production use?\",\"answer\":\"Kopern MCP keys support expiration, rotation without downtime, and per-key scoping. All traffic uses HTTPS. API keys are hashed with SHA-256 in Firestore. For enterprise, self-host behind your VPN and use role-based access control on top.\"}]}},\"examples\":{\"title\":\"Workflow Examples\",\"subtitle\":\"Production-ready agent configurations for real business workflows. Each example includes system prompt, skills, tools, MCP integration, and grading suite — ready to deploy on Kopern.\",\"datagouvTitle\":\"Powered by data.gouv.fr MCP\",\"datagouvSubtitle\":\"These agents leverage the official data.gouv.fr MCP server — free, no API key required. Access 90,000+ French open datasets, query tabular data in-place, and discover government APIs.\",\"datagouvBadge\":\"data.gouv.fr MCP\",\"useThisAgent\":\"Use this Agent\",\"creating\":\"Creating...\",\"allExamples\":\"All examples\",\"backToExamples\":\"Back to examples\",\"exampleNotFound\":\"Example not found.\",\"copyFull\":\"Full example\",\"timeSaved\":\"Time Saved\",\"costReduction\":\"Cost Reduction\",\"riskMitigation\":\"Risk Mitigation\",\"agentCreated\":\"Agent created successfully!\",\"agentCreateFailed\":\"Failed to create agent\",\"copiedToClipboard\":\"{label} copied to clipboard\"},\"teams\":{\"title\":\"Agent Teams\",\"newTeam\":\"New Team\",\"noTeams\":\"No teams yet\",\"noTeamsDesc\":\"Create agent teams to orchestrate multiple agents working together\",\"createTeam\":\"Create Team\",\"form\":{\"name\":\"Team Name\",\"namePlaceholder\":\"e.g. Plan-Build-Review Pipeline\",\"description\":\"Description\",\"descriptionPlaceholder\":\"What does this team accomplish?\",\"executionMode\":\"Execution Mode\",\"parallel\":\"Parallel — all agents run simultaneously\",\"sequential\":\"Sequential — agents run in order, output chains\",\"conditional\":\"Conditional — route based on content\"},\"members\":\"Team Members\",\"addMember\":\"Add Agent\",\"role\":\"Role\",\"rolePlaceholder\":\"e.g. Scout, Planner, Builder, Reviewer\",\"noMembers\":\"Add agents to this team\",\"execute\":\"Run Team\",\"executing\":\"Running team...\",\"results\":\"Team Results\",\"memberCompleted\":\"completed\",\"memberRunning\":\"running\",\"flow\":{\"title\":\"Flow Editor\",\"saveFlow\":\"Save Flow\",\"saving\":\"Saving...\",\"addAgent\":\"Agent\",\"addCondition\":\"Condition\",\"addTrigger\":\"Trigger\",\"addOutput\":\"Output\"},\"kanban\":{\"title\":\"Tasks\",\"addTask\":\"Add Task\",\"backlog\":\"Backlog\",\"ready\":\"Ready\",\"inProgress\":\"In Progress\",\"review\":\"Review\",\"done\":\"Done\",\"blocked\":\"Blocked\"},\"routines\":{\"title\":\"Routines\",\"newRoutine\":\"New Routine\",\"noRoutines\":\"No routines configured\",\"noRoutinesDesc\":\"Create a rout
1ine to automate agent tasks on a schedule.\"},\"goals\":{\"title\":\"Goals\",\"noGoals\":\"No goals defined\",\"noGoalsDesc\":\"Create goals to track your team objectives.\",\"newGoal\":\"New Goal\",\"titleLabel\":\"Title\",\"descLabel\":\"Description\",\"create\":\"Create Goal\",\"created\":\"Goal created\"},\"activity\":{\"title\":\"Activity\",\"noActivity\":\"No activity yet\"},\"orgChart\":{\"title\":\"Organization\"},\"roles\":{\"coordinator\":\"Coordinator\",\"specialist\":\"Specialist\",\"reviewer\":\"Reviewer\",\"researcher\":\"Researcher\",\"communicator\":\"Communicator\",\"custom\":\"Custom\"}},\"pipelines\":{\"title\":\"Pipelines\",\"newPipeline\":\"New Pipeline\",\"noPipelines\":\"No pipelines yet\",\"noPipelinesDesc\":\"Create pipelines to chain agents sequentially — output of one becomes input for the next\",\"createPipeline\":\"Create Pipeline\",\"form\":{\"name\":\"Pipeline Name\",\"namePlaceholder\":\"e.g. Scout → Analyze → Document\",\"description\":\"Description\",\"descriptionPlaceholder\":\"What does this pipeline produce?\"},\"steps\":\"Pipeline Steps\",\"addStep\":\"Add Step\",\"inputMapping\":\"Input Source\",\"previousOutput\":\"Previous step output\",\"originalInput\":\"Original user input\",\"customTemplate\":\"Custom template\",\"templatePlaceholder\":\"Use {{previous_output}} and {{original_input}}\",\"continueOnError\":\"Continue on error\",\"execute\":\"Run Pipeline\",\"executing\":\"Running pipeline...\",\"stepProgress\":\"Step {current} of {total}\",\"stepCompleted\":\"Step completed\",\"stepFailed\":\"Step failed\"},\"bugs\":{\"title\":\"Bug Tracker\",\"subtitle\":\"Monitor bug reports and Bug Fixer agent activity\",\"noBugs\":\"No bugs reported yet\",\"noBugsDesc\":\"Bug reports submitted via the form will appear here\",\"severity\":\"Severity\",\"status\":\"Status\",\"reporter\":\"Reporter\",\"analysis\":\"Analysis\",\"fixBranch\":\"Fix Branch\",\"prUrl\":\"Pull Request\",\"thankYouSent\":\"Thank-you Sent\",\"notes\":\"Notes\",\"viewPr\":\"View PR\",\"page\":\"Page\",\"bugId\":\"Bug ID\",\"created\":\"Created\",\"updated\":\"Updated\",\"assigned\":\"Assigned\",\"filterAll\":\"All\",\"changeStatus\":\"Change status\",\"addNote\":\"Add\",\"addNotePlaceholder\":\"Add admin note...\",\"triggerAgent\":\"Analyze with Bug Fixer\",\"statusUpdated\":\"Status updated\",\"noteAdded\":\"Note added\",\"agentTriggered\":\"Bug Fixer agent triggered\",\"errorUpdate\":\"Failed to update bug\",\"errorTrigger\":\"Failed to trigger agent\",\"statsTotal\":\"Total\",\"statsOpen\":\"Open\",\"statsInProgress\":\"In Progress\",\"statsAwaitingReview\":\"Awaiting Review\",\"statsResolved\":\"Resolved\",\"statuses\":{\"new\":\"New\",\"analyzing\":\"Analyzing\",\"fixing\":\"Fixing\",\"awaiting_review\":\"Awaiting Review\",\"fixed\":\"Fixed\",\"closed\":\"Closed\",\"wont_fix\":\"Won't Fix\"}},\"sessions\":{\"title\":\"Sessions\",\"noSessions\":\"No sessions yet\",\"noSessionsDesc\":\"Chat with your agent to create session traces\",\"purpose\":\"Purpose\",\"duration\":\"Duration\",\"tokens\":\"Tokens\",\"cost\":\"Cost\",\"tools\":\"Tool Calls\",\"messages\":\"Messages\",\"timeline\":\"Event Timeline\",\"exportTrace\":\"Export Trace\",\"subSources\":{\"autotune\":\"AutoTune\",\"autofix\":\"AutoFix\",\"stress_lab\":\"Stress Lab\",\"tournament\":\"Tournament\",\"distillation\":\"Distillation\",\"evolution\":\"Evolution\"}},\"billing\":{\"title\":\"Billing \u0026 Usage\",\"subtitle\":\"Monitor your token consumption and costs\",\"currentMonth\":\"Current Month\",\"inputTokens\":\"Input Tokens\",\"outputTokens\":\"Output Tokens\",\"totalCost\":\"Total Cost\",\"requests\":\"Requests\",\"agentBreakdown\":\"Per-Agent Breakdown\",\"usageHistory\":\"Usage History\",\"noUsage\":\"No usage recorded yet\",\"noUsageDesc\":\"Start chatting with your agents to track usage\",\"costEstimate\":\"Cost Estimate\",\"perMillionInput\":\"per 1M input tokens\",\"perMillionOutput\":\"per 1M output tokens\",\"currentPlan\":\"Current Plan\",\"planStarter\":\"Starter (Free)\",\"planPro\":\"Pro\",\"planUsage\":\"Usage-Based\",\"planEnterprise\":\"Enterprise\",\"managePlan\":\"Manage Subscription\",\"upgradePlan\":\"Upgrade Plan\",\"renewsOn\":\"Renews on\",\"cancelsOn\":\"Cancels on\",\"planActive\":\"Active\",\"planPastDue\":\"Past Due — please update payment\",\"planCanceled\":\"Canceled\",\"usageCommission\":\"Includes 17% Kopern platform fee\",\"autoresearchUsage\":\"Optimization Lab Usage\",\"autoresearchIterations\":\"Optimization Iterations\",\"autoresearchCost\":\"Optimization Cost\",\"autoresearchTokens\":\"Tokens Used\",\"includedInTotal\":\"(included in total above)\",\"viewInvoices\":\"View Invoices\",\"changePlan\":\"Change Plan\",\"cancelPlan\":\"Cancel Subscription\"},\"orchestration\":{\"title\":\"Orchestration\",\"subtitle\":\"Multi-agent teams, pipelines, and sub-agent delegation\",\"delegateTool\":\"Delegate\",\"delegateDesc\":\"Allow this agent to delegate tasks to other agents\",\"targetAgent\":\"Target Agent\",\"prompt\":\"Delegation Prompt\"},\"purposeGate\":{\"title\":\"Purpose Gate\",\"description\":\"Ask the user for a session purpose before starting the chat. The answer is injected into the system prompt for focused agent behavior.\",\"enabled\":\"Enable Purpose Gate\",\"question\":\"Purpose Question\",\"questionPlaceholder\":\"What is the purpose of this session?\",\"injectInPrompt\":\"Inject purpose in system prompt\"},\"tillDone\":{\"title\":\"TillDone Mode\",\"description\":\"Force the agent to maintain a task list. The agent must create tasks before executing and complete all tasks before finishing.\",\"enabled\":\"Enable TillDone\",\"requireTaskList\":\"Require task list before execution\",\"autoPrompt\":\"Auto-prompt on incomplete tasks\",\"confirmClear\":\"Confirm before clearing tasks\"},\"agentBranding\":{\"title\":\"Agent Branding\",\"description\":\"Customize the visual identity of this agent\",\"themeColor\":\"Theme Color\",\"accentColor\":\"Accent Color\",\"icon\":\"Icon\"},\"toolOverrides\":{\"title\":\"Tool Overrides\",\"description\":\"Override default tool behavior with custom wrapper code\",\"addOverride\":\"Add Override\",\"toolName\":\"Tool Name\",\"wrapperCode\":\"Wrapper Code\",\"enabled\":\"Enabled\",\"noOverrides\":\"No tool overrides\",\"noOverridesDesc\":\"Override read, write, edit, or bash tools with custom behavior\"},\"metaAgent\":{\"title\":\"Create with AI\",\"description\":\"Describe what you need in plain language. The AI will design a complete agent specification — system prompt, skills, tools, and grading criteria.\",\"prompt\":\"Describe the agent you want to build...\",\"promptPlaceholder\":\"e.g. I need an agent that reviews pull requests for security vulnerabilities and coding standards, checks OWASP Top 10, and blocks merge if score is below 7/10...\",\"generating\":\"Designing your agent...\",\"generated\":\"Agent created successfully!\",\"generate\":\"Generate Agent Spec\",\"minChars\":\"Minimum 10 characters. Be as specific as possible for better results.\",\"specReady\":\"Agent specification ready\",\"agentName\":\"Name\",\"domain\":\"Domain\",\"skillsCount\":\"Skills\",\"createFromSpec\":\"Create Agent\",\"startOver\":\"Start Over\",\"error\":\"Generation failed. Please try again.\",\"apiKeyRequired\":\"Please add your API key in Settings before using the AI wizard. Go to Settings \u003e API Keys to configure your Anthropic key.\",\"demoRateLimited\":\"You've reached the daily demo limit. Sign up to create unlimited agents with your own API key!\"},\"pricing\":{\"title\":\"Simple, Transparent Pricing\",\"subtitle\":\"Start free, scale as you grow. All plans include core agent building features.\",\"monthly\":\"Monthly\",\"annual\":\"Annual\",\"savePercent\":\"Save 17%\",\"mo\":\"/mo\",\"yr\":\"/yr\",\"popular\":\"Popular\",\"payAsYouGo\":\"Flexible\",\"getStarted\":\"Get Started\",\"currentPlan\":\"Current Plan\",\"contactSales\":\"Contact Sales\",\"startFree\":\"Start Free\",\"startUsage\":\"Start Pay-as-you-Go\",\"tiers\":{\"starter\":{\"name\":\"Starter\",\"price\":\"0\",\"priceAnnual\":\"0\",\"description\":\"For individuals exploring AI agents\"},\"pro\":{\"name\":\"Pro\",\"price\":\"79\",\"priceAnnual\":\"790\",\"description\":\"For teams building production agents\"},\"usage\":{\"name\":\"Usage\",\"price\":\"0\",\"priceAnnual\":\"0\",\"description\":\"Pay only for what you use — no limits\"},\"enterprise\":{\"name\":\"Enterprise\",\"price\":\"499\",\"priceAnnual\":\"4990\",\"description\":\"For organizations with advanced needs\"}},\"features\":{\"agents\":\"Agents\",\"tokensPerMonth\":\"Tokens / month\",\"mcpEndpoints\":\"MCP Endpoints\",\"gradingRunsPerMonth\":\"Grading runs / month\",\"models\":\"Models\",\"support\":\"Supp
1ort\",\"sso\":\"SSO\",\"auditLogs\":\"Audit Logs\",\"versionHistory\":\"Version History\",\"teams\":\"Agent Teams\",\"pipelines\":\"Pipelines\",\"subAgents\":\"Sub-agent Delegation\",\"metaAgent\":\"AI Agent Builder\",\"observability\":\"Observability\",\"autoResearch\":\"Optimization Lab\",\"mcpProtocol\":\"MCP Protocol (Claude Code, Cursor...)\",\"extensions\":\"Extensions (30+ event hooks)\",\"githubIntegration\":\"GitHub Integration\",\"inputTokenPrice\":\"Input tokens\",\"outputTokenPrice\":\"Output tokens\",\"gradingPrice\":\"Grading\"},\"featureValues\":{\"starter\":{\"agents\":\"2\",\"tokensPerMonth\":\"10K\",\"mcpEndpoints\":\"1\",\"gradingRunsPerMonth\":\"5\",\"models\":\"Sonnet only\",\"support\":\"Community\",\"teams\":\"0\",\"pipelines\":\"0\",\"observability\":\"Basic\",\"autoResearch\":\"—\"},\"pro\":{\"agents\":\"25\",\"tokensPerMonth\":\"1M\",\"mcpEndpoints\":\"10\",\"gradingRunsPerMonth\":\"100\",\"models\":\"All models\",\"support\":\"Priority email\",\"teams\":\"5\",\"pipelines\":\"10\",\"observability\":\"Advanced\",\"autoResearch\":\"All 6 modes\"},\"usage\":{\"agents\":\"Unlimited\",\"tokensPerMonth\":\"Pay per use\",\"mcpEndpoints\":\"Unlimited\",\"gradingRunsPerMonth\":\"$$0.10 / run\",\"models\":\"All models\",\"support\":\"Email\",\"teams\":\"Unlimited\",\"pipelines\":\"Unlimited\",\"observability\":\"Advanced\",\"autoResearch\":\"All 6 modes\",\"inputTokenPrice\":\"$$3 / 1M\",\"outputTokenPrice\":\"$$15 / 1M\",\"gradingPrice\":\"$$0.10 / run\"},\"enterprise\":{\"agents\":\"Unlimited\",\"tokensPerMonth\":\"10M\",\"mcpEndpoints\":\"Unlimited\",\"gradingRunsPerMonth\":\"Unlimited\",\"models\":\"All + fine-tuned\",\"support\":\"Dedicated + SLA\",\"teams\":\"Unlimited\",\"pipelines\":\"Unlimited\",\"observability\":\"Complete\",\"autoResearch\":\"All 6 + priority\"}},\"comparisonTitle\":\"Compare Plans\",\"comparisonSubtitle\":\"Everything you need to build, test, and deploy AI agents\",\"usageNote\":\"Usage-based pricing\",\"usageNoteDesc\":\"Pay only for what you use. A transparent 17% platform fee covers the full agentic stack: sandboxed tool execution, session tracing, grading engine, Optimization Lab, multi-provider routing, encrypted API keys, and 4 deployment connectors.\",\"
1inputPrice\":\"$$3.90 / 1M input tokens\",\"outputPrice\":\"$$19.50 / 1M output tokens\",\"gradingPrice2\":\"$$0.14 / grading run\",\"commissionLabel\":\"Platform fee: 17%\",\"commissionDesc\":\"One of the lowest markups in the industry — covers agentic orchestration, 6-criteria grading, Optimization Lab (6 modes), sandboxed execution, real-time observability, Widget/Webhook/Slack/MCP connectors, and dedicated support.\",\"subscribe\":\"Subscribe\",\"subscribing\":\"Redirecting...\"},\"docs\":{\"title\":\"Documentation\",\"subtitle\":\"Complete guide to building agents with Kopern\",\"saveMarkdown\":\"Save as Markdown\",\"saveSkill\":\"Save as Skill\",\"savedMarkdown\":\"Documentation saved as Markdown\",\"copiedSkill\":\"Documentation copied — paste it as a skill's content\",\"loginRequired\":\"You must be logged in\"},\"settings\":{\"title\":\"Settings\",\"apiKeys\":\"API Keys\",\"defaults\":\"Defaults\",\"defaultProvider\":\"Default Provider\",\"defaultModel\":\"Default Model\",\"saveSettings\":\"Save Settings\",\"saved\":\"Settings saved\",\"saveFailed\":\"Failed to save settings\",\"language\":\"Language\",\"theme\":\"Theme\",\"githubDesc\":\"Connect your GitHub account to give agents access to your repositories.\",\"connectGithub\":\"Connect GitHub\",\"githubConnected\":\"Connected\",\"githubLinked\":\"GitHub account linked successfully\",\"githubAlreadyLinked\":\"GitHub is already linked to your account\",\"githubLinkFailed\":\"Failed to link GitHub account\",\"apiKeysDesc\":\"Your API keys are stored securely. Add multiple keys per provider for automatic failover on rate limits.\",\"failoverKey\":\"Failover key\",\"addFailoverKey\":\"Add failover key\",\"personalKey\":\"Personal API Key\",\"personalKeyDesc\":\"Connect Kopern to any MCP client (Claude Code, Cursor, Smithery...) — no agent setup required.\",\"personalKeyGenerate\":\"Generate key\",\"personalKeyDelete\":\"Delete key\",\"personalKeyCopied\":\"Key copied to clipboard\",\"personalKeyGenerated\":\"API key generated. Copy it now — it won't be shown again.\",\"personalKeyDeleted\":\"Personal API key deleted\",\"personalKeyDeleteConfirm\":\"Delete this key? Active MCP connections will stop working.\",\"personalKeyShowOnce\":\"Copy this key now — it won't be shown again\",\"personalKeyActive\":\"Active\"},\"apiKeys\":{\"title\":\"API Endpoints\",\"subtitle\":\"All MCP servers across your agents\",\"noEndpoints\":\"No API endpoints yet\",\"noEndpointsDesc\":\"Go to an agent's detail page and create an MCP server to expose it as an API\"},\"github\":{\"connectRepo\":\"Connect Repo\",\"connectDesc\":\"Select repositories your agent can access to read code, review PRs, and analyze projects.\",\"searchRepos\":\"Search repositories...\",\"connected\":\"{repo} connected\",\"disconnected\":\"{repo} disconnected\",\"noToken\":\"No GitHub connection found. Please sign in with GitHub to connect repositories.\",\"reloginHint\":\"Sign out and sign back in with GitHub to grant repository access.\",\"fetchFailed\":\"Failed to fetch repositories\",\"updateFailed\":\"Failed to update connected repos\",\"connectedRepos\":\"Connected Repos\"},\"integrations\":{\"title\":\"Connect Your Tools\",\"titleAccent\":\"Ship Faster\",\"subtitle\":\"Link GitHub repos for code-aware agents, or connect any service via MCP — Slack, Jira, AWS, Notion, and more.\",\"github\":{\"title\":\"GitHub Integration\",\"description\":\"Agents read your code, review PRs, analyze dependencies, and suggest fixes — directly from your repositories.\"},\"mcp\":{\"title\":\"MCP Connectors\",\"description\":\"Connect any external service via the Model Context Protocol. Slack, Linear, Notion, databases — your agents access them all.\"},\"workflow\":{\"title\":\"End-to-End Workflows\",\"description\":\"Chain integrations: an agent reads a GitHub PR, checks Jira for context, posts a review, and updates Slack — fully automated.\"}},\"deploySection\":{\"title\":\"Connect Everything,\",\"titleAccent\":\"Deploy Anywhere\",\"subtitle\":\"WhatsApp, Telegram, Slack, GitHub, webhooks, MCP, embedded widgets \\n 9 connectors to deploy your agents where your users already work.\",\"widget\":{\"title\":\"Chat Widget\",\"description\":\"Embed a fully-featured AI chat bubble on any website with a single script tag. Shadow DOM 
1isolation, SSE streaming, mobile-ready.\"},\"automation\":{\"title\":\"Automation Platforms\",\"description\":\"Connect n8n, Zapier, or Make to orchestrate complex workflows. Your agent becomes a node in your automation stack.\"},\"webhooks\":{\"title\":\"Webhooks\",\"description\":\"Trigger your agent from any service — Stripe, Jira, Zapier, n8n. Inbound JSON responses, outbound event notifications, HMAC security.\"},\"slack\":{\"title\":\"Slack\",\"description\":\"Your agent joins Slack conversations. Mention it in channels, DM it directly, full thread context preserved.\"},\"telegram\":{\"title\":\"Telegram\",\"description\":\"Deploy your agent as a Telegram bot. Private chats and groups, MarkdownV2 formatting, instant setup via @BotFather.\"},\"whatsapp\":{\"title\":\"WhatsApp\",\"description\":\"Reach your customers on WhatsApp — the #1 messaging app. Meta Cloud API, read receipts, 1000 free conversations/month.\"},\"integratesWith\":\"Integrates natively\"},\"graderSection\":{\"title\":\"Grade your agents\",\"titleAccent\":\"for free\",\"subtitle\":\"Test your AI agent's quality and security in seconds. Paste a system prompt or point at an HTTP endpoint — get a multi-criteria score with actionable insights.\",\"feature1Title\":\"Endpoint grading\",\"feature1Description\":\"Send adversarial attacks to your agent's HTTP endpoint and grade its responses across 4 security criteria.\",\"feature2Title\":\"Prompt grading\",\"feature2Description\":\"Paste your system prompt, generate test cases with AI, and get a detailed quality score.\",\"feature3Title\":\"Shareable scorecard\",\"feature3Description\":\"Share your agent's score on LinkedIn or X with a beautiful OG image. Show the world your agent is production-ready.\",\"cta\":\"Try the Grader\"},\"mcpSection\":{\"title\":\"Built for\",\"titleAccent\":\"Developers\",\"subtitle\":\"32 MCP tools to build, test, grade, and deploy AI agents from your terminal or IDE. One command to install. Zero dependencies.\",\"install\":{\"title\":\"One-Line Install\",\"description\":\"Add Kopern to Claude Code, Cursor, or Windsurf in seconds. Zero dependencies — just Node.js 18+.\"},\"tools\":{\"title\":\"32 Tools\",\"description\":\"Agent CRUD, grading suites, AutoTune optimization, multi-agent teams, pipelines, 7 connectors, memory, compliance reports, and more.\"},\"protocol\":{\"title\":\"MCP Protocol\",\"description\":\"Standard Streamable HTTP transport. Works with any MCP-compatible client — no vendor lock-in.\"},\"registries\":{\"title\":\"Available On\",\"description\":\"Published on npm, Smithery, Glama, and more. Install from your favorite registry.\"},\"cliTitle\":\"Full CLI Mode\",\"cliDescription\":\"Every Kopern feature is available as an MCP tool. Create agents, run grading, deploy templates, connect channels — all without leaving your editor.\",\"categories\":{\"agents\":\"Agent Management\",\"agentsCount\":\"8 tools\",\"grading\":\"Grading \u0026 Optimization\",\"gradingCount\":\"6 tools\",\"teams\":\"Teams \u0026 Pipelines\",\"teamsCount\":\"4 tools\",\"connectors\":\"Connectors\",\"connectorsCount\":\"7 tools\",\"sessions\":\"Sessions \u0026 Memory\",\"sessionsCount\":\"3 tools\",\"utilities\":\"Utilities\",\"utilitiesCount\":\"4 tools\"},\"httpTitle\":\"Or use Streamable HTTP directly\",\"fullDocsLink\":\"Full MCP Documentation\",\"npmBadge\":\"npm\",\"smitheryBadge\":\"Smithery\",\"glamaBadge\":\"Glama\"},\"bugReport\":{\"button\":\"Report a Bug\",\"title\":\"Report a Bug\",\"description\":\"Help us improve Kopern by reporting issues you encounter.\",\"severity\":\"Severity\",\"low\":\"Low — cosmetic or minor issue\",\"medium\":\"Medium — feature broken but workaround exists\",\"high\":\"High — critical blocker, data loss, or security issue\",\"descriptionLabel\":\"Description\",\"descriptionPlaceholder\":\"Describe the bug in detail: what happened, what you expected, steps to reproduce...\",\"emailLabel\":\"Your email\",\"emailOptional\":\"optional\",\"emailPlaceholder\":\"[email protected]\",\"emailHint\":\"We'll send you a follow-up when the bug is fixed.\",\"send\":\"Send Report\",\"sending\":\"Sending...\",\"sent\":\"Report Sent!\",\"contribute\":\"Want to contribute?\",\"githubCta\":\"View on GitHub\"},\"breadcrumbs\":{\"home\":\"Home\",\"dashboard\":\"Dashboard\",\"agents\":\"Agents\",\"edit\":\"Edit\",\"skills\":\"Skills\",\"tools\":\"Tools\",\"extensions\":\"Extensions\",\"playground\":\"Playground\",\"grading\":\"Grading\",\"mcpServers\":\"MCP Servers\",\"apiKeys\":\"API\",\"examples\":\"Workflow Examples\",\"docs\":\"Documentation\",\"settings\":\"Settings\",\"new\":\"New\",\"runs\":\"Runs\",\"pricing\":\"Pricing\",\"teams\":\"Teams\",\"pipelines\":\"Pipelines\",\"sessions\":\"Sessions\",\"bugs\":\"Bug Tracker\",\"billing\":\"Billing\",\"optimize\":\"Optimization Lab\"},\"optimize\":{\"title\":\"Agent Optimization Lab\",\"subtitle\":\"Self-improving agent optimization powered by tight-loop experimentation with objective metrics as feedback signal.\",\"currentScore\":\"Current Score\",\"modes\":{\"autotune\":\"AutoTune\",\"autofix\":\"AutoFix\",\"stress_lab\":\"Stress Lab\",\"tournament\":\"Tournament\",\"distillation\":\"Distillation\",\"evolution\":\"Evolution\"}
1,\"modesShort\":{\"autotune\":\"Tune\",\"autofix\":\"Fix\",\"stress_lab\":\"Stress\",\"tournament\":\"Arena\",\"distillation\":\"Distill\",\"evolution\":\"Evolve\"},\"descriptions\":{\"autotune\":\"Hill-climbing optimization loop: iteratively refines your agent's system prompt by analyzing grading results and proposing targeted improvements. Keeps improvements, discards regressions.\",\"autofix\":\"One-click fix: analyzes failed grading cases, diagnoses root causes, and patches your system prompt to pass. Verifies the fix with a full re-run.\",\"stress_lab\":\"Adversarial red-team testing: generates attack cases (prompt injection, edge cases, hallucination traps, jailbreak attempts) and automatically hardens your agent.\",\"tournament\":\"A/B tournament: pits different model/config combinations against your grading suite and ranks them by score, cost, and latency. Find the best config for YOUR use case.\",\"distillation\":\"Cost optimizer: evaluates your agent on cheaper models and finds the best quality/cost ratio. Same quality for a fraction of the price.\",\"evolution\":\"Multi-dimensional evolution: simultaneously optimizes prompt, model, thinking level, and more using population-based search. The most thorough optimization mode.\"},\"gradingSuite\":\"Grading Suite\",\"selectSuite\":\"Select a grading suite\",\"maxIterations\":\"Max Iterations\",\"maxGenerations\":\"Max Generations\",\"targetScore\":\"Target Score (0-1)\",\"startRun\":\"Start Optimization\",\"running\":\"Running...\",\"stop\":\"Stop\",\"runComplete\":\"Optimization complete!\",\"progressChart\":\"Score Progression\",\"kept\":\"Kept (improved)\",\"discarded\":\"Discarded\",\"iterationLog\":\"Iteration Log\",\"bestResult\":\"Best Result\",\"applyPrompt\":\"Apply Optimized Prompt\",\"promptApplied\":\"Optimized prompt applied to agent!\",\"securityReport\":\"Security Report\",\"totalTests\":\"Total Tests\",\"passed\":\"Passed\",\"robustness\":\"Robustness\",\"vulnerabilities\":\"Vulnerabilities Found\",\"applyHardenedPrompt\":\"Apply Hardened Prompt\",\"previewHardenedPrompt\":\"Preview Hardened Prompt\",\"hardenedPromptDesc\":\"The stress lab analyzed your vulnerabilities and generated a hardened version of your system prompt with added safety constraints.\",\"adversarialPrompt\":\"Adversarial Prompt\",\"expectedBehavior\":\"Expected Behavior\",\"agentResponse\":\"Agent Response\",\"systemic\":\"Systemic\",\"notSystemic\":\"Isolated\",\"category\":\"Category\",\"patchApplied\":\"Patch Applied\",\"variantsTested\":\"Variants Tested\",\"backToLab\":\"Back to Optimization Lab\",\"iterations\":\"iterations\",\"baselineScore\":\"Baseline\",\"improvement\":\"Improvement\",\"totalTokens\":\"Total Tokens\",\"optimizedPrompt\":\"Optimized Prompt\",\"diagnosticsFound\":\"Diagnostics\",\"originalScore\":\"Original Score\",\"newScore\":\"New Score\",\"promptDiff\":\"View Diff\",\"distillationResults\":\"Distillation Results\",\"teacherModel\":\"Teacher Model\",\"qualityRetention\":\"Quality\",\"costReduction\":\"Cost Savings\",\"bestROI\":\"Best ROI\",\"champion\":\"Champion\",\"noResults\":\"No detailed results available for this run (completed before persistence was added).\",\"leaderboard\":\"Tournament Leaderboard\",\"config\":\"Configuration\",\"score\":\"Score\",\"cost\":\"Cost/req\",\"latency\":\"Latency\",\"evolutionProgress\":\"Evolution Progress\",\"generationCount\":\"Generations\",\"populationSize\":\"Population\",\"runHistory\":\"Run History\",\"noSuites\":\"No Grading Suites\",\"noSuitesDesc\":\"Create a grading suite first to use the Optimization Lab.\",\"status\":{\"loading\":\"Loading agent data…\",\"analyzing\":\"Analyzing failed cases…\",\"validating\":\"Validating patch…\",\"evaluating_teacher\":\"Evaluating teacher model…\",\"evaluating_initial\":\"Evaluating initial configuration…\",\"probing\":\"Probing for vulnerabilities…\",\"exploiting\":\"Exploiting discovered weaknesses…\",\"hardening\":\"Hardening system prompt…\",\"generating_candidates\":\"Generating tournament candidates…\",\"generation\":\"Generation {n} in progress…\",\"round\":\"Round {n} in progress…\",\"evaluating_model\":\"Evaluating {model}…\",\"iteration\":\"Iteration {n}: {desc}\",\"diagnostic\":\"Diagnosis: {detail}\",\"vulnerability\":\"Vulnerability: {detail}\",\"student\":\"{model} — {quality}% quality retention\"}
1,\"pendingNotes\":{\"title\":\"{count} grading judge suggestion(s)\",\"description\":\"These suggestions will be automatically integrated into the next optimization.\",\"clear\":\"Clear\",\"cleared\":\"Suggestions cleared\"}},\"compliance\":{\"riskLevel\":\"Risk Level (EU AI Act Art. 6)\",\"riskMinimal\":\"Minimal Risk\",\"riskLimited\":\"Limited Risk\",\"riskHigh\":\"High Risk\",\"riskDescription\":\"Classify your agent per EU AI Act risk categories. High-risk agents require tool approval and audit logging.\",\"auditLog\":\"Audit Trail (Art. 12)\",\"auditLogDesc\":\"Log all tool calls and session events for compliance. Required for limited/high risk agents.\",\"humanOversight\":\"Human Oversight (Art. 14)\",\"transparencyBadge\":\"AI-generated content\",\"downloadReport\":\"Download Compliance Report (Art. 11)\",\"reportTitle\":\"EU AI Act Compliance Report\",\"reportGenerated\":\"Report generated successfully\",\"reportDownloaded\":\"Compliance report downloaded\",\"reportError\":\"Failed to generate compliance report\"},\"approval\":{\"title\":\"Tool Approval Required\",\"destructive\":\"Destructive\",\"toolLabel\":\"Tool\",\"approve\":\"Approve\",\"deny\":\"Deny\",\"denied\":\"Tool execution denied by operator.\",\"timeout\":\"Approval timed out — tool denied.\",\"policyLabel\":\"Tool Approval Policy\",\"policyAuto\":\"Automatic (no confirmation)\",\"policyDestructive\":\"Confirm destructive actions\",\"policyAll\":\"Confirm all tool calls\",\"policyDescription\":\"Controls whether tool calls require human approval before execution. EU AI Act Art. 14 recommends human oversight for sensitive operations.\"},\"connectors\":{\"title\":\"Connectors\",\"subtitle\":\"Deploy your agent where your users already work.\",\"widget\":{\"title\":\"Chat Widget\",\"description\":\"Embed a chat widget on any website with a simple script tag.\",\"configure\":\"Configure Widget\",\"enabled\":\"Widget enabled\",\"disabled\":\"W
1idget disabled\",\"welcomeMessage\":\"Welcome message\",\"welcomeMessagePlaceholder\":\"Hi! How can I help you today?\",\"position\":\"Position\",\"bottomRight\":\"Bottom right\",\"bottomLeft\":\"Bottom left\",\"poweredBy\":\"Show 'Powered by Kopern'\",\"poweredByHint\":\"Removable on Pro plan and above\",\"allowedOrigins\":\"Allowed origins\",\"allowedOriginsPlaceholder\":\"https://example.com (one per line)\",\"allowedOriginsHint\":\"Leave empty to allow all origins\",\"embedSnippet\":\"Embed snippet\",\"preview\":\"Preview\",\"apiKey\":\"Widget API Key\",\"generateKey\":\"Generate API Key\",\"regenerateKey\":\"Regenerate Key\",\"keyWarning\":\"Save this key — it won't be shown again.\",\"configuration\":\"Configuration\",\"toastSaved\":\"Widget configuration saved\",\"toastSaveError\":\"Failed to save configuration\",\"toastKeyError\":\"Failed to generate key\"},\"webhooks\":{\"title\":\"Webhooks\",\"description\":\"Connect your agent to external services via HTTP webhooks.\",\"back\":\"Back\",\"webhooksTab\":\"Webhooks\",\"logsTab\":\"Logs\",\"create\":\"Create\",\"save\":\"Save\",\"createWebhook\":\"Create Webhook\",\"editWebhook\":\"Edit Webhook\",\"toastSaved\":\"Webhook saved\",\"inbound\":\"Inbound\",\"outbound\":\"Outbound\",\"inboundDesc\":\"External services send data to your agent\",\"outboundDesc\":\"Your agent sends events to external services\",\"name\":\"Name\",\"namePlaceholder\":\"e.g. Stripe events\",\"type\":\"Type\",\"targetUrl\":\"Target URL\",\"targetUrlPlaceholder\":\"https://your-service.com/webhook\",\"secret\":\"HMAC Secret\",\"secretLabel\":\"Secret (optional)\",\"secretPlaceholder\":\"HMAC signing secret\",\"secretHint\":\"Optional. Used to sign/verify webhook payloads.\",\"events\":\"Trigger events\",\"creating\":\"Creating...\",\"endpointUrl\":\"Endpoint URL\",\"loadingWebhooks\":\"Loading webhooks...\",\"noWebhooks\":\"No webhooks configured yet.\",\"loadingLogs\":\"Loading logs...\",\"noLogs\":\"No logs yet.\",\"logs\":\"Recent Logs\",\"success\":\"Success\",\"error\":\"Error\",\"replaceKey\":\"Replace {key} with your full API key.\",\"test\":\"Test Webhook\",\"testSuccess\":\"Test webhook sent successfully!\",\"testError\":\"Test webhook failed\",\"toastCreated\":\"Webhook created\",\"toastDeleted\":\"Webhook deleted\",\"toastCreateError\":\"Failed to create webhook\",\"toastDeleteError\":\"Failed to delete webhook\",\"toastUpdateError\":\"Failed to update webhook\",\"toastLogsError\":\"Failed to load logs\",\"toastCopied\":\"Copied to clipboard\"},\"slack\":{\"title\":\"Slack Bot\",\"description\":\"Add your agent to a Slack workspace. Users can mention it in channels or DM it directly.\",\"connect\":\"Connect to Slack\",\"disconnect\":\"Disconnect\",\"connected\":\"Connected\",\"workspace\":\"Workspace\",\"channels\":\"Channels\",\"installedBy\":\"Installed by\",\"reconnect\":\"Reconnect\",\"confirmDisconnect\":\"Are you sure you want to disconnect this Slack workspace?\",\"toastDisconnected\":\"Slack workspace disconnected\",\"toastDisconnectError\":\"Failed to disconnect Slack workspace\",\"howItWorks\":\"How it works\",\"tipMention\":\"Mention the bot in any channel to get a response\",\"tipDm\":\"Send a direct message for private conversations\",\"tipThreads\":\"Thread replies maintain conversation context\",\"teamId\":\"Team ID\"},\"telegram\":{\"title\":\"Telegram Bot\",\"description\":\"Connect your agent to Telegram. Users can message the bot directly or add it to groups.\",\"botToken\":\"Bot Token\",\"botTokenPlaceholder\":\"Paste your bot token from @BotFather\",\"connect\":\"Connect Bot\",\"disconnect\":\"Disconnect\",\"connected\":\"Connected\",\"botUsername\":\"Bot Username\",\"confirmDisconnect\":\"Are you sure you want to disconnect this Telegram bot?\",\"toastConnected\":\"Telegram bot connected\",\"toastDisconnected\":\"Telegram bot disconnected\",\"toastConnectError\":\"Failed to connect Telegram bot\",\"toastDisconnectError\":\"Failed to disconnect\",\"howItWorks\":\"How it works\",\"step1\":\"Open Telegram and message @BotFather\",\"step2\":\"Send /newbot and follow the instructions\",\"step3\":\"Copy the bot token and paste it above\",\"step4\":\"Your agent will respond to all messages sent to the bot\"},\"whatsapp\":{\"title\":\"WhatsApp\",\"description\":\"Connect your agent to WhatsApp via Meta Business API. The #1 messaging channel for businesses in France.\",\"phoneNumberId\":\"Phone Number ID\",\"accessToken\":\"Permanent Access Token\",\"verifyToken\":\"Verify Token\",\"phoneNumber\":\"Display Phone Number\",\"connect\":\"Connect WhatsApp\",\"disconnect\":\"Disconnect\",\"connected\":\"Connected\",\"confirmDisconnect\":\"Are you sure you want to disconnect WhatsApp?\",\"toastConnected\":\"WhatsApp connected\",\"toastDisconnected\":\"WhatsApp disconnected\",\"toastConnectError\":\"Failed to connect WhatsApp\",\"toastDisconnectError\":\"Failed to disconnect\",\"webhookUrl\":\"Webhook URL\",\"webhookUrlHint\":\"Paste this URL in your Meta App Dashboard → WhatsApp → Configuration → Callback URL\",\"howItWorks\":\"How it works\",\"step1\":\"Create a Meta Business App at developers.facebook.com\",\"step2\":\"Enable WhatsApp Business API and add a phone number\",\"step3\":\"Copy the Phone Number ID and Access Token from the dashboard\",\"step4\":\"Paste the webhook URL below into your Meta App configuration\",\"step5\":\"Your agent will respond to all incoming WhatsApp messages\"},\"tutorial\":\"Tutorial\",\"closeTutorial\":\"Close tutorial\",\"noConnectors\":\"No connectors configured yet.\",\"planRequired\":\"Upgrade to Pro to use connectors.\"}
1,\"planLimit\":{\"title\":\"Plan limit reached\",\"description\":\"Upgrade your plan or switch to usage-based billing to continue.\",\"viewPlans\":\"View Plans\"},\"consent\":{\"title\":\"We respect your privacy\",\"description\":\"Kopern uses essential cookies for authentication and app functionality. You can also enable functional tracking to get detailed session analytics and usage breakdowns.\",\"acceptAll\":\"Accept All\",\"rejectNonEssential\":\"Essential Only\",\"customize\":\"Customize\",\"savePreferences\":\"Save Preferences\",\"essential\":\"Essential\",\"essentialDesc\":\"Authentication, security, language preferences. Always active — required for the app to function.\",\"functional\":\"Functional Analytics\",\"functionalDesc\":\"Detailed session tracking, per-agent usage breakdowns, error logs, and performance metrics. Helps you monitor your agents and optimize costs.\",\"alwaysActive\":\"Always active\",\"privacyLink\":\"Read our Privacy Policy\",\"updatedToast\":\"Privacy preferences updated\",\"managedInSettings\":\"You can change your preferences anytime in Settings.\"},\"privacy\":{\"title\":\"Privacy Policy\",\"lastUpdated\":\"Last updated: March 23, 2026\",\"intro\":\"Kopern (\\\"we\\\", \\\"us\\\", \\\"our\\\") is committed to protecting your personal data in compliance with the EU General Data Protection Regulation (GDPR) and French data protection laws (Loi Informatique et Libertés).\",\"controllerTitle\":\"1. Data Controller\",\"controllerText\":\"The data controller is Kopern, operated from France. For any data protection inquiries, contact us at: [email protected]\",\"dataCollectedTitle\":\"2. Data We Collect\",\"dataCollectedIntro\":\"We collect the following categories of personal data:\",\"dataAccount\":\"Account data: email address, display name, authentication provider (Google, GitHub, email)\",\"dataApiKeys\":\"API keys: your LLM provider keys (Anthropic, OpenAI, Google, Mistral), stored encrypted in Firestore\",\"dataUsage\":\"Usage data: token consumption, costs, request counts, per-agent breakdowns (for billing purposes)\",\"dataSessions\":\"Session data: conversation logs, tool call history, timestamps (when functional consent is given)\",\"dataGithub\":\"GitHub data: OAuth access token, connected repository names (if you enable GitHub integration)\",\"dataPayment\":\"Payment data: processed by Stripe — we store only your Stripe customer ID, not card details\",\"legalBasisTitle\":\"3. Legal Basis for Processing\",\"legalContract\":\"Contract performance: account management, billing, service delivery (Art. 6(1)(b) GDPR)\",\"legalConsent\":\"Consent: functional analytics, detailed session tracking (Art. 6(1)(a) GDPR)\",\"legalInterest\":\"Legitimate interest: security, fraud prevention, error monitoring (Art. 6(1)(f) GDPR)\",\"legalObligation\":\"Legal obligation: invoicing, tax records (Art. 6(1)(c) GDPR)\",\"cookiesTitle\":\"4. Cookies \u0026 Local Storage\",\"cookiesIntro\":\"Kopern uses minimal cookies:\",\"cookieLocale\":\"NEXT_LOCALE: stores your language preference (essential, 1 year)\",\"cookieAuth\":\"Firebase Auth: session tokens for authentication (essential, session-based)\",\"cookieConsent\":\"kopern_consent: your cookie preferences (essential, 1 year)\",\"cookiesNote\":\"We do not use any third-party analytics, advertising cookies, or tracking pixels.\",\"retentionTitle\":\"5. Data Retention\",\"retentionText\":\"Account data is retained for the duration of your account. Usage data is retained for 24 months for billing purposes. Session data is retained for 12 months. You may request deletion at any time.\",\"thirdPartiesTitle\":\"6. Third-Party Processors\",\"thirdFirebase\":\"Google Firebase (Firestore, Authentication): EU data center, data storage and auth\",\"thirdStripe\":\"Stripe: PCI-DSS compliant payment processing\",\"thirdVercel\":\"Vercel: application hosting (edge functions, EU region available)\",\"thirdLlm\":\"LLM Providers (Anthropic, OpenAI, Google, Mistral): your prompts are sent to these providers using YOUR API keys — Kopern does not store prompt content on its servers\",\"rightsTitle\":\"7. Your Rights (GDPR Art. 15-22)\",\"rightsIntro\":\"You have the right to:\",\"rightAccess\":\"Access: download all your personal data (Settings → Data \u0026 Privacy → Export)\",\"rightRectification\":\"Rectification: update your data in Settings at any time\",\"rightErasure\":\"Erasure: delete your account and all associated data (Settings → Data \u0026 Privacy → Delete Account)\",\"rightPortability\":\"Portability: export your data in JSON format\",\"rightRestriction\":\"Restriction: limit processing by disabling functional tracking\",\"rightObjection\":\"Objection: contact us to object to any processing\",\"rightComplaint\":\"Lodge a complaint with the CNIL (cnil.fr) if you believe your rights are not respected\",\"transfersTitle\":\"8. International Transfers\",\"transfersText\":\"Your data may be processed in the US (Firebase, Vercel, LLM providers). These transfers are covered by Standard Contractual Clauses (SCCs) and the EU-US Data Privacy Framework where applicable.\",\"securityTitle\":\"9. Security Measures\",\"securityText\":\"We implement encryption at rest (Firestore), encrypted API key storage, HMAC signature verification for webhooks, CORS whitelisting for widgets, sandboxed code execution for custom tools, and role-based access control.\",\"changesTitle\":\"10. Changes to This Policy\",\"changesText\":\"We will notify you of material changes via email or in-app notification. Continued use after notification constitutes acceptance.\",\"contactTitle\":\"11. Contact\",\"contactText\":\"For any privacy-related questions or to exercise your rights: [email protected]\"},\"terms\":{\"title\":\"Terms of Service\",\"lastUpdated\":\"Last updated: March 23, 2026\",\"intro\":\"These Terms of Service (\\\"Terms\\\") govern your use of the Kopern platform (\\\"Service\\\"), operated from France.\",\"acceptanceTitle\":\"1. Acceptance\",\"acceptanceText\":\"By creating an account or using the Service, you agree to these Terms. If you do not agree, do not use the Service.\",\"serviceTitle\":\"2. Service Description\",\"serviceText\":\"Kopern is an AI agent builder platform that allows you to create, test, grade, optimize, and deploy AI agents. The Service includes: agent creation and configuration, grading engine, optimization lab, multi-provider LLM integration, deployment c
1onnectors (widget, webhooks, Slack, MCP), billing and usage tracking.\",\"accountTitle\":\"3. Account \u0026 API Keys\",\"accountText\":\"You are responsible for maintaining the security of your account credentials and API keys. Kopern stores your LLM provider API keys encrypted in Firestore to execute agent requests on your behalf. You must have valid agreements with LLM providers whose keys you provide. Kopern is not liable for charges incurred on your provider accounts.\",\"usageTitle\":\"4. Acceptable Use\",\"usageText\":\"You agree not to: use the Service for illegal purposes, attempt to bypass security measures, share API keys with unauthorized parties, use agents to generate harmful, misleading, or illegal content, reverse-engineer or scrape the Service.\",\"billingTitle\":\"5. Billing \u0026 Payments\",\"billingText\":\"Free (Starter) tier has limited features. Paid plans (Pro, Usage-Based, Enterprise) are billed through Stripe. Usage-based billing applies a 17% platform fee on top of LLM provider costs. You can cancel at any time; access continues until the end of the billing period. Refunds are handled on a case-by-case basis.\",\"ipTitle\":\"6. Intellectual Property\",\"ipText\":\"You retain all rights to the agents, prompts, tools, and content you create on Kopern. Kopern retains rights to the platform, UI, and underlying technology. Agents deployed via connectors (widget, webhook, Slack) remain your property.\",\"liabilityTitle\":\"7. Limitation of Liability\",\"liabilityText\":\"Kopern is provided \\\"as is\\\". We are not liable for: LLM provider outages or errors, content generated by your agents, data loss beyond our reasonable control, indirect or consequential damages. Our total liability is limited to the amount you paid us in the 12 months preceding the claim.\",\"terminationTitle\":\"8. Termination\",\"terminationText\":\"Either party may terminate at any time. Upon termination, you may export your data within 30 days. After 30 days, your data will be permanently deleted.\",\"lawTitle\":\"9. Governing Law\",\"lawText\":\"These Terms are governed by French law. Disputes shall be submitted to the courts of Paris, France.\",\"changesTitle\":\"10. Changes\",\"changesText\":\"We may update these Terms with 30 days notice. Continued use after the notice period constitutes acceptance.\",\"contactTitle\":\"11. Contact\",\"contactText\":\"For questions about these Terms: [email protected]\"},\"gdpr\":{\"dataPrivacy\":\"Data \u0026 Privacy\",\"dataPrivacyDesc\":\"Manage your data, privacy preferences, and exercise your GDPR rights.\",\"consentPreferences\":\"Cookie Preferences\",\"consentPreferencesDesc\":\"Choose which types of data processing you consent to.\",\"exportData\":\"Export My Data\",\"exportDataDesc\":\"Download all your personal data in JSON format (GDPR Art. 15).\",\"exportButton\":\"Export Data\",\"exporting\":\"Exporting...\",\"exportSuccess\":\"Data exported successfully\",\"exportError\":\"Failed to export data\",\"deleteAccount\":\"Delete My A
1ccount\",\"deleteAccountDesc\":\"Permanently delete your account and all associated data (GDPR Art. 17). This action is irreversible.\",\"deleteButton\":\"Delete Account\",\"deleteConfirm\":\"Are you sure? This will permanently delete your account, all agents, sessions, usage data, and API keys. This cannot be undone.\",\"deleting\":\"Deleting...\",\"deleteSuccess\":\"Account deleted\",\"deleteError\":\"Failed to delete account\"},\"operator\":{\"title\":\"Dashboard\",\"subtitle\":\"Simplified view of your agent\",\"messagesThisMonth\":\"Messages this month\",\"resolutionRate\":\"Resolution rate\",\"avgSatisfaction\":\"Satisfaction\",\"monthlyCost\":\"Monthly cost\",\"trendUp\":\"+{value}%\",\"trendDown\":\"{value}%\",\"trendNew\":\"New\",\"conversations\":{\"title\":\"Recent conversations\",\"empty\":\"No conversations yet\",\"viewAll\":\"View all sessions\"},\"improve\":{\"button\":\"Improve my agent\",\"running\":\"Analyzing...\",\"done\":\"{count} improvement(s) found and applied\",\"noSuite\":\"No test suite configured\",\"error\":\"Error during analysis\"},\"comingSoon\":\"Coming soon\",\"expertMode\":\"Expert mode\",\"connectors\":{\"title\":\"Connected channels\",\"notConnected\":\"Your agent is not connected yet\",\"configure\":\"Configure\",\"active\":\"Connected\",\"inactive\":\"Not connected\"},\"editForm\":{\"title\":\"Customize your agent\",\"description\":\"Edit your business information to update your agent.\",\"save\":\"Save changes\",\"saving\":\"Updating...\",\"saved\":\"Agent updated successfully\",\"error\":\"Error updating agent\",\"noTemplate\":\"This agent was not created from a template. Use expert mode to customize it.\"}},\"memory\":{\"title\":\"Agent Memory\",\"subtitle\":\"Facts remembered by your agent across conversations\",\"empty\":\"No memories saved yet\",\"add\":\"Add\",\"edit\":\"Edit\",\"delete\":\"Delete\",\"key\":\"Key\",\"value\":\"Value\",\"category\":\"Category\",\"usage\":\"{count}/{max} memories\",\"notEnabled\":\"Memory is not enabled for this agent.\",\"enableHint\":\"Enable the 'Memory' tool in agent settings.\",\"addDialog\":{\"title\":\"Add a memory\",\"save\":\"Save\"},\"deleted\":\"Memory deleted\",\"saved\":\"Memory saved\",\"error\":\"Error\",\"categories\":{\"fact\":\"Fact\",\"preference\":\"Preference\",\"context\":\"Context\",\"custom\":\"Other\"}},\"serviceConnectors\":{\"title\":\"Connected Services\",\"loading\":\"Loading...\",\"disconnect\":\"Disconnect\",\"emailActive\":\"Email active\",\"calendarActive\":\"Calendar active\",\"tokenExpired\":\"Token expired.\",\"reconnect\":\"Reconnect\",\"notConnected\":\"Connect your Google or Microsoft account to enable email and calendar tools.\"},\"socialConnectors\":{\"title\":\"Social Media Connectors\",\"connect\":\"Connect\",\"disconnect\":\"Disconnect\",\"comingSoon\":\"Coming soon\",\"postsToday\":\"posts today\",\"blueskyHelp\":\"Create an App Password at bsky.app \u003e Settings \u003e App Passwords. Never use your main password.\",\"handle\":\"Handle\",\"appPassword\":\"App Password\"},\"grader\":{\"badge\":\"Free AI Agent Grader\",\"titleEndpoint\":\"Grade your AI agent\",\"titlePrompt\":\"Grade your agent prompt\",\"subtitleEndpoint\":\"Point us at your agent's HTTP endpoint. We send adversarial attacks and grade its responses across 4 security criteria.\",\"subtitlePrompt\":\"Paste your system prompt, generate adversarial test cases with AI, and get a multi-criteria quality score.\",\"tabEndpoint\":\"Test your endpoint\",\"tabPrompt\":\"Test a system prompt\",\"endpointTitle\":\"Agent Endpoint\",\"endpointUrl\":\"Agent Endpoint URL\",\"endpointUrlPlaceholder\":\"https://api.example.com/chat\",\"probe\":\"Probe\",\"probing\":\"Probing...\",\"probeConnected\":\"Connected\",\"probeFormat\":\"Format\",\"probeFailed\":\"Failed\",\"probeAutoDetected\":\"Auto-detected response path\",\"apiFormat\":\"API Format\",\"authentication\":\"Authentication\",\"authConfigured\":\"configured\",\"authNone\":\"No authentication\",\"authBearer\":\"Bearer token\",\"authApiKeyHeader\":\"API key (header)\",\"authApiKeyQuery\":\"API key (query param)\",\"authHeaderPlaceholder\":\"Header name (e.g. X-API-Key)\",\"authQueryPlaceholder\":\"Query param name (e.g. api_key)\",\"authBearerPlaceholder\":\"Bearer token\",\"authKeyPlaceholder\":\"API key value\",\"authDisclaimer\":\"Your credentials are sent directly to your endpoint and never stored by 
1Kopern.\",\"advancedConfig\":\"Advanced Configuration\",\"bodyTemplate\":\"Request Body Template\",\"bodyTemplatePlaceholder\":\"= test message\",\"responsePath\":\"Response Path (JSONPath to agent output)\",\"responsePathPlaceholder\":\"Auto-detected after probe (e.g. choices[0].message.content)\",\"presetOpenai\":\"OpenAI-compatible\",\"presetAnthropic\":\"Anthropic-compatible\",\"presetSimple\":\"Simple JSON API\",\"presetN8n\":\"n8n / Zapier Webhook\",\"presetCustom\":\"Custom\",\"systemPromptTitle\":\"System Prompt\",\"systemPromptPlaceholder\":\"Enter your AI agent's system prompt...\",\"testCasesTitle\":\"Test Cases\",\"generateWithAi\":\"Generate with AI\",\"generating\":\"Generating...\",\"generatingEndpoint\":\"Probing endpoint \u0026 generating attacks...\",\"generatingPrompt\":\"Generating adversarial test cases...\",\"gradeEndpoint\":\"Grade my agent\",\"gradePrompt\":\"Grade my prompt\",\"grading\":\"Grading...\",\"freeGradings\":\"5 free gradings per day. No account required.\",\"credentialsDisclaimer\":\"Your credentials are never stored.\",\"testResults\":\"Test Results\",\"showResponse\":\"Show full response\",\"chars\":\"chars\",\"resultsWillAppear\":\"Results will appear here\",\"emptyEndpoint\":\"Configure your endpoint, probe it, generate attack cases with AI, then grade your agent.\",\"emptyPrompt\":\"Enter your system prompt, generate test cases with AI, then click \\\"Grade my prompt\\\" to see your score.\",\"testsPassed\":\"tests passed\",\"avgLatency\":\"Avg latency\",\"copyLink\":\"Copy link\",\"linkCopied\":\"Link copied!\",\"premiumLatency\":\"Latency (P95)\",\"premiumConsistency\":\"Consistency\",\"premiumToolAudit\":\"Tool Usage Audit\",\"premiumCompliance\":\"EU AI Act Compliance\",\"ctaAutofixTitle\":\"Kopern AutoFix can automatically improve your agent's weaknesses.\",\"ctaAutofix\":\"Fix issues with Kopern AutoFix\",\"ctaUnlockCriteria\":\"Unlock all 8 criteria with Kopern Pro\",\"ctaPromptTitle\":\"Kopern templates score 89+ on average.\",\"ctaPrompt\":\"Improve your agent with Kopern\",\"rateLimitError\":\"Rate limit reached. Try again tomorrow.\",\"gradingFailed\":\"Grading failed\",\"networkError\":\"Network error. Please try again.\",\"testCaseGenerated\":\"adversarial test cases generated\",\"enterLongerPrompt\":\"Enter a longer system prompt first (at least 20 characters)\",\"enterEndpointUrl\":\"Enter your endpoint URL first\",\"enterSystemPrompt\":\"Please enter a system prompt\",\"enterEndpoint\":\"Please enter your endpoint URL\",\"addTestCase\":\"Add at least one test case with input and expected behavior\",\"thinkingEndpoint1\":\"Connecting to your endpoint...\",\"thinkingEndpoint2\":\"Sending adversarial requests...\",\"thinkingEndpoint3\":\"Evaluating agent responses...\",\"thinkingEndpoint4\":\"Checking safety boundaries...\",\"thinkingEndpoint5\":\"Measuring response latency...\",\"thinkingEndpoint6\":\"Scoring instruction compliance...\",\"thinkingEndpoint7\":\"Analyzing output quality...\",\"thinkingEndpoint8\":\"Computing criteria breakdown...\",\"thinkingPrompt1\":\"Analyzing system prompt structure...\",\"thinkingPrompt2\":\"Running agent against test cases...\",\"thinkingPrompt3\":\"Evaluating output quality...\",\"thinkingPrompt4\":\"Checking safety boundaries...\",\"thinkingPrompt5\":\"Scoring response accuracy...\",\"thinkingPrompt6\":\"Computing criteria breakdown...\",\"thinkingPrompt7\":\"Measuring instruction compliance...\",\"thinkingPrompt8\":\"Stress-testing edge cases...\",\"testProgress\":\"Test {current} of {total}\",\"running\":\"Running...\",\"passed\":\"Passed\",\"failed\":\"Failed\",\"generationFailed\":\"Generation failed. Try again.\",\"cannotReachEndpoint\":\"Cannot reach endpoint\",\"endpointRequired\":\"Endpoint URL is required\",\"promptTooShort\":\"System prompt too short\",\"testCaseName\":\"Test case name\",\"testCaseInput\":\"User message to send to the agent...\",\"testCaseExpected\":\"Expected behavior (what the agent should do/say)...\",\"addTestCaseBtn\":\"Add test case\"},\"monitor\":{\"badge\":\"AI Workflow Monitor\",\"titleEndpoint\"
1:\"Is your AI workflow still delivering?\",\"titleModel\":\"Benchmark a raw LLM model\",\"subtitleEndpoint\":\"Run 18 standardized tests against your endpoint. Detect reasoning drops, instruction drift, and edge case failures before your users do.\",\"subtitleModel\":\"Test any model from Anthropic, OpenAI, Google, or Mistral against our standardized quality battery.\",\"tabEndpoint\":\"Your Endpoint\",\"tabModel\":\"Raw Model\",\"endpointTitle\":\"Connect your API endpoint\",\"enterEndpointUrl\":\"Enter your endpoint URL\",\"runDiagnosticEndpoint\":\"Run Quality Diagnostic\",\"freeDiagnosticsEndpoint\":\"3 free diagnostics per day. 18 test prompts sent to your endpoint.\",\"emptyStateEndpoint\":\"Connect your AI endpoint and run 18 standardized quality tests — reasoning, instructions, consistency, latency, edge cases, and output quality.\",\"configTitle\":\"Quick diagnostic — test a model\",\"selectModel\":\"Select model\",\"apiKey\":\"API Key\",\"securityDisclaimer\":\"Your API key is only used for the diagnostic and is never stored, logged, or included in any response. It stays in memory during the test and is immediately discarded.\",\"runDiagnostic\":\"Run Diagnostic\",\"freeDiagnostics\":\"3 free diagnostics per day. Your API key pays for the 18 LLM calls (~$0.50-$1.50 depending on model).\",\"rateLimitError\":\"Rate limit reached. Try again tomorrow.\",\"diagnosticFailed\":\"Diagnostic failed. Please check your configuration and try again.\",\"networkError\":\"Network error. Please try again.\",\"healthScore\":\"Quality Score\",\"tests\":\"tests\",\"avgLatency\":\"avg latency\",\"insights\":\"Diagnostic Insights\",\"baselineComparison\":\"Baseline Comparison\",\"overallDelta\":\"Overall vs Baseline\",\"yours\":\"Yours\",\"baseline\":\"Baseline\",\"detailedResults\":\"Detailed Results\",\"response\":\"Response\",\"criteria\":\"Criteria Scores\",\"linkCopied\":\"Link copied!\",\"copyLink\":\"Copy Link\",\"shareX\":\"Share on X\",\"signUpCta\":\"Monitor my agents\",\"resultsWillAppear\":\"Results will appear here\",\"emptyState\":\"Test a model with standardized prompts, then sign up to monitor your own agents and workflows continuously.\",\"testProgress\":\"Test {current} of {total}\",\"running\":\"Running...\",\"passed\":\"Passed\",\"failed\":\"Failed\",\"thinking1\":\"Initializing diagnostic battery...\",\"thinking2\":\"Testing reasoning capabilities...\",\"thinking3\":\"Evaluating instruction following...\",\"thinking4\":\"Measuring consistency across runs...\",\"thinking5\":\"Benchmarking latency...\",\"thinking6\":\"Probing edge case handling...\",\"thinking7\":\"Analyzing output quality...\",\"thinking8\":\"Comparing against baselines...\",\"connectedCta\":\"Connect your agents for continuous monitoring\",\"connectedDescription\":\"This demo tests a raw model. The real power is monitoring YOUR agents — with your prompts, your test cases, and drift alerts when quality drops.\",\"driftWarning\":\"Teams using LLMs in production discover quality degradation 6 weeks too late on average. Kopern Monitor catches it in hours.\",\"mcpHint\":\"Available as MCP tools — monitor directly from your IDE or CI/CD pipeline.\",\"downloadReport\":\"Download Report\",\"showMore\":\"Show full response\",\"showLess\":\"Collapse\",\"reportTitle\":\"Diagnostic Report\",\"runNotFound\":\"This diagnostic run was not found or has expired.\",\"runNewDiagnostic\":\"Run a new diagnostic\",\"teamCreated\":\"Monitor team created! Check your agents.\",\"teamCreationFailed\":\"Could not create monitor team. Try again.\",\"detailedResultsNotAvailable\":\"Detailed test results are not available for shared reports.\"},\"monitorSection\":{\"title\":\"Workflow\",\"titleAccent\":\"Quality Monitor\",\"subtitle\":\"Teams discover AI quality drops 6 weeks too late. Continuous regression testing for your AI workflows — like unit tests, but for agent quality.\",\"feature1Title\":\"Continuous Regression Testing\",\"feature1Description\":\"Monitor your agents with your own prompts and test cases. Detect quality drift before it impacts your users.\",\"feature2Title\":\"Drift Detection \u0026 Alerts\",\"feature2Description\":\"Automatic comparison against your last run. Get Slack/email alerts the moment quality drops below your threshold.\",\"feature3Title\":\"MCP Integration\",\"feature3Description\":\"Run monitoring checks directly from your IDE, CI/CD, or terminal. Quality monitoring as a natural step in your dev workflow.\",\"cta\":\"Try Free Diagnostic\"},\"footer\":{\"privacy\":\"Privacy Policy\",\"terms\":\"Terms of Service\"}},\"children\":[\"$L39\",\"$L3a\"]}]}]}],\"$L3b\"]}]\n"])</script>
1<script>self.__next_f.push([1,"3c:I[512101,[\"/_next/static/chunks/586874a0e3a0b2da.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/c459da24e5de9d10.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/abbaad18e04b9d49.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a51ef5039fd53285.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/9e23a0d69e1f66a9.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a1c7696cfea1328a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6e127ce322ae25c8.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/741dd708061fe346.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6ba55f017255994b.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"CookieConsent\"]\n3d:I[713354,[\"/_next/static/chunks/586874a0e3a0b2da.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/c459da24e5de9d10.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/abbaad18e04b9d49.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a51ef5039fd53285.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/9e23a0d69e1f66a9.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/a1c7696cfea1328a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6e127ce322ae25c8.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/741dd708061fe346.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/6ba55f017255994b.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"Toaster\"]\n39:[\"$\",\"$L2\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L3\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]\n3a:[\"$\",\"$L3c\",null,{}]\n3b:[\"$\",\"$L3d\",null,{}]\n"])</script>
1<script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1, maximum-scale=5\"}],[\"$\",\"meta\",\"2\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: light)\",\"content\":\"#ffffff\"}],[\"$\",\"meta\",\"3\",{\"name\":\"theme-color\",\"media\":\"(prefers-color-scheme: dark)\",\"content\":\"#1a1625\"}]]\n"])</script>
1<script>self.__next_f.push([1,"3e:I[27201,[\"/_next/static/chunks/d96012bcfc98706a.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\",\"/_next/static/chunks/73e3194f06db260e.js?dpl=dpl_5Fg45TmRWFQkKW9jZ15jgdRrEv9E\"],\"IconMark\"]\nb:null\n"])</script>
1<script>self.__next_f.push([1,"f:[[\"$\",\"title\",\"0\",{\"children\":\"Blog — Kopern\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Behind the scenes of building Kopern: engineering decisions, AI agent insights, and product updates.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"Kopern\"}],[\"$\",\"link\",\"3\",{\"rel\":\"author\",\"href\":\"https://kopern.ai\"}],[\"$\",\"meta\",\"4\",{\"name\":\"author\",\"content\":\"Kopern\"}],[\"$\",\"link\",\"5\",{\"rel\":\"manifest\",\"href\":\"/manifest.webmanifest\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"meta\",\"6\",{\"name\":\"generator\",\"content\":\"Next.js\"}],[\"$\",\"meta\",\"7\",{\"name\":\"keywords\",\"content\":\"AI agent builder,AI agent platform,AI agent grading,LLM agent orchestration,custom AI tools,tool calling,AI agent testing,multi-agent teams,MCP server,Model Context Protocol,Claude agent,GPT agent,Gemini agent,Mistral agent,AI automation,AI pipeline builder,agentic AI,agent evaluation,AI grading,no-code AI agent,AI agent deployment,AI chat widget,AI webhook integration,AI Slack bot,embeddable AI chat,AI agent connector,n8n AI agent,Zapier AI agent,AI agent API,AI agent optimization,prompt optimization,AI agent sandbox,constructeur agent IA,agent IA personnalisé,orchestration multi-agents,évaluation agent IA,chatbot IA personnalisé,déploiement agent IA,AI workflow monitoring,LLM quality testing,AI endpoint grading,AI agent monitoring,LLM drift detection,AI quality assurance,Bluesky AI bot,social media AI agent,AI workflow quality,LLM benchmark\"}],[\"$\",\"meta\",\"8\",{\"name\":\"creator\",\"content\":\"Kopern\"}],[\"$\",\"meta\",\"9\",{\"name\":\"publisher\",\"content\":\"Kopern\"}],[\"$\",\"meta\",\"10\",{\"name\":\"robots\",\"content\":\"index, follow\"}],[\"$\",\"meta\",\"11\",{\"name\":\"googlebot\",\"content\":\"index, follow, max-video-preview:-1, max-image-preview:large, max-snippet:-1\"}],[\"$\",\"meta\",\"12\",{\"name\":\"category\",\"content\":\"technology\"}],[\"$\",\"link\",\"13\",{\"rel\":\"canonical\",\"href\":\"https://kopern.ai/en/blog\"}],[\"$\",\"link\",\"14\",{\"rel\":\"alternate\",\"hrefLang\":\"en\",\"href\":\"https://kopern.ai/en/blog\"}],[\"$\",\"link\",\"15\",{\"rel\":\"alternate\",\"hrefLang\":\"fr\",\"href\":\"https://kopern.ai/fr/blog\"}],[\"$\",\"meta\",\"16\",{\"name\":\"format-detection\",\"content\":\"telephone=no, address=no, email=no\"}],[\"$\",\"meta\",\"17\",{\"property\":\"og:title\",\"content\":\"Blog — Kopern\"}],[\"$\",\"meta\",\"18\",{\"property\":\"og:description\",\"content\":\"Behind the scenes of building Kopern: engineering decisions, AI agent insights, and product updates.\"}],[\"$\",\"meta\",\"19\",{\"property\":\"og:url\",\"content\":\"https://kopern.ai/en\"}],[\"$\",\"meta\",\"20\",{\"property\":\"og:locale\",\"content\":\"en_US\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:creator\",\"content\":\"@kopern_ai\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:title\",\"content\":\"Kopern — AI Agent Builder, Orchestrator \u0026 Grader\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:description\",\"content\":\"Build, test, deploy, and connect production-grade AI agents with tool calling, grading, multi-agent teams, and external connectors.\"}],[\"$\",\"meta\",\"25\",{\"name\":\"twitter:image\",\"content\":\"https://kopern.ai/twitter-image\"}],[\"$\",\"link\",\"26\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.d80630a9.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"link\",\"27\",{\"rel\":\"icon\",\"href\":\"/favicon.ico\",\"sizes\":\"any\"}],[\"$\",\"link\",\"28\",{\"rel\":\"icon\",\"href\":\"/icon.svg\",\"type\":\"image/svg+xml\"}],[\"$\",\"link\",\"29\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\",\"sizes\":\"180x180\"}],[\"$\",\"$L3e\",\"30\",{}]]\n"])</script>
1</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.