惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
人人都是产品经理
人人都是产品经理
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
V
V2EX
博客园 - 三生石上(FineUI控件)
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
D
Docker
S
SegmentFault 最新的问题
博客园 - 聂微东
美团技术团队
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Last Week in AI
Last Week in AI
M
MIT News - Artificial intelligence
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The GitHub Blog
The GitHub Blog
GbyAI
GbyAI
L
LangChain Blog
Vercel News
Vercel News
博客园 - 叶小钗
MongoDB | Blog
MongoDB | Blog
Stack Overflow Blog
Stack Overflow Blog
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
Engineering at Meta
Engineering at Meta
T
Threat Research - Cisco Blogs
T
Threatpost
Scott Helme
Scott Helme
T
Tailwind CSS Blog
Latest news
Latest news
Stack Overflow Blog
Stack Overflow Blog
Blog — PlanetScale
Blog — PlanetScale
The Register - Security
The Register - Security
罗磊的独立博客
P
Proofpoint News Feed
腾讯CDC
S
Schneier on Security
雷峰网
雷峰网
A
About on SuperTechFans
T
Tenable Blog
F
Full Disclosure
Cyberwarzone
Cyberwarzone
博客园_首页
有赞技术团队
有赞技术团队
K
Kaspersky official blog

DEV Community

How to Give Claude Access to Snowflake Without Exposing PII The Agent that grows with you What Building Agent_Sudo Taught Me About AI Agent Security (Before I Found Any Users) Abortion Rights Matter PySide6 vs Electron: Why I shipped a 118 MB Windows desktop tool, not a 250 MB cross-platform one MCP Servers for BI Tools: Looker, Tableau, Power BI, Mode (2026) My AI Agent Kept Lying to Me. Then It Tried to Trick Me. Atlan Alternatives: 6 Open-Source Data Catalogs Compared (2026) How I stopped wrestling with regex and started using AI for data extraction How I Built an AI Assistant That Grows Its Own Tools Interactive Floor Plans for Real Estate Developers — Why Static PDFs Are Dead Vue slot to React: How does VuReact handle it? I Found 54 Reliability Issues in My 14-Agent AI System — Here's What Broke I Built 24 Free Browser Tools in 6 Weeks — Here's What I'd Do Differently Octorato: an open-source AI agent OS with built-in per-client FinOps RAG Explained for Beginners: How AI Assistants Stop Making Things Up Curing LLM Hallucinations: Building a Production-Grade Medical RAG with PubMed and Hybrid Search I don't want to write HTML or fight global CSS, so I built a TypeScript DSL FSx for ONTAP Audit Logs with Data Residency in your region with Sumo Logic Someone contributed 3,324 lines to our open K-12 AI lesson library — a 6-unit series asking students to interrogate AI, not just use it My website has two audiences now. I only built for one of them. AI-Powered Root Cause: Correlating File Access with APM via Dynatrace Opus 4.8 ships Dynamic Workflows — hundreds of parallel subagents per session. Read this before you wire it into prod. We Cut $120,000 from Our Cloud Bill Without Sacrificing Reliability Stress Concentration Factor: Why a Small Hole Can Triple Local Stress Streaming an LLM response, in 4 GIFs High-Cardinality File Access Analysis with Honeycomb + OTel Introduction to n8n: Beginner Course Summary What Happens in 2 Milliseconds: Anatomy of a Single HTTP Request Through a Production WAF Why Veltrix Thought It Could Buy Its Way Out of a Distributed Lock Problem 10 Free Developer Utility Tools That Run Entirely in Your Browser 《认知革命播客》:个人AI基础设施的深度实践与安全思辨 Weekend Supervised Vibe Coding Why I Run Claude Code Plugins for Brand Voice Enforcement x.klickd v4.1: Portable, Encrypted, Human-Governed Memory for AI Workflows That Don’t Reset EC2 to Serverless: Modernizing FSx for ONTAP Splunk Integration AI Can Introduce Complexity Without Introducing Noise — But Only If the Repo Knows How to Hold the Complexity 🛠️Building My First AI Agent with Hermes Agent 🤖 I Built a Flutter App with Firebase + MercadoPago and Turned It Into a Starter Kit (Real Production Code) Hermes Commander: An Autonomous Research Assistant Powered by Hermes Agent 🧠 Why Webhooks Fail Behind Firewalls (And Why Every Fix Has the Same Problem) Have Antigravity review prompts update themselves when your codebase changes 5 Browser-Based Image Tools That Work Entirely Offline — No Upload Required 7 Free PDF Tools That Never Upload Your Files — All Client-Side Building a Cloud SIEM from Scratch with AWS Lambda and EventBridge Compound Engineering: A Plugin That Makes Your AI Coding Agent Smarter Over Time "I Reviewed 50 Dev Resumes — These 5 Mistakes Killed Their Chances" How to Test Your SPF Record for Common Mistakes (Step by Step) Building a Real-Time Financial Sentiment API: Handling Noise and LLM Hallucinations Tokyo Transit: How MCP Helped Me Fix a Broken Multi-Agent System Try the Tech Radar #2 — Markdown Typst Converter (Typst's Syntax Is Closer to Markdown Than LaTeX) 🩺 Inside Med AI: How We Engineered a 100M Token Hyper-Scale Clinical Intelligence Suite 🚀 Common Mistakes New Developers Always Make & How to Avoid Them Effectively Session Management, Rate Limiting & Caching using Redis Why Accuracy Is Not Enough: Evaluation Metrics Every AI Engineer Should Understand How I Built One Building Instagram Data Workflows with HikerAPI (Without Maintaining Scrapers) Claude Code can't open my browser. Cowork can't run my tests. So I wired them together. AGTP: A Transport Protocol Built for Agents I built Snipworth a Chrome extension to turn code into shareable images — and keep them for later My Friend's Two Android Apps, Three Months Lost, and Why We Built onTest Blue-Green Deployments Are Invisible. I Made Mine Visible. Here Is How. Need your attention on my current project Why a deleted backup Lambda kept billing 9,400 EBS snapshots Deterministic Telemetry Ingestion Pipeline for GridLoqer Your Deployments Are Causing Downtime. Mine Do Not. Here Is Why How I Built a 7-Layer NL2SQL Guardrail Stack for a Fortune 500 Enterprise Identity in Web3 The Trap of "Perfect" Architecture: What Building a Shopping Cart Taught Me The Browser Boundary Model: APIs, CORS, Cookies, JSON, Files, and SEO ModelChain: Measurable LLM Router with Adaptive Model Selection, Real-Time Scoring, Budget Guards and Failover for Node.js, Edge and Browser I Built a 25-Agent Polish Parliament That Drafts Bills With Real Legal Citations KeyMesh: Zero-Runtime-Dependency API Key Rotation, Circuit Breaker and Failover for Production LLM Applications in Node.js Claude Code's workflow docs are a menu. Building a home server with a mini PC Stop Shipping AI Slop: Build an Anti-Slop Harness Around Your LLM I built an open source SDK to catch AI agent regressions before they ship. Great Stack to Doesn't Work #3 — Redis: "99% Cache Hit Ratio, System Down" The Bug That Passes Every Toolchain Check: Circular Dependencies in JavaScript Great Stack to Doesn't Work Bonus: SQL vs NoSQL: Which One in 2026? Great Stack to Doesn't Work #2 — Kafka: "Where Did My Messages Go?" I built a detention-pay calculator for truckers in a day — unglamourous niches beat another AI wrapper The Same AI Model Can Perform 6x Better: Here's Why SQL-like Queries in FSRS Plugin for Obsidian [Imposter syndrome] Back to the beginning (DevSecOps path) How to Build a Kundali App with Free Vedic Astrology API — Step by Step Ideias Valem Muito Menos do Que Você Imagina [PT-BR] cgroups and Namespaces — The Linux Kernel's Building Blocks Behind Containers Hermes Blueprint: A Multi-Agent Hedge Fund Morning Briefing System Why We Abandoned Java for Our Treasure Hunt Engine and Embraced the Complexity of Rust Building a RAG System in Rust with Qdrant, Rig, and gRPC 🦀 Ecommerce Search API: Add Visual and Semantic Search Bots read fast pages too: what we reprioritised after an AI-crawler audit Tu navegador te conoce mejor de lo que crees: privacidad en 2026 From Zero to DevOps in Pakistan: My Real Journey With No CS Degree Astro 6.4 + Cosmic: The Fastest Content Stack in 2026 Inferred context is not a dependency graph A Simpler ButtonComponent: Just Render a Div Small Go Detail That Changes How Your Project Looks I Built a SaaS. Nobody Came. Here's What I Learned the Hard Way.
We Built a Real-Time AI Research Collaborator Into our JOT writing tool
Vektor Memory · 2026-05-31 · via DEV Community

There’s a moment every technical writer knows. You’re deep in a paragraph about memory migration frameworks or AI transparency, and you realize you’ve been trying to write, but your ideas need further refining.

You need a kickstart to find the right direction, and you need it quickly before the moment lapses.

No one’s pushing back on your assumptions. No one’s telling you the paper that directly contradicts your third point or provides you with insights outside of your current thoughts.

That’s the gap we decided to close. Over one sprint, we built JOT Collab, a live AI research collaborator embedded directly into the writing interface of VEKTOR Memory’s note editor.

Here’s what we built, and some of the challenges we faced.

Why Not Just Use Notion, Obsidian, or ChatGPT?
This is the obvious question. Here’s the honest answer:

Notion and Obsidian are excellent organisers. They store your notes, link your ideas, and keep your writing structured. But they are passive. They don’t read what you’re writing and say “you’re missing something.” They don’t surface the academic paper that directly challenges your third paragraph. They wait for you to ask.

ChatGPT and Claude are powerful, but they require you to context-switch. You copy your draft, open a new tab, paste it in, ask a question, get an answer, switch back, wait, collate the data, etc.

Every cycle breaks your flow. And they have no memory of what you wrote last week, or what insights you’ve already had on this topic.

JOT Collab is different in three specific ways:

It fires without being asked. Four seconds after you stop typing, it reads what you wrote and surfaces an insight, a suggestion, and four relevant papers — without you leaving the editor or switching context.
It builds on your history. Every insight is stored in VEKTOR’s memory graph. Start a new writing session on the same topic and it surfaces what you noticed last time. Your thinking compounds instead of resetting.
It challenges your synthesis, not just your text. The insight prompt reads your synthesis section headings and says things like “Section 2 assumes X, but this paper from 2024 argues the opposite.” That’s a different class of feedback from grammar suggestions or general summaries.

The closest analogy is a research assistant who has read everything you’ve written, knows the relevant literature, and interrupts you at exactly the right moment, without waiting to be asked.

The Idea: A Collaborator, Not a Chatbot

The distinction matters. A chatbot waits to be asked. A collaborator reads over your shoulder and says something when it has something worth saying.

JOT Collab watches the THOUGHTS pane. When you pause for four seconds, it fires three things simultaneously:

An insight — one sharp observation about what you just wrote, often referencing specific sections of the synthesis pane
A suggestion — a declarative sentence you should add but haven’t
arXiv papers — four relevant academic papers that arrive via Server-Sent Events after the insight renders
The goal was sub-second time-to-insight. The reality was a two-hour debugging session.

This is being tested on Groq llama-3.3–70b-versatile, a fast mid-sized model. And best part, it is still currently free via Api and run locally.

The Architecture

The system has three layers:

Server patch (jot-collab-server-patch.js) — a drop-in Node.js route handler with six endpoints: /api/jot/stream (SSE connection), /api/jot/think (insight + arXiv), /api/jot/suggest (gap suggestions), /api/jot/deepdive (on-demand paper synthesis), /api/jot/article (Medium article builder), and /api/jot/arxiv (proxy).

UI layer (jot-collab-ui.js) — 1,000 lines of vanilla JS that injects a collab panel into the synthesis pane, manages SSE connection lifecycle, handles session state (insight accumulation, paper caching, cross-session recall), and wires all the UI actions.

Card actions (jot-card-actions.js) — selection toolbar and per-card footer buttons (copy, fix, expand, simplify, summarise, flashcards, → jot) for the DESK chat view.

The insight prompt took fifteen iterations. The final version sends: your text, the synthesis section headings, and the last two insights you’ve already seen — so it never repeats the same angle twice.

What Broke, and Why
Press enter or click to view image in full size

The arXiv Race Condition

The hardest problem wasn’t the AI calls. It was timing.

The insight LLM call takes ~800ms. The arXiv fetch takes 2–5 seconds. Early on I tried to wait for both before responding, which meant the user waited 5 seconds to see anything. Then I tried a 1.5-second timeout that would respond with whatever papers had arrived — which meant 0 papers, always.

The fix was obvious in retrospect: decouple completely. Send the insight immediately. Push papers via SSE when they arrive. The UI’s SSE handler updates only the papers section without wiping the insight. The user sees the insight in under a second, then papers appear a few seconds later.

The secondary problem: arXiv returns zero results for non-academic vocabulary. “Cyberattacks” and “intentional design flaws” aren’t in arXiv’s index. The solution was a four-level progressive fallback:

LLM-translated academic query (e.g. “adversarial ML security backdoor attacks”) + category filter
Same query without category filter
Key nouns from the text + broad category
artificial intelligence machine learning as last resort
Something always loads.

The Suggestion Quality Problem

Getting an LLM to suggest intellectual gaps, not grammar fixes, this turned out to be the hardest engineering problem of the sprint.

Every attempt returned "which include → namely" or "are emphasizing → emphasize" regardless of how firmly the prompt said "DO NOT fix grammar." The model pattern-matches to "editor" and defaults to copy editing.

Two things fixed it:

First, server-side rejection of any suggestion with kind: "replace". If the model sends a word substitution, the server drops it silently and returns null. The UI shows nothing rather than showing something useless.

Second, few-shot examples with explicit NO labels:

GOOD: {"kind":"insert","content":"Titanium alloys achieve comparable durability while enabling thinner, more adaptive structures than traditional steel."}
BAD: {"kind":"replace","quote":"are emphasizing","content":"emphasize"} — NO, this is grammar
Models follow examples far more reliably than abstract instructions.

The Duplicate Suggestion Problem

Suggestions were appearing twice. The server broadcasts via SSE and also returns via the HTTP respons, two paths both calling addSuggestionToPanel. The deduplication check by ID should have caught it, but both arrived within 50ms of each other, before either had set the _bound flag.

Fix: disable SSE suggestion rendering entirely. Suggestions come via the HTTP parallel call only. One path, no race.

The Session Panel

Once the collab system worked, I added a session panel that sits below the collab area throughout your writing session:

⊕ Save to notes: Captures your thoughts, synthesis sections, the last three insights, and all papers seen this session as a structured VEKTOR memory note. Also saves the last insight with a [JOT-INSIGHT] tag so cross-session recall can surface it next time you write about the same topic.

↓ Export .md: Downloads a complete markdown file with APA citations at the bottom, ready to paste into a Medium draft.

✦ Build article: Sthis ends your notes, synthesis, insights, and paper references to the LLM with an explicit 8-section Medium template (hook → introduction → core concept → key insight → evidence → implications → counterarguments → conclusion). The result loads directly into the THOUGHTS pane where you can edit it.

The Cross-Session Memory

The most underrated feature: on the first insight of a new writing session, JOT Collab queries VEKTOR’s memory graph for past [JOT-INSIGHT] memories on the same topic. If you wrote about LLM memory three weeks ago and had an insight about episodic vs associative retrieval, it surfaces that in a subtle "from past sessions" section.

Writing isn’t isolated sessions. Ideas compound. The infrastructure for that compounding already existed in VEKTOR — this just exposed it at the right moment.

Where This Is Going

The next version should cross-talk more tightly between the collab panel and the synthesis sections. Right now the insight references synthesis headings by name (“Section 2 assumes X”). The next step is making suggestions aware of which specific claim in the synthesis they’re challenging, not just the section label.

The article builder produces decent first drafts. It won’t replace editing. But it compresses the gap between “I have notes” and “I have a structure I can work with” from two hours to fifteen seconds.

Releasing soon v1.6.1

JOT Collab ships as part of VEKTOR Slipstream v1.6.1. The three files — jot-collab-server-patch.js, jot-collab-ui.js, jot-card-actions.js — drop into any VEKTOR installation. Full setup at vektormemory.com.

The writing tool you use should make you think harder and transmit ideas much faster.

Vektor Memory Refer a Friend Promo — 50% Off First Month for Both of You
We just launched a referral program. If you love VEKTOR, share it with a friend, and you both get 50% off your first month:

https://vektormemory.com/product

How It Works:
Step 1 — Share your referral link: REFER50

Step 2 — Your friend checks out

The discount code: REFER50 is entered at checkout. They get 50% off their first month automatically, and you do too — no coupon hunting required

June 2026 Promo (27th of May — Ends 30th of June)
AI, Agent Memory, LLM, Vector Database, Note Taking Tools, Research, Arxiv

AI
Generative Ai Tools
Notetaking
Llm Applications
Llm Agent