Skip to content

ქვეაგენტები

PRX არ არის ერთნაკადიანი საუბრის აგენტი. ის ანაწილებს სამუშაოს ქვეაგენტების სტრუქტურირებული იერარქიის საშუალებით, თითოეულს აქვს განსხვავებული შესრულების მოდელი, სიცოცხლის გარანტიები და ზედამხედველობის დონეები.

სამსაფეხურიანი დელეგირება

Section titled “სამსაფეხურიანი დელეგირება”

საფეხური 1: დელეგირება (სინქრონული)

Section titled “საფეხური 1: დელეგირება (სინქრონული)”

delegate ბრძანება აგზავნის ამოცანას დასახელებულ აგენტთან და ელოდება შედეგს გაგრძელებამდე. ეს არის სინქრონული, ბლოკირებადი დელეგირება.

PRX მთავარი ──delegate("coder", ამოცანა)──→ აგენტი "coder"
│ │
│ (დაბლოკილი, ელოდება) │ (მუშაობს...)
│ │
◀── შედეგი ─────────────────┘

ძირითადი თვისებები:

  • დასახელებული აგენტები — ყოველ აგენტს აქვს სახელი, სისტემის პრომპტი და არჩევითად გამოყოფილი მოდელი
  • აგენტური რეჟიმი — დელეგირებული აგენტი უშვებს ინსტრუმენტების სრულ ციკლს (დაკვირვება, ფიქრი, მოქმედება, გამეორება) ამოცანის დასრულებამდე
  • სიღრმის კონტროლი — დელეგირების სიღრმე შეზღუდულია (ნაგულისხმევი: 3 დონე) უსასრულო რეკურსიის თავიდან ასაცილებლად. აგენტ A-ს შეუძლია დელეგირება აგენტ B-ზე, ვინც შეუძლია დელეგირება აგენტ C-ზე, მაგრამ C ვეღარ შეძლებს დელეგირებას
  • კონტექსტის იზოლაცია — ყოველ დელეგირებულ აგენტს აქვს საკუთარი საუბრის კონტექსტი; ის ვერ ხედავს მშობლის სრულ ისტორიას, მხოლოდ ამოცანის აღწერას
[agents.coder]
system_prompt = "You are a coding agent. Write clean, tested code."
model = "anthropic/claude-sonnet-4-20250514"
tools = ["read_file", "write_file", "bash", "grep"]
max_depth = 3

საფეხური 2: სესიის გაშვება (ასინქრონული Fire-and-Forget)

Section titled “საფეხური 2: სესიის გაშვება (ასინქრონული Fire-and-Forget)”

sessions_spawn ბრძანება უშვებს აგენტს ასინქრონულად. მშობელი არ ელოდება — ის მყისიერად იღებს გაშვების ID-ს და აგრძელებს დამუშავებას.

PRX მთავარი ──sessions_spawn(ამოცანა)──→ აბრუნებს run_id="abc123"
│ │
│ (აგრძელებს მუშაობას) │ გაშვებული სესია (მუშაობს დამოუკიდებლად)
│ │
│ └──→ დასრულებისას: ავტო-გამოცხადება შედეგის

ძირითადი თვისებები:

  • Fire-and-forget — გამომძახებელი იღებს გაშვების ID-ს და გრძელდება
  • ავტო-გამოცხადება — გაშვებული სესია დასრულებისას გამოაცხადებს შედეგს თავდაპირველ არხში
  • მართვა — მშობელს (ან მომხმარებელს) შეუძლია დამატებითი ინსტრუქციების გაგზავნა მიმდინარე სესიაზე მისი გაშვების ID-ით
  • შეწყვეტა — მიმდინარე სესია შეიძლება შეწყდეს მისი გაშვების ID-ით

ეს სასარგებლოა ხანგრძლივი ამოცანებისთვის: „წადი გამოიკვლიე ეს თემა და შეატყობინე როცა დაასრულებ” სანამ მთავარი აგენტი აგრძელებს სხვა კითხვებზე პასუხის გაცემას.

საფეხური 3: ქვეაგენტების მართვა

Section titled “საფეხური 3: ქვეაგენტების მართვა”

მართვის ბრძანებები მიმდინარე ქვეაგენტების ინსპექციისა და კონტროლისთვის:

ბრძანებააღწერა
subagents listყველა აქტიური ქვეაგენტის სესიის ჩამოთვლა მათი გაშვების ID-ებით, სტატუსით და გასული დროით
subagents kill <run_id>მიმდინარე ქვეაგენტის სესიის შეწყვეტა
subagents steer <run_id> <ინსტრუქცია>დამატებითი ინსტრუქციის გაგზავნა მიმდინარე სესიაზე, მისი ქცევის გადამისამართება

ეს ოპერატორებს აძლევს ხილვადობასა და კონტროლს ფონში მიმდინარე ავტონომიურ სამუშაოზე.

PRX მოიცავს ჩაშენებულ MCP (Model Context Protocol) კლიენტს გარე MCP სერვერებთან დასაკავშირებლად და მათი ინსტრუმენტების გამოსაყენებლად.

[mcp_servers.memory]
transport = "http"
url = "http://localhost:8082/mcp"
[mcp_servers.filesystem]
transport = "stdio"
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]

მხარდაჭერილი ტრანსპორტები:

ტრანსპორტიაღწერა
HTTPMCP სერვერთან დაკავშირება HTTP/SSE-ით
stdioქვეპროცესის გაშვება და კომუნიკაცია stdin/stdout-ით

როცა MCP სერვერი კონფიგურირებულია, მისი ინსტრუმენტები ხელმისაწვდომი ხდება PRX-ისა და ყველა ქვეაგენტისთვის. ინსტრუმენტების გამოძახებები მარშრუტიზდება MCP კლიენტის საშუალებით გამჭვირვალედ — LLM ხედავს მათ როგორც ნეიტივ ინსტრუმენტებს.

ასე უკავშირდება PRX:

  • prx-memory-ს მუდმივი ცოდნის შენახვისა და მოძიებისთვის
  • OpenPR-ს პროექტების მართვის ოპერაციებისთვის (ამოცანების შექმნა, სტატუსის განახლება)
  • ფაილური სისტემის სერვერებს სენდბოქსირებული ფაილზე წვდომისთვის
  • ნებისმიერ მესამე მხარის MCP-თავსებადი სერვერს

დისტანციური კვანძები

Section titled “დისტანციური კვანძები”

PRX მხარს უჭერს განაწილებულ შესრულებას დისტანციური კვანძების (prx-node) საშუალებით, რაც საშუალებას აძლევს სამუშაოს დელეგირებას სხვა მანქანებზე.

PRX დემონი (ცენტრალური)
├── H2 ტრანსპორტი ──→ prx-node (სერვერი A)
├── H2 ტრანსპორტი ──→ prx-node (ლეპტოპი B)
└── H2 ტრანსპორტი ──→ prx-node (GPU სერვერი C)

მოწყობილობის დაწყვილება

Section titled “მოწყობილობის დაწყვილება”

დისტანციური კვანძები ავტორიზდებიან დაწყვილების პროტოკოლით:

  1. დისტანციური კვანძი გენერირებს დაწყვილების კოდს
  2. ოპერატორი შეიყვანს დაწყვილების კოდს ცენტრალურ PRX ინსტანციაზე
  3. საერთო საიდუმლო დგინდება მომავალი კომუნიკაციისთვის
  4. ყველა შემდგომი ტრაფიკი დაშიფრულია H2 (HTTP/2) საშუალებით

გამოყენების შემთხვევები

Section titled “გამოყენების შემთხვევები”
  • GPU-ს გადატვირთვა — ინფერენსის მარშრუტიზაცია GPU-იანი მანქანისკენ, რომელზეც Ollama ან vLLM მუშაობს
  • პლატფორმის სპეციფიკური ამოცანები — macOS ამოცანების დელეგირება Mac კვანძზე, Windows ამოცანებისა — Windows კვანძზე
  • გეოგრაფიული განაწილება — კვანძების გაშვება სხვადასხვა რეგიონში ლოკალურ სერვისებთან დაყოვნების შესამცირებლად
  • იზოლაცია — არასანდო ინსტრუმენტების შესრულება გამოყოფილ კვანძზე შეზღუდული წვდომით
[remote_nodes.gpu_server]
address = "192.168.1.100:9090"
paired = true
capabilities = ["gpu", "ollama"]

ქვეაგენტები შეიძლება ექსპლიციტურად მარშრუტიზდეს დისტანციურ კვანძებზე, ან როუტერმა შეიძლება გაითვალისწინოს კვანძის შესაძლებლობები დელეგირების გადაწყვეტილებების მიღებისას.