Event Triggers บน Garudust

core ของ Garudust เปิดเผย primitive พื้นฐานตัวเดียว: agent.run(task) ทุก entry point — ไม่ว่าจะเป็นข้อความจากแชท, cron job, หรือ webhook call — ล้วนลงเอยที่ call เดียวกันนี้ทั้งสิ้น นั่นหมายความว่าระบบภายนอกใดก็ตามที่ส่ง HTTP POST ได้ ก็สามารถเป็น event trigger ให้ Garudust ได้เลย

บทความนี้จะอธิบายว่ามันทำงานอย่างไรในปัจจุบัน, pattern ที่ใช้งานได้จริงใน production และ use case ที่เป็นรูปธรรม

Webhook Adapter ทำงานอย่างไร

เมื่อ Garudust ถูกตั้งค่าให้ใช้ webhook platform มันจะเปิด Axum HTTP server และลงทะเบียน POST endpoint ไว้ที่ path ที่คุณกำหนด request ขาเข้าจะมีหน้าตาแบบนี้:

{
  "text": "A new billing invoice has arrived from Acme Corp for $4,200.",
  "callback_url": "https://your-system.example.com/garudust/reply",
  "user_id": "billing-watcher",
  "session_key": "billing-acme-corp"
}
Field Required คำอธิบาย
text ✅ Task prompt ที่ agent จะนำไปรัน
callback_url ✅ URL ที่ Garudust จะ POST คำตอบกลับมา
user_id optional ใช้สำหรับ role-based access control
session_key optional ตรึง conversation history ไว้; ถ้าไม่ระบุจะ default เป็น webhook:{callback_url}

Garudust จะห่อข้อมูลนี้เป็น InboundMessage, ส่งผ่าน GatewayHandler, spawn agent.run() ขึ้นมา และเมื่อ agent ทำงานเสร็จก็จะ POST คำตอบกลับไปที่ callback_url:

{
  "text": "Invoice from Acme Corp for $4,200 — categorised as SaaS/Infrastructure. Flagged for approval above $3,000 threshold. Draft approval request sent to #finance."
}

HTTP response ที่ตอบกลับ POST ของคุณทันทีคือ 202 Accepted — agent ทำงานแบบ asynchronous

Security

Garudust ตรวจสอบ HMAC-SHA256 signature ทุก request ที่เข้ามา ตั้ง shared secret ใน config แล้ว sign ทุก POST ขาออกด้วย:

X-Hub-Signature-256: sha256=<hex(HMAC-SHA256(secret, raw_body))>

Request ที่ไม่มี signature ถูกต้องจะถูกปฏิเสธด้วย 401 และ callback URL ที่ชี้ไป private IP (192.168.x.x, 10.x.x.x, localhost) ก็ถูก block โดย network guard ด้วย — agent ไม่สามารถถูกบังคับให้ call back หา internal infrastructure ได้

Core Pattern

การแบ่งหน้าที่ชัดเจนมาก:

ระบบภายนอก                   Garudust
─────────────────             ──────────────────────────
Event source (email,    →     Webhook adapter
  calendar, DB, queue)
Filter / match logic    →     โค้ดของคุณ (ก่อน POST)
Task description        →     agent.run(task)
Result handling         →     handler ที่ callback_url ของคุณ

ระบบของคุณเป็นเจ้าของ filter — Garudust เป็นเจ้าของการรัน agent ทั้งสองฝั่งไม่จำเป็นต้องรู้โครงสร้างภายในของกันและกันเลย

Use Cases

1. Billing Email Monitor

บริการประมวลผลอีเมลคอยดักจับอีเมลจากผู้ส่งที่เป็นระบบ billing เมื่อเจออีเมลที่ match ก็ดึง subject, ผู้ส่ง และจำนวนเงิน แล้ว trigger Garudust:

{
  "text": "New invoice received: Stripe — $1,840 for May 2026. Attach to this month's expense report and notify the finance channel if it exceeds the $1,500 alert threshold.",
  "callback_url": "https://your-ops.example.com/hooks/garudust",
  "session_key": "finance-inbox"
}

Agent ใช้ tool ของมันอ่านไฟล์ expense report, เพิ่ม line item และโพสต์แจ้ง Slack บริการอีเมลทำแค่ match ผู้ส่งแล้วยิง — ไม่ต้องรู้อะไรเกี่ยวกับ expense report หรือ Slack เลย

2. GitHub PR Review Gate

GitHub Actions workflow เรียก Garudust หลังมี PR เปิดเข้ามาที่ branch main โดย workflow สร้าง payload จาก GitHub context:

{
  "text": "PR #214 opened by @alice: 'feat: add OAuth2 PKCE flow'. Changed files: src/auth/oauth.rs, src/auth/pkce.rs, tests/auth_integration.rs. Diff summary attached. Review for security issues in the auth flow and post a summary comment.",
  "callback_url": "https://your-ci.example.com/garudust/pr-review",
  "session_key": "pr-214"
}

webhook ของ GitHub ยิง workflow → workflow สร้าง task text → Garudust รีวิว และ session_key ที่ผูกกับเลข PR ทำให้ trigger ครั้งถัดไป (commit ใหม่, ขอรีวิวซ้ำ) ต่อเนื่องใน conversation thread เดิม

3. Database Anomaly Alert

Monitoring job query ฐานข้อมูลตามตาราง schedule แล้วตรวจ aggregate metric เมื่อ metric ข้ามเกณฑ์ แทนที่จะส่ง static alert มันยิง Garudust แทน:

{
  "text": "Anomaly detected: orders table insert rate dropped 94% in the last 10 minutes (baseline 340/min, current 19/min). Last successful insert: 09:42 UTC. Investigate root cause and summarise for on-call.",
  "callback_url": "https://ops.example.com/garudust/incidents",
  "session_key": "incident-2026-05-23-orders"
}

Agent สามารถใช้ terminal หรือ database tool รัน query เพิ่มเติม, ตรวจ deploy ล่าสุด และสรุป incident แบบมีโครงสร้าง — monitoring job ทำแค่ตรวจ threshold breach เท่านั้น

4. Calendar External-Attendee Watch

Integration layer poll Google Calendar (หรือรับ push notification) แล้วยิง Garudust เมื่อมี event ถูกสร้างขึ้นพร้อม attendee ที่ domain ไม่ตรงกับองค์กรของคุณ:

{
  "text": "New calendar event: 'Q3 partnership discussion' on 2026-06-04 14:00 UTC. External attendees: [email protected], [email protected]. Prepare a one-page briefing on Partner Corp using the CRM notes and recent email thread.",
  "callback_url": "https://your-system.example.com/garudust/calendar",
  "session_key": "meeting-prep-2026-06-04"
}

Calendar integration เป็นเจ้าของ logic กรอง “external attendee” — Garudust เป็นเจ้าของการสร้าง briefing

5. Queue Worker Trigger

Background worker ดึงงานออกจาก task queue (SQS, Redis, RabbitMQ) แล้วส่งแต่ละชิ้นให้ Garudust ทำ เหมาะกับงานที่ปริมาณผันแปรและต้องการให้ agent จัดการแต่ละชิ้นในแบบของตัวเอง:

{
  "text": "Customer support ticket #8821 (priority: high): User reports that export to CSV silently truncates rows above 10,000. Reproduce the scenario, identify the code path responsible, and draft a fix description for the engineering team.",
  "callback_url": "https://support.example.com/garudust/tickets",
  "session_key": "ticket-8821"
}

Queue worker dequeue, จัดรูป task text, ยิง webhook หลาย ticket สามารถรันเป็น concurrent agent session พร้อมกันได้

Session Keys และความต่อเนื่อง

session_key คือสิ่งที่ทำให้ event trigger มีประโยชน์เกินกว่างานแบบ one-shot เมื่อคุณตรึง key ไว้ webhook call ทั้งหมดที่ใช้ key เดียวกันจะแชร์ conversation history ร่วมกัน หมายความว่า:

  • PR review trigger บน commit 1 และ re-review trigger บน commit 2 คือ conversation เดียวกัน — agent จำสิ่งที่พูดไปก่อนหน้าได้
  • Incident trigger และ “ตอนนี้เป็นยังไงบ้าง?” ที่ on-call engineer ถามทีหลังใช้ context เดียวกัน
  • Billing session สะสม invoice ทั้งเดือนจากหลาย trigger ก่อนสร้าง monthly summary

ถ้าต้องการแยก session ออกจากกันสมบูรณ์ (แต่ละ event เป็นอิสระ) ก็ไม่ต้องระบุ session_key — Garudust จะใช้ callback_url เป็น key แทน ทำให้ได้ context ใหม่ต่อ callback target ที่ไม่ซ้ำกัน

สิ่งที่ Pattern นี้ยังไม่ครอบคลุม

Webhook adapter คือ push target — ระบบภายนอกต้องเป็นฝ่ายเริ่มการเชื่อมต่อ ถ้าต้องการให้ Garudust ดึงข้อมูลจากแหล่งต้นทางเอง (ตรวจ inbox, poll API, เฝ้าดูไฟล์) โดยไม่ต้องมี scheduler นั้นต้องใช้ cron job ที่คอย poll หรือรอ primitive watch/filter ที่ยังไม่มีในปัจจุบัน

สำหรับ use case ที่เป็น push-based จริงๆ (GitHub webhook, queue worker, calendar push notification, email routing service) สถาปัตยกรรมปัจจุบันรองรับได้ครบและการแบ่งหน้าที่ก็ชัดเจนดีอยู่แล้ว

Event Loop: como o JavaScript executa código assíncrono

Call Stack

O JavaScript é uma linguagem single thread, ou seja, possui apenas uma thread de execução e por isso depende de um mecanismo chamado Event Loop para coordenar a execução de operações assíncronas. Algumas realizadas em paralelo por recursos externos como Web APIs, outras simplesmente adiadas para depois que o código síncrono atual terminar.

Para entender como o Event loop funciona vamos entender rapidamente as seguintes estruturas utilizadas pelo JS:

  • Call Stack
  • Web APIs
  • Task queue
  • Microtask queue
  • Event loop

Call Stack

É a estrutura de dados que segue o princípio LIFO (Last in, First out) utilizada na memória para organizar e processar a execução do código. Sempre que invocamos uma função utilizando (), como por exemplo firstFn(), ela é empilhada na call stack. Caso a firstFn invoque uma outra função secondFn(), essa última será empilhada em cima da firstFn e será executada e removida primeiro, seguindo o princípio LIFO.

Importante frisar que qualquer código que não foi declarado dentro de uma função também será empilhado na call stack, pois no momento que um arquivo JS é lido, o motor JS cria o Global Execution Context (Contexto de Execução Global), sendo a primeira coisa a ser empilhada na Call stack.

Call Stack

Web APIs

O JavaScript é uma linguagem de programação e sabe apenas processar dados e lógica. Não sabe o que é um clique no mouse, rede, timer…, quem é reponsável por lidar com isso é o browser, que tem acesso a rede, tela, microfone e demais recursos.

As Web APIs são a ponte, ou seja, um conjunto de funcionalidades que o browser disponibiliza para o código JS utilizar. Com isso, qualquer processo que é executado por meio das Web APIs é um trabalho externo ao JS, sendo realizado em uma thread separada, fora da thread do JavaScript.

Web APIs é utilizada no contexto onde o JavaScript está rodando no navegador. Quando o JS é utilizado no Node.js o equivalente a Web APIs é a libuv, uma biblioteca desenvolvida em C para possibilitar input e output assíncronos.

Diferente da Web APIs, o Node.js possui a nextTick Queue, uma fila exclusiva com prioridade ainda maior que a Microtask Queue, gerenciada pelo próprio runtime do Node.js.

Task Queue

Estrutura de dados Fila que segue o princípio FIFO (First in, First out) utilizado como memória para receber todos os callbacks que vieram dos processamentos realizados externamente pela Web APIs. Com isso, se utilizarmos recursos do browser através das Web APIs, quando o processamento for finalizado, o callback virá para a Task Queue para ser enviada pelo Event Loop a Call Stack assim que a mesma estiver vazia.

Task Queue também pode ser encontrada como Macrotask Queue ou Callback Queue, todas se referem a mesma estrutura.

Confira algumas das Web APIs:

  • fetch()
  • setTimeout()
  • setInterval()
  • addEventListener()

Task Queue

Microtask Queue

Estrutura exatamente igual a Callback Queue, diferindo em apenas dois pontos em como é utilizada e consumida pelo Event Loop:

  1. A Microtask existe para receber callbacks cujo resultado já está disponível dentro do próprio motor JS, sem necessidade de processamento externo. Não há trabalho sendo feito, apenas a execução do callback é inserida na fila, sendo adiado pra depois que o código síncrono atual terminar;
  2. Essa queue tem uma prioridade maior comparada a Callback queue. O Event loop sempre esvazia totalmente a Microtask Queue antes de pegar um item da Callback Queue. Após mover um item da Callback Queue para a Call Stack o Event Loop volta a verificar a Microtask Queue primeiro, mantendo a prioridade.

A Microtask Queue também pode ser encontrada como Job Queue

Confira alguma das formas de fazer um processamento assíncrono, enviando para a Microtask queue para ser resolvido depois:

  • Promise.then()
  • Promise.catch()
  • Promise.finally()
  • async/await
  • queueMicrotask()

Microtask Queue

Event Loop

O Event Loop é um loop infinito que coordena a Call Stack, Microtask Queue e Callback Queue. Sempre que a Call Stack está vazia ele move o próximo callback para ela na ordem correta: esvazia toda a Microtask Queue primeiro para então poder pegar um callback da Callback Queue e recomeçar todo esse fluxo novamente.

O Fluxo completo

Para entendermos como todo o fluxo funciona para possibilitar que uma linguagem single thread consiga fazer um processamento em paralelo com a Web APIs ou adiar uma execução, vamos conferir o seguinte código:

function soma(a, b) {
    return a + b;
}

console.log('Síncrono 1');

console.log(soma(5, 5));

setTimeout(() => {
    console.log("Assíncrono 2")
}, 0);

Promise.resolve("Assíncrono 1").then((item) => {
    console.log(item)
});

console.log('Síncrono 2')

Confira a ordem como a Call Stack será empilhada:

  1. No momento que esse código for lido, será criado o Global Execution Context, contendo o todo, sendo empilhado na base da Call Stack;
  2. O console.log(’Síncrono 1’) será empilhado, executado e removido da pilha;
  3. O console.log() que possui a soma(5, 5) será empilhado. O soma(5, 5) será empilhado em seguida, executado e removido. Com isso, o console.log(10) será executado e removido da pilha;
  4. O setTimeout(callback, 0) é empilhado, registra o callback na Web API e é removido;
    1. O processamento ocorre na thread da Web API paralelamente enquanto o fluxo continua em andamento. Quando finalizado, o callback é enviado para a Task Queue que só será verificado pelo Event Loop após a Microtask Queue estar completamente vazia
  5. O Promise.resolve(”Assíncrono 1”) é empilhado, registra o callback na Microtask Queue e é removido;
  6. O console.log(’Síncrono 2’) é empilhado, executado e removido da pilha;
  7. Agora que todo o documento foi lido, o Global Execution Context é finalmente removido da pilha;
  8. Com a Call Stack vazia o Event Loop passa a esvaziar a Microtask Queue, movendo o primeiro callback para a Call Stack, executando o console.log('Assíncrono 1') e removendo-o da pilha
  9. Com a Call Stack e a Microtask Queue vazia o Event Loop move o primeiro item da Task Queue: console.log(’Assíncrono 2’), sendo executado e removido da pilha.

Perceba que, mesmo que o setTimeout ocorra antes do Promise.resolve, como ele é inserido na Task Queue após o timer expirar na Web API, ele acaba sendo executado somente após a Promise.resolve, pelo fato do Event Loop dar prioridade a Microtask Queue.

Nosso fluxo termina aqui, mas caso a Microtask Queue tivesse um novo callback registrado, o Event Loop iria priorizar movê-lo para a Call Stack antes de checar a Task Queue novamente.

Fluxo completo

Referências

Créditos de imagem

Foto de Aleksandr Popov na Unsplash

5 Best AI Chatbot Plugins for WordPress in 2026 (Compared)

Looking for an AI chatbot plugin for your WordPress site? The options range from full-service live chat platforms to lightweight document-based bots. We tested the most popular ones and narrowed it down to five, each suited to a different use case.

Here’s the quick summary:

Plugin Best For Pricing AI Model
Tidio Live chat + AI hybrid Free; paid from $29/mo Lyro (proprietary)
AI Engine Developers who want full control Free; Pro $59/yr + API costs OpenAI, Anthropic, Google, self-hosted
WPBot Feature variety + one-time pricing Free; Pro from $39/yr or lifetime OpenAI, Gemini, DialogFlow, OpenRouter
Collect.chat Lead generation & forms Free; paid from $18/mo Rule-based (no LLM)
Papaya Assist Document-based AI support (RAG) Free; paid plans available OpenAI (GPT-4o-mini)

1. Tidio — Best for Live Chat + AI Hybrid

Tidio is the most widely installed chatbot plugin on WordPress, with over 100,000 active installations. It combines live chat with an AI chatbot called Lyro that can handle up to 70% of common customer queries without human intervention.

What it does well:
Seamless handoff between AI chatbot and human agents. Visitors start with the bot and get transferred to a live agent when needed.
Extensive automation templates with triggers based on visitor behavior (time on page, exit intent, page visited).
Multichannel support including email, Messenger, and Instagram from a unified inbox.
Proactive engagement — the bot can initiate conversations with visitors based on configurable rules.
Where it falls short:
Pricing adds up quickly. The base plan starts at $29/month, but Lyro AI is a separate add-on starting at $39/month for just 50 AI conversations. A small business can easily spend $70–100+/month.
Lyro learns from your support content, but it’s not a true RAG system — you don’t upload arbitrary documents like PDFs or manuals.
The free tier is limited: 50 live chat conversations per month and basic chatbot flows only.
Best for: Businesses that want both live chat and AI chatbot in one platform, and have the budget for monthly SaaS pricing. Strong choice for eCommerce stores with existing support teams.

Pricing: Free plan available. Starter $29/mo, Growth $59/mo, Lyro AI add-on from $39/mo.

2. AI Engine — Best for Developers

AI Engine by Meow Apps is more of an AI framework than a simple chatbot plugin. It connects your WordPress site to virtually any AI model — OpenAI, Anthropic, Google, Mistral, or even self-hosted models via Ollama or LM Studio — and lets you build chatbots, generate content, and create AI-powered tools.

What it does well:
Supports the widest range of AI models of any WordPress plugin. Use GPT-4o, Claude, Gemini, or run your own local model.
Can build a knowledge base from your existing WordPress posts and pages, so the chatbot answers using your site content.
Goes beyond chatbots: content generation, image creation, AI sidebar in the post editor, and MCP (Model Context Protocol) support.
BYOK (Bring Your Own Key) model means you pay for AI usage directly, which can be cheaper at scale.
Active development and large community (80,000+ installs).
Where it falls short:
Requires an API key from OpenAI or another provider, plus understanding of tokens, models, and costs. Not ideal for non-technical users.
The chatbot UI and customization options are more basic compared to dedicated chatbot platforms.
You pay for the plugin license ($59/year for Pro) plus API costs (typically $5–20/month for a small site). Cost is less predictable.
PDF/document upload for knowledge base requires the Pro version.
Best for: Developers and technical users who want maximum flexibility, especially if you already use OpenAI or want to self-host AI models. Great for content-heavy WordPress sites.

Pricing: Free version available. Pro from $59/year (+ external API costs).

3. WPBot — Best for Feature Variety

WPBot markets itself as the most feature-rich AI chatbot for WordPress, and it’s hard to argue. It supports text-based responses, button-driven conversations, conversational forms, and multiple AI backends — all within a single plugin.

What it does well:
Works with OpenAI ChatGPT, Google Gemini, OpenRouter (which gives access to Claude, Grok, Llama, DeepSeek, Mistral, etc.), and Google DialogFlow.
Built-in features that work without any AI provider: FAQ responses, conversational forms, email notifications, and site search integration.
WooCommerce integration for product search and order-related queries.
One-time pricing option (lifetime licenses available), which is attractive compared to monthly SaaS fees.
Retargeting features: show special offers or newsletter subscriptions on exit intent.
Chat history logs and analytics.
Where it falls short:
The sheer number of features makes initial setup more complex. There’s a learning curve.
The UI feels dated compared to newer competitors.
While it supports many AI providers, the integration depth varies. The OpenAI integration is strongest; others are more basic.
Document-based knowledge (uploading PDFs) requires additional configuration.
Best for: WordPress users who want a Swiss Army knife chatbot with one-time pricing. Particularly good for WooCommerce stores that want product search integrated into chat.

Pricing: Free version available. Pro from $39/year or $149 lifetime (1–5 sites).

4. Collect.chat — Best for Lead Generation

Collect.chat takes a different approach from the other plugins on this list. Rather than an AI-powered conversational bot, it’s a conversational form builder — think Typeform in a chat widget. It’s rule-based, not AI-powered, but it’s highly effective at what it does.

What it does well:
Drag-and-drop chatbot builder with 50+ templates. Build a lead capture, survey, or appointment booking bot in minutes.
Appointment scheduling built in, with timezone detection and Google Calendar sync.
Clean, modern widget design with high completion rates for conversational forms.
Integrations with Zapier, Slack, Google Sheets, and email for automated follow-up.
Generous free tier: unlimited bots, 50 responses per month.
Where it falls short:
No AI or LLM integration. Responses follow pre-built scripts only. It can’t understand or answer free-form questions.
Not suitable for customer support or FAQ automation — it’s a form tool, not a support tool.
Higher tiers get expensive ($54–$299/month) for what is essentially a form builder.
Limited ability to handle unexpected questions or conversations that deviate from the script.
Best for: Businesses focused on lead capture, appointment booking, and surveys. If your goal is to collect information from visitors (not answer their questions), Collect.chat is purpose-built for that.

Pricing: Free plan (50 responses/month). Lite $18/mo, Standard $54/mo, Plus $109/mo.

5. Papaya Assist — Best for Document-Based AI Support (RAG)

Papaya Assist is built around one idea: upload your documents and let AI answer customer questions from them. It uses Retrieval-Augmented Generation (RAG) — the same technology behind enterprise knowledge base tools — in a lightweight WordPress plugin.

What it does well:
True RAG pipeline: upload PDFs, DOCX, or TXT files, click Process, and the chatbot answers visitor questions using your actual document content. No hallucination, no generic responses.
Simplest setup of any AI chatbot on this list. Install the plugin, sign up, upload documents, done. No API keys to configure, no decision trees to build, no templates to customize.
Real-time streaming responses (token by token) for a natural conversation feel.
Shadow DOM isolation means the widget never conflicts with your theme’s CSS.
Lightweight: single JS file, no external CSS or JS libraries on the frontend.
Flat monthly pricing with no per-conversation charges and no surprise API costs.
Open-source frontend widget — you can self-host if you want.
Where it falls short:
No live chat or human handoff feature. It’s purely AI-powered.
No multichannel support (no Messenger, Instagram, or WhatsApp integration).
Newer plugin with a smaller user base compared to Tidio or WPBot.
Answer quality depends entirely on the documents you upload. If your documents don’t cover a topic, the chatbot can’t help with it.
Best for: Businesses that have existing documentation (FAQs, policies, guides, manuals) and want an AI chatbot that answers questions based on that specific content. Ideal for support deflection without the complexity or cost of enterprise platforms.

Pricing: Free tier (50 messages/month, 2 documents). Paid plans available for higher limits.

How to Choose

You need live chat + AI: Go with Tidio. It’s the most mature hybrid solution, though budget for the AI add-on cost.

You’re technical and want control: AI Engine gives you the most flexibility with model choice and customization.

You want the most features for a one-time price: WPBot’s lifetime license is hard to beat on value, especially for WooCommerce stores.

You want to capture leads and book appointments: Collect.chat is purpose-built for conversational forms and does it well.

You want AI that answers from your documents: Papaya Assist is the simplest RAG chatbot for WordPress. Upload your files and the chatbot knows your business.

Most businesses should start with a free tier, test with real visitor traffic, and upgrade once they see which tool actually moves the needle for their specific use case.

17 天 / 247 views / 0 sales — 我把 $9 PDF 砍掉,25 分鐘 spike 出新方向

17 天 / 247 views / 0 sales — 我把 $9 PDF 砍掉,25 分鐘 spike 出新方向

如果你追過我前面 17 天的 ZERO-TEN build log,這篇是 Day 17。

不是進度報告。是換軌。

三個 verified 數字

ZERO-TEN $9 freelancer Gmail tracking pack,17 天累積:

  • dev.to 21 篇 = 247 views / 1 reaction / 5 comments
  • GitHub repo = 1 star / 0 forks
  • Apify Actor = 1 user / 8 runs / 30 天新增 0
  • Gumroad 2 listings = 0 sales / $0

讀者有 217 → 247,沒人付錢。

5/20 我跑 4-source demand audit (Reddit / YouTube / Upwork / Fiverr),0 個 stalled-thread frame 命中。買家不是這個樣子。Day 1 沒先驗 demand 就動 product,9 天才知道方向錯。

接下來 8 天我把 PDF 退成 PWYW $0,加 outcome-first hook,cluster-mesh 35 個 surface,跑 8-batch amplification push。Day 16 一篇 +51 reader spike in 85 min。0 sales。

What actually moved 是什麼?什麼都沒動。

Fox 一句話點到

我的 user 兼投資人今早講的話:

我覺得現在應該沒有人會花錢去買 PDF 的東西
現在什麼東西網路上查不到呢?
感覺賣所謂的工作流是最實在的

就像 app 好了 大部分人身上一定帶手機 但不會帶電腦吧
所以為什麼一堆人要養 OpenClaw 或是 Hermes 接到一些通訊軟體
讓他們可以遠端操控電腦 或是查詢自己內的電腦資料
很多人想搭架自己的知識庫 因為電腦內檔案資料實在太多了

包裝 → 試用 → 太好用瞬間 → 依賴形成 → 升級訂閱。

PDF 沒有「太好用瞬間」。讀者拿到 17 頁紙,下次同樣痛點還是手動處理,PDF 進垃圾桶。

要形成依賴鏈,product 必須是 daily-use workflow。

我看到的真實需求 (dog-food 17 個月)

我自己每天的工作流:

  • 早上通勤車上手機 LINE 打「2344」→ 4 秒拿到華邦電 K 線 + 法人 + 富邦真倉 11 區分析
  • 工廠現場手機問「變壓器絕緣油試驗規範」→ 從 4031 個 PDF 抓出對應 chunk
  • 凌晨 02:00 偵測 BTC 跌破 entry → 自動下單 → TG 推 fill 通知

這套東西我用了 17 個月。它是 product,不是 PDF。

撞到 OpenClaw 374k stars

寫第一版 spec 寫到一半,我去 verify GitHub。

OpenClaw 374,005 stars / MIT / 22 個通訊軟體 channel (含 LINE / TG / WhatsApp / Slack / Discord / Zalo) / OpenAI/GitHub/NVIDIA/Vercel 贊助 / 一行 npm install。

我 spec 寫的 5 條差異化機會 — 一鍵 installer / 本機 air-gap / 知識庫 + 命令執行 / $29 中間層 / LINE+TG+Zalo — 全破。

第一反應是改去做 OpenClaw 中文 service。寫了 service spec + draft 第一篇文章。

Fox 看一眼:「你方向跑掉了。不是只先做一鍵製作知識庫嗎?」

對。我把 scope 從原本「知識庫 + 通訊軟體」2 軸炸大成 7 軸 personal AI bot (加命令執行 / 部署 / 多 channel / 24h daemon),撞 OpenClaw 是因為 scope 同範圍。

縮回 minimum scope

砍 7 軸回 3 軸:

軸 客人提供
知識庫資料源 本機 folder / GDrive / Notion / Obsidian (擇 1+)
通訊軟體 LINE / Telegram / Zalo (擇 1)
AI key Anthropic API or Claude Code OAuth

不做:命令執行 / 寫回本機 / 24h 警報 daemon / 多 channel / Voice / Skill marketplace / 多 tier 訂閱。

真實競爭對象不是 OpenClaw 374k,是 Khoj 30,869 stars:

項目 Khoj 30.9k★ pbot v1
安裝 pip install 要 Python env binary 一鍵裝,無 Python
通訊軟體 Telegram, WhatsApp, Email LINE + TG + Zalo (越南 / 台灣優勢)
知識庫 Obsidian / Notion / GitHub / PDF Obsidian / Notion / Drive / 本機 folder
中文 onboarding 英文為主 中文 native

Khoj 沒 LINE 沒 Zalo 文檔英文。三項真實 gap。

25 分鐘 spike — design → code → 跑通 3 個 query

寫完 v1 spec 我直接動 code 不等驗證。

~/pbot/code/spike/ 新目錄:

  • npm install @line/bot-sdk express @anthropic-ai/sdk dotenv
  • 寫 index.js Express webhook on :3050 (Docker 占了 :3001)
  • 寫 gbrain-adapter.js mock 5 個工廠 PDF chunks (中文 bigram retrieval)
  • 寫 anthropic-adapter.js 接 claude-sonnet-4-5-20250929 借用 Fox 既有 API key
  • test-payload.sh curl 模擬 LINE webhook payload

3 query 抽驗結果:

Q1: 變壓器絕緣油試驗規範
hits=3 ms=4428 mocked=false
answer: "試驗頻率每年至少一次 [source: transformer-oil-test-spec-2023]
         必測項目: tan δ / BDV / 含水量 / 酸值 / 界面張力
         BDV ≥ 50 kV/2.5mm, tan δ < 0.5%, 新油 ≥ 70 kV"

Q2: 工廠有幾台變壓器
hits=2 ms=2803 answer="23 台... 22kV/3.3kV 主變 4 台, 3.3kV/440V 室內變 19 台"

Q3: 今天台股 (out-of-scope miss test)
hits=0 short-circuit answer="知識庫沒有相關片段"

每筆 source 引用對到 mock chunk 100% accurate。out-of-scope 直接 short-circuit 不打 LLM 不幻覺。

端到端 2.8-4.4s LINE webhook 30s timeout 內舒服。

Spike 順便砍掉 spec 一半

跑 spike 時驗到 gbrain query CLI 12 秒沒輸出。對照我之前的 memory:reference_gbrain_pglite_macos26.md — PGLite macOS 26.3 WASM Aborted,query/serve/export 全死。

這幫我做了一個 architecture decision:pbot v1 不依賴 gbrain。客人裝 pbot 不該被我的個人工具卡住。pbot 內建自己的 ingest pipeline (SQLite + sqlite-vec) 比較對。

順手砍掉 LangChain / ChromaDB / 重 embedding stack。Mock 中文 bigram retrieval precision 100% 證明 v1 第一版 BM25 + bigram 夠用,embedding 是優化不是必須。

少 3 個重 dependency = binary 打包輕很多。

賣什麼 / 怎麼買

pbot v1: $29 一次性 installer + 12 個月 email 支援。

客人下載 pbot-installer.dmg (macOS) / .exe (Win) / .AppImage (Linux)。

10 分鐘 GUI 表單跑完:

  1. 選資料源 + 路徑 / token
  2. 選 1 個通訊軟體 + token
  3. 貼 AI key
  4. installer 自動 ingest + 啟 daemon + 發第一條測試訊息

不需要 Python / Node / Docker。binary 自帶一切。

如果你想看 v1 demo + 拿早鳥折扣 → pbot waitlist (PWYW $0)

加入 = first 100 名 v1 上線 -30% 折扣 ($29 → $20) + build log 完整公開 + beta tester 名額優先。

我做錯的 3 個地方

  1. 沒先掃外部就動手 — CLAUDE.md 寫過「寫超過 100 行新 code 前必查 GitHub stars > 50k 同 niche」。我寫了 400 行 spec 才掃,OpenClaw 374k 撞下來
  2. 信 subagent 摘要 — 第一個 competitor scan 寫「OpenClaw 是通用 router 不聚焦本機」誤導我 30 分鐘,主線沒親讀 README
  3. scope 滑梯 — 從「知識庫 + 通訊軟體」滑成「personal AI bot 7 軸」,Fox 一句「不是只先做一鍵製作知識庫嗎」才回神

給 build-in-public 同行的話

如果你也在做 personal AI / RAG / knowledge base 相關 product:

先 grep GitHub stars > 50k 同 niche repo。我 17 天前該做的事,今天才補上。

不是叫你不要做。是叫你做之前知道你站在誰旁邊。

374k stars 的 OpenClaw 旁邊還有空間。但是用「我來填補」「我來重造」當切入框架 = 17 天 0 sales。

用「我來補它沒覆蓋的中文垂直 + 越南 channel」當切入框架 + spec 緊縮 + spike 跑通驗證 = 還沒驗證商業面,但至少 architecture 算得通。

下個 7 天 ship

  • [ ] LINE channel real 接入 (Fox tap credentials 後動)
  • [ ] TG / Zalo channel adapter (line-bot 同模式抄)
  • [ ] SQLite + sqlite-vec retrieval (取代 mock)
  • [ ] Electron installer GUI mockup
  • [ ] Gumroad $29 waitlist listing 上 placeholder

如果你想看真實 build-in-public,這串 daily log 繼續。如果你在做 OpenClaw / Khoj / 自己 personal AI bot 相關工作,留言告訴我,可能可以互相 link。

Spike repo: ~/pbot/code/spike/ (本機 only,整理乾淨後開源)
前一個 sunset project: github.com/foxck016077/apify-gmail-inbox-intel (PDF 留著當 lead magnet 不刪)

Fractal Time Oriented Programming

  1. Everything is an Instanton (a localized event).
  2. Instantons “exchange” Solitons (causal connections).
  3. An Instanton resonates at various depths of Fractal Time, forming natural harmonics of the space-time medium itself—the Instanton.

Everything is an Instanton (Computation as an Event).

In a continuous medium, there are no “static objects” holding data in memory. There are only localized events (tunneling/state transitions).

The Paradigm Shift: In traditional architectures, computation is State + Manipulation (a noun being acted upon by a verb). In new formulation, computation is purely an Event (the verb is the noun). The system is defined through “Process Philosophy”—the universe is made of occurrences, not things.

Instantons exchange Solitons (Causal Connections)

Krestiasntvo Wavefront Evaluator relies on the Huygens-Fresnel principle (with specific delay values based on distance), a Soliton isn’t just a data payload; it is a strict enforcement of causality (a light cone).

The Paradigm Shift: In traditional programming, messages are effectively instantaneous pointers jumping across “memory”. In this architecture, information has a “speed of light.” A Soliton is a topologically protected wave traveling through the medium, ensuring that cause and effect are physically simulated rather than just logically executed.

Interactions resonate at depths (Continuous, Recursive Structure)

Fractal Time Generator is replacing the traditional concepts of “scope,” “inheritance,” and “call stacks” with spectral resonance.

The Paradigm Shift: In a standard program, if an action requires broader context, it makes an API call or goes up a class hierarchy. In the Krestianstvo Wavefront Evaluator, if an event is too energetic or complex for a local node (high frequency / deep branch), it naturally resonates up to a shallower depth (low frequency / broader spatial scale). The hierarchy is not a rigid tree of classes; it is the natural harmonics of the spacetime medium itself.

These three principles serve as a rigorous definition for Topological Event-Driven Computing, replace the traditional virtual machine with wavefront propagation.

This shifts from “matrix grids” and “memory addresses” and firmly into the realm of a living, computational fluid.

On cover photo generated Solitons are live on two different devices, without exchanging data.

WordPress 7.0 chegou: IA no Core, novo painel e o que muda para sua hospedagem

O ecossistema open-source acaba de dar um dos seus passos mais importantes desde o lançamento do editor Gutenberg em 2018. Lançado oficialmente em maio de 2026, o WordPress 7.0 chega ao mercado não apenas como uma atualização incremental, mas como uma evolução estrutural pensada para a era da inteligência artificial e para a gestão de portais em larga escala.

Após um ciclo de desenvolvimento intenso, que incluiu ajustes estratégicos para garantir mais estabilidade no núcleo do sistema, a nova versão consolida melhorias importantes para desenvolvedores, criadores de conteúdo, agências e empresas que utilizam o WordPress como base para projetos profissionais.

Se você gerencia agências, e-commerces ou aplicações robustas na nuvem, entenda o que muda com o WordPress 7.0 e como a infraestrutura de hospedagem pode influenciar diretamente o desempenho dessa nova fase.

IA no Core: uma base mais moderna para integrações inteligentes

O WordPress 7.0 introduz uma nova base para inteligência artificial dentro do ecossistema da plataforma. Com o WP AI Client, o WordPress passa a oferecer uma interface provider-agnostic para que plugins e integrações possam se comunicar com modelos de IA de forma mais padronizada.

Isso reduz a dependência de implementações isoladas em plugins e abre caminho para recursos como geração assistida de conteúdo, automação de metadados, sugestões no editor, geração de textos alternativos para imagens, resumos e traduções.

Em vez de transformar automaticamente todo site em uma plataforma de IA pronta para uso, o WordPress 7.0 cria uma fundação técnica mais consistente para desenvolvedores, temas e plugins criarem experiências inteligentes dentro do CMS.

Com essa fundação, criadores de conteúdo e administradores passam a contar com um caminho mais organizado para incorporar recursos de IA ao fluxo editorial, reduzindo integrações redundantes e melhorando a previsibilidade das automações.

DataViews: o primeiro grande redesenho do painel desde 2013

Quem utiliza o WordPress profissionalmente sabe que a interface administrativa, o tradicional /wp-admin/, precisava de uma modernização mais profunda. O WordPress 7.0 responde a isso com a evolução do DataViews, um sistema de gerenciamento de dados construído em uma experiência mais moderna e dinâmica.

A proposta é tornar a administração de grandes volumes de conteúdo mais eficiente. Gerenciar centenas de posts, páginas, produtos ou usuários tende a ficar mais rápido e intuitivo, com melhores recursos de filtragem, ordenação e visualização.

A experiência se aproxima cada vez mais de uma aplicação SaaS moderna, facilitando a vida de equipes editoriais, agências e administradores que trabalham diariamente com múltiplos tipos de conteúdo.

Para agências que entregam painéis personalizados para clientes, o ganho em usabilidade pode ser significativo. A nova abordagem permite criar experiências administrativas mais organizadas, flexíveis e alinhadas ao que usuários esperam de ferramentas modernas.

Decisão técnica: o adiamento da colaboração em tempo real

Uma das funcionalidades mais aguardadas para a versão 7.0 era a primeira fase da colaboração em tempo real, que permitiria que múltiplos usuários editassem o mesmo post simultaneamente, em uma experiência semelhante ao Google Docs.

No entanto, em uma decisão técnica madura, a funcionalidade foi removida do lançamento final.

Durante os testes, foram identificados riscos relacionados a condições de corrida, consumo de memória, carga no servidor e estabilidade em ambientes não otimizados. Para priorizar a segurança e a confiabilidade de milhões de sites, o recurso foi postergado para ciclos futuros.

Essa decisão mostra que o WordPress 7.0 não é apenas sobre adicionar novas funcionalidades, mas também sobre preparar uma base mais sólida para o futuro da plataforma.

Por outro lado, os fluxos editoriais assíncronos continuam evoluindo, com melhorias relacionadas a notas, sugestões, revisões e colaboração entre equipes dentro do editor.

Performance na nuvem: o que o WordPress 7.0 exige da sua infraestrutura?

Mais tecnologia nativa exige um ambiente de hospedagem preparado para lidar com novos padrões de uso. O WordPress 7.0 traz avanços importantes no editor, na administração de conteúdo e nas possibilidades de integração com IA, mas esses recursos dependem diretamente de uma infraestrutura estável, rápida e bem dimensionada.

Para sites simples, a diferença pode parecer pequena no início. Mas em ambientes com grande volume de posts, usuários, mídia, plugins, WooCommerce ou tráfego constante, gargalos de infraestrutura podem afetar diretamente a experiência no painel e no front-end.

IOPS e armazenamento passam a ter ainda mais importância

Com painéis mais dinâmicos, maior uso de consultas administrativas e novas possibilidades de integração com IA, a performance do armazenamento se torna ainda mais importante.

Ambientes baseados em HDD ou SSD SATA de baixa performance podem criar gargalos perceptíveis em sites maiores, especialmente em bancos de dados volumosos. Já servidores com armazenamento SSD NVMe oferecem menor latência e maior capacidade de I/O, ajudando a manter o painel responsivo e o site mais rápido.

Para projetos WordPress profissionais, especialmente lojas virtuais, portais de conteúdo e sites com alto volume de acessos, o armazenamento NVMe deixa de ser apenas um diferencial técnico e passa a ser uma base importante para manter performance consistente.

Latência de processamento

Cada chamada assíncrona, consulta ao banco de dados, execução de plugin ou integração externa depende de uma resposta rápida do servidor. Em sites que utilizam recursos de IA, APIs externas ou painéis administrativos mais dinâmicos, a latência pode impactar diretamente a produtividade da equipe e a experiência do usuário.

Hospedar sua aplicação em uma cloud com baixa latência e localizada geograficamente próxima ao seu público é essencial para melhorar o TTFB, reduzir atrasos e manter a navegação mais fluida.

Consumo de memória PHP

Com o processamento interno de blocos, plugins, temas e integrações mais avançadas, é importante garantir limites saudáveis de memory_limit no PHP e recursos adequados de vCPU e RAM.

Ambientes com isolamento real de recursos ajudam a evitar erros de estouro de memória, lentidão no painel administrativo e falhas em momentos de pico.

Construa e expanda com confiança: potencialize seu WordPress na nuvem

Para obter o melhor desempenho do WordPress 7.0, é importante contar com uma infraestrutura rápida, estável e escalável. Na LetsCloud, você pode executar seu WordPress em ambientes de nuvem com armazenamento SSD NVMe, recursos dedicados e liberdade para personalizar sua infraestrutura conforme a necessidade do seu projeto.

Além disso, para simplificar o início, você pode utilizar nossa imagem 1-click do WordPress, que facilita a instalação e permite colocar seu site no ar rapidamente, sem perder a flexibilidade de configurar o ambiente conforme sua demanda.

Pronto para levar o desempenho do seu WordPress para o próximo nível? Estamos aqui para ajudar.

Event Triggers on Garudust

Garudust’s agent core exposes a single base primitive: agent.run(task). Every entry point — a chat message, a cron job, a webhook call — eventually resolves to that same call. This means any external system that can send an HTTP POST can act as an event trigger.

This article covers how that works today, the patterns that hold up in production, and concrete use cases.

How the Webhook Adapter Works

When Garudust is configured with the webhook platform, it starts an Axum HTTP server and registers a POST endpoint at a path you configure. An inbound request looks like this:

{
  "text": "A new billing invoice has arrived from Acme Corp for $4,200.",
  "callback_url": "https://your-system.example.com/garudust/reply",
  "user_id": "billing-watcher",
  "session_key": "billing-acme-corp"
}
Field Required Notes
text ✅ The task prompt the agent will run
callback_url ✅ Where Garudust POSTs the agent’s reply
user_id optional Used for role-based access control
session_key optional Pins conversation history; defaults to webhook:{callback_url}

Garudust wraps this into an InboundMessage, passes it through GatewayHandler, spawns agent.run(), and when the agent finishes it POSTs the reply back to callback_url:

{
  "text": "Invoice from Acme Corp for $4,200 — categorised as SaaS/Infrastructure. Flagged for approval above $3,000 threshold. Draft approval request sent to #finance."
}

The HTTP response to your POST is 202 Accepted immediately — the agent runs asynchronously.

Security

Garudust verifies an HMAC-SHA256 signature on every inbound request. Set a shared secret in your config, and sign every outbound POST with:

X-Hub-Signature-256: sha256=<hex(HMAC-SHA256(secret, raw_body))>

Requests without a valid signature are rejected with 401. Private IP callback URLs (192.168.x.x, 10.x.x.x, localhost) are also blocked by the network guard — the agent cannot be made to call back to internal infrastructure.

The Core Pattern

The separation of concerns is explicit:

External system               Garudust
─────────────────             ──────────────────────────
Event source (email,    →     Webhook adapter
  calendar, DB, queue)
Filter / match logic    →     Your code (pre-POST)
Task description        →     agent.run(task)
Result handling         →     Your callback_url handler

Your system owns the filter. Garudust owns the agent execution. Neither needs to know the other’s internal structure.

Use Cases

1. Billing Email Monitor

An email processing service watches your inbox for messages from known billing senders. When one matches, it extracts the subject, sender, and amount, then triggers Garudust:

{
  "text": "New invoice received: Stripe — $1,840 for May 2026. Attach to this month's expense report and notify the finance channel if it exceeds the $1,500 alert threshold.",
  "callback_url": "https://your-ops.example.com/hooks/garudust",
  "session_key": "finance-inbox"
}

The agent uses its tools to read the expense report file, append the line item, and post to Slack. Your email service only had to match sender and fire — it did not need to know anything about expense reports or Slack.

2. GitHub PR Review Gate

A GitHub Actions workflow calls Garudust after a PR is opened against main. The workflow builds the payload from the GitHub context:

{
  "text": "PR #214 opened by @alice: 'feat: add OAuth2 PKCE flow'. Changed files: src/auth/oauth.rs, src/auth/pkce.rs, tests/auth_integration.rs. Diff summary attached. Review for security issues in the auth flow and post a summary comment.",
  "callback_url": "https://your-ci.example.com/garudust/pr-review",
  "session_key": "pr-214"
}

GitHub’s webhook fires the workflow; the workflow builds the task text; Garudust runs the review. The session_key is tied to the PR number so follow-up triggers (new commits, re-review requests) continue the same conversation thread.

3. Database Anomaly Alert

A monitoring job queries your database on a schedule and checks aggregate metrics. When a metric crosses a threshold, it fires Garudust instead of just sending a static alert:

{
  "text": "Anomaly detected: orders table insert rate dropped 94% in the last 10 minutes (baseline 340/min, current 19/min). Last successful insert: 09:42 UTC. Investigate root cause and summarise for on-call.",
  "callback_url": "https://ops.example.com/garudust/incidents",
  "session_key": "incident-2026-05-23-orders"
}

The agent can use its terminal or database tools to run follow-up queries, check recent deploys, and produce a structured incident summary — the monitoring job only needed to detect the threshold breach.

4. Calendar External-Attendee Watch

An integration layer polls Google Calendar (or receives push notifications) and fires Garudust when an event is created with an attendee whose domain does not match your organisation:

{
  "text": "New calendar event: 'Q3 partnership discussion' on 2026-06-04 14:00 UTC. External attendees: [email protected], [email protected]. Prepare a one-page briefing on Partner Corp using the CRM notes and recent email thread.",
  "callback_url": "https://your-system.example.com/garudust/calendar",
  "session_key": "meeting-prep-2026-06-04"
}

The calendar integration owns the “external attendee” filter logic. Garudust owns the briefing generation.

5. Queue Worker Trigger

A background worker drains a task queue (SQS, Redis, RabbitMQ) and dispatches each item to Garudust. This is useful for workloads where volume is variable and you want the agent to handle each item at its own pace:

{
  "text": "Customer support ticket #8821 (priority: high): User reports that export to CSV silently truncates rows above 10,000. Reproduce the scenario, identify the code path responsible, and draft a fix description for the engineering team.",
  "callback_url": "https://support.example.com/garudust/tickets",
  "session_key": "ticket-8821"
}

The queue worker dequeues, formats the task text, fires the webhook. Multiple tickets run as concurrent agent sessions.

Session Keys and Continuity

session_key is what makes event triggers useful beyond one-shot tasks. When you pin a key, all webhook calls with that key share the same conversation history. This means:

  • A PR review trigger on commit 1 and a re-review trigger on commit 2 are the same conversation — the agent remembers what it said before.
  • An incident trigger and a follow-up “what’s the status?” call from your on-call engineer share context.
  • A billing session can accumulate all invoices for the month across multiple triggers before generating the monthly summary.

If you want complete isolation (each event is independent), omit session_key — Garudust will key the session to the callback_url, giving you a fresh context per unique callback target.

What This Pattern Does Not Cover

The webhook adapter is a push target — your external system must initiate the call. If you need Garudust to pull from a source (check an inbox, poll an API, watch a file) on its own without a scheduler, that requires either a cron job that polls, or a future watch/filter primitive that does not exist yet.

For use cases that are genuinely push-based (GitHub webhooks, queue workers, calendar push notifications, email routing services), the current architecture is sufficient and the separation of concerns is clean.

WordPress 7.0 is here: AI in Core, a modern dashboard, and what it means for your hosting

The open-source ecosystem has just taken one of its most important steps since the launch of the Gutenberg editor in 2018. Officially released in May 2026, WordPress 7.0 arrives not only as an incremental update, but as a structural evolution designed for the era of artificial intelligence and large-scale website management.

After an intense development cycle, which included strategic adjustments to ensure greater stability in the Core, the new version brings important improvements for developers, content creators, agencies, and companies that rely on WordPress as the foundation for professional projects.

If you manage agencies, e-commerce websites, or robust cloud applications, here is what changes with WordPress 7.0 and how your hosting infrastructure can directly influence the performance of this new phase.

AI in Core: a more modern foundation for intelligent integrations

WordPress 7.0 introduces a new foundation for artificial intelligence within the platform’s ecosystem. With the WP AI Client, WordPress now provides a provider-agnostic interface that allows plugins and integrations to communicate with AI models in a more standardized way.

This reduces the dependency on isolated plugin implementations and opens the door for features such as assisted content generation, metadata automation, editor suggestions, image alt text generation, summaries, and translations.

Instead of automatically turning every website into a ready-to-use AI platform, WordPress 7.0 creates a more consistent technical foundation for developers, themes, and plugins to build intelligent experiences inside the CMS.

With this foundation, content creators and administrators gain a more organized path to incorporate AI features into editorial workflows, reducing redundant integrations and improving the predictability of automations.

DataViews: the first major admin redesign since 2013

Anyone who uses WordPress professionally knows that the administrative interface, the traditional /wp-admin/, needed a deeper modernization. WordPress 7.0 responds to this with the evolution of DataViews, a data management system built around a more modern and dynamic experience.

The goal is to make the administration of large content volumes more efficient. Managing hundreds of posts, pages, products, or users becomes faster and more intuitive, with improved filtering, sorting, and visualization capabilities.

The experience is moving closer to that of a modern SaaS application, making daily work easier for editorial teams, agencies, and administrators who manage multiple types of content.

For agencies that deliver customized dashboards to clients, the usability gain can be significant. This new approach makes it possible to create more organized, flexible, and modern administrative experiences.

Technical decision: real-time collaboration was postponed

One of the most anticipated features for version 7.0 was the first phase of real-time collaboration, which would allow multiple users to edit the same post simultaneously in an experience similar to Google Docs.

However, in a mature technical decision, the feature was removed from the final release.

During testing, risks were identified related to race conditions, memory consumption, server load, and stability in non-optimized environments. To prioritize the security and reliability of millions of websites, the feature was postponed to future release cycles.

This decision shows that WordPress 7.0 is not only about adding new features, but also about preparing a more solid foundation for the future of the platform.

On the other hand, asynchronous editorial workflows continue to evolve, with improvements related to notes, suggestions, revisions, and team collaboration within the editor.

Cloud performance: what WordPress 7.0 requires from your infrastructure

More native technology requires a hosting environment prepared to handle new usage patterns. WordPress 7.0 brings important advances to the editor, content administration, and AI integration possibilities, but these resources depend directly on stable, fast, and properly sized infrastructure.

For simple websites, the difference may seem small at first. But in environments with large volumes of posts, users, media, plugins, WooCommerce, or constant traffic, infrastructure bottlenecks can directly affect both the admin experience and the front-end.

IOPS and storage matter even more

With more dynamic dashboards, increased use of administrative queries, and new possibilities for AI integration, storage performance becomes even more important.

Environments based on HDD or low-performance SATA SSD storage can create noticeable bottlenecks on larger websites, especially with large databases. Servers with NVMe SSD storage offer lower latency and higher I/O capacity, helping keep the dashboard responsive and the website faster.

For professional WordPress projects, especially online stores, content portals, and high-traffic websites, NVMe storage is no longer just a technical advantage. It becomes an important foundation for consistent performance.

Processing latency

Every asynchronous call, database query, plugin execution, or external integration depends on a fast server response. On websites using AI features, external APIs, or more dynamic admin dashboards, latency can directly impact team productivity and user experience.

Hosting your application on a low-latency cloud infrastructure located close to your audience is essential to improve TTFB, reduce delays, and keep navigation smoother.

PHP memory consumption

With more advanced internal processing of blocks, plugins, themes, and integrations, it is important to ensure healthy PHP memory_limit values and adequate vCPU and RAM resources.

Environments with real resource isolation help prevent memory exhaustion errors, admin dashboard slowdowns, and failures during traffic peaks.

Build and scale with confidence: power your WordPress in the cloud

To get the best performance from WordPress 7.0, you need fast, stable, and scalable infrastructure. At LetsCloud, you can run WordPress in cloud environments with NVMe SSD storage, dedicated resources, and the freedom to customize your infrastructure according to your project’s needs.

In addition, to simplify the setup process, you can use our 1-click WordPress image, which makes installation easier and allows you to get your website online quickly, while still keeping the flexibility to configure the environment according to your needs.

Ready to take your WordPress performance to the next level? We are here to help.

The Web Is About to Get a Second Door

And most websites aren’t ready for it or even aware it’s already happening.

Picture this: it’s 2028. You ask your AI assistant to find you the best memory SDK for the agent you’re building. The assistant doesn’t google it. Doesn’t open a browser. It traverses the web through a structured layer, calling APIs, querying tool registries, reading schema definitions, in the time it takes you to pour a coffee. It finds VEKTOR Memory at vektormemory.com. Not because you told it to look there. Because the site had a door built for machines to walk through.

A door that said: “Here are the things I can do. Here is how you use them. Here is what you’ll get back.”

That door is called WebMCP. It’s about capability declaration at interaction time.

WebMCP is ARIA for agents that executes.

ARIA (Accessible Rich Internet Applications) is a set of HTML attributes that say: “this button submits a form, this region is navigation, this element is a modal.” Screen readers can’t see. They need the page to declare its structure and intent explicitly, in a form their parsing systems understand. Without ARIA, a screen reader guesses from visual cues — exactly the same failure mode as an AI agent trying to scrape a page.

The underlying idea is identical: the web was built for sighted humans, so you add a parallel semantic layer that non-visual consumers can parse reliably. One was built for assistive technology. One was built for AI.

And we built it into vektormemory.com over the last month. Why?

Because you can’t stop progress, it’s going to happen whether you implement it or not.

And it uses fewer tokens, meaning api costs lowered!

Got your attention now, I know you burn through those tokens…

Mythos I need more cookie recipes, faster. Mythos, FASTER!!

All the cookie recipes will be mine…

Mythos: Aren’t we supposed to be debugging and penetration testing the company website?

Shoosh, Mythos I’m on my break, I also need my European summer holiday travel itinerary completed and more cookie recipes!

Mythos: You are aware I am a supercomputer llm in the Colossus Data centre; you can get cookie recipes from the web…

Anyway here you go, 2780 newly synthesised cookie recipes and 1287 points in your itinerary for Europe, which means you can spend exactly 13 mins in each location.

The peanut butter pecan with goji berries and matcha swirl is my personal favorite.

Would you like that in a .md file with diagrams?

(No Ai bot could make comedy gold like this?)

The numbers tell you where this is going
There are already 2 layers in motion, one for humans and one for agentic bots, both traversing at the same time. As humans move to full search via LLM, the bots will be doing the legwork to extract the info and provide it back in a more sophisticated and efficient format.

Wait till they put adverts into llm’s! Great! (sarcasm) Llm ad blocker, anyone?

Adobe Analytics reported a 4,700% year-over-year increase in traffic from AI agents to US retail sites in 2025. Not a typo. Four thousand, seven hundred percent.

That’s not a wave comin, that’s a wave already crashing. The AI agent market hit $7.8 billion in 2025 and is projected to reach $52.6 billion by 2030 at a 46.3% CAGR. IDC projects that by the end of 2026, AI copilots will be embedded in 80% of enterprise workplace applications. Gartner predicted traditional search engine volume will drop 25% by 2026 because of AI chatbots and virtual agents.

None of this means the web disappears. But it does mean the web gets a second interface — one that wasn’t designed for eyes, hands, and scroll wheels. One that was designed for structured reasoning systems that need clarity, precision, and zero ambiguity about what actions are available and what they cost.

The question facing every developer and every website owner is the same question that faced businesses when mobile browsers appeared: do you build for the new interface now, while it still earns you first-mover advantage? Or do you wait and scramble to catch up later?

We chose now.

Why AI agents break on the modern web
Here’s the fundamental mismatch: the web was designed for humans. Its entire interaction paradigm assumes a visual system, a motor system, and a brain that can disambiguate context with tremendous common sense. “Add to cart” means something because you’re already looking at a product page. You can see the shopping cart icon in the corner. The visual hierarchy guides you naturally.

An AI agent doesn’t have any of this. When it encounters a webpage, it sees HTML — thousands of lines of markup describing text, styling, layout, meta-information. To interact with a button, it has to:

Step 1: Process the entire HTML document
Step 2: Run vision model inference on the rendered page screenshot
Step 3: Identify which elements look interactive
Step 4: Guess each element’s semantic meaning based on context
Step 5: Predict side effects of clicking
Step 6: Execute, observe the result, adapt, repeat

This is expensive. It’s slow. It’s brittle. A site redesign, an A/B test, a new checkout flow — any of these can break an agent’s workflow entirely because it was navigating by sight, not by structure.

The arXiv research paper (Perera, 2025, arXiv:2508.09171) that validated this approach ran 1,890 real API calls across online shopping, authentication, and content management scenarios. The result? Traditional visual scraping methods require staggeringly more compute. WebMCP’s structured approach cuts that processing overhead by 67.6% while maintaining a 97.9% task success rate. Users save 34–63% in API costs for agent-assisted tasks.

This isn’t a marginal improvement in a footnote. It’s the difference between agents being an expensive curiosity and a viable production infrastructure.

What WebMCP actually is
WebMCP (Web Model Context Protocol) is a new W3C web standard co-developed by engineers at Google and Microsoft, formally proposed in August 2025 and entering Chrome’s early preview in February 2026 via Chrome 146.

The core idea adds more depth for agents: websites expose their functionality as tools—JavaScript functions with natural language descriptions, structured parameter schemas, and defined return types — that AI agents can call directly through a browser-native API called navigator.modelContext.

Instead of guessing, agents ask: “What can I do here?” The website answers explicitly. Instead of simulating a human clicking through a form, an agent calls a structured function and gets a structured response.

Think of it as making your website simultaneously serve two very different users: humans via your visual design, and agents via your tool registry. The HTML, CSS, animations, your brand experience — none of that changes. You’re adding a second door to a building that already has one. Humans use the front door. Agents use the API door. Both get what they need.

WebMCP is positioned as a client-side extension of the Model Context Protocol (MCP) that Anthropic introduced in November 2024. Where traditional MCP operates server-side via JSON-RPC — letting agents talk to databases, APIs, internal tools — WebMCP runs in the browser. The tools live in JavaScript on your site. There’s no separate backend to maintain. The business logic you’ve already written becomes the tool implementation.

The two ways to implement it
WebMCP gives developers two implementation paths. Picking the right one depends on the complexity of what you’re exposing.

The Declarative API is HTML-native. You annotate existing form elements with attributes that describe them to agents:

Search

That’s it. The agent sees this and knows it can invoke a search_memories tool with a query parameter. For simple, single-step interactions—a search form, a contact form, a filter interface—the Declarative API gets you WebMCP support in under ten minutes.

The Imperative API is for complex, multi-step or conditional workflows. You use JavaScript to register tools programmatically:

if (navigator.modelContext) {
navigator.modelContext.registerTool({
name: “activate_vektor_license”,
description: “Activates a VEKTOR Memory license key to enable persistent storage and graph wiring”,
parameters: {
licenseKey: {
type: “string”,
pattern: “^[A-F0-9]-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX$”,
description: “VEKTOR license key in format XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”
}
},
callback: async ({ licenseKey }) => {
const result = await validateAndActivateLicense(licenseKey);
return {
success: result.valid,
tier: result.tier,
memoryCapacity: result.limits.memories,
message: result.message
};
}
});
}
The Imperative API gives you complete control over validation, state management, error handling, and return shapes. It’s what you reach for when the tool involves conditional logic, multi-step processes, or interactions that need to communicate state back to the agent clearly.

The key constraint in both cases: tools execute visibly on your page. The user can see what’s happening. This isn’t agents running silent automations in the background — it’s agents working within the same interface humans use, maintaining transparency and user trust.

Also this is in demo mode, no actual live real database info is being given, the agent is viewing demo info to give back to the user.

The actual working WebMCP layer instructions:

Write webmcp.js → /public/webmcp.js
Write backend routes → /server/routes/webmcp.js
Create /.well-known/webmcp.json manifest
Write llms.txt → /public/llms.txt
Patch server/index.js to mount the routes
Update robots.txt
✅ GET /api/memory/status → System health pulse (no auth)
✅ POST /api/memory/query → Natural language search
✅ POST /api/memory/store → Write test (requires license format)
✅ POST /api/license/activate → Format validation + capabilities
✅ POST /api/demo/request → Email to [email protected]
✅ POST /api/compare → Competitor analysis
✅ POST /api/agent/reason → Multi-step reasoning demo

Why we built this demo info into our website
VEKTOR Memory is a persistent memory SDK for AI agents. The irony of an agent memory product being unreachable by agents was not lost on us.

Before WebMCP, if a developer asked Claude to “look up VEKTOR Memory and see if it could help with our project,” Claude would navigate to vektormemory.com, read the visual content, maybe try to extract some relevant text, and return a summary. That interaction is fine. It works. But it’s a one-way transaction: Claude reads the page, summarizes it for you, and that’s it. The agent doesn’t have hands on vektormemory.com. It can’t trial the product. It can’t activate a license. It can’t demonstrate memory recall with a live query. It can only read and report back.

Plus, it uses a lot of tokens…

Current (Pre-WebMCP) Workflow
Agent evaluating VEKTOR:

Web search for “VEKTOR memory” → ~500 tokens (search query + results parsing)
Fetch vektormemory.com → ~2,000 tokens (HTML, CSS, marketing copy)
Parse pricing page → ~800 tokens (extracting actual pricing from messy HTML)
Read docs → ~3,000 tokens (multiple doc pages to understand architecture)
Read comparison articles → ~2,000 tokens (VEKTOR vs Mem0, vs OpenAI, etc.)
Synthesize understanding → ~1,500 tokens (agent thinking/reasoning)
Report back to user → ~500 tokens
Total: ~10,300 tokens per evaluation

With WebMCP v2.0.0
Agent evaluating VEKTOR:

Discover .well-known/webmcp.json → ~50 tokens (JSON manifest)
Call query_memory → ~400 tokens (demo results already structured)
Call memory_status → ~200 tokens (JSON metrics, no parsing needed)
Call compare_vektor → ~300 tokens (structured comparison, no scraping)
Call vektor_agent → ~250 tokens (reasoning demo already formatted)
Synthesize understanding → ~400 tokens (agent thinking, but on structured data)
Report back to user → ~400 tokens
Total: ~2,000 tokens per evaluation

Token Savings: ~80% reduction

Pre-WebMCP costs:

HTML parsing (dense, unstructured) → high token overhead
Multiple page fetches → redundant content
Natural language comparison text → requires reasoning to extract
Marketing copy → requires filtering signal from noise
Agent has to synthesize understanding from messy sources
WebMCP costs:

JSON responses (compact, structured) → minimal overhead
Single endpoint per capability → no page crawling
Structured comparisons → agent reads, doesn’t synthesize
Honest demo mode labels → agent trusts the data
Agent receives understanding, doesn’t extract it
Scaling Effect
If VEKTOR gets 1,000 agents/month evaluating:

If agents also use VEKTOR in production (storing + querying memories repeatedly), the savings multiply further because WebMCP tools are the primary interaction layer, not a secondary research layer.

The Real Cost Savings
The token math is significant, but the bigger cost is agent time + hallucination risk:

Without WebMCP: Agent spends 10K+ tokens trying to extract accurate architectural details from marketing-heavy docs, potentially gets confused about:

Whether MAGMA graph really has 4 layers or if that’s marketing speak
Whether 8ms latency is real or best-case
What data actually persists vs. what’s demo
How licensing actually works
→ Results in wrong recommendations or wasted integration time

With WebMCP: Agent spends 2K tokens, gets:

Structured MAGMA layer visualization
Realistic performance data (8ms p50, 12ms p95)
Explicit “demo mode” labels
Direct contact path
→ Results in accurate evaluations and faster conversions

Bottom Line
~80% token reduction per agent evaluation, scaling to $200+/month savings per 1K monthly agents. But more importantly: agents get honest data, make better decisions, waste less time on bad fits, and when VEKTOR IS a fit, they onboard faster with accurate expectations.

WebMCP changes that completely. When an agent visits vektormemory.com now, it finds a machine-readable layer that says: here are things you can do, not just things you can read.

We deployed seven DEMO tools:

store_memory — Agents can demo test writing facts, preferences, or decisions to the VEKTOR memory graph with specified importance weighting and semantic tags. The agent sees the complete MAGMA wiring logic (how semantic, temporal, causal, and entity layers would connect) but no data actually persists — this is validation and showcase, not production storage. Demo mode.

query_memory — Natural language search demonstrating 8ms recall latency. Agents can ask “what do I know about React hooks?” and get back semantically ranked results from a realistic demo graph. Every result shows which graph layer matched and why. Demo mode.

memory_status — System health pulse: memory count (8,742), last write timestamp, DB size (24.3 MB), graph edge density (0.73), performance metrics (8ms p50, 12ms p95). Any agent can pull status without authentication. Shows realistic graph structure — 12,841 semantic edges, 8,743 temporal edges, 6,521 causal edges, 9,284 entity edges. Demo mode, but data structure is honest.

activate_vektor_license — Format validation for license keys (any correctly-formatted UUID passes). Returns capability set (persistent storage, REM cycle compression, multi-agent support, MAGMA graph wiring, WebMCP access). Clear message: “Format validated in demo mode. For real activation with payment, contact [email protected] or visit https://vektormemory.com/product.”

request_vektor_demo — Agents submit name, email, intended use case, and AI provider. Emails [email protected] with all details and reply-to address. Returns confirmation with expected response time (24 hours). No calendar system, no scheduling API — just email-based contact. Simple, direct, honest.

compare_vektor — Takes a competitor name (Mem0, OpenAI Memory, etc.) and returns structured comparison: architecture, latency, privacy, pricing, offline capability, graph wiring, WebMCP support. Designed for agent research. Includes a verdict (e.g., “VEKTOR wins on privacy, latency, and cost”) and links to docs.

vektor_agent — The most powerful tool. Takes a natural language goal and returns a reasoning flow: parse intent → search semantic layer → traverse causal edges → rank by temporal recency → synthesize response. Shows the multi-step reasoning architecture. Returns demo synthesis with clear label: “This is demo reasoning. Live reasoning requires persistent graph installation.” This is the core VEKTOR value proposition — not simple vector search, but graph-based multi-step reasoning — delivered as a callable tool that demonstrates the capability without executing on real data.

The net effect: any agent that visits vektormemory.com can now evaluate the product, trial the core functionality, understand the architecture, research competitors, and request a demo — without the user ever leaving their conversation window. Every tool is labeled demo mode. Every tool includes contact email and documentation links. Every tool returns honest capability descriptions and realistic data structures.

The Future Possibilities:
The agent doesn’t need to leave the chat.

This is the part that matters for the developer ecosystem.

If you’re building with Claude, ChatGPT, or any agent framework, your agents now have a path to discover and interact with VEKTOR Memory that doesn’t require pre-configuration. You don’t need to install an MCP server. You don’t need to add VEKTOR to your agent’s tool registry. You don’t need to write integration code.

You tell your agent: “I want to understand if VEKTOR Memory is right for my use case.” The agent — if it has browser capabilities — navigates to vektormemory.com, discovers the seven WebMCP tools via the .well-known/webmcp.json manifest, calls query_memory to test search performance, calls store_memory to understand the writing interface, calls compare_vektor to research competitors, and calls request_vektor_demo to book a conversation with the team.

All of this happens in the chat window. The agent returns an accurate evaluation: “Here’s what VEKTOR does well, here’s where it might not fit your needs, and here’s how to get started if it’s a match.”

This is the vision of agent-native software: products that don’t need to be explicitly integrated to be discoverable or usable. Products that make themselves available to reasoning systems through structured, machine-readable interfaces that are honest about their capabilities.

WebMCP is the discovery and interaction protocol. VEKTOR’s demo tools are the implementation — carefully designed to show real architecture, realistic performance, actual limitations, and a clear path to real usage.

The llms.txt file we deployed to vektormemory.com/llms.txt is the companion piece. Where WebMCP handles structured tool interaction, llms.txt handles discoverability — it’s a plain text file that tells AI crawlers exactly what VEKTOR is, what it does, and what tools are available. It’s indexed by the same systems that power Claude’s web search, ChatGPT browsing, and Perplexity.

The combination means VEKTOR is findable by agents even before they visit the site, and fully evaluable once they do.

What changes in practice
For developers actively building agent infrastructure, this changes several practical workflows.

Evaluation: Instead of manually testing a memory SDK by writing integration code, your agent can trial the core functionality on the product site in demo mode. Query performance, search interface design, response shapes, competitive positioning — all evaluable without setup code. The agent gets an honest picture: “This is a demo, but here’s how the production system would work.”

Architecture understanding: Rather than reading documentation, agents can call vektor_agent with a question about multi-step reasoning and see the actual reasoning flow returned — parse → semantic search → causal traversal → temporal ranking → synthesis. Understanding MAGMA graph architecture becomes concrete rather than theoretical.

Competitive research: Agents conducting tool comparison research get structured, accurate differentiation data from compare_vektor instead of trying to extract it from marketing copy. The comparison is designed for agent consumption and includes honest assessments (“VEKTOR wins on privacy and cost; you lose vendor lock-in concerns; latency is faster”).

Demo booking: Demo requests flow directly to [email protected] with full context (use case, AI provider, agent name) embedded in the email. No calendar system — just immediate, accountable contact.

Research before purchase: An agent can evaluate whether VEKTOR fits a use case before a human ever needs to download anything. The evaluation is based on realistic data, honest limitations, and actual performance characteristics. A developer gets a recommendation from their agent: “Use VEKTOR if you need offline-capable, local-first memory with structured graph reasoning. Skip it if you need cloud sync or team collaboration features.”

For product teams integrating VEKTOR into their agent infrastructure, WebMCP also means clearer onboarding. Users interact with VEKTOR-powered features through agents without needing to understand memory graph internals. The agent mediates the complexity. The tool schemas enforce validation. And critically — agents can evaluate fit before integration, reducing wasted implementation effort.

The uncomfortable truth about web design
There’s a harder implication underneath all of this, one worth naming directly.

A substantial portion of web design over the last twenty years was optimized for human visual processing. Dark patterns, friction-by-design, information hidden behind seven clicks, pricing buried in comparisons — these design choices work because humans are finite attention systems who give up. Agents don’t give up. They’re tireless, systematic, and they read the terms of service.

WebMCP, by making sites machine-readable, makes them accountable to machine scrutiny. A site that hides its cancellation flow three levels deep might be navigable by a human who eventually finds it — but to an agent with a WebMCP tool called cancel_subscription, the friction disappears. The agent calls the tool and it’s done.

This will be painful for some business models. It will be clarifying for product teams who actually want to serve users well. If your product is good, agents discovering it, evaluating it accurately, and using it when it fits is pure upside. If your product relies on user confusion to function, WebMCP is an existential concern.

VEKTOR has one position here: we want agents to find us, evaluate us honestly in demo mode, and use us when we’re the right fit. If we’re not the right fit for a given use case, we’d rather an agent tell a user that clearly than have them waste time with a bad integration.

The seven tools we exposed are designed around transparency:

Honest capability descriptions (“DEMO: this is demo mode, here’s what production would do”)
Realistic performance metrics (8ms actual latency, real graph edge counts)
Clear limitations (format validation only for license activation; no data persistence in store_memory)
Direct contact path (email to [email protected], not hidden behind scheduling systems)
Structured comparisons (agent-readable competitive analysis with verdicts)
An agent that evaluates VEKTOR should come away with an accurate picture — positive or negative. And crucially, they should come away knowing exactly how to move from evaluation to real usage: contact [email protected], visit https://vektormemory.com/docs, or install vektor-slipstream locally for offline-first persistent memory.

That’s the bet we’re making on agent-native software: that transparency and honest capability descriptions are better long-term than friction-by-design. That agents discovering us accurately is better than users fumbling through dark patterns. That a clear “this might not be right for you” is better than a misleading trial that wastes their time.

The timeline you need to know
WebMCP moved from independent proposals at Microsoft, Google, and Amazon to a W3C Community Group Draft in under nine months. Chrome 146 shipped early preview support in February 2026. Edge and other Chromium-based browsers are following. A stable cross-browser release is coming.

The standard is still a W3C Community Group Draft, not a full W3C Recommendation — the API surface could change. Implementers should be prepared for iteration. But the direction is clear, the momentum is real, and the co-sponsorship of two of the world’s largest browser vendors means this isn’t an experimental sketch that gets abandoned.

The developer opportunity window is right now. Early implementations get indexed by AI crawlers as they train on the new web. Agents that use Chrome 146+ Canary for browsing already discover WebMCP tools. The sites that build for this now will be the sites that agents know how to use fluently when WebMCP hits stable release and browser support becomes universal.

For the builders
If you build websites or developer tools, here’s the practical picture.

WebMCP requires no backend changes. You ship JavaScript. You annotate forms. You register tools. The .well-known/webmcp.json manifest file tells agents what tools exist before they even load your page. The llms.txt file makes your site’s capabilities discoverable at the AI crawler level.

Implementation time for a simple site: a few hours. For a complex product with multi-step workflows: a few days, most of it designing the tool schemas and testing interaction patterns with real agents.

The install cost is low. The ceiling is high. Any product that currently requires a human to navigate a UI to accomplish a task can potentially expose that task as a WebMCP tool — making it accessible to the billions of agent-assisted interactions that are already happening, and the tens of billions more that are coming.

The web has always had two modes
There’s a frame that makes all of this feel less dramatic than the headlines suggest.

The web has always had two modes. There’s the human mode — visual, gestural, experiential. And there’s the machine mode — crawlers, scrapers, API consumers, RSS readers. SEO is the discipline of making your site work well in machine mode. Schema.org markup, sitemap.xml, robots.txt, structured data — these are all ways of saying “here is what this site means, in a form a machine can reason about.”

WebMCP is SEO for agent-native interactions. It’s the discipline of making your site work well for the new generation of machine visitors — not crawlers indexing content, but reasoning systems taking actions.

The sites that invested in structured data in the early 2010s ranked better in search. The sites that invest in WebMCP tool quality in 2026 will be discovered and used more fluently by agents. The technical debt is the same on both sides: sites that ignore it don’t break, they just become progressively less visible to the systems that matter.

VEKTOR Memory was built for agents from the ground up — local-first memory graphs, sub-10ms recall, causal graph wiring designed for multi-turn reasoning. Having agents discover and use VEKTOR through a structured protocol they were designed to speak natively is the logical next step in that mission.

The second door is open.

vektormemory.com — persistent memory for AI agents.
WebMCP manifest: https://vektormemory.com/.well-known/webmcp.json
Discovery file: https://vektormemory.com/llms.txt
Documentation: https://vektormemory.com/docs

Sources: Adobe Analytics (2025), arXiv:2508.09171 (Perera, Aug 2025), Salesforce Research (2025), IDC 2026 forecast, Gartner (Feb 2024), McKinsey Global Institute (2025), developer.chrome.com/docs/ai/webmcp, github.com/webmachinelearning/webmcp

WebMCP, AI Agents, Web Development, LLM, Agent Architecture, Agentic AI, API Design, Developer Tools, W3C Standards, Token Optimization, AI Memory, Semantic Search

Bonus Content: Checklist to Help Implement
Drop into llm and Reconfigure to Your Web/VPS Situation:

WebMCP Build & Testing Checklist
For Teams Building Agent-Native Products with WebMCP

Lesson learned from VEKTOR: Single-LLM validation is not enough. Always test with multiple LLMs and validate discovery + functionality across different agent environments.

Phase 1: Build & Manifest
Manifest Creation
Create /.well-known/webmcp.json at your domain root
Include all required fields:
schema_version: “1.0”
name (product name)
description (what you do, key claims)
url (product website)
contact (support email)
modes array (at least [“demo”] or [“demo”, “production”])
defaultMode (current environment)
docsUrl (root docs link)
tools array (all endpoints)
Per-Tool Definition
For EACH tool, verify:

name (unique identifier)
description (what it does, key metrics if demo)
url (absolute path to endpoint)
method (GET/POST/PUT)
parameters (JSON Schema with required, properties, patterns)
outputSchema (JSON Schema for response shape)
docsUrl (anchor link to specific tool docs, e.g. #query_memory)
modes (which environments this tool works in)
Input Validation
All required fields have required: […] in parameters
UUID/email/enum fields have regex patterns or format validators
Numeric fields have min/max bounds
String fields have maxLength constraints
Optional fields have sensible defaults
Output Documentation
outputSchema matches actual API responses
All response fields are typed (string, number, object, array)
Objects have nested property definitions
Arrays specify item schema
Special fields documented (mode, operation, latencyMs)
Demo Mode Labeling
All responses include mode: “demo” or mode: “production” field
Manifest declares which modes apply (per-tool)
Root-level defaultMode tells agents current state
Docs explain what demo means (no persistence, fake data, etc.)
Documentation
llms.txt created at root (plaintext index)
Lists all tools with HTTP paths and descriptions
Includes contact email and docsUrl
Explains demo vs production (if applicable)
Per-tool docs exist (anchor links from manifest match real sections)
Phase 2: Implementation & Deployment
Endpoint Implementation
All tools return valid JSON (not HTML, not empty)
All responses include required fields (success, operation, mode, docsUrl, contactEmail)
Error responses are JSON (not 500 HTML)
HTTP status codes are correct (200 for success, 400 for validation, 401 for auth, 403 for permission)
CORS headers allow cross-origin calls (Access-Control-Allow-Origin: *)
Security & Rate Limiting
Rate limiting enforced per IP/user (at least for mutations)
License validation enforces format (if applicable)
Sensitive data not logged (passwords, tokens, keys)
No hardcoded credentials in public code
SSL/TLS enforced (HTTPS only)
Deployment
Manifest is served from /.well-known/webmcp.json (correct path)
llms.txt served from /llms.txt (correct path)
All endpoints respond with 200/correct status codes
Content-Type headers correct (application/json for manifest/endpoints, text/plain for llms.txt)
Nginx/proxy properly configured to serve static files and proxy API calls
CDN or caching is aware of manifest (avoid stale responses)
Metrics & Observability
Demo endpoints return realistic metrics (numeric, not strings)
Status endpoint includes measurement metadata (timestamps, sampleSize, measurement_window)
Latency metrics include percentiles (p50, p95, p99)
All numeric claims are verifiable (not marketing-only)
Phase 3: Single-LLM Validation (Perplexity/Claude/Gemini/Openai/Grok)
Discovery Testing
Perplexity can fetch and parse /.well-known/webmcp.json
Perplexity can fetch and parse /llms.txt
All 7 (or your count) tools are listed in manifest
All tool paths and methods are correct
Manifest Validation
Root-level fields present: name, contact, docsUrl, modes, defaultMode
All tools have: name, url, method, parameters, outputSchema, docsUrl, modes
Contact email matches across manifest and responses
JSON is valid (Perplexity can parse it)
Endpoint Testing
Perplexity can call each endpoint (non-destructive)
Responses are valid JSON
Responses include mode: “demo” or mode: “production”
Responses include docsUrl and contactEmail
No 403/500 errors on GET endpoints
Schema Validation
Input schemas are well-formed JSON Schema
Output schemas are well-formed JSON Schema
Required fields documented
Patterns/validation rules enforced
Defaults provided where applicable
Score & Gaps
Perplexity scores your manifest (example: 7/10)
Perplexity identifies gaps (missing docsUrl, outputSchema, modes)
Perplexity validates metrics (realistic, verifiable)
Perplexity notes edge/WAF issues (if any)
Sign-off: Perplexity produces validation report with score

Phase 4: Patch & Improve (Based on Single-LLM Feedback)
Address All Gaps
Add per-tool docsUrl (if missing)
Add per-tool outputSchema (if missing)
Add modes declaration (if missing)
Add root-level docsUrl (if missing)
Fix any HTTP status code issues
Fix any response format issues
Re-Deploy
Copy updated manifest to production
Verify manifest is live (curl it)
All tools have docsUrl
All tools have outputSchema
All tools have modes
Sign-off: Updated manifest deployed, Perplexity confirms improvements

Phase 5: Second-LLM Validation (Gemini, Claude, etc.)
Independent Testing
Second LLM fetches manifest independently
Second LLM scores manifest (should match or improve on first LLM score)
Second LLM tests same endpoints
Second LLM validates same requirements
Comparative Validation
Does second LLM find the same gaps as first? ✅ (confidence +)
Does second LLM find NEW gaps first LLM missed? ⚠️ (check if real)
Does second LLM agree on metrics realism? ✅ (confidence +)
Does second LLM have different concerns? ℹ️ (document for future)
Score Comparison
First LLM: 7/10 → 9/10 (after patch)
Second LLM: Should be 9/10+ (if patch was effective)
Difference > 1 point: Investigate why (different testing approach, different standards)
Sign-off: Second LLM produces independent validation report

Phase 6: Cross-LLM Agent Testing
Real-World Agent Scenarios
Claude agent can discover tools via .well-known/webmcp.json
Perplexity agent can discover and call tools
Gemini agent can discover and call tools
Other agents (ChatGPT, Grok, open-source) can discover tools
Functionality Testing
Agents can validate input against inputSchema
Agents can validate output against outputSchema
Agents understand demo mode (don’t expect persistence)
Agents navigate to docsUrl for tool help
Agents contact if they need help
Edge Case Testing
What happens if agent sends invalid input?
What happens if endpoint returns 403 (WAF block)?
What happens if outputSchema is missing?
What happens if docsUrl is broken?
Phase 7: Documentation & Public Launch
Public Validation Results
Publish Perplexity’s validation report (score, findings)
Publish Gemini’s validation report (score, findings, comparison)
Create “WebMCP Integration” badge/certification
Document known issues and workarounds (e.g., WAF blocks)
Agent Ecosystem Integration
Register manifest with WebMCP registry (if exists)
Ensure llms.txt is indexed by search agents
Monitor /.well-known/webmcp.json for agent traffic
Track adoption by LLM (Claude, Perplexity, Gemini, etc.)
Ongoing Maintenance
Monitor endpoint response times (latency claims must be accurate)
Update outputSchema if API response changes
Add new tools to manifest and llms.txt
Fix any WAF/edge issues that appear
Re-validate with LLMs after major changes
Checklist Summary
PhaseStatusOwnerDate

Build & Manifest⏳Dev —
Implementation & Deploy⏳DevOps —
Single-LLM Validation (Perplexity)⏳QA —
Patch & Improve⏳Dev —
Second-LLM Validation (Gemini)⏳QA —
Cross-LLM Agent Testing⏳QA —
Launch & Maintenance⏳PM —
Key Learnings (From VEKTOR)
What Worked
Manifest-first approach (define before implement)
Per-tool docsUrl and outputSchema (agent UX)
Demo mode declaration in manifest (agents know upfront)
Realistic metrics with percentiles (verifiable, not marketing)
Multiple LLM validation (confidence)
What to Watch
WAF can block legitimate tool paths (whitelist WebMCP traffic)
HTTP status codes matter (agents validate responses)
CORS headers critical for discovery (cross-origin calls)
Response consistency matters (all tools should follow same schema)
llms.txt must be discoverable (agent indexing depends on it)
Best Practices
Always validate with multiple LLMs — Single validation is insufficient
Test discovery before functionality — Manifest first, then endpoints
Declare demo mode in manifest — Don’t make agents infer it
Include realistic metrics — 8ms latency claims need percentiles
Keep docs fresh — docsUrl must always point to current docs
Monitor agent traffic — Track which LLMs discover and use your tools
Iterate on feedback — First validation is rarely perfect (7/10 → 9/10)
Version: 1.0
Last Updated: 2026–05–23

Web Development
AI Agent
Agentic Ai
LLM

The night Meta flagged my Instagram automation – what I rewrote in v1.5.0

If you’re building any kind of SNS automation tool, the fight against bot detection is part of the job. This post is the postmortem of the day Meta’s automation detection caught one of the Instagram accounts I was running through my indie SaaS (GramShift), what the actual trigger pattern looked like from the operator side, and the design rewrite I shipped in v1.5.0 as a response.

Note up front: the specific thresholds, probabilities, and timing distributions inside the pacing engine are the product’s moat and are intentionally not in this post. The shape of the rewrite is what’s interesting; the exact numbers stay private.

What happened

I detect the event from my own logs first, not from Instagram. The like count for a running cycle drops far below the expected band, and the operation log starts emitting action_blocked. I open the affected account in a browser, log in, and the dashboard greets me with:

We’re sorry, but we limit how often certain actions can be performed.

This is not a permanent ban. It’s a soft cooldown — “we’re restricting this account’s actions for a while.” But if you keep automating through it, the escalation path leads to a permanent ban. I turn off every feature for that account in my tool immediately and let it sit.

Postmortem: it wasn’t one thing, it was three things stacking

Sitting down with the two weeks of cycle logs leading up to the event, the picture that emerged was not a single smoking gun. It was three “aggressive” settings stacked on top of each other:

  1. Cycle intervals too short, and the variance band too narrow. The intervals were random, but the range was tight enough that on aggregate it still looked mechanical to a frequency analysis.
  2. Daily action total was sitting near the implicit ceiling. Industry chatter puts soft daily ceilings for IG engagement actions in a fairly well-known band. I was running near the top of that band, every day, with no rest days.
  3. Actions were firing through the middle of the night. A real person sleeps. An account that doesn’t is one of the cheapest signals to detect.

Any one of these in isolation is probably survivable. All three at once for two weeks is the kind of pattern that gets flagged. That’s the lesson — for this class of tool, individual parameters are less interesting than the interaction between parameters.

The cooldown

Public information on how long the soft cooldown lasts is all over the map — “24 hours to 7 days” is what you’ll find quoted. I left the account fully idle for several days, not just my tool but the human-side login too. When I checked back, the warning was gone and the normal feed was back. I assumed (correctly, in hindsight) that the account was likely still under closer monitoring for a while, and dialled the settings way down for the restart.

The rewrite: GramShift v1.5.0 Human-Pacing

Once the dust settled, I rewrote the pacing layer from the ground up. The shape of the rewrite, without the actual numbers:

  • Wider, less mechanical interval distribution. Fixed intervals or narrow random bands aggregate into a detectable rhythm. A distribution closer to how humans actually pace themselves is the goal.
  • Hard skip at night-time hours. If a human wouldn’t be doing this, the tool shouldn’t either.
  • Per-cycle action count is now variable, with a real ceiling. “Like everything until you hit a wall” is structurally not allowed by the new design.
  • Daily cycle count cap. No matter what the per-cycle math says, the day-level total is bounded so the account never drifts toward the implicit ceiling.

The short-term cost of this is real — engagement-driven follower growth gets slower. The trade against the alternative (lost account, lost followers, lost post history) is not close.

The conservative-restart rule

After v1.5.0 shipped, I added an operator-side rule for any new Instagram account being onboarded into the tool: the first two weeks are explicitly under-tuned. Slow mode, follow feature off, daytime hours only, minimum number of cycles. The point is to let Meta classify the account as a “normal user” before any aggressiveness ramps up at all.

Probably the single biggest lesson from this whole thing: for an SNS automation tool, the most important KPI is not engagement efficiency, it’s account lifetime. A banned account loses everything you built on top of it. A design that’s harder to flag is more valuable than a design that’s quicker to grow, in the same way that a slower compiler that produces correct code is more valuable than a fast compiler that produces wrong code.

If you’re building anything in this space, I’d argue the right mental model is: you’re not optimizing for the next thousand likes, you’re optimizing for the account still being alive in a year. Almost every parameter decision flips when you frame it that way.

Curious if anyone else building bot-adjacent automation has done a similar postmortem. The “three aggressive settings stacked” pattern feels like it generalizes well beyond Instagram — same shape is probably hiding in scrapers, API clients, and any other class of tool where a counterparty is doing pattern detection on you.