Talorys یک ایجنت شخصی است که کل آن روی حساب Cloudflare خودتان بالا می‌آید: یک Worker خصوصی، یک Durable Object با دیتابیس SQLite، و یک رابط وب روی Pages. نصب با یک فرمان npx create-talorys@latest انجام می‌شود و پروژه در ۱۰ اکتبر ۲۰۲۶ با ۱۳۳۱ ستاره و ۱۱۳ فورک روی گیت‌هاب باز شد. در این پست نصب را روی همین سرور اجرا کردم، مرحله‌به‌مرحله خطای واقعی آن را نشان می‌دهم، و می‌گویم این ایجنت چه کاری بلد است و چه کاری نیست.

این ایجنت دقیقا چه چیزی هست

Talorys یک دستیار شخصی تک‌نفره است، نه یک چارچوب ایجنت. نویسنده‌اش آن را «ایجنت خودت در حساب ابری خودت» معرفی کرده و مجوزش MIT است. مخزن در لحظه‌ی خواندن، ۱۹ اکتبر ۲۰۲۶، ۱۳۳۱ ستاره و ۱۱۳ فورک دارد و همان روز آخرین بار به‌روزرسانی شده است.

معماری از سه قطعه‌ی جدا ساخته شده که هر کدام روی سرویس متفاوتی از Cloudflare اجرا می‌شود [1][2]:

قطعهجای کدکجا اجرا می‌شود
رابط وبapps/web/srcCloudflare Pages، به‌صورت ایستا
پروکسی APIapps/web/functionsPages Function
ورکر ایجنتapps/agent/srcCloudflare Workers به‌علاوه‌ی Durable Objects
نصابpackages/create-talorysهمان ماشین خودتان

درخواست از مرورگر به pages.dev می‌رود، تابع Pages آن را با یک service binding به ورکر خصوصی می‌رساند، و ورکر همه‌ی /api/* را به یک نمونه‌ی ثابت به نام personal-agent می‌سپارد [2]. چون نام نمونه در سرور قفل شده، کلاینت نمی‌تواند ایجنت دیگری را نشانه بگیرد.

تمام داده در همان یک Durable Object می‌نشیند. کد مهاجرت‌ها ۱۸ جدول با پیشوند tal_ می‌سازد، از tal_tasks و tal_memories تا tal_usage_daily و tal_login_attempts. این جدول‌ها جدا از جدول‌های خود SDK هستند و به آن دست نمی‌زنند.

۲۳ ابزار، همه بی‌خروج به بیرون

در apps/agent/src/tools/ دقیقا ۲۳ ابزار تعریف شده است. اول ریپو را کلون کردیم و بعد نام‌های ابزارها را مستقیم از کد خواندیم:

# اول ریپو را می‌گیریم تا بشود روی کد خودش شمارش کنیم
$ git clone --depth 1 https://github.com/rociiu/talorys.git
$ cd talorys && npm install

$ grep -rhoE "name: \"[a-z_]+\"" apps/agent/src/tools/*.ts \
    | sed -E 's/.*"([^"]+)".*/\1/' | sort -u > tools.txt
$ wc -l < tools.txt
23
$ cat tools.txt
cancel_automation
complete_task
create_automation
create_note
create_project
create_reminder
create_task
delete_note
delete_task
forget_memory
list_automations
list_projects
list_tasks
notify_owner
read_note
remember
replace_note_content
search
search_memories
search_notes
update_memory
update_note
update_task

نکته‌ی مهم برای انتخاب این ابزار: در هیچ‌کدام از فایل‌های ابزار، فراخوانی exec، child_process یا درخواست شبکه به بیرون پیدا نشد. ابزارها فقط لایه‌ی سرویس داخلی را لمس می‌کنند. یعنی این ایجنت وب را نمی‌گردد و کد اجرا نمی‌کند؛ search هم روی کارها، یادداشت‌ها، خاطرات و گفتگوهای خودِ شماست، نه روی اینترنت.

مدل پیش‌فرض روی Workers AI و با نام @cf/zai-org/glm-4.7-flash تنظیم شده است، با زمینه‌ی ۱۳۱ هزارتاکنی. سقف‌های پیش‌فرضی که در packages/shared/src/constants.ts تعریف شده‌اند، این‌ها هستند:

کلیدپیش‌فرضسقف
maxContextTokens600032000
maxOutputTokens10244096
maxToolCalls620
maxAgentIterations410
maxAiRequestsPerDay2002000
maxScheduledAiRunsPerDay648

سقف ۲۰۰ درخواست AI در روز، یک نگهبان داخلی خود پروژه است و جدا از سهمیه‌ی Workers AI حساب شماست. وقتی تمام شود، پیام خطا می‌گوید کارها، یادداشت‌ها، خاطرات و یادآورها به کار خود ادامه می‌دهند و فقط گفتگو تا ریست بعدی برمی‌گردد.

نصب واقعی، مرحله‌به‌مرحله

پیش‌نیاز فقط Node.js نسخه‌ی ۲۲ به بالا است و همین شرط در کد نصاب بررسی می‌شود. اول راهنمای فرمان‌ها را از خود بسته‌ی منتشرشده گرفتیم، نه از README:

$ npx create-talorys@latest --help
create-talorys — deploy Talorys, your personal AI agent, to your own Cloudflare account.

Usage
  npx create-talorys@latest [directory]     Install (or safely resume an interrupted install)
  npx create-talorys@latest update          Update an existing installation, keeping all data
  npx create-talorys@latest status          Show deployment status and health
  npx create-talorys@latest doctor          Diagnose common problems
  npx create-talorys@latest reset-password  Set a new owner password (signs out all devices)

Options
  --dir <path>          Installation directory (default: ./talorys, or the current directory if it is one)
  --account-id <id>     Cloudflare account to use
  --name <name>         Agent name (default: Talorys)
  --semantic / --no-semantic  Turn semantic recall on or off without asking (default No)
  -y, --yes             Skip confirmation prompts
  -v, --version         Show version

Environment
  TALORYS_OWNER_PASSWORD   Owner password for non-interactive installs (never logged)
  CLOUDFLARE_API_TOKEN     Use an API token instead of browser login

$ npx create-talorys@latest --version
0.1.7

نسخه‌ی نصاب را از خود npm خواندیم تا بدانیم با کدام نسخه حرف می‌زنیم. اولین انتشار روی npm در ۱۰ اکتبر ۲۰۲۶ ساعت ۰۹:۵۴ UTC بود و نسخه‌ی 0.1.7 در ۱۹ اکتبر، ساعت ۰۰:۲۱ UTC منتشر شد؛ همین نسخه در گیت‌هاب هم یک برچسب انتشار دارد.

حالا خودِ نصب را اجرا کردم. دستور زیر غیرتعاملی است و توکن یکتا مهاجرتی دارد که هیچ حسابی را لمس نمی‌کند:

$ CLOUDFLARE_API_TOKEN=not-a-real-token TALORYS_OWNER_PASSWORD=demo-password-123 \
    npx create-talorys@latest --yes --account-id 0000000000000000000000000000dead
┌  ◆ Welcome to Talorys
│
│  Your personal AI agent, powered by your Cloudflare account.
… Checking system requirements
✓ System requirements OK (Node 26.7.0, Talorys 0.1.7)
… Detecting Cloudflare CLI
✓ Cloudflare CLI detected (bundled Wrangler 4.149.0; also found wrangler 4.149.0)
… Checking Cloudflare authentication
✓ Not signed in to Cloudflare yet
│
●  Opening Cloudflare in your browser so you can authorize this installer…
✘ [ERROR] You are logged in with an API Token. Unset the CLOUDFLARE_API_TOKEN in the environment to log in via OAuth.

🪵  Logs were written to "/root/.config/.wrangler/logs/wrangler-2026-10-19_04-11-33_854.log"
│
■  Cloudflare login did not complete.
│
●  Re-run the installer and approve access in the browser.
│
└  Setup did not finish. No data was deleted.

این خطا ارزش خواندن دارد: وقتی CLOUDFLARE_API_TOKEN در محیط باشد، نصاب می‌خواهد از OAuth مرورگر استفاده کند و ورکر این ترکیب را رد می‌کند. برای نصب بدون مرورگر باید یک توکن واقعی Cloudflare بدهید، نه یک رشته‌ی ساختگی.

بعد از شکست، هیچ چیز پاک نشد و نصب قابل ادامه است. راهنمای عیب‌یابی پروژه هم می‌گوید همین رفتار عمدی است و اجرای دوباره‌ی همان فرمان، نصب را از همان‌جا ادامه می‌دهد بدون ساختن منبع تکراری [3]. دستور doctor هم پیش از نصب کار می‌کند:

$ npx create-talorys@latest doctor
┌  ◆ Talorys doctor
│
◆  Node.js 26.7.0
│
◆  Bundled Wrangler 4.149.0; templates 0.1.7
│
●  Global wrangler 4.149.0 (not required)
│
▲  No talorys.json in ./talorys. Run this inside your Talorys directory.
│
└  Environment OK.

این خط یعنی می‌توانید پیش از ساختن حساب و پروژه، ابزار را روی همان ماشین خودتان بسنجید.

اجرای محلی بدون حساب ابری

اگر می‌خواهید قبل از ساختن حساب Cloudflare کد را ببینید، راه دوم این است که روی همان کلون اجرا کنید. ریپو یک اسکریپت آماده دارد که فایل اسرار محلی را می‌سازد و ارائه‌دهنده‌ی AI را روی حالت ساختگی می‌گذارد:

$ node scripts/dev-setup.mjs
Created apps/agent/.dev.vars (dev password: talorys-dev-password).
$ grep TALORYS_MOCK_AI apps/agent/.dev.vars
TALORYS_MOCK_AI=1

همین اسکریپت هش PBKDF2 با ۱۰۰ هزار تکرار می‌سازد و یک جفت کلید Web Push تولید می‌کند. رمز محلی همان talorys-dev-password است و با TALORYS_DEV_PASSWORD عوض می‌شود.

همین‌جا یک مانع پیدا کردم که در README نیست. پس از نصب کامل، npm run dev:agent بالا نیامد:

$ npm run dev -w @talorys/agent
⛅️ wrangler 4.149.0 (update available 4.151.1)
⎔ Starting local server...
✘ [ERROR] service core:user:ProxyWorker: Uncaught Error:
✘ [ERROR] The Workers runtime failed to start. There was likely a problem with the workerd binary or your configuration.

  Runtime stderr:
  {"level":"error","source":"src/workerd/server/json-logger.c++:127","message":"service core:user:ProxyWorker: Uncaught Error: ","context_depth":0}

برای اینکه مطمئن شوم تقصیر پروژه نیست، همان را روی یک ورکر چهارخطی هم آزمودم که هیچ ربطی به Talorys ندارد، و همان خطا تکرار شد. پس محدودیت از محیط میزبان است، نه ریپو. دو نکته‌ی عملی بیرون آمد: با npm ls می‌شود بسته‌ی workerd را دید در حالی که باینری ۱۳۴ مگابایتی‌اش روی دیسک نیست، پس نصب ظاهرا موفق لزوما یعنی اجراپذیر بودن نیست. و تست‌هایی که به runtime نیاز ندارند، بدون مشکل اجرا می‌شوند:

$ npm run test:shared
 RUN  v4.1.11 /talorys/packages/shared
 Test Files  2 passed (2)
      Tests  22 passed (22)
   Duration  879ms

$ npm run test -w create-talorys
 RUN  v4.1.11 /talorys/packages/create-talorys
 Test Files  3 passed | 1 skipped (4)
      Tests  62 passed | 2 skipped (64)
   Duration  45.86s

یعنی ۸۴ تست در ۴۷ ثانیه سبز شد، در حالی که همان ریپو با سرور محلی‌اش بالا نمی‌آمد. این دقیقا تفاوت «کد درست است» و «روی این ماشین اجرا می‌شود» است.

چه کسی Talorys را بردارد و چه کسی نه

این ریپو برای کسی است که یک دستیار شخصی می‌خواهد و نمی‌خواهد برای هر پیام اشتراک ماهانه بدهد یا داده‌اش را بسپارد به سرور دیگری. اگر دستیاری می‌خواهید که کد اجرا کند، وب بگردد یا به ابزارهای بیرونی وصل شود، این پروژه پاسخ نیست؛ ۲۳ ابزارش همه‌ی دامنه‌ی کارشان در داده‌ی خودتان است.

در مقابل، دو محدودیت واقعی را در نظر بگیرید. اول، سقف ۲۰۰ درخواست AI در روز با سهمیه‌ی رایگان Workers AI جمع می‌شود، پس استفاده‌ی سنگین به پلن پولی می‌رسد. دوم، یادآورها روی alarm در Durable Object زمان‌بندی می‌شوند، یعنی به زیرساخت Cloudflare وابسته‌اند و روی ماشین شما اجرا نمی‌شوند.

برای سنجیدن ریپو پیش از نصب، روش پست نصب ECC معتبر است: کلون کن، تست‌های خود ریپو را اجرا کن و بعد سراغ نصب واقعی برو.

عددهایی که این پست روی آن‌ها ایستاده

همه‌ی عددهای این نوشته از دو جا آمده‌اند: فایل‌های همین ریپو که کلون کردیم، و API گیت‌هاب و npm که لحظه‌ی خواندن، ۱۹ اکتبر ۲۰۲۶، دوباره صدا زدیم. پروژه در ۱۰ اکتبر ۲۰۲۶ ساخته شده و اولین انتشار npm هم همان روز بود.

عددمقدارمنبع
ستاره‌ی گیت‌هاب1331API گیت‌هاب، ۱۹ اکتبر
فورک113API گیت‌هاب، ۱۹ اکتبر
تعداد ابزار23شمارش apps/agent/src/tools/
تعداد جدول18شمارش CREATE TABLE tal_
سقف روزانه‌ی AI200DEFAULT_LIMITS
کانتکست پیش‌فرض6000DEFAULT_LIMITS
نسخه‌ی نصاب0.1.7npm، ۱۹ اکتبر
نسبت فورک به ستاره8.5درصد، از تقسیم ۱۱۳ بر ۱۳۳۱

عدد هشت و نیم درصد فرمول دارد و حدس نیست: ۱۱۳ تقسیم بر ۱۳۳۱ برابر ۰٫۰۸۴۹ است که گرد کردنش هشت و نیم درصد می‌شود. این نسبت می‌گوید چند نفر ریپو را واقعا برای خودشان ساخته‌اند، نه فقط ستاره داده‌اند.

منابع

  1. مخزن rociiu/talorys — توضیح پروژه، نصب با یک فرمان و وضعیت مجوز MIT.
  2. مستند معماری Talorys — اجزای سامانه، مسیر درخواست و جدول‌های tal_.
  3. راهنمای عیب‌یابی Talorys — ادامه‌ی نصب پس از شکست، خطاهای رایج و اجرای محلی.
  4. یادآوری معنایی در Talorys — این قابلیت پیش‌فرض خاموش است و از تنظیمات روشن می‌شود.
  5. تاریخچه‌ی حافظه در Talorys — حل تعارض خاطرات و سوابق تاریخی آن‌ها.
  6. بسته‌ی create-talorys در npm — فرمان‌های نصب، به‌روزرسانی، وضعیت و عیب‌یابی.
  7. Durable Objects | Cloudflare — بستری که دیتابیس SQLite و زمان‌بندی روی آن ساخته شده است.
  8. Workers AI | Cloudflare — سرویسی که مدل پیش‌فرض glm-4.7-flash روی آن اجرا می‌شود.
  9. Cloudflare Pages — سرویسی که رابط وب و تابع پروکسی روی آن میزبانی می‌شوند.
  10. مخزن cloudflare/agents — SDK ایجنت که کلاس TalorysAgent از آن ارث می‌برد.
  11. انتشارهای rociiu/talorys — برچسب create-talorys@0.1.7 با تاریخ ۱۹ اکتبر ۲۰۲۶.
  12. تصویر پوشش — عکس پورت‌های شبکه و اترنت روی سرور، اثر Brett Sayles، از Pexels.