Daniel Puri

A daily paper video on my phone

AgentLab reads new papers on my topics and sends me a 1 to 2 minute narrated video on Telegram. It also explains my own projects.

Published
Code
agentlab

Every day my phone gets a short narrated video that explains one paper or one piece of my own code. I built AgentLab because I no longer have time to read papers one by one. Time is my only bottleneck, so a video picked for me replaces a whole paper.

Each morning a proposer reads fresh sources and sends me candidate lessons. I tap approve on the ones I want. The pipeline then reads the paper in full and writes a digest and a scene plan. A check rejects the plan if any number in it is missing from the source text, so the script cannot invent a figure. A storyboard splits the lesson into beats, and the beats group into chapters. Each chapter gets its own Manim scene file, with its own guard, render, retries and layout check. If a chapter cannot be fixed, a plain text card takes its place and the video still ships. A synthetic voice reads the script, and the video lands on Telegram.

I rate each one with COOL, MEH or SKIP. Once a week a job rewrites a short taste profile from those labels. The new profile replaces the old one only if it does better on past items it has not seen, and a REVERT button undoes the swap. I should be honest about how well this works. A dry run on 48 held-out items scored F1 0.20 to 0.25, so the profile is weak. I have not shown that it picks better yet.

Why I built it

When you build very fast with AI, you can stop retaining how your own systems work. So AgentLab has a second lane, which I call "built". For each of my projects I write a study guide of topics in order, and the lane sends two videos a day that explain how that project works. I want to still understand what I built last month.

The ratings are a flywheel: every label teaches the picker more about my taste.

One lesson, with numbers

The weakest stage is the scene code, the Manim file for each chapter. I used GEPA, a tool that searches for a better prompt, on the scene-code prompt. It scores one chapter from 0 to 1 using the render and the layout audit. On 14 chapters held out from the search, today's prompt scored 0.85, with 9 clean first renders. The best candidate scored 0.93, with 10.

I did not trust that. At 14 chapters, one chapter moves the score by about 0.07. The search model had seen only each chapter's title and beat count, so the winning prompt had a false section, which I removed by hand. I tested the cleaned prompt on 20 chapters from 8 stories the search never used. It scored 0.97 against 0.83, with 17 clean first renders against 10. It was better on 9 chapters, worse on 1, and tied on 10.

That is one run on 20 chapters, and the layout audit is a program, not my eyes. The prompt I shipped differs from the tested one in a single example. After the deploy, a check video had 2 of 5 chapters clean on the first try.

Back to what I'm working on