۶ مرداد ۲۵۸۵ · 7 دقیقه مطالعه
چطور با Hermes Agent زندگی دیجیتالم رو خودکار میکنم
سوالی که این ماجرا رو شروع کرد ساده بود: چطور زندگی دیجیتالم رو خودکار کنم بدون اینکه کنترلش از دستم در بره؟
کارهای بدیهی رو امتحان کرده بودم. اسکریپت، cron job، برونسپاری. هیچکدوم نموند. مشکل هیچوقت ابزارها نبود، مشکل فرایند بود. وبلاگنویسی و مالیات و یوتیوب وقتم رو میخوردن، و بیشتر از خود کار، وقتم رو صرف لجستیک میکردم.
برای همین Hermes Agent رو ساختم.
گردشکارهای دستی که کل هفتهم رو میخوردن
روال قدیمی این شکلی بود.
وبلاگنویسی (ashkmb.com). یه پست به انگلیسی مینوشتم. دستی به آلمانی و فارسی ترجمهش میکردم، یا به مترجم پول میدادم که کُند و گرون بود. هر سه نسخه رو بازخوانی میکردم، ناسازگاریها رو درست میکردم و مطمئن میشدم لحن یکدسته. کامیت، پوش، صبر تا Cloudflare Pages دیپلوی کنه. سه تا پنج ساعت برای هر پست.
یوتیوب (AgenticTube). یه پست که ارزش ویدیو شدن داشت پیدا میکردم. اسلاید میساختم، نریشن ضبط میکردم، ادیت میکردم. آپلود، نوشتن توضیحات، اضافه کردن tag. دو تا چهار ساعت برای هر ویدیو.
مالیات (expenseTracker). جیمیل رو دنبال فاکتور میگشتم. دستی فروشنده و تاریخ و مبلغ رو در میآوردم. PDFها رو ذخیره میکردم، اسمشون رو عوض میکردم، یه فایل اکسل جمع میکردم. ده ساعت یا بیشتر برای هر سال.
داشتم تو لجستیک غرق میشدم. باید بخشهای تکراری رو خودکار میکردم بدون اینکه کنترل خلاقانه رو از دست بدم.
Hermes Agent چی رو انجام میده
Hermes Agent یه موتور گردشکاره. روی مینیپیسی من (لینوکس) اجرا میشه، مک من رو میگردونه و بخشهایی که لازم نیست خودم دست بزنم رو بر میداره:
| گردشکار | کاری که Hermes Agent میکنه | نقش من |
|---|---|---|
| وبلاگنویسی | پیشنویس مینویسه، به آلمانی/فارسی ترجمه میکنه، Git worktreeها رو مدیریت میکنه، روی Cloudflare Pages منتشر میکنه. | پیشنویسها رو بررسی میکنم، MR رو تأیید میکنم. |
| یوتیوب | پستها رو به Shorts و خلاصه هفتگی تبدیل میکنه، خصوصی روی یوتیوب آپلود میکنه، تو تلگرام بهم خبر میده. | روی «تأیید» کلیک میکنم. |
| مالیات | جیمیل رو دنبال فاکتور میگرده، دادهها رو در میآره، تو PostgreSQL ذخیره میکنه، یه ZIP آماده مالیات خروجی میده. | دستور just export-year 2025 رو اجرا میکنم. |
| تحقیق | خلاصههای فنی رو آماده میکنه (مثلاً «توضیح بنچمارکهای Sonnet 5»). | خلاصه رو میخونم. |
| عملیات | مینیپیسی رو مانیتور میکنه (دیسک، حافظه، مصرف GPU). | اگه چیزی خراب شد هشدار میگیرم. |
چطور کار میکنه
جعبه، و اینکه چرا agent بهصورت native اجرا میشه
همه چیز روی یه مینیپیسی همیشهروشن اجرا میشه، یه Core i9 با ۳۲ گیگ که قبلاً هاست Proxmox من بود. دوباره بهصورت Ubuntu ساده نصبش کردم و یه کار بهش دادم: خونهی agent باشه. مک من فقط یه کلاینت ریموته؛ من از طریق اپ دسکتاپ و تلگرام با Hermes حرف میزنم، ولی کار واقعی روی همون جعبه انجام میشه که ۲۴/۷ روشنه و لپتاپم رو درگیر نمیکنه.
کل ماشین با Ansible provision شده، یه playbook که idempotent هست، پس جعبه دورانداختنیه. اگه بمیره، از روی repo دوباره میسازمش: سیستم پایه، خود agent، runtime مدل، CLIها و dotfileهام، همه بهصورت role.
تصمیمی که واقعاً برام مهمه اینه که Hermes بهصورت native زیر systemd اجرا میشه، با کاربر خودم، نه توی یه container. این بهنظر یه پاورقی میاد ولی کل طراحیه. یه agent که توی container باشه نمیتونه terraform، kubectl، aws، gh، psql یا کانفیگهای ~/.kube و ~/.aws منو ببینه، پس «run terraform plan» فقط با command not found شکست میخوره. وقتی native اجرا بشه، agent دقیقاً همون ابزاری رو که تو shell خودم دارم به ارث میبره. کار ops منو انجام میده، نه یه ادای sandboxed ازش.
این یه trade-off صادقانه هم داره. native یعنی agent با یه کاربری که passwordless sudo داره اجرا میشه، بدون دیوار container دورش. پس مرز امنیتی عمداً یه جای دیگهست: یه allowlist تلگرامی برای اینکه اصلاً کی اجازه داره باهاش حرف بزنه، و یه پسورد روی داشبورد. این دو تا رو بهعنوان همون حصار میبینم، چون تنها حصارن.
جلوی همهی اینها، یه reverse proxy با Caddy داشبورد رو هندل میکنه، و کل ماجرا از طریق یه Cloudflare Tunnel به من میرسه، پس هیچوقت یه پورت ورودی رو شبکه خونه باز نمیکنم. inference مدل روی یه backend میزبانیشده اجرا میشه، نه رو خود جعبه: یه مدل tool و vision-دار برای reasoning، و یه مدل vision کوچیکتر که برای OCR و اسکرینشاتهای مرورگر pin شده تا مدل بزرگ بابت هر تصویر حساب نشه. جابهای زمانبندیشده از cron و RSS polling راه میافتن؛ حلقهی تعاملی تأیید-و-انتشار از تلگرام میاد. جعبه مال منه و orchestration مال منه، ولی فراخوانهای مدل ازش خارج میشن، پس استخراج واقعاً حساس رو محدود و بررسیشده نگه میدارم، نه اینکه وانمود کنم هیچوقت چیزی به ابر نمیرسه.
AgenticTube: از وبلاگ به یوتیوب
Hermes Agent فید RSS وبلاگم رو مانیتور میکنه و پستها رو به دو چیز تبدیل میکنه: Shorts روزانه (۹:۱۶، ۴۵ تا ۶۵ ثانیه، اسلایدهای نریشندار) و یه خلاصه هفتگی (۱۶:۹، ۱۰ تا ۳۰ دقیقه، هر بخش یه پست).
pipeline شش قدمه. هر ساعت فیدهای RSS رو میگیره، یه مدل نکات کلیدی رو با لحن خنثی در میآره، اسکریپت میسازه (۳ اسلاید برای Short، ۶ تا ۷ تا برای بخش خلاصه)، با ffmpeg بهعلاوه Pillow برای اسلایدها و Google TTS برای نریشن رندر میکنه، از طریق API یوتیوب بهصورت پیشفرض خصوصی آپلود میکنه، و تو تلگرام با دکمه «تأیید» بهم خبر میده. همین پست میتونه بدون اینکه دستی به کاری بزنم به یه Short یا بخش خلاصه تبدیل بشه.
expenseTracker: خودکارسازی فاکتورهای مالیاتی
Hermes Agent جیمیل رو دنبال فاکتورهای آلمانی میگرده، هم PDFهای پیوست و هم متن ایمیلها، و سه کار میکنه: فروشنده و شماره فاکتور و تاریخ و مبلغ (خالص، مالیات، ناخالص) رو در میآره؛ همه رو تو PostgreSQL زیر schema به اسم financial_agent ذخیره میکنه؛ و یه ZIP خروجی میده که مشاور مالیاتیم مستقیم میتونه بازش کنه.
cd ~/Documents/Projects/Personal/expenseTracker
just export-year 2025 # فایل ./exports/export_2025-01-01_2025-12-31.zip رو میسازه
توی ZIP اینها هست: documents/ (همون PDFها و متن ایمیلها بهصورت HTML یا متن)، manifest.csv (فاکتورهای تمیز: فروشنده، تاریخ، مبلغ)، و manifest_needs_review.csv (هر چیزی که استخراج مطمئن نبوده). همین جدا کردن نکتهست: من فقط همون فایل دوم رو نگاه میکنم.
ashkmb.com: پستهای چندزبانه وبلاگ
Hermes Agent از روی کارهایی که واقعاً میکنم مینویسه، نه از روی یه prompt کلی. همین پست درباره خود Hermes Agent از روی گردشکارهای واقعی بالا نوشته شده. برای هر پست، ترجمهها (انگلیسی/آلمانی/فارسی) رو انجام میده، کار رو تو یه Git worktree ایزوله میکنه تا چیزی زودتر از موعد رو main نیفته، پست رو تا وقتی تأیید کنم تو حالت draft نگه میداره، و متادیتای سئو رو پر میکنه (تگهای OG، JSON-LD).
انتشار یه بررسیه، نه یه دستور. Hermes یه MR باز میکنه؛ من diff رو میخونم و مرجش میکنم:
gh pr diff # نگاه کردن به تغییرات انگلیسی/آلمانی/فارسی
gh pr merge --merge # Cloudflare Pages موقع مرج شدن به main دیپلوی میکنه
واقعاً چی به من میده
Hermes Agent فکر کردن رو انجام نمیده، لجستیک دور و بر فکر کردن رو انجام میده. وبلاگنویسی رو از ساعتها به دقیقهها میرسونه، ناسازگاریها رو قبل از رسیدن به production میگیره، و اون بخشی که برام مهمه رو برام میذاره: ایدهها، نه لولهکشی.
نکته کل ماجرا همینه. اتوماسیون اینجا یعنی جایگزین کردن من نیست، یعنی برداشتن کار تکراری از رو میزم تا ساعتهایی که میذارم صرف نوشتن و فکر کردن و ساختن بشه، نه عوض کردن اسم PDFها.
بعدش چی
هنوز دارم گردشکارها رو بهتر میکنم. سه چیز تو لیستمه: تولید خودکار تصویر بندانگشتی و OG image، انتشار زمانبندیشده با cron بهجای مرج دستی، و اینکه Hermes بازخورد خوانندهها رو تحلیل کنه و به پستها برگردونه.
اگه جزئیات فنی رو میخوای، اینکه subagentها چطور به هم وصلن یا اسکریپتهای تأیید چی رو چک میکنن، بگو تا بیشتر بازش کنم.