Skip to content
ეს გვერდი შეიქმნა და ითარგმნა ხელოვნური ინტელექტის დახმარებით. თუ შეამჩნევთ უზუსტობას, გთხოვთ, დაგვეხმარეთ გაუმჯობესებაში. GitHub-ზე რედაქტირება

Cron ინსტრუმენტები

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

Cron ინსტრუმენტები ორ სისტემად იყოფა: cron ქვესისტემა სტანდარტული დაგეგმილი სამუშაოებისთვის cron გამოსახულებების გამოყენებით, და Xin ძრავი მოწინავე ამოცანების დაგეგმვისთვის დამოკიდებულებების ჯაჭვებით, პირობითი შესრულებითა და თვითევოლუციის პაიპლაინთან ინტეგრაციით.

ყველა cron და დაგეგმვის ინსტრუმენტი all_tools() რეესტრში რეგისტრირებულია და ხელმისაწვდომია დემონის მუშაობისას.

კონფიგურაცია

Cron სისტემა

toml
[cron]
enabled = true
timezone = "UTC"           # დროის ზონა cron გამოსახულებებისთვის

# ჩაშენებული დაგეგმილი ამოცანების განსაზღვრა
[[cron.tasks]]
name = "daily-report"
schedule = "0 9 * * *"     # ყოველდღე 09:00 UTC-ზე
action = "agent"
prompt = "Generate a daily summary report and send it to the user."

[[cron.tasks]]
name = "memory-cleanup"
schedule = "0 3 * * *"     # ყოველდღე 03:00 UTC-ზე
action = "agent"
prompt = "Run memory hygiene: archive old daily entries and compact core memories."

[[cron.tasks]]
name = "repo-check"
schedule = "*/30 * * * *"  # ყოველ 30 წუთში
action = "shell"
command = "cd /home/user/project && git fetch --all"

Xin ძრავი

toml
[xin]
enabled = true
interval_minutes = 5            # ტიკის ინტერვალი წუთებში (მინიმუმ 1)
max_concurrent = 4              # მაქსიმალური ერთდროული ამოცანების შესრულება ტიკზე
max_tasks = 128                 # მაქსიმალური ამოცანების რაოდენობა საცავში
stale_timeout_minutes = 60      # წუთები, რის შემდეგაც მიმდინარე ამოცანა მოძველებულად აღინიშნება
builtin_tasks = true            # ჩაშენებული სისტემური ამოცანების ავტომატური რეგისტრაცია
evolution_integration = false   # Xin-ს ევოლუციის/ფიტნესის დაგეგმვის მართვის ნება

ინსტრუმენტების მითითება

cron_add

ახალი cron სამუშაოს დამატება cron გამოსახულებით, ბრძანებით ან პრომპტით და არასავალდებულო აღწერილობით.

json
{
  "name": "cron_add",
  "arguments": {
    "name": "backup-workspace",
    "schedule": "0 2 * * *",
    "action": "shell",
    "command": "tar czf /tmp/workspace-$(date +%Y%m%d).tar.gz /home/user/workspace",
    "description": "Daily workspace backup at 2 AM"
  }
}
პარამეტრიტიპისავალდებულონაგულისხმევიაღწერა
namestringდიახ--Cron სამუშაოს უნიკალური სახელი
schedulestringდიახ--Cron გამოსახულება (5-ველიანი: წუთი საათი დღე თვე კვირის_დღე)
actionstringდიახ--მოქმედების ტიპი: "shell" (ბრძანების შესრულება) ან "agent" (აგენტის პრომპტის შესრულება)
commandstringპირობითი--Shell ბრძანება (სავალდებულოა action = "shell" შემთხვევაში)
promptstringპირობითი--აგენტის პრომპტი (სავალდებულოა action = "agent" შემთხვევაში)
descriptionstringარა--ადამიანისთვის წასაკითხი აღწერილობა

cron_list

ყველა რეგისტრირებული cron სამუშაოს სიის ჩვენება მათი გრაფიკით, სტატუსითა და შემდეგი გაშვების დროით.

json
{
  "name": "cron_list",
  "arguments": {}
}

პარამეტრები არ არის საჭირო. აბრუნებს ყველა cron სამუშაოს ცხრილს.

cron_remove

Cron სამუშაოს წაშლა სახელით ან ID-ით.

json
{
  "name": "cron_remove",
  "arguments": {
    "name": "backup-workspace"
  }
}
პარამეტრიტიპისავალდებულონაგულისხმევიაღწერა
namestringდიახ--წასაშლელი cron სამუშაოს სახელი ან ID

cron_update

არსებული cron სამუშაოს გრაფიკის, ბრძანების ან პარამეტრების განახლება.

json
{
  "name": "cron_update",
  "arguments": {
    "name": "backup-workspace",
    "schedule": "0 4 * * *",
    "description": "Daily workspace backup at 4 AM (shifted)"
  }
}
პარამეტრიტიპისავალდებულონაგულისხმევიაღწერა
namestringდიახ--განსახლებელი cron სამუშაოს სახელი
schedulestringარა--ახალი cron გამოსახულება
commandstringარა--ახალი shell ბრძანება
promptstringარა--ახალი აგენტის პრომპტი
descriptionstringარა--ახალი აღწერილობა

cron_run

Cron სამუშაოს ხელით გაშვება დაუყოვნებლივ, ჩვეულებრივი გრაფიკის მიღმა.

json
{
  "name": "cron_run",
  "arguments": {
    "name": "daily-report"
  }
}
პარამეტრიტიპისავალდებულონაგულისხმევიაღწერა
namestringდიახ--გასაშვები cron სამუშაოს სახელი

cron_runs

Cron სამუშაოების შესრულების ისტორიისა და ჟურნალების ნახვა. აჩვენებს წარსულ შესრულებებს დროის შტამპებით, სტატუსითა და გამოსავალით.

json
{
  "name": "cron_runs",
  "arguments": {
    "name": "daily-report",
    "limit": 10
  }
}
პარამეტრიტიპისავალდებულონაგულისხმევიაღწერა
namestringარა--სამუშაოს სახელით ფილტრაცია. გამოტოვებისას ყველა ბოლო შესრულებას აჩვენებს.
limitintegerარა20დასაბრუნებელი ისტორიის ჩანაწერების მაქსიმალური რაოდენობა

schedule

ერთჯერადი ან პერიოდული ამოცანის დაგეგმვა ბუნებრივი ენის დროითი გამოსახულებებით. ეს უფრო მაღალი დონის ინტერფეისია, ვიდრე ნედლი cron გამოსახულებები.

json
{
  "name": "schedule",
  "arguments": {
    "when": "in 30 minutes",
    "action": "agent",
    "prompt": "Check if the deployment completed and report the status."
  }
}
პარამეტრიტიპისავალდებულონაგულისხმევიაღწერა
whenstringდიახ--ბუნებრივი ენის დროითი გამოსახულება (მაგ., "in 30 minutes", "tomorrow at 9am", "every Monday at 10:00")
actionstringდიახ--მოქმედების ტიპი: "shell" ან "agent"
commandstringპირობითი--Shell ბრძანება ("shell" მოქმედებისთვის)
promptstringპირობითი--აგენტის პრომპტი ("agent" მოქმედებისთვის)

cron (ძველი)

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

json
{
  "name": "cron",
  "arguments": {
    "action": "list"
  }
}

xin

Xin დაგეგმვის ძრავი მოწინავე ამოცანების ავტომატიზაციისთვის დამოკიდებულებების ჯაჭვებითა და პირობითი შესრულებით.

json
{
  "name": "xin",
  "arguments": {
    "action": "status"
  }
}
პარამეტრიტიპისავალდებულონაგულისხმევიაღწერა
actionstringდიახ--მოქმედება: "status", "tasks", "run", "pause", "resume"

Cron გამოსახულების ფორმატი

PRX სტანდარტულ 5-ველიან cron გამოსახულებებს იყენებს:

┌───────────── წუთი (0-59)
│ ┌───────────── საათი (0-23)
│ │ ┌───────────── თვის დღე (1-31)
│ │ │ ┌───────────── თვე (1-12)
│ │ │ │ ┌───────────── კვირის დღე (0-7, 0 და 7 = კვირა)
│ │ │ │ │
* * * * *

მაგალითები:

გამოსახულებააღწერა
0 9 * * *ყოველდღე 9:00-ზე
*/15 * * * *ყოველ 15 წუთში
0 9 * * 1-5სამუშაო დღეებში 9:00-ზე
0 0 1 * *ყოველი თვის პირველ დღეს შუაღამისას
30 8,12,18 * * *8:30, 12:30 და 18:30-ზე ყოველდღიურად

Xin ძრავი

Xin ძრავი მოწინავე ამოცანების დამგეგმავია, რომელიც მარტივი cron დროითმართვის მიღმა მიდის:

  • დამოკიდებულებების ჯაჭვები: ამოცანები სხვა ამოცანების წარმატებულ დასრულებაზე შეიძლება იყოს დამოკიდებული
  • პირობითი შესრულება: ამოცანები მხოლოდ მითითებული პირობების დაკმაყოფილებისას შესრულდება
  • ჩაშენებული ამოცანები: სისტემის მოვლის ამოცანები (ჰარტბიტი, მეხსიერების ჰიგიენა, ჟურნალების როტაცია) ავტომატურად რეგისტრირდება builtin_tasks = true შემთხვევაში
  • ევოლუციის ინტეგრაცია: evolution_integration = true შემთხვევაში Xin თვითევოლუციისა და ფიტნესის შემოწმების გრაფიკს მართავს
  • მოძველების აღმოჩენა: stale_timeout_minutes-ზე მეტხანს მიმდინარე ამოცანები მოძველებულად აღინიშნება და გასუფთავდება
  • ერთდროული შესრულება: მრავალი ამოცანა პარალელურად შეიძლება შესრულდეს, max_concurrent-ით შეზღუდული

გამოყენება

CLI Cron მართვა

bash
# ყველა cron სამუშაოს სია
prx cron list

# ახალი cron სამუშაოს დამატება
prx cron add --name "check-updates" --schedule "0 */6 * * *" --action agent --prompt "Check for package updates"

# სამუშაოს ხელით გაშვება
prx cron run daily-report

# შესრულების ისტორიის ნახვა
prx cron runs --name daily-report --limit 5

# სამუშაოს წაშლა
prx cron remove check-updates

Xin სტატუსი

bash
# Xin ძრავის სტატუსის შემოწმება
prx xin status

# ყველა Xin ამოცანის სია
prx xin tasks

უსაფრთხოება

Shell ბრძანებების სენდბოქსი

action = "shell" მქონე cron სამუშაოები იმავე სენდბოქსში სრულდება, რაც shell ინსტრუმენტი. კონფიგურირებული სენდბოქსის ბექენდი (Landlock, Firejail, Bubblewrap, Docker) დაგეგმილ ბრძანებებზე ვრცელდება.

აგენტის პრომპტის უსაფრთხოება

action = "agent" მქონე cron სამუშაოები ახალ აგენტის სესიას იწყებს კონფიგურირებული პრომპტით. აგენტის სესია დემონის უსაფრთხოების პოლიტიკებს, ინსტრუმენტების შეზღუდვებსა და რესურსების ლიმიტებს მემკვიდრეობით იღებს.

პოლიტიკის ძრავი

Cron ინსტრუმენტები უსაფრთხოების პოლიტიკის ძრავის ქვეშ მოქმედებს:

toml
[security.tool_policy.groups]
automation = "allow"

[security.tool_policy.tools]
cron_add = "supervised"    # ახალი სამუშაოების დამატებისთვის დამტკიცების მოთხოვნა
cron_remove = "supervised" # სამუშაოების წაშლისთვის დამტკიცების მოთხოვნა
cron_run = "allow"         # ხელით გაშვების ნებართვა

აუდიტის ჟურნალი

ყველა cron ოპერაცია აუდიტის ჟურნალში აღირიცხება: სამუშაოების შექმნა, შეცვლა, წაშლა, ხელით გაშვება და შესრულების შედეგები.

რესურსების ლიმიტები

დაგეგმილი ამოცანები დემონის რესურსების ლიმიტებს იზიარებს. Xin ძრავის max_concurrent პარამეტრი ძალიან ბევრი ერთდროული ამოცანისგან რესურსების ამოწურვას თავიდან იცილებს.

დაკავშირებული გვერდები

Released under the Apache-2.0 License.