Streaming custom events to React can be boring (in the best way): wire a single handler, and every tool-emitted progress/status/file event shows up instantly.
🙅 No polling loops.
❌ No fake spinners.
Just render what the agent tells you‼️
Posts by Christian Bromann
Tools shouldn’t be silent black boxes. If a tool knows what it’s doing (step name, percent complete, current operation), it should stream that as structured events.
Then your UI renders facts 👉 not vibes.
🌶️Hot take: Most AI agent UIs are lying to you. 🤔
That animated loading spinner? It's not showing real progress. It's a placeholder for "something is happening... probably."
Users deserve better ‼️
I built custom streaming events for @langchain.bsky.social
🎥 www.youtube.com/watch?v=3daS...
Code + demo project 👇
This repo shows how LangChainJS exposes *provider-native tools* so models can:
👀 see the screen
🧠 reason about the UI
👆 interact step-by-step
🙇 learn about previous mistakes
Check out the Tic-Tac-Toe example:
github.com/christian-br...
🧵 2/2
I let an AI control the browser and play Tic-Tac-Toe — using LangChainJS native provider tools by @anthropic.com and OpenAI. 🧠🛠️
No scripts. No selectors. 🤯
The model sees the UI, decides where to click, and acts.
▶️ Watch the demo: youtu.be/dFONF4PqCLw
🧵 1/2
LangChain example showing how to apply strict: true to a providerStrategy response format of createAgent.
⚡ New: Manually control strict mode when using providerStrategy!
When strict: true, the model is guaranteed to return output matching your schema exactly — no extra fields, no missing fields.
🧵4/4
LangChain example showing how to use computer use tool from Anthropic with LangChain's createAgent.
🤖 @anthropic.com gets first-class tool support too!
Text editor, web fetch, computer use, tool search, and MCP toolset.
🎮 See it in action: I built a demo where AI agents play Tic-Tac-Toe using Computer Use! Watch Claude see the screen, analyze the board, click etc:
👉 github.com/christian-br...
🧵3/4
LangChain example showing how to use OpenAI webSearch tool with createAgent.
🔍 OpenAI built-in tools are now first-class citizens in @langchain.bsky.social!
Web search, file search, code interpreter, image generation, computer use, shell, and MCP connector — all work seamlessly with ChatOpenAI or @langchain.bsky.social agents.
🧵2/4
🚀 LangChain.js v1.2.0 is here!
✨ Provider built-in tools for OpenAI & @anthropic.com
🔒 strict mode
🦙 Native structured output for @ollamabot.bsky.social
⚡ Strict mode control for providerStrategy
Full changelog: docs.langchain.com/oss/javascri...
🧵1/4
Ever watched your AI agent get stuck in an endless back-and-forth? 🤔
In my new video I show how to add Model Call Limits in LangChainJS — a tiny middleware that makes your agent fail gracefully and escalate to a human at the right moment.
🎥 Watch here: youtube.com/watch?v=x5jL...
New video: Build a streaming @langchain.bsky.social agent in @nextjs.org using useStream + memory.
🚀 You’ll learn:
- stream AI replies into your UI with useStream
- Minimal API route serving SSE
- Add conversation memory via thread id + checkpointer
🎥 Watch now: youtube.com/watch?v=piK5...
“Run it?” Not without review. 🛑
With HITL middleware, agents surface proposed tool calls, you review the args, then ✅ approve / ✏️ edit / 🙈 ignore / 💬 respond. Policies live next to your agent; state stays coherent via graph-native interrupts.
Code (alpha): github.com/langchain-ai...
Earlier this week I made my last @stenciljs.com release 😔 while I am sad to leave this great project behind I am excited for the new challenge in front of me 🤩 thanks to all the folks at OutSystems and @ionic.io who helped me maintain this project over the last 2 years 🙏
Thank you Christian @bromann.dev for the very insightful session at the Selenium Community Live event today.
The event could be find out here - www.youtube.com/live/zrQRWi9...
Are you interested learning about how @anthropic.com has build Claude Code and what they learned doing so? Join us this month @sfnode.org for two amazing talks by Adam Wolff and @lavalva.dev 🤯
👉 RSVP today: lu.ma/yf3yqjt2
Good morning #interrrupt ☀️
Feels good to ship something I started as an experiment on the weekend 😊
I am sorry but these labels in Playwright reports are so misleading. It's neither mobile nor Safari 😅 Something like "Emulated Mobile Viewport on (patched) WebKit" may do it but is probably to long I guess 🙈
Vibe coding only works with the right tunes from #RTS.fm soundcloud.com/rtsfm/li-sch... 🎵😊
@sourishkrout.com just got the recording from the last @sfnode.bsky.social meetup and was surprised to see you there 😉 bummed I missed the talk! You still owe me the "Demystifying Observables for Dummies" talk 😜
At #SeleniumConf, I gave a lightning talk on leveraging OpenAI to validate application state in automated tests. In my demo, I wrapped an OpenAI client into a WebdriverIO service to seamlessly query and verify the state of an application. www.youtube.com/live/xOVS2_Y...
If there is one thing we can learn from @lauromoura.bsky.social from @igalia.com in his talk on "Advancing WebDriver BiDi support in WebKit" at #SeleniumConf is that WebKit !== Safari. You will miss browser specific quirks and bugs in your application if you think testing WebKit is "good enough" 🙈
Really enjoying Maaret Pyhäjärvi opening statement at SeleniumConf! 👏 We’re here tackling real-world challenges—automating actual browsers and mobile apps on real devices used by real people, all built on open standards.
No hype! Genuinely the best ecosystem and community on testing out there 😊
Miss the days of tools like Orbit.love that made tracking trends in your #OSS communities easy. Surprised there's nothing filling that gap! 🤔
Fun fact: all #JavaScript meetups in San Francisco are currently run by Germans 🇩🇪 😉
Here we go @bromann.dev 👋
Ahh .. mhm 🧐 .. I may do that .. haven’t looked into it too much , cheers! 🍻
I will be hosting an all new edition of @sfnode.bsky.social ✨ join me next Thursday, Feb 27th for an evening of insightful talks, great company, and community vibes.
📍 Hosted by HockeyStack
🕡 6:30 PM - 9:00 PM
🎤 3 amazing talks on JS and AI Agents
Details & RSVP: lu.ma/qlvtozbw
See you there! 👾
Should have done this move to @bsky.app much longer ago 🙈 who cares .. Hello World 👋