<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[What came out of using the AI module in practice]]></title><description><![CDATA[<p dir="auto"><img src="/assets/uploads/files/1791887717015-thumbnail-agent-ai.png" alt="Agent and the AI module in BAS" class=" img-fluid img-markdown" /></p>
<p dir="auto">Prefer to watch? It's all in my YouTube video, it's available in English, Hindi and Turkish: the Steam profile <a href="https://youtu.be/EY2B457MBJo?t=7736" rel="nofollow ugc">from 2:08:56</a>, and the AI Room project <a href="https://youtu.be/EY2B457MBJo?t=8256" rel="nofollow ugc">from 2:17:36</a></p>
<p dir="auto">All the materials for the video are on my Telegram channel, come join: <a href="https://t.me/mustangbas" rel="nofollow ugc">t.me/mustangbas</a></p>
<h3>Plan</h3>
<ol>
<li>Steam profile with a chat request</li>
<li>The AI Room project</li>
<li>Conclusion</li>
</ol>
<h3>Steam profile with a chat request</h3>
<p dir="auto">As a base I took the Steam login project the agent had built earlier: it logged in to the account and set the avatar. I decided to extend it and asked the agent to make the bot also:</p>
<ul>
<li>fill in the whole profile, with the country set to the USA</li>
<li>generate the profile name, real name and description through a chat request from the AI module</li>
</ul>
<p dir="auto">So before, the bot basically touched only the avatar in the profile. Now it had to fill in the Steam profile completely, with every field</p>
<p dir="auto"><img src="/assets/uploads/files/1791887552474-06-02-art06-steam-profile-en.png" alt="What the bot does in the Steam profile: what the login project already had and what the agent added with the AI module" class=" img-fluid img-markdown" /></p>
<p dir="auto">In short, the agent moved all of this into a separate function, <code>FillSteamProfile</code>. Inside it three chat requests run one after another:</p>
<ol>
<li>Profile name, meaning the nickname other people see</li>
<li>Real name</li>
<li>Profile description</li>
</ol>
<p dir="auto">The bot puts every model answer straight into the right field. The country, region and city it sets with normal actions, without the model</p>
<p dir="auto">By the way, the agent wrote the prompts for these requests by itself too. For the description, for example, it asked for a short text in English of 2 or 3 sentences, up to 280 characters, no emoji or hashtags, and only the description itself with no intros</p>
<p dir="auto">When the agent finished everything, I ran the project, and the profile really got filled in completely. So it did the task, in my view, at a full 100%</p>
<p dir="auto">The region, city and Custom URL the agent, by the way, threw in on its own, I only asked for the country</p>
<p dir="auto"><img src="/assets/uploads/files/1791887552697-06-03-01-steam-profile-grid.png" alt="Profile after the run: I asked for the country, the agent added the region and city itself, the model's description below" class=" img-fluid img-markdown" /></p>
<h3>The AI Room project</h3>
<p dir="auto">Here I wanted to use all of the module's actions in one system. There's a site with chat rooms, and the bot has two modes:</p>
<ol>
<li>Create a room and write a couple of messages there, plus a voice message on the same topic</li>
<li>Join a room by a saved link, reply to the messages by meaning, and add a fitting reaction</li>
</ol>
<p dir="auto">I set up the module's actions by hand first and only then gave the logic to the agent. If it's never been set up by hand even once, it's unclear what the limits even are here and how to write the agent a decent prompt later</p>
<p dir="auto"><img src="/assets/uploads/files/1791887575321-06-04-art06-ai-room-en.png" alt="The two AI Room modes: where the AI module works and where it's the normal project logic the agent wrote" class=" img-fluid img-markdown" /></p>
<p dir="auto">The first mode works as a chain, by design:</p>
<ol>
<li>A chat request in <code>Continue chat</code> mode comes up with some everyday topic and writes three messages on it</li>
<li>A second request in the same chat basically writes the text for the voice message on the same topic</li>
<li>A speech model turns that text into a voice message</li>
<li>The bot creates a room and sends the messages and the voice message there</li>
</ol>
<p dir="auto">Two models were needed here: a text one and a speech model, which I found on OpenRouter under the Speech tag</p>
<p dir="auto">Here I messed up: both requests wrote their answer to the same variable, and the voice text overwrote the messages. I renamed the variable, and everything worked</p>
<p dir="auto">Voice through the module didn't work out, the answer came back empty. The model expects the request in a different form and returns audio through a different API, and the module doesn't pass the needed parameters in the request. So I gave this part to the agent, and in about 10 minutes it made a separate HTTP request, after which an MP3 showed up in the folder</p>
<p dir="auto"><img src="/assets/uploads/files/1791887575475-06-05-05-audio-http-clean.png" alt="Part of the voice function the agent wrote: if the request went through, the base64 audio is written to an MP3" class=" img-fluid img-markdown" /></p>
<p dir="auto">For the second mode the conversation has to be pulled first, and that's exactly data extraction from the browser. What came back was basically an array of objects, each message with an author, text, time and direction. The voice message was skipped, as I asked</p>
<p dir="auto"><img src="/assets/uploads/files/1791887716454-06-06-06-extracted-messages-grid.png" alt="What the extraction returned: author, text, time and direction of every message, the voice message skipped" class=" img-fluid img-markdown" /></p>
<p dir="auto">I set the type to <code>string_list</code> back then. By the code it won't let an array of objects through anymore, so a conversation like this needs <code>object_list</code></p>
<p dir="auto">Next the conversation goes into a chat request, and the model replies to the person by meaning. At first I put the wrong variable into the prompt, and the model asked to be sent the history. With the right variable the answer made sense: the person wrote about coffee at a new place, and the model asked how they liked that coffee</p>
<p dir="auto">The usual way, a hundred dialogs would have to be prepared in advance. Here it's in fact two actions, and all of it for free</p>
<p dir="auto">The reaction is set by a browser task, and the click logic around it, by the way, was written by the agent. It passes one random message from the other person into the task, and the model picks an emoji for it</p>
<p dir="auto">On the first full run the site logged the bot out of the account, and the thread crashed. The agent fixed this for about an hour and a half, and on the second try everything worked: a room with three messages and a 14-second voice message, plus a reply from the second mode</p>
<p dir="auto"><img src="/assets/uploads/files/1791887716560-06-07-11-room-result-grid.png" alt="The result: three messages and a 14-second voice message, below is the reply from the second mode" class=" img-fluid img-markdown" /></p>
<p dir="auto">As the last step the browser task found a reaction by the word coffee, which really fits the topic of the conversation</p>
<p dir="auto"><img src="/assets/uploads/files/1791887716644-06-08-12-reaction-coffee-grid.png" alt="The browser task searches for a reaction by the word coffee" class=" img-fluid img-markdown" /></p>
<h3>Conclusion</h3>
<p dir="auto">Overall I honestly liked the module. In AI Room I used all of its actions and two models, one for text and the other for voice, and all of it for free. It came out as a really lively dialog. If someone sent me a link to a room like this, I honestly couldn't tell whether a neural network wrote it or a real person</p>
<p dir="auto">There was basically one thing I missed: audio can't be gotten through the module, it had to be generated with a separate HTTP request. Either way, I think the module has a future</p>
<p dir="auto">It's good for narrow tasks where everything is dynamic and an algorithm can't just be written out. From what I did with it, for example:</p>
<ul>
<li>replies to clients and people in chats who can write anything</li>
<li>unique texts for every account: names, profile descriptions, messages</li>
<li>lively conversations between bots in chats and rooms, basically with the topic carried on</li>
<li>choosing by meaning right on the page, like a reaction to a message, where it's unclear in advance what to click</li>
<li>pulling data from a page straight in the needed shape, if sites have different layouts</li>
</ul>
<p dir="auto">Those are the places where automation on the AI module can be built</p>
]]></description><link>http://community.bablosoft.com/topic/32585/what-came-out-of-using-the-ai-module-in-practice</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 23:10:30 GMT</lastBuildDate><atom:link href="http://community.bablosoft.com/topic/32585.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 13 Oct 2026 11:38:07 GMT</pubDate><ttl>60</ttl></channel></rss>