autome
A personal AI assistant that lives in Telegram. Send it a message, a voice note, a photo, a PDF or a link. It files the result into a wiki that you can ask questions of. It also keeps trackers and reminders, and spaces that you share with other people.
- Status
- My own product, live at autome.click, with a paid plan
- Stack
- Python, FastAPI, LangGraph, Postgres, object storage, Telegram Bot API
- Methods
- Tool-calling agents, hybrid retrieval, speech, document understanding
The problem
To save something is easy, and almost useless. Note apps and read-it-later apps collect a pile that nobody opens again. They ask you where a thing belongs at the moment when you least want to decide.
autome starts from two ideas. To capture something must cost nothing: you forward a message, or you hold a button and talk. And the filing must happen later, without you.
That only works if the assistant is in a place where you already are. So the product is a Telegram bot, not an app that you install.
What I built
One agent with a large set of tools, behind an interface that most people already have open.
- The wiki. Each thing you send becomes a page with a title and a summary, linked to related pages that the agent finds as it saves. Search combines meaning and keywords, with a plain text search as the fallback when both are wrong.
- Trackers that define themselves. “Baby drank 170ml at 3pm” creates the tracker and its fields the first time. You define no schema.
- Voice. You talk, it writes back what it heard, then it answers.
- Photos and documents. The text is extracted and analysed. A receipt, a whiteboard or a PDF becomes something that you can search, not an attachment.
- Shared spaces. Several people put their knowledge together. To share is to point at an item, not to copy it, so each item has one version.
- A small app inside Telegram for the things that a chat does badly: lists, charts and grids.
- The plain half. Reminders and scheduled jobs, limits for each plan, payment through Stripe and Telegram Stars, and five languages.
What I learned
- Charge the user only when the action succeeded. At first a failed transcription used one of the user's voice notes for the month. Now the count goes up after success. And if the database cannot answer the limit check, the check lets a paying user through.
- Speech models invent words when there is silence. So a loudness check rejects a silent clip before any model hears it. And the transcript is shown before the reply, so a wrong hearing is visible and the agent does not act on it in secret.
- Do the exact work in code, not in the prompt. 170ml becomes the number 170 in code, whether or not the model followed its instructions. Then the series can always be plotted.
- A memory product must not limit memory. The free plan had a limit on stored items. I removed it. A limit on what you can remember breaks the promise of the product.
- Most of a working agent product is not the prompt. It is limits, payment, failures and their fallbacks.
- One process is simple, and it has a ceiling. The app runs as one process and keeps some state in memory. That is correct for now. A second copy of the app would break it, and I wrote down where.