اکوان
مستندات اکوان
مستندات/امنیت

امنیت و approvalها

مدل امنیتی Akvan، عملیات حساس و حالت‌های approval را درک کنید.

Akvan می‌تواند فایل بخواند، کد تغییر دهد و commandهای terminal اجرا کند؛ بنابراین باید آن را مانند یک developer با دسترسی به حساب کاربری خود در نظر بگیرید، نه یک chat bot جدا از سیستم.

Akvan sandbox نیست

Akvan sandbox واقعی یا boundary امنیتی سخت فراهم نمی‌کند. ابزار terminal commandها را با همان دسترسی OS user شما اجرا می‌کند. approvalها، denylistها و blocklistها برای کاهش ریسک و شفاف‌کردن عملیات حساس هستند، اما جای isolation سیستم‌عامل، container یا VM را نمی‌گیرند.

مرزهای دسترسی

ابزار read_file می‌تواند pathهای داخل پروژه و pathهای absolute بیرون پروژه را بخواند، مگر اینکه path به credentialهای شناخته‌شده مثل .env، ~/.ssh/ یا فایل‌های حساس ~/.akvan بخورد.

ابزار terminal همان محدودیت خواندن read_file را ندارد و می‌تواند با command مناسب به اطلاعات بیشتری دسترسی پیدا کند. درخواست‌های approval را با دقت بخوانید و خروجی commandها را قبل از انتشار پاک‌سازی کنید.

تغییرات معمول داخل project_root معمولاً بدون نمایش approval prompt انجام می‌شوند. write بیرون پروژه، تغییر فایل حساس و command خطرناک به تصمیم شما نیاز دارد.

گزینه‌های approval

برای عملیات حساس می‌توانید یکی از این گزینه‌ها را انتخاب کنید:

  • Allow once: فقط همین عملیات اجرا شود.
  • Allow for session: همین عملیات یا key مشابه تا پایان session بدون approval دوباره اجرا شود.
  • Always allow: این اجازه برای دفعات بعد در ~/.akvan/approvals.json ذخیره شود؛ فقط برای operationهایی که permanent approval مجاز دارند.
  • Deny: عملیات اجرا نشود و مدل مسیر دیگری انتخاب کند.

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

حالت‌های approval

AKVAN_APPROVAL_MODE=ask حالت پیشنهادی است. deny عملیات نیازمند approval را رد می‌کند. off یا گزینهٔ --yolo approvalهای عادی را کنار می‌گذارد، اما commandهای بسیار مخرب که با hard patternها تشخیص داده می‌شوند همچنان مسدود می‌مانند.

bash
AKVAN_APPROVAL_MODE=ask akvan

هنگام کار با پروژه یا skill ناشناس و همچنین gateway راه دور، از حالت yolo استفاده نکنید.

داده‌های محلی

sessions، memory، skills، تنظیمات و logs زیر ~/.akvan قرار دارند. از محتوای این دایرکتوری مانند اطلاعات خصوصی خود محافظت کنید و پیش از اشتراک log یا گزارش خطا، secret و محتوای گفتگو را پاک کنید.

کلید حساب Akvan

اگر از provider akvan استفاده می‌کنید، مقدار AKVAN_API_KEY در ~/.akvan/.env به اندازهٔ سایر API keyها محرمانه است. OTP فقط هنگام تنظیم اولیه یا ورود مجدد (akvan model) لازم است؛ در استفادهٔ روزمره فقط همین key ارسال می‌شود.

ابزار terminal ممکن است بتواند ~/.akvan/.env را بخواند. هنگام اجرای commandهای حساس، محتوای این فایل را در نظر بگیرید.

memory و skills به‌عنوان دستورالعمل قابل اعتماد

Memory و skills که در sessions بعدی بارگذاری می‌شوند، بخشی از prompt و دستورالعمل‌های قابل اعتماد Akvan محسوب می‌شوند. محتوای skill ناشناس یا memory مشکوک می‌تواند رفتار آیندهٔ agent را تغییر دهد. اگر نمی‌خواهید مرور پس‌زمینه memory یا skill بسازد، مقدارهای زیر را در config مربوط به پروژه یا ~/.akvan/config.yaml صفر کنید:

yaml
memory:
  nudge_interval: 0

skills:
  creation_nudge_interval: 0

گزارش آسیب‌پذیری

جزئیات آسیب‌پذیری را در issue عمومی منتشر نکنید. از مسیر امنیتی repository akvan-agent در GitHub برای تماس خصوصی با نگه‌دارندگان استفاده کنید.