إنتقل إلى المحتوى الرئيسي

القنوات والصوت

يمكن لـ Anda البقاء في الطرفية، أو يمكنه الانضمام إلى قنوات الفريق. تجمع القنوات السياق مرة أخرى في بيئة التشغيل ونظام الذاكرة نفسه.

القنوات المدعومة

  • Telegram
  • WeChat
  • Discord
  • Lark / Feishu

توجد تكوينات القنوات تحت بند channels في ~/.anda/config.yaml.

مستخدمون متعددون

يمكن لـ daemon واحد خدمة عدة مستخدمين موثوقين من خلال وكيل Anda نفسه. قم بإنشاء مفتاح مستخدم، ثم قم بتعيين قيمة user الخاصة بإدخال القناة على هذا المعرّف (ID). إذا تم حذف user ، فستستخدم القناة هوية المالك المحلي المخزنة في مخزن أوراق الاعتماد الآمن لنظام التشغيل.

anda user create alice
anda user list

يكتب هذا الأمر المفتاح العام الجديد تحت المعرّف الرئيسي users ويحفظ المفتاح الخاص المطابق له في مخزن أوراق الاعتماد المحلي المشفر تحت المسار ~/.anda/credentials/. يحتوي ملف الاعتماد على مفتاح COSE مشفر، مع اشتقاق مفتاح تشفيره من سر هوية daemon المحلي. استخدم أمر anda user export أدناه عندما تحتاج صراحة إلى ملف مفتاح.

على نظام Linux، إذا لم يكن هناك مزود لخدمة Secret Service متاحاً أو تم إلغاء قفله، فسيرجع Anda إلى استخدام ملفات مفاتيح daemon/owner الخاصة تحت المسار ~/.anda/keys/ ويطبع/يسجل تحذيراً. تظل المفاتيح الخاصة للمستخدمين الموثوقين مشفرة في مخزن أوراق الاعتماد المحلي طالما يمكن تحميل سر هوية daemon. لاستخدام Secret Service لهويات daemon/owner، ابدأ تشغيل المزود وافتح قفله في جلسة D-Bus للمستخدم، على سبيل المثال gnome-keyring-daemon --start --components=secrets ، وتأكد من تعيين متغير البيئة DBUS_SESSION_BUS_ADDRESS لعملية Anda، ثم أعد تشغيل Anda. يمكن لمستخدمي بيئة KDE فتح قفل KWallet بدلاً من ذلك.

لتصدير مفتاح خاص لهوية موجودة إلى ملف، استخدم anda user export. يمكن أن تكون الهوية daemon أو owner أو default أو معرف مستخدم موثوق به:

anda user export daemon --key-path ./anda-daemon.key
anda user export owner --key-path ./anda-owner.key
anda user export alice --key-path ./alice.key

احتفظ بملفات المفاتيح الخاصة المصدرة خارج التحكم في الإصدار والمجلدات المشتركة.

لا يزال التكوين يبدو كالتالي:

users:
- id: alice
pubkey: "ALICE_ED25519_PUBLIC_KEY"
- id: ops
pubkey: "OPS_ED25519_PUBLIC_KEY"

مثال Telegram

channels:
telegram:
- id: personal
user: alice
bot_token: "YOUR_TELEGRAM_BOT_TOKEN"
username: "YOUR_TELEGRAM_BOT_USERNAME"
allowed_users:
- "*"
mention_only: false

مثال WeChat

channels:
wechat:
- id: personal
user: alice
# اتركه فارغاً لتشغيل anda channel init wechat، وقراءة كود QR المربع، والحصول على الرمز.
bot_token: ""
username: anda-wechat
allowed_users:
- "*"

مثال Discord

يستخدم Discord رمز بوت واتصال Gateway. قم بإنشاء البوت وتثبيته قبل تحرير ملف config.yaml:

  1. افتح بوابة مطوري Discord ، ثم قم بإنشاء تطبيقك أو فتحه.
  2. في صفحة البوت (Bot) الخاصة بالتطبيق، انسخ رمز البوت أو أعد ضبطه. قم أيضاً بتمكين خيار Message Content Intent تحت Privileged Gateway Intents حتى يتمكن Anda من قراءة نصوص الرسائل العادية.
  3. في صفحة التثبيت (Installation) ، تأكد من أن عملية Guild Install تتضمن نطاق bot. بدون نطاق bot ، يمكن أن يظهر التطبيق في تطبيقات Discord الخاصة بك ولكن ليس كعضو بوت في الخادم.
  4. امنح البوت على الأقل صلاحيات View Channels و Send Messages و Read Message History. أضف Attach Files إذا كان يجب على Anda إرسال ملفات، وأضف Add Reactions عندما يكون ack_reactions: true.
  5. قم بتثبيت التطبيق في خادمك. يجب أن يظهر البوت في قائمة أعضاء الخادم بعد تثبيته.
channels:
discord:
- id: server
user: ops
bot_token: "YOUR_DISCORD_BOT_TOKEN"
username: anda-discord
# اختياري. قصر هذا الإدخال على خادم Discord واحد.
guild_id: "YOUR_DISCORD_GUILD_ID"
allowed_users:
- "YOUR_DISCORD_USER_ID"
mention_only: true
ack_reactions: true

فقط حقل bot_token هو المطلوب بموجب التحقق من التكوين. لإعداد قابل للاستخدام وأكثر أماناً، اضبط allowed_users على معرفات مستخدمي Discord؛ قائمة allowed_users فارغة مع قيمة allow_external_users: false تتجاهل المرسلين غير المعتمدين في القائمة المسموح بها. استخدم allow_external_users: true فقط عندما يجب أن يكون المستخدمون الخارجيون غير الموثوق بهم قادرين على التحدث إلى Anda كـ $external_user.

بعد حفظ التكوين:

anda channel list
anda restart

في قناة الخادم، قم بالإشارة إلى البوت:

@anda-discord لخص هذا الموضوع

في محادثة خاصة (DM) مع البوت، أرسل رسالة عادية دون الإشارة إليه. إذا لم يكن البوت مرئياً، تحقق من أن خيار Guild Install يتضمن نطاق bot وأن daemon قيد التشغيل.

مثال Lark / Feishu

channels:
lark:
- id: work
user: ops
app_id: "cli_xxx"
app_secret: "YOUR_APP_SECRET"
platform: feishu
receive_mode: websocket
mention_only: true

فحوصات سلامة القنوات

  • يحدد خيار allowed_users من يمكنه تشغيل Anda؛ استخدم "*" فقط عندما يكون الوصول المفتوح مقبولاً.
  • يحدد خيار user أي من مرسلي Anda الموثوقين يمتلك المحادثات والموارد والذاكرة الخاصة بمدخل القناة الحالي.
  • تتطلب Telegram و Discord عادةً رمز البوت bot_token.
  • يمكن لـ WeChat استخدام رمز محفوظ، أو تسجيل الدخول عبر كود QR عندما يكون bot_token فارغاً.
  • يحتاج Lark / Feishu إلى app_id و app_secret؛ وتستخدم نقاط نهاية Feishu قيمة platform: feishu.
  • يتم الاحتفاظ بمسارات القنوات بشكل مستمر بحيث يمكن للردود اللاحقة العودة إلى الموضوع أو الغرفة أو جهة الاتصال الأصلية.

الإدخال الصوتي والتشغيل

يتطلب الإدخال الصوتي تعيين transcription.enabled: true. ابدأ جلسة صوتية باستخدام:

anda voice --record-secs 8

إذا كنت تريد أيضاً أن يقوم Anda بتشغيل الإجابة صوتياً، فقم بتكوين tts.enabled: true. لمدخل الميكروفون ومخرج النص فقط:

anda voice --record-secs 8 --no-playback

يمكن أن تدخل المرفقات الصوتية في السياق بعد تمكين الترانسكريبت، بحيث تصبح الرسائل الصوتية في القنوات جزءاً من حلقة الذاكرة نفسها.