არხები
არხები არის შეტყობინებების პლატფორმების ინტეგრაციები, რომლებიც PRX-ს გარე სამყაროსთან აკავშირებს. თითოეული არხი ახორციელებს ერთიან ინტერფეისს შეტყობინებების გაგზავნისა და მიღების, მედიის დამუშავების, აკრეფის ინდიკატორების მართვისა და ჯანმრთელობის შემოწმების ჩატარებისთვის. PRX-ს შეუძლია ერთდროულად რამდენიმე არხის გაშვება ერთი დემონის პროცესიდან.
მხარდაჭერილი არხები
PRX მხარს უჭერს 19 შეტყობინებების არხს, რომელიც მოიცავს სამომხმარებლო პლატფორმებს, საწარმოო ინსტრუმენტებს, ღია კოდის პროტოკოლებსა და დეველოპერის ინტერფეისებს.
არხების შედარების მატრიცა
| არხი | პირადი | ჯგუფი | მედია | ხმა | E2EE | პლატფორმა | სტატუსი |
|---|---|---|---|---|---|---|---|
| Telegram | დიახ | დიახ | დიახ | არა | არა | კროსპლატფორმული | სტაბილური |
| Discord | დიახ | დიახ | დიახ | არა | არა | კროსპლატფორმული | სტაბილური |
| Slack | დიახ | დიახ | დიახ | არა | არა | კროსპლატფორმული | სტაბილური |
| დიახ | დიახ | დიახ | არა | დიახ | Cloud API | სტაბილური | |
| WhatsApp Web | დიახ | დიახ | დიახ | არა | დიახ | მრავალმოწყობილობა | ბეტა |
| Signal | დიახ | დიახ | დიახ | არა | დიახ | კროსპლატფორმული | სტაბილური |
| iMessage | დიახ | დიახ | დიახ | არა | დიახ | მხოლოდ macOS | ბეტა |
| Matrix | დიახ | დიახ | დიახ | არა | დიახ | ფედერაციული | სტაბილური |
| დიახ | არა | დიახ | არა | არა | IMAP/SMTP | სტაბილური | |
| Lark / Feishu | დიახ | დიახ | დიახ | არა | არა | კროსპლატფორმული | სტაბილური |
| DingTalk | დიახ | დიახ | დიახ | არა | არა | კროსპლატფორმული | სტაბილური |
| დიახ | დიახ | დიახ | არა | არა | კროსპლატფორმული | ბეტა | |
| Mattermost | დიახ | დიახ | დიახ | არა | არა | თვითჰოსტინგი | სტაბილური |
| Nextcloud Talk | დიახ | დიახ | დიახ | არა | არა | თვითჰოსტინგი | ბეტა |
| IRC | დიახ | დიახ | არა | არა | არა | ფედერაციული | სტაბილური |
| LINQ | დიახ | დიახ | დიახ | არა | არა | Partner API | ალფა |
| CLI | დიახ | არა | არა | არა | N/A | ტერმინალი | სტაბილური |
| Terminal | დიახ | არა | არა | არა | N/A | ტერმინალი | სტაბილური |
| Wacli | დიახ | დიახ | დიახ | არა | დიახ | JSON-RPC | ბეტა |
ლეგენდა:
- სტაბილური -- პროდაქშენისთვის მზა, სრულად ტესტირებული
- ბეტა -- ფუნქციონალური, ცნობილი შეზღუდვებით
- ალფა -- ექსპერიმენტული, API შეიძლება შეიცვალოს
კონფიგურაციის საერთო შაბლონი
ყველა არხი კონფიგურირებულია ~/.config/openprx/openprx.toml ფაილის [channels] სექციაში. თითოეულ არხს აქვს საკუთარი ქვესექცია პლატფორმისთვის სპეციფიკური პარამეტრებით.
ძირითადი სტრუქტურა
[channels]
# ჩაშენებული CLI არხის ჩართვა (ნაგულისხმევი: true)
cli = true
# შეტყობინების დამუშავების ტაიმაუტი წამებში (ნაგულისხმევი: 300)
message_timeout_secs = 300
# ── Telegram ──────────────────────────────────────────────
[channels.telegram]
bot_token = "123456789:ABCdefGHIjklMNOpqrsTUVwxyz"
allowed_users = ["alice", "bob"]
stream_mode = "edit" # "edit" | "append" | "none"
mention_only = false
# ── Discord ───────────────────────────────────────────────
[channels.discord]
bot_token = "MTIzNDU2Nzg5.XXXXXX.XXXXXXXXXX"
guild_id = "1234567890" # არასავალდებულო: შეზღუდვა ერთ სერვერზე
allowed_users = [] # ცარიელი = ყველა ნებადართული
listen_to_bots = false
mention_only = false
# ── Slack ─────────────────────────────────────────────────
[channels.slack]
bot_token = "xoxb-..."
app_token = "xapp-..."
allowed_users = []
mention_only = trueარხის სპეციფიკური მაგალითები
Lark / Feishu:
[channels.lark]
app_id = "cli_xxxxxxxxxxxx"
app_secret = "xxxxxxxxxxxxxxxxxxxxxxxx"
allowed_users = []
use_feishu = false # true Feishu-სთვის (ჩინეთი), false Lark-ისთვის (საერთაშორისო)
receive_mode = "websocket" # "websocket" | "webhook"
mention_only = falseSignal:
[channels.signal]
phone_number = "+1234567890"
signal_cli_path = "/usr/local/bin/signal-cli"
allowed_users = ["+1987654321"]Matrix (E2EE-ით):
[channels.matrix]
homeserver_url = "https://matrix.org"
username = "@prx-bot:matrix.org"
password = "secure-password"
allowed_users = ["@alice:matrix.org"]Email (IMAP/SMTP):
[channels.email]
imap_host = "imap.gmail.com"
imap_port = 993
smtp_host = "smtp.gmail.com"
smtp_port = 587
username = "[email protected]"
password = "app-specific-password"
allowed_from = ["[email protected]"]DingTalk:
[channels.dingtalk]
app_key = "dingxxxxxxxxxxxxxxxx"
app_secret = "xxxxxxxxxxxxxxxxxxxxxxxx"
robot_code = "dingxxxxxxxxx"
allowed_users = []პირადი შეტყობინებების პოლიტიკა
PRX უზრუნველყოფს დეტალურ კონტროლს იმაზე, თუ ვის შეუძლია თქვენს აგენტს პირადი შეტყობინებების გაგზავნა. პირადი შეტყობინებების პოლიტიკა კონფიგურირდება თითოეული არხისთვის და განსაზღვრავს, როგორ დამუშავდება შემომავალი პირადი შეტყობინებები.
პოლიტიკის ტიპები
| პოლიტიკა | ქცევა |
|---|---|
pairing | მოითხოვს დაწყვილების ხელის ჩამორთმევას (handshake) გამგზავნის მიღებამდე. მომხმარებელმა უნდა დაასრულოს გამოწვევა-პასუხის ნაკადი ავთენტიფიკაციისთვის. მომავალი ფუნქცია -- ამჟამად უკან ბრუნდება allowlist-ზე. |
allowlist | (ნაგულისხმევი) მხოლოდ არხის allowed_users მასივში ჩამოთვლილ გამგზავნებს შეუძლიათ აგენტთან ურთიერთობა. სიაში არ მყოფი გამგზავნების შეტყობინებები ჩუმად იგნორირდება. |
open | ნებისმიერ მომხმარებელს შეუძლია აგენტისთვის პირადი შეტყობინებების გაგზავნა. პროდაქშენში სიფრთხილით გამოიყენეთ. |
disabled | ყველა პირადი შეტყობინება იგნორირდება. სასარგებლოა, როდესაც PRX მხოლოდ ჯგუფებში უნდა პასუხობდეს. |
კონფიგურაცია
პირადი შეტყობინებების პოლიტიკა არხების კონფიგურაციის ზედა დონეზე დგინდება:
[channels]
dm_policy = "allowlist" # "pairing" | "allowlist" | "open" | "disabled"თითოეული არხის allowed_users მასივი არის ამ არხის ნებადართული სია:
[channels.telegram]
bot_token = "..."
allowed_users = ["alice", "bob"] # მხოლოდ ეს მომხმარებლები შეძლებენ პირად შეტყობინებებსdm_policy = "open"-ის შემთხვევაში allowed_users ველი იგნორირდება და ყველა გამგზავნი მიიღება.
ჯგუფის პოლიტიკა
პირადი შეტყობინებების პოლიტიკის მსგავსად, PRX აკონტროლებს, რომელ ჯგუფურ საუბრებში მონაწილეობს აგენტი:
| პოლიტიკა | ქცევა |
|---|---|
allowlist | (ნაგულისხმევი) მხოლოდ არხის ჯგუფების ნებადართულ სიაში მყოფი ჯგუფები მონიტორინგდება. |
open | აგენტი პასუხობს ნებისმიერ ჯგუფში, სადაც დამატებულია. |
disabled | ყველა ჯგუფური შეტყობინება იგნორირდება. |
[channels]
group_policy = "allowlist"
[channels.telegram]
bot_token = "..."
# ჯგუფების ნებადართული სია კონფიგურირდება თითოეული არხისთვისმხოლოდ მოხსენიების რეჟიმი
უმეტეს არხებს აქვს mention_only ფლაგი. ჩართვისას აგენტი პასუხობს მხოლოდ იმ შეტყობინებებს, რომლებიც მას ცალსახად ახსენებს (@-მოხსენიება, პასუხი ან პლატფორმისთვის სპეციფიკური ტრიგერი). ეს სასარგებლოა ჯგუფურ ჩატებში, რათა აგენტი ყველა შეტყობინებას არ პასუხობდეს.
[channels.discord]
bot_token = "..."
mention_only = true # პასუხობს მხოლოდ @-მოხსენიებისასსტრიმინგის რეჟიმი
ზოგიერთი არხი მხარს უჭერს LLM პასუხების რეალურ დროში სტრიმინგს. stream_mode პარამეტრი აკონტროლებს, როგორ გამოჩნდება სტრიმინგის გამოტანა:
| რეჟიმი | ქცევა |
|---|---|
edit | რედაქტირებს იგივე შეტყობინებას ტოკენების მოსვლისას (Telegram, Discord) |
append | ამატებს ახალ ტექსტს შეტყობინებაში |
none | ელოდება სრულ პასუხს გაგზავნამდე |
[channels.telegram]
bot_token = "..."
stream_mode = "edit"
draft_update_interval_ms = 1000 # რამდენ ხნეში ერთხელ განახლდეს შავი ვერსია (მილიწამებში)ახალი არხის დამატება
PRX არხები Channel ტრეიტზეა დაფუძნებული. ახალი არხის დასაკავშირებლად:
- დაამატეთ არხის კონფიგურაცია თქვენს
openprx.toml-ში - გადატვირთეთ დემონი:
prx daemon
ალტერნატივად, გამოიყენეთ ინტერაქტიული არხის ოსტატი:
prx channel add telegramაქტიური არხების ჩამოთვლისთვის:
prx channel listარხის კავშირის პრობლემების დიაგნოსტიკისთვის:
prx channel doctorარხის არქიტექტურა
შიდა მხარეს, თითოეული არხი:
- ისმენს პლატფორმიდან შემომავალ შეტყობინებებს (პოლინგის, webhook-ების ან WebSocket-ის მეშვეობით)
- ფილტრავს შეტყობინებებს პირადი/ჯგუფის პოლიტიკისა და ნებადართული სიების მიხედვით
- მარშრუტირებს მიღებულ შეტყობინებებს აგენტის ციკლში დამუშავებისთვის
- აგზავნის აგენტის პასუხს უკან პლატფორმის API-ის მეშვეობით
- აწვდის ჯანმრთელობის სტატუსს და ავტომატურად ხელახლა უკავშირდება ექსპონენციალური უკანდახევით
ყველა არხი ერთდროულად მუშაობს დემონის პროცესში, იზიარებს აგენტის გაშვების გარემოს, მეხსიერებასა და ინსტრუმენტების ქვესისტემებს.
შემდეგი ნაბიჯები
აირჩიეთ არხი მისი კონკრეტული დაყენების გასაცნობად: