Most AI agents have excellent recall and terrible judgment about what deserves to be recalled. They can ingest thousands of pages, yet drown in their own context because nobody taught them to forget the irrelevant parts. Knowledge and Memory Management version 0.0.2 was built to solve exactly that. It is not a minor patch. It rethinks how an agent stores, transports, and prioritizes what it knows.

The Memory Problem

Agents routinely treat every scrap of text as sacred. A raw web page gets dumped into storage alongside its navigation menus, cookie banners, and footer links. A video transcript arrives with every “um,” timestamp, and sponsor read intact. An article might carry more ad-copy markup than actual insight. When retrieval happens, the system sifts through all of this noise to find the signal. That waste shows up in two places: your context window shrinks with junk, and your infrastructure bill grows because you are paying to process and embed meaningless text.

The scaling problem is equally frustrating. Most early-stage agents are lashed to a single machine through hardcoded paths. Move the project from your laptop to a server, or from one VPS to another, and you spend an afternoon grepping through configuration files to fix broken references. The agent stops being software and starts being a fragile art installation that can only exist in one room.

What Changed in V0.0.2

This release tackles both issues head-on. It introduces a portable pathing scheme and a unified summarization pipeline that cleans knowledge before it ever reaches memory. The result is an agent that is easier to move and cheaper to run.

You stop fighting your infrastructure. You stop stuffing bloated documents into limited context. The agent simply remembers better.

Portable by Design with $AGENT_HOME

The single most practical change is the introduction of the $AGENT_HOME environment variable. Every path the system touches—knowledge bases, working memory, cached summaries, session logs—resolves relative to this root. That means you can move your entire agent directory anywhere without touching a line of code.

Consider the typical migration. Yesterday your agent lived on a DigitalOcean droplet at /srv/ai-agent. Today you want to run it locally or hand it off to a teammate. In the past, you would discover hardcoded absolute paths scattered across JSON configs, Python scripts, and shell wrappers. You would sed your way through a dozen files, cross your fingers, and hope you caught every reference. With version 0.0.2, you skip that entirely. You copy the folder, set export AGENT_HOME=/your/path, and run. The ingestion scripts, the memory index, and the retrieval layer all align automatically because they ask the operating system where home is instead of assuming they already know.

This portability matters beyond convenience. It makes your setup reproducible. You can track your knowledge directory in version control without poisoning the repository with paths that only make sense on your machine. A teammate clones the repo, points $AGENT_HOME at their own filesystem, and ingests their own data. Your CI pipeline can spin up a fresh agent, set one variable, and validate the behavior without rewriting configs for every environment.

If you run the agent as a systemd service, add the variable to the service unit. If you containerize it, pass it in your Dockerfile or compose file. If you work across multiple shells, drop it into your .bashrc or .zshrc so it persists. The setup is intentionally boring because infrastructure should be boring.

Three Sources, One Cleanup Pipeline

The system ingests knowledge from three specific channels:

  • Web pages. These arrive swaddled in HTML boilerplate. The real content might be three hundred words hiding inside three thousand words of markup, navigation, and comment sections.
  • Video transcripts. Speech-to-text output is notoriously verbose. Fillers, repetitions, timestamps, and off-topic banter create a low-density stream that consumes tokens without delivering insight.
  • Articles. Formats vary wildly. Some publish clean text. Others fracture the reading experience with advertisements, newsletter signup boxes, and social embeds.

بسیاری از عامل‌های هوش مصنوعی (AI agents) در بازیابی اطلاعات عالی عمل می‌کنند، اما در تشخیص اینکه چه چیزی ارزش بازیابی شدن دارد، قضاوت بسیار بدی دارند. آن‌ها می‌توانند هزاران صفحه را دریافت کنند، اما چون کسی به آن‌ها یاد نداده است که بخش‌های بی‌ربط را فراموش کنند، در بافت (context) خود غرق می‌شوند. Knowledge and Memory Management نسخه 0.0.2 دقیقاً برای حل همین مسئله ساخته شده است. این یک وصله (patch) کوچک نیست؛ بلکه نحوه ذخیره‌سازی، انتقال و اولویت‌بندی دانسته‌ها توسط یک عامل را بازنگری می‌کند.

مشکل حافظه

عامل‌ها معمولاً با هر تکه از متن مانند یک امر مقدس برخورد می‌کنند. یک صفحه وب خام، همراه با منوهای ناوبری، بنرهای کوکی و لینک‌های فوتر، مستقیماً در حافظه ریخته می‌شود. یک متن پیاده‌شده از ویدیو، با تمام «اممم‌ها»، برچسب‌های زمانی و تبلیغات اسپانسر، بدون تغییر وارد سیستم می‌شود. یک مقاله ممکن است بیشتر از آنکه حاوی بینش واقعی باشد، پر از کدهای تبلیغاتی باشد. هنگام بازیابی، سیستم باید میان تمام این نویزها جستجو کند تا سیگنال اصلی را پیدا کند. این اتلاف در دو بخش خود را نشان می‌دهد: پنجره بافت (context window) شما با زباله‌های اطلاعاتی کوچک می‌شود و هزینه زیرساخت شما افزایش می‌یابد، زیرا برای پردازش و تبدیل متن‌های بی‌معنی به بردار (embed) هزینه پرداخت می‌کنید.

مشکل مقیاس‌پذیری نیز به همان اندازه کلافه‌کننده است. اکثر عامل‌های در مراحل اولیه، از طریق مسیرهای هاردکد شده (hardcoded) به یک ماشین واحد زنجیر شده‌اند. اگر پروژه را از لپ‌تاپ خود به یک سرور، یا از یک VPS به VPS دیگری منتقل کنید، یک بعدازظهر را صرف جستجو با grep در فایل‌های پیکربندی خواهید کرد تا مراجع خراب را اصلاح کنید. در این حالت، عامل دیگر یک نرم‌افزار نیست، بلکه به یک اثر هنری شکننده تبدیل می‌شود که فقط در یک اتاق خاص قابل بقا است.

چه چیزی در V0.0.2 تغییر کرد؟

این نسخه هر دو مشکل را مستقیماً هدف قرار می‌دهد. این نسخه یک طرح مسیردهی قابل حمل (portable pathing scheme) و یک خط لوله (pipeline) خلاصه‌سازی یکپارچه معرفی می‌کند که دانش را پیش از رسیدن به حافظه، پاکسازی می‌کند. نتیجه، عاملی است که جابه‌جایی آن آسان‌تر و اجرای آن ارزان‌تر است.

شما دیگر با زیرساخت خود نمی‌جنگید. دیگر مجبور نیستید اسناد حجیم را در بافت‌های محدود بچپانید. عامل هوش مصنوعی به سادگی بهتر به یاد می‌آورد.

طراحی قابل حمل با $AGENT_HOME

کاربردی‌ترین تغییر، معرفی متغیر محیطی $AGENT_HOME است. هر مسیری که سیستم با آن در تماس است — پایگاه‌های دانش، حافظه کاری، خلاصه‌های کش‌شده، لاگ‌های نشست (session logs) — نسبت به این ریشه (root) حل می‌شود. این یعنی می‌توانید کل دایرکتوری عامل خود را بدون دست زدن به حتی یک خط کد، به هر جایی منتقل کنید.

یک مهاجرت معمولی را در نظر بگیرید. دیروز عامل شما در یک دراپلت DigitalOcean در مسیر /srv/ai-agent زندگی می‌کرد. امروز می‌خواهید آن را به صورت محلی اجرا کنید یا آن را به یک همکار بسپارید. در گذشته، شما با مسیرهای مطلق و هاردکد شده‌ای مواجه می‌شدید که در فایل‌های پیکربندی JSON، اسکریپت‌های پایتون و پوشش‌های شل (shell wrappers) پراکنده شده بودند. مجبور می‌شدید با استفاده از sed ده‌ها فایل را اصلاح کنید، دعا کنید و امیدوار باشید که تمام مراجع را پیدا کرده باشید. با نسخه 0.0.2، شما این کار را کاملاً کنار می‌گذارید. پوشه را کپی می‌کنید، دستور export AGENT_HOME=/your/path را تنظیم می‌کنید و اجرا می‌کنید. اسکریپت‌های دریافت داده (ingestion)، ایندکس حافظه و لایه بازیابی، همگی به طور خودکار با هم هماهنگ می‌شوند، زیرا به جای اینکه فرض کنند مسیر را می‌دانند، از سیستم‌عامل می‌پرسند که خانه (home) کجاست.

این قابلیت حمل فراتر از راحتی است؛ این کار باعث می‌شود تنظیمات شما بازتولیدپذیر (reproducible) باشد. می‌توانید دایرکتوری دانش خود را در سیستم کنترل نسخه (version control) دنبال کنید، بدون اینکه مخزن (repository) را با مسیرهایی که فقط در ماشین شما معنا دارند، آلوده کنید. یک همکار مخزن را کلون می‌کند، $AGENT_HOME را به فایل‌سیستم خود اشاره می‌دهد و داده‌های خودش را دریافت می‌کند. خط لوله CI شما می‌تواند یک عامل تازه ایجاد کند، یک متغیر را تنظیم کند و رفتار آن را بدون بازنویسی پیکربندی‌ها برای هر محیط، اعتبارسنجی کند.

اگر عامل را به عنوان یک سرویس systemd اجرا می‌کنید، متغیر را به واحد سرویس اضافه کنید. اگر آن را کانتینری می‌کنید، آن را در Dockerfile یا فایل compose خود پاس دهید. اگر در چندین شل کار می‌کنید، آن را در .bashrc یا .zshrc قرار دهید تا دائمی شود. این تنظیمات عمداً خسته‌کننده طراحی شده است، زیرا زیرساخت باید خسته‌کننده باشد.

سه منبع، یک خط لوله پاکسازی

سیستم دانش را از سه کانال خاص دریافت می‌کند:

  • صفحات وب. این صفحات در میان کدهای تکراری (boilerplate) HTML می‌آیند. محتوای واقعی ممکن است تنها سیصد کلمه باشد که در میان سه هزار کلمه از مارک‌آپ، ناوبری و بخش‌های کامنت پنهان شده است.
  • متن پیاده‌شده ویدیو. خروجی تبدیل گفتار به متن (speech-to-text) به وضوح بیش از حد طولانی است. کلمات پرکننده، تکرارها، برچسب‌های زمانی و صحبت‌های خارج از موضوع، جریانی با تراکم پایین ایجاد می‌کنند که توکن‌ها را مصرف می‌کند بدون اینکه بینشی ارائه دهد.
  • مقالات. فرمت‌ها بسیار متفاوت هستند. برخی متن تمیز منتشر می‌کنند. برخی دیگر تجربه خواندن را با تبلیغات، باکس‌های ثبت‌نام خبرنامه و امبدهای اجتماعی از هم می‌پاشند.

نسخه 0.0.2 با این‌ها به عنوان سیلوهای مجزایی که نیاز به مراقبت ویژه دارند برخورد نمی‌کند. در عوض، هر سه را پیش از ورود به حافظه کاری، از یک لایه خلاصه‌سازی یکسان عبور می‌دهد. این لایه ادعاها، دستورالعمل‌ها، نقاط داده و روابط را استخراج می‌کند و نویزهایی را که انسان‌ها به‌طور طبیعی از کنارشان عبور می‌کنند، دور می‌ریزد.

چرا خلاصه‌سازی یک استراتژی مقیاس‌پذیری است

این تمایل وجود دارد که خلاصه‌سازی را به عنوان یک ویژگی لوکس در نظر بگیرند؛ چیزی که داشتن آن خوب است اما ضروری نیست. این نگاه اشتباه است. برای یک عامل مدل زبانی (language-model agent)، خلاصه‌سازی یک الزام مقیاس‌پذیری است.

پنجره‌های بافت (Context windows) محدودیت دارند. بودجه‌های بازیابی (Retrieval budgets) هزینه دارند. هر توکنی که صرف یک بنر کوکی یا خواندن متن اسپانسر ویدیو شود، توکنی است که نمی‌توانید صرف استدلال کنید. وقتی عامل شما پاسخی را آماده می‌کند، با داشتن متن بیشتر هوشمندتر نمی‌شود؛ بلکه با داشتن متنِ درست هوشمندتر می‌شود.

سیستم با حذف نویز در زمان ورود داده (ingestion time)، سیگنال را فشرده می‌کند. عامل شما می‌تواند در همان بودجه بافت، به مجموعه گسترده‌تری از منابع مراجعه کند. ده سند پالایش‌شده در جایی جای می‌گیرند که پیش‌تر دو سند خام برای قرارگیری در آن با مشکل مواجه بودند. همین تراکم است که به عامل اجازه می‌دهد از یک نمونه اولیه ساده که پنج منبع را مدیریت می‌کند، به یک سیستم عملیاتی که صدها منبع را مدیریت می‌کند، مقیاس‌پذیر شود. ردپای حافظه (memory footprint) مدیریت‌پذیر باقی می‌ماند. کیفیت بازیابی بهبود می‌یابد زیرا هم‌پوشانی‌های بی‌ربط از بین می‌روند. هزینه توکن کاهش می‌یابد زیرا دیگر برای جاسازی (embed) و پرس‌وجوی (query) متون کلیشه‌ای (boilerplate) هزینه‌ای نمی‌پردازید.

بحث بر سر فشرده‌سازی بی‌رحمانه و با اتلاف (lossy compression) نیست که ظرافت‌ها را دور بریزد؛ بلکه بحث بر سر قضاوت تحریریه‌ای است که در خط لوله (pipeline) کدگذاری شده است. خلاصه، جزئیات فنی، موجودیت‌های نام‌گذاری‌شده (named entities)، پیوندهای علی و گام‌های آموزشی را حفظ می‌کند و زباله‌های قالب‌بندی و حشو‌های گفتاری را حذف می‌کند.

شروع کار

تنظیمات به‌طور عمدی حداقلی است، زیرا هدف این است که سیستم مانع کار شما نشود.

ترمینال خود را باز کرده و مسیر ریشه (root path) را تنظیم کنید:

export AGENT_HOME=/your/path

با اضافه کردن این خط به پروفایل شل (shell profile) خود، آن را دائمی کنید، یا آن را به هر لایه ارکستراسیونی (orchestration layer) که عامل شما را اجرا می‌کند، تزریق کنید. ساختار دایرکتوری را در زیرمجموعه‌ها یکپارچه نگه دارید. عامل انتظار دارد پوشه‌هایش — چه نام آن‌ها را knowledge/ بگذارید، چه memory/ یا summaries/ یا هر چیز دیگری — نسبت به آن مسیر ریشه قرار داشته باشند. وقتی متغیر فعال شد، عامل را به سمت صفحات وب، متن‌های پیاده‌شده (transcripts) و مقالات خود هدایت کنید. خط لوله ورود داده و خلاصه‌سازی، بقیه کار را انجام می‌دهد.

اگر در حال مهاجرت از نسخه‌های قبلی هستید، فرآیند به همان اندازه ساده است. داده‌های موجود خود را به سلسله‌مراتب جدید $AGENT_HOME منتقل کنید، متغیر را به‌روزرسانی کنید و بررسی کنید که عامل مسیرها را به‌درستی شناسایی می‌کند. بدون اسکریپت‌های مهاجرت. بدون تغییر در طرح‌واره (schema) پایگاه داده. فقط یک منبع واحد برای تعیین محل قرارگیری عامل روی دیسک.

نتیجه‌گیری اصلی

مدیریت بهتر حافظه به معنای انبار کردن داده‌های بیشتر نیست، بلکه به معنای مدیریت و گزینش (curating) داده‌هایی است که از قبل دارید. نسخه 0.0.2 با قابلیت حمل (portability) و خلاصه‌سازی به عنوان اولویت‌های درجه یک برخورد می‌کند، نه به عنوان موارد ثانویه. شما این آزادی را خواهید داشت که عامل خود را بدون از کار افتادن چیزی، بین ماشین‌ها جابه‌جا کنید و از کارایی پنجره بافتی بهره‌مند شوید که واقعاً حاوی بافت (context) است.

دایرکتوری خانگی خود را تنظیم کنید. منابع واقعی را به عامل بدهید. اجازه دهید سیستم زباله‌ها را حذف کند. شما زمان کمتری را صرف عیب‌یابی خطاهای مسیر و هزینه کمتری را برای پردازش نویز خواهید کرد، و زمان بیشتری را صرف استفاده از آنچه عامل واقعاً آموخته است، خواهید کرد.


منبع: https://dev.to/mage0535/thinking-1-analyze-the-request-12go

جامعه: https://t.me/GyaanSetuAi