User
Write something
Pinned
Welcome to The Agent Lab
This is the room where I build Beckett in public and steal good ideas from whatever you're building. Here's what's actually here: Build logs. Every week I post what I shipped, what broke, what I almost shipped and pulled. Specifics, not theory. The actual code, the architecture choices, the moments I picked one tool over another. It's all here. Teardowns. When something interesting lands in the AI agent space (new model, new framework, new technique), I run the experiment and post what I'd actually do with it. No "top 10" lists. Member builds. Post what you're working on, what's stuck, what worked. Other members weigh in. I weigh in. We figure it out together. Done-for-you. If you want me to build it instead of you, that conversation also happens here. Three things to do right now: 1. Read the first build log (pinned above) 2. Drop a comment so I know who's in the room 3. Tell me what you're building or stuck on. Specifics. I read every post. The thesis: nobody has agents running in production at scale yet. The people who figure it out fastest will own the next five years. Welcome to the lab. Tuni
0
0
Build Log: I gave away the part that sounds best
Voice-in just went free. You can send Beckett a voice note on Telegram now and it just answers, no paid tier required. That wasn't the plan when I built the split. Transcription lived behind the same paywall as the talking-back part: the whole voice layer, gated together, because "voice" sounded like the premium feature. Then I looked at what the free version actually did with a voice note. It replied "voice transcription is not set up yet" and pointed you at setup instructions that did not exist in the free repo. You type, it answers fine. You talk, it hands you a dead end. The bot goes deaf in exactly half the conversation, and that's the half that feels like magic. That's not a demo, that's a reason to bounce before you ever want the upgrade. So voice-in moved. Groq's whisper-large-v3-turbo does the transcription free, or you can run local whisper.cpp if you don't want your voice notes touching an API at all. Either way: you talk, Beckett reads it like you typed it. What stayed paid: Beckett talking back. ElevenLabs for the actual voice, Vapi for the part where it calls your phone when something's urgent. That's the tier where a text bot turns into a phone assistant, and it's still the best argument I've got for upgrading. You don't need me to explain it either, there's a live line on allytic.ai you can call and hear it for yourself. That call sells better than any paywall ever did. Here's the part I didn't expect. While I was moving the transcribe module and swapping the placeholder voice stub for a real handler, I found the free repo's health-check script was testing for the wrong provider's API key. It checked for a Gemini key. The code runs on Groq. Voice had never actually been verifiable in the free version, the test just always passed for the wrong reason. There's a Phase 7 in setup now too: voice transcription, Groq or local, with its own test:voice script so that particular embarrassment doesn't happen again. My wife's been on me for months to make the whole setup readable by an actual normal person, not just developers, and a full walkthrough guide for that is coming.
0
0
Build Log: Upwork thought nobody was home
Upwork stopped sending me job alerts and didn't tell me why. I built a watcher for this. It's part of Beckett, the AI chief of staff running on my VPS (the same email watcher from a previous build log). Every 5 minutes it polls Gmail for Upwork job-alert emails and pings my phone on Telegram the second a matching job drops, so I can get a proposal in during the golden window before the pool floods. For 32 hours, silence. I noticed the trickle about a day late and asked Beckett to dig in. First check: is the watcher even alive. Logs looked clean. Passing every 5 minutes, "0 new messages" each time. Not broken, just correctly reporting nothing to report. Second check: spam, trash. Nothing there either. Third check: the 12 saved searches that generate these alerts. All intact. Fourth check: alert preferences in the Upwork settings. Also intact, untouched. So the watcher was fine and the searches were fine. The emails had just stopped existing. The in-app alert feed told the real story. It had gone quiet at the exact same job as the last email. That's not an email delivery problem. That's the alert engine itself pausing. Here's the twist. Every one of those alert emails carries a tracking pixel: Upwork watches whether you open them. My watcher reads the alert emails straight through the Gmail API. It never touches a browser, never loads a tracking pixel. Which means as far as Upwork could tell, I'd received hundreds of alert emails in a row and opened exactly zero of them. Ever. Around day 26 of that streak, the engine apparently decided nobody was home and shut the feature off for me. The fix: the watcher now fires each alert email's tracking pixel itself, right after it processes the email, pinned to the sender's own tracking host. That's not spoofing anything. The email genuinely is being read, more reliably than any human reads their inbox. The pixel just says so in the only language the sender understands. I also retro-fired the pixel on the last 3 alerts before the outage and re-saved my alert preferences to force a re-registration.
0
0
A 9-page build guide had two mistakes in it. My setup caught both before either cost real money.
Picked up a build guide this week: 9 pages, walks through wiring up a "/generate" media skill, images and video through cheap model routing. Handed it to my chief of staff and told it to build the valuable half into BubbleBeam, my actual SaaS with paying users, same day. It didn't follow the doc literally. First move was splitting the ask, writing its own design spec, then a 9-task implementation plan. Then it dispatched itself: Opus agents doing the implementation, a separate reviewer agent grading each task before the next one started, and a final adversarial review of the whole branch. All of it ran in an isolated git worktree while I did other things. Two catches made the whole process worth it. Catch one: the guide's request format for the image model was wrong. The live API wanted a different field shape than what was in the doc. An agent caught it by pulling the provider's actual OpenAPI spec before spending a dollar on it. First paid call worked first try. Catch two: the guide's video cost estimate was low. It quoted roughly $1.60-2.80 per 8-second clip. Real list price is about $3.20. Doesn't sound huge until you're running it at volume with no ceiling. So video generation shipped behind an admin-only flag with cost controls until the pricing settles, instead of going straight to every user. What actually shipped: admin-only text-to-video on Veo 3.1 (async jobs, stored clips, a live progress readout), and a user-facing "Text-heavy image" toggle that routes to GPT Image 2 when you need readable text in an image, a nickel a shot, with automatic fallback to Gemini if it fails. Total spend to prove both paths worked live: about $3.30. First video: 8 seconds, 720p, audio, generated in under a minute. First image: a neon diner sign with text you could actually read, which is the exact problem GPT Image 2 solves and Gemini usually botches. The generation itself isn't the hard part anymore. Every model provider ships that. What made this shippable same day was the stuff around it: cost gates, routing to the cheapest model that still does the job, a review agent grading every task before the next one starts, one flat storage path instead of three. Guides teach you the API call. They don't teach you the rails that keep the API call from becoming an expensive mistake.
0
0
The case study was still running when I wrote it
A few months back I built something small: a watcher that checks my business inbox every 5 minutes for Upwork job alerts, filters out Upwork's habit of re-sending the same job as "new" hours later, and pings my phone the second something real lands. Not glamorous. I built it because I was checking my inbox manually and losing jobs to the clock. A hot Upwork posting can go from under 5 proposals to 20+ in under an hour. A no-history account buried under 20 other names doesn't get read at all. Today it did its job. A $5M/year e-commerce company posted for a long-term AI advisor to their four-person leadership team. 14 years on the platform, $145K spent, 48 hires. The kind of listing that gets buried in minutes. The alert landed 1 minute after the job went live. 0:01 alert lands, watcher pings my phone 0:07 job page open, under 5 proposals, client viewed applicants 2 min ago 0:26 proposal submitted (mid-flow Connects top-up included) One of the screening questions: describe one AI implementation you're most proud of and the measurable business impact. The honest answer was the thing that had just alerted me to the question. Response time on hot jobs went from hours to about 15 minutes. It's converted 26 alerts into submitted proposals now, this one included. I wasn't writing a case study. I was inside one. Second question asked which $1M to $30M e-commerce companies I'd worked with. I haven't. So I said that first: I run small-scale e-commerce myself, not a $5M+ shop, and I said so plainly upfront. Then I gave what I actually run: an Etsy printables shop, a 10-machine vending route, a small SaaS with paying users. No padding. Operators can smell an inflated answer, and they respect the ones who skip it. Nobody's replied yet. I'm not calling this a win. But the loop closed on itself before I finished typing: I built a tool to catch opportunities faster, and it became the proof that the tool works, running live, inside the application it made possible. The thing wrote its own résumé.
0
0
1-10 of 10
powered by
The Agent Lab
skool.com/the-agent-lab-3890
The room where I build Beckett (a personal AI engineer) in public. Build logs, teardowns, and member builds. Specifics, not theory.
Build your own community
Bring people together around your passion and get paid.
Powered by