Skip to content
Anton GoncharovAI systems developer

Web app · multi-agent system · content

A team of AI agents for content

A neural network writes fast but confidently mixes up numbers and promises what doesn’t exist: “25% off” instead of 20%, “open 24/7”, “discounts can be combined”. That’s why a single “write a post” prompt won’t do for a business. Here the text is made by a team of agents with different roles: every claim is checked against the company knowledge base, errors go back to the writer, the editor keeps the brand voice, and a human still publishes it — after approval.

Scenario: Pedal bike workshop in Yekaterinburg — fictional: a price list, an October promotion, a warranty, winter tires, mechanics’ tips, reviews and a weekly content plan.

Demo screenshot: A team of AI agents for content

Open the demo

Best on a computer: the agents’ conversation and finished publications are side by side.

The app runs in your browser: nothing is sent to a server.

What the demo shows

  • Four ready briefs — tips, promotion, product selection, case study — and your own brief: topic, keywords, audience, goal

  • The agents’ conversation step by step: who passed what to whom, how many tokens and seconds a model would have used

  • The researcher finds facts in the knowledge base; the writer cites a source for every sentence

  • The fact-checker verifies every number, deadline, opening hours, promotion terms and “free” against the source; unsupported superlatives are questioned

  • Up to three revision rounds: the writer fixes a number from the source or removes the sentence, and the fact-checker checks again

  • The editor keeps the brand voice: bureaucratese, overly formal address, exclamations, caps lock, long sentences, emoji beyond the channel’s norm

  • The SMM agent adapts the text to limits: Telegram up to 1,024 characters, a newsletter with subject and preheader, an article with meta and slug, a carousel of up to 7 slides

  • Previews as in Telegram, VK, an email client, search results and a carousel; disputed spots are highlighted right in the text

  • Manual edits with on-the-fly rechecking and one-click fixes; the editor-in-chief passes comments like “shorter” or “add the warranty” to the right agent

  • Approval only without errors; an approved post goes into the content plan with rules: one post a day, a newsletter once a week

  • The knowledge base is editable: change a price and the finished texts immediately show the mismatch

How to try it

  1. Run the team

    Brief “How to prepare your bike for winter” → “Run the team”. A couple of steps later the fact-checker returns the draft: the text says 25% off and “24/7”, while the sources say 20% and regular opening hours.

  2. Look at the edits

    Expand the writer’s and editor’s messages: what it was, what it became and why. “Skip” shows the finished texts right away.

  3. Compare channels

    On the right are Telegram, the newsletter and the article: one piece, different length and formatting. The article has a search snippet.

  4. Request changes

    “Add the warranty” — the researcher finds the fact, the fact-checker confirms it and the SMM agent rebuilds the post. “Shorter” and “No emoji” work too.

  5. Turn off checking

    Brief “20% off servicing”, untick “Fact-checker” and “Editor” and run again — the model’s errors make it into the text. Such a post can’t be approved until you press “Fix”.

  6. Approve and schedule

    “Approve” — the post goes into the content plan on a free day. Move it to Monday and the plan shows a conflict with another post.

No paid neural networks

The agents here are rule-based stubs; there are no paid neural network requests. Planning, knowledge base search, checking numbers and claims against sources, brand voice checks and channel adaptation work for real. The first draft’s errors — the wrong number, “24/7”, bureaucratese — are planted on purpose to show how the team catches them. In a production project the stubs are replaced by models with their own prompts and the same orchestration.

The demo runs without OpenAI, YandexGPT or GigaChat API keys. Wherever a production system calls a model, there’s a local stub with the same interface — so the demo is free, always available and never makes things up.

What a production project adds

  • Agent orchestration in Python: LangGraph or a custom state graph with a cap on revision rounds and a log of every step
  • Different models for different roles: YandexGPT, GigaChat or GPT for text, a cheap model for style checks, code for numbers
  • The company knowledge base in vector search: prices, promotions, policies and reviews updated from 1C, the CRM and spreadsheets
  • The fact-checker verifies the answer against sources in code rather than asking the model to “check itself”; disputed points go to a human
  • Publishing via the Telegram, VK and newsletter service APIs on approval, with the content plan in Google Sheets or Notion

Stack

  • React 19
  • TypeScript
  • Zustand
  • Vite
  • Tailwind CSS

Developer’s comment

Anton Goncharov

AI systems developer · Python

For business

  • Posts, newsletters and articles are prepared in minutes, and the prices, deadlines and promotion terms in them match the price list — no “25% off” that doesn’t exist.
  • One piece immediately becomes versions for every channel: Telegram, VK, a newsletter, a blog and a carousel.
  • Nothing is published on its own: the marketer sees what the agents checked and approves the finished result.

For developers

  • The pipeline is a pure function of the brief, the knowledge base and the settings: tests run all briefs and check that no errors remain after the revision rounds.
  • The fact-checker parses numbers with units — rubles, percentages, ranges, time — and matches them with the source fact by word stem overlap.
  • Every edit, including a human’s, is rechecked on the fly: highlighting, “Fix” buttons and the approval block are all computed from one report.

Tips

  • Tip 01

    Don’t ask the model to check itself: verify numbers and terms against the source in code, and leave the text to the model.

  • Tip 02

    Limit the number of revision rounds and show a human everything that still doesn’t match after the last one.

Want the same for your business?

Tell me about your task — I’ll tell you what from the demo fits, how long it will take and what I’ll need from you.

Other demos in this section

All demos
  • Web app · agent diagram

    live

    AI agent builder

    A support agent is assembled from blocks: intents, a knowledge base, API calls, checks and operator handover. Send a customer message and watch its path light up on the diagram step by step.

    • React
    • TypeScript
  • Web app · question → SQL → chart · PostgreSQL in the browser

    live

    AI data analyst

    A manager asks in plain words — “revenue by channel for Q3”, “which customers stopped ordering” — and gets SQL, a chart, a table and a conclusion. The sales database is real PostgreSQL running right in the browser.

    • React
    • TypeScript
  • Web app · risks against a standard · Word with tracked changes

    live

    Contract review

    A counterparty sent their own contract — the review compares it with the company’s standard, highlights risky clauses, explains why they’re dangerous and suggests wording. The output is a Word file with tracked changes and a disagreement protocol.

    • React
    • TypeScript
  • Web app · tasks from chat · kanban · evening digest

    live

    AI agent in a team chat

    People write in the team chat as usual — “Pete, fix the price list by Friday”. The agent creates a task on the kanban board, moves it through “On it” and “Done”, reschedules and reassigns tasks, reminds about overdue work in the morning and sends a digest in the evening.

    • React
    • TypeScript
  • Web app · shared inbox · CRM · protection against bank detail fraud

    live

    AI inbox triage

    The agent reads the sales team’s shared inbox: it understands what each email is, extracts fields, creates a deal, a ticket or a task in the CRM and drafts a reply. An invoice with new bank details or a phishing email is caught before anyone pays or clicks a link.

    • React
    • TypeScript
  • Web app · marketplaces · moderation check · unit economics

    live

    Product listings for WB and Ozon

    The agent turns a supplier’s text into two listings — for Wildberries and for Ozon: a title within the marketplace limit, a description with search keywords, attributes from the reference lists. Then it checks what listings usually fail moderation on and calculates what’s left from each sale.

    • React
    • TypeScript
  • Web app · meeting transcript · minutes · kanban

    live

    Meeting minutes → kanban tasks

    The agent reads a stand-up transcript and builds the minutes: decisions, tasks with an assignee and deadline taken from live speech, risks and open questions. Tasks go to the kanban board, and at the next meeting the agent moves them through statuses itself.

    • React
    • TypeScript
  • Web app · personal data · healthcare · analytics

    live

    Anonymizing data before it reaches a neural network

    The agent finds full names in any grammatical case, phones, passports, SNILS numbers, cards, addresses and diagnoses in emails and transcripts, replaces them before sending to an external neural network, and restores its answer to the real data on your side. It anonymizes a patient table for analytics so that nobody can be identified.

    • React
    • TypeScript
  • Web app · automation · amoCRM, 1C, Telegram

    live

    An n8n-style automation pipeline

    Three working scenarios of a furniture factory on a canvas, as in n8n: website leads go to amoCRM and to managers by lead temperature, YooKassa payments go to 1C with retries and an error branch, and every morning there’s a digest for the director. Trigger an event and watch records flow from node to node; the workflow can be edited and exported to real n8n.

    • React
    • TypeScript
  • Web app · HR · scoring and chatbot

    live

    CV screening and an interviewer bot

    Twenty CVs for three vacancies are analyzed in seconds: employment periods, experience, salary and city, match with the requirements and a quote from the CV for every “yes” or “no”. What’s missing from the CV is clarified by a bot: it asks only the missing questions, follows up on vague answers and books an interview. Gender, age and family are left out of the assessment.

    • React
    • TypeScript
  • Web app · RAG · neural network in the browser

    live

    Search sandbox

    How a support bot finds an answer in a knowledge base: documents are cut into fragments, search runs by keywords, by meaning or as a hybrid, and every fragment found shows why it ranks above the others.

    • React
    • TypeScript
    • In-browser neural network
  • Web app · metrics · CI thresholds

    live

    Bot quality evaluation

    Before a new bot configuration is rolled out, it’s run against control questions. Here you can see how that works: hit@1, hit@3, the share of correct refusals, a comparison with production and a red banner if CI would block the release.

    • React
    • TypeScript
    • In-browser neural network
  • Web app · AI security · vanilla JS

    live

    Prompt injection defense trainer

    Try to trick a support bot: coax out a secret promo code, extract the system prompt or get a refund without grounds. Six defense levels, direct attacks and attacks via emails, reviews and the knowledge base, and a check log based on the OWASP Top 10 for LLMs.

    • Vanilla JS
  • Web app · AI economics · vanilla JS

    live

    AI bot cost calculator

    How much a bot will cost per month on GPT, Claude, YandexGPT, GigaChat or your own model on a rented GPU. Token-based calculation, all models compared on a chart, tips on paying less, and a real o200k tokenizer right in the browser.

    • Vanilla JS