Cron ინსტრუმენტები
PRX ცხრა ინსტრუმენტს გთავაზობთ დროზე დაფუძნებული ამოცანების ავტომატიზაციისთვის, რომლებიც ტრადიციულ cron სამუშაოების მართვასა და მოწინავე Xin დაგეგმვის ძრავს მოიცავს. ეს ინსტრუმენტები აგენტს დაგეგმილი ამოცანების შექმნის, სამუშაოების ისტორიის შემოწმების, ხელით გაშვებისა და ფონური ოპერაციების ციკლური გრაფიკით ორკესტრაციის საშუალებას აძლევს.
Cron ინსტრუმენტები ორ სისტემად იყოფა: cron ქვესისტემა სტანდარტული დაგეგმილი სამუშაოებისთვის cron გამოსახულებების გამოყენებით, და Xin ძრავი მოწინავე ამოცანების დაგეგმვისთვის დამოკიდებულებების ჯაჭვებით, პირობითი შესრულებითა და თვითევოლუციის პაიპლაინთან ინტეგრაციით.
ყველა cron და დაგეგმვის ინსტრუმენტი all_tools() რეესტრში რეგისტრირებულია და ხელმისაწვდომია დემონის მუშაობისას.
კონფიგურაცია
Cron სისტემა
[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 ძრავი
[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 გამოსახულებით, ბრძანებით ან პრომპტით და არასავალდებულო აღწერილობით.
{
"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"
}
}| პარამეტრი | ტიპი | სავალდებულო | ნაგულისხმევი | აღწერა |
|---|---|---|---|---|
name | string | დიახ | -- | Cron სამუშაოს უნიკალური სახელი |
schedule | string | დიახ | -- | Cron გამოსახულება (5-ველიანი: წუთი საათი დღე თვე კვირის_დღე) |
action | string | დიახ | -- | მოქმედების ტიპი: "shell" (ბრძანების შესრულება) ან "agent" (აგენტის პრომპტის შესრულება) |
command | string | პირობითი | -- | Shell ბრძანება (სავალდებულოა action = "shell" შემთხვევაში) |
prompt | string | პირობითი | -- | აგენტის პრომპტი (სავალდებულოა action = "agent" შემთხვევაში) |
description | string | არა | -- | ადამიანისთვის წასაკითხი აღწერილობა |
cron_list
ყველა რეგისტრირებული cron სამუშაოს სიის ჩვენება მათი გრაფიკით, სტატუსითა და შემდეგი გაშვების დროით.
{
"name": "cron_list",
"arguments": {}
}პარამეტრები არ არის საჭირო. აბრუნებს ყველა cron სამუშაოს ცხრილს.
cron_remove
Cron სამუშაოს წაშლა სახელით ან ID-ით.
{
"name": "cron_remove",
"arguments": {
"name": "backup-workspace"
}
}| პარამეტრი | ტიპი | სავალდებულო | ნაგულისხმევი | აღწერა |
|---|---|---|---|---|
name | string | დიახ | -- | წასაშლელი cron სამუშაოს სახელი ან ID |
cron_update
არსებული cron სამუშაოს გრაფიკის, ბრძანების ან პარამეტრების განახლება.
{
"name": "cron_update",
"arguments": {
"name": "backup-workspace",
"schedule": "0 4 * * *",
"description": "Daily workspace backup at 4 AM (shifted)"
}
}| პარამეტრი | ტიპი | სავალდებულო | ნაგულისხმევი | აღწერა |
|---|---|---|---|---|
name | string | დიახ | -- | განსახლებელი cron სამუშაოს სახელი |
schedule | string | არა | -- | ახალი cron გამოსახულება |
command | string | არა | -- | ახალი shell ბრძანება |
prompt | string | არა | -- | ახალი აგენტის პრომპტი |
description | string | არა | -- | ახალი აღწერილობა |
cron_run
Cron სამუშაოს ხელით გაშვება დაუყოვნებლივ, ჩვეულებრივი გრაფიკის მიღმა.
{
"name": "cron_run",
"arguments": {
"name": "daily-report"
}
}| პარამეტრი | ტიპი | სავალდებულო | ნაგულისხმევი | აღწერა |
|---|---|---|---|---|
name | string | დიახ | -- | გასაშვები cron სამუშაოს სახელი |
cron_runs
Cron სამუშაოების შესრულების ისტორიისა და ჟურნალების ნახვა. აჩვენებს წარსულ შესრულებებს დროის შტამპებით, სტატუსითა და გამოსავალით.
{
"name": "cron_runs",
"arguments": {
"name": "daily-report",
"limit": 10
}
}| პარამეტრი | ტიპი | სავალდებულო | ნაგულისხმევი | აღწერა |
|---|---|---|---|---|
name | string | არა | -- | სამუშაოს სახელით ფილტრაცია. გამოტოვებისას ყველა ბოლო შესრულებას აჩვენებს. |
limit | integer | არა | 20 | დასაბრუნებელი ისტორიის ჩანაწერების მაქსიმალური რაოდენობა |
schedule
ერთჯერადი ან პერიოდული ამოცანის დაგეგმვა ბუნებრივი ენის დროითი გამოსახულებებით. ეს უფრო მაღალი დონის ინტერფეისია, ვიდრე ნედლი cron გამოსახულებები.
{
"name": "schedule",
"arguments": {
"when": "in 30 minutes",
"action": "agent",
"prompt": "Check if the deployment completed and report the status."
}
}| პარამეტრი | ტიპი | სავალდებულო | ნაგულისხმევი | აღწერა |
|---|---|---|---|---|
when | string | დიახ | -- | ბუნებრივი ენის დროითი გამოსახულება (მაგ., "in 30 minutes", "tomorrow at 9am", "every Monday at 10:00") |
action | string | დიახ | -- | მოქმედების ტიპი: "shell" ან "agent" |
command | string | პირობითი | -- | Shell ბრძანება ("shell" მოქმედებისთვის) |
prompt | string | პირობითი | -- | აგენტის პრომპტი ("agent" მოქმედებისთვის) |
cron (ძველი)
ძველი cron შესვლის წერტილი უკუთავსებადობისთვის. მოქმედების არგუმენტის მიხედვით შესაბამის cron ინსტრუმენტზე გადამისამართებს.
{
"name": "cron",
"arguments": {
"action": "list"
}
}xin
Xin დაგეგმვის ძრავი მოწინავე ამოცანების ავტომატიზაციისთვის დამოკიდებულებების ჯაჭვებითა და პირობითი შესრულებით.
{
"name": "xin",
"arguments": {
"action": "status"
}
}| პარამეტრი | ტიპი | სავალდებულო | ნაგულისხმევი | აღწერა |
|---|---|---|---|---|
action | string | დიახ | -- | მოქმედება: "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 მართვა
# ყველა 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-updatesXin სტატუსი
# Xin ძრავის სტატუსის შემოწმება
prx xin status
# ყველა Xin ამოცანის სია
prx xin tasksუსაფრთხოება
Shell ბრძანებების სენდბოქსი
action = "shell" მქონე cron სამუშაოები იმავე სენდბოქსში სრულდება, რაც shell ინსტრუმენტი. კონფიგურირებული სენდბოქსის ბექენდი (Landlock, Firejail, Bubblewrap, Docker) დაგეგმილ ბრძანებებზე ვრცელდება.
აგენტის პრომპტის უსაფრთხოება
action = "agent" მქონე cron სამუშაოები ახალ აგენტის სესიას იწყებს კონფიგურირებული პრომპტით. აგენტის სესია დემონის უსაფრთხოების პოლიტიკებს, ინსტრუმენტების შეზღუდვებსა და რესურსების ლიმიტებს მემკვიდრეობით იღებს.
პოლიტიკის ძრავი
Cron ინსტრუმენტები უსაფრთხოების პოლიტიკის ძრავის ქვეშ მოქმედებს:
[security.tool_policy.groups]
automation = "allow"
[security.tool_policy.tools]
cron_add = "supervised" # ახალი სამუშაოების დამატებისთვის დამტკიცების მოთხოვნა
cron_remove = "supervised" # სამუშაოების წაშლისთვის დამტკიცების მოთხოვნა
cron_run = "allow" # ხელით გაშვების ნებართვააუდიტის ჟურნალი
ყველა cron ოპერაცია აუდიტის ჟურნალში აღირიცხება: სამუშაოების შექმნა, შეცვლა, წაშლა, ხელით გაშვება და შესრულების შედეგები.
რესურსების ლიმიტები
დაგეგმილი ამოცანები დემონის რესურსების ლიმიტებს იზიარებს. Xin ძრავის max_concurrent პარამეტრი ძალიან ბევრი ერთდროული ამოცანისგან რესურსების ამოწურვას თავიდან იცილებს.
დაკავშირებული გვერდები
- Cron სისტემა -- არქიტექტურა და ჩაშენებული ამოცანები
- Cron ჰარტბიტი -- ჯანმრთელობის მონიტორინგი
- Cron ამოცანები -- ჩაშენებული მოვლის ამოცანები
- თვითევოლუცია -- Xin ევოლუციის ინტეგრაცია
- Shell-ის შესრულება -- სენდბოქსი shell-ზე დაფუძნებული cron სამუშაოებისთვის
- კონფიგურაციის მითითება --
[cron]და[xin]პარამეტრები - ინსტრუმენტების მიმოხილვა -- ყველა ინსტრუმენტი და რეესტრის სისტემა