გადაწყვეტილების ჟურნალი
თვით-ევოლუციის ციკლის დროს მიღებული ყოველი გადაწყვეტილება სტრუქტურირებულ გადაწყვეტილების ჟურნალში აღირიცხება. ეს ჟურნალი სრულ აუდიტის კვალს უზრუნველყოფს იმის შესახებ, რა გადაწყვიტა ევოლუციის სისტემამ, რატომ გადაწყვიტა და რა შედეგი მოჰყვა -- რაც შემდგომ ანალიზს, გამართვასა და უსაფრთხო უკუქცევას შესაძლებელს ხდის.
მიმოხილვა
გადაწყვეტილების ჟურნალი ევოლუციის გადაწყვეტილებების სრულ სიცოცხლის ციკლს იჭერს:
- წინადადების გენერაცია -- რა გაუმჯობესება იქნა შემოთავაზებული და რატომ
- შეფასება -- როგორ შეფასდა წინადადება უსაფრთხოებისა და ვარგისიანობის კრიტერიუმების მიხედვით
- განაჩენი -- წინადადება დამტკიცდა, უარყოფილ იქნა თუ გადაიდო
- შესრულება -- რა ცვლილებები გამოიყენა და მათი უშუალო ეფექტები
- შედეგი -- ცვლილების შემდეგ გაზომილი შედეგები, მათ შორის ნებისმიერი რეგრესია
უსაფრთხოების აუდიტის ჟურნალისგან (რომელიც ყველა უსაფრთხოების მოვლენას აღრიცხავს) განსხვავებით, გადაწყვეტილების ჟურნალი კონკრეტულად თვით-ევოლუციის სისტემის მსჯელობის პროცესზეა ფოკუსირებული.
გადაწყვეტილების ჩანაწერის სტრუქტურა
ყოველი გადაწყვეტილება სტრუქტურირებულ ჩანაწერად ინახება:
| ველი | ტიპი | აღწერა |
|---|---|---|
decision_id | String | უნიკალური იდენტიფიკატორი (UUIDv7, დროით დალაგებული) |
cycle_id | String | ევოლუციის ციკლი, რომელმაც ეს გადაწყვეტილება წარმოქმნა |
layer | Layer | ევოლუციის ფენა: L1 (მეხსიერება), L2 (პრომპტი) ან L3 (სტრატეგია) |
timestamp | DateTime<Utc> | გადაწყვეტილების ჩაწერის დრო |
proposal | Proposal | შემოთავაზებული ცვლილება (ტიპი, აღწერა, პარამეტრები) |
rationale | String | ახსნა, რატომ იქნა ეს ცვლილება შემოთავაზებული |
data_points | usize | მონაცემთა ნიმუშების რაოდენობა, რომლებმაც გადაწყვეტილება წარმართა |
fitness_before | f64 | ვარგისიანობის ქულა ცვლილებამდე |
fitness_after | Option<f64> | ვარგისიანობის ქულა ცვლილების შემდეგ (შესრულების შემდეგ ივსება) |
verdict | Verdict | approved, rejected, deferred ან auto_approved |
verdict_reason | String | რატომ იქნა მიღებული ეს განაჩენი (მაგ., უსაფრთხოების შემოწმების შედეგი) |
executed | bool | ცვლილება რეალურად გამოყენებულ იქნა თუ არა |
rollback_id | Option<String> | უკუქცევის სნეპშოტის მითითება, თუ შეიქმნა |
outcome | Option<Outcome> | შესრულების შემდგომი შედეგი: improved, neutral, regressed ან rolled_back |
განაჩენის ტიპები
| განაჩენი | აღწერა | გამომწვევი |
|---|---|---|
auto_approved | ავტომატურად დამტკიცებული პაიპლაინის მიერ | L1 ცვლილებები რისკის ქულით ზღურბლზე ქვემოთ |
approved | დამტკიცებული შეფასების შემდეგ | L2/L3 ცვლილებები, რომლებიც უსაფრთხოების შემოწმებებს გაივლიან |
rejected | უარყოფილი უსაფრთხოების პაიპლაინის მიერ | წარუმატებელი საღი აზრის შემოწმებები, ზედმეტად მაღალი რისკი ან კონფლიქტების აღმოჩენა |
deferred | გადავადებული შემდგომი შეფასებისთვის | არასაკმარისი მონაცემები ან სისტემის ჯანმრთელობის პრობლემები |
კონფიგურაცია
[self_evolution.decision_log]
enabled = true
storage = "file" # "file" ან "database"
path = "~/.local/share/openprx/decisions/"
format = "jsonl" # "jsonl" ან "json" (ფორმატირებული)
retention_days = 180 # 180 დღეზე ძველი ჩანაწერების ავტო-წაშლა
max_entries = 10000 # მაქსიმალური ჩანაწერები როტაციამდე
[self_evolution.decision_log.database]
backend = "sqlite"
path = "~/.local/share/openprx/decisions.db"კონფიგურაციის მითითება
| ველი | ტიპი | ნაგულისხმევი | აღწერა |
|---|---|---|---|
enabled | bool | true | გადაწყვეტილებების ჟურნალირების ჩართვა ან გამორთვა |
storage | String | "file" | შენახვის ბექენდი: "file" ან "database" |
path | String | "~/.local/share/openprx/decisions/" | ჟურნალის ფაილების დირექტორია (ფაილის რეჟიმი) |
format | String | "jsonl" | ფაილის ფორმატი: "jsonl" (კომპაქტური) ან "json" (ადამიანისთვის წაკითხვადი) |
retention_days | u64 | 180 | N დღეზე ძველი ჩანაწერების ავტო-წაშლა. 0 = სამუდამოდ შენახვა |
max_entries | usize | 10000 | მაქსიმალური ჩანაწერები ფაილზე როტაციამდე |
database.backend | String | "sqlite" | მონაცემთა ბაზის ბექენდი: "sqlite" ან "postgres" |
database.path | String | "" | მონაცემთა ბაზის ბილიკი (SQLite) ან კავშირის URL (PostgreSQL) |
გადაწყვეტილების ჩანაწერის მაგალითი
{
"decision_id": "019520b0-5678-7000-8000-000000000042",
"cycle_id": "cycle_2026-03-21T03:00:00Z",
"layer": "L2",
"timestamp": "2026-03-21T03:05:12.345Z",
"proposal": {
"type": "prompt_refinement",
"description": "Shorten system prompt preamble by 15% to reduce token usage",
"parameters": {
"target": "system_prompt.preamble",
"old_token_count": 320,
"new_token_count": 272
}
},
"rationale": "Analysis of 500 sessions shows the preamble consumes 8% of context window with low recall contribution. A/B test variant with shortened preamble showed 3% improvement in response relevance.",
"data_points": 500,
"fitness_before": 0.72,
"fitness_after": 0.75,
"verdict": "approved",
"verdict_reason": "Passed all safety checks. Risk score 0.12 (threshold: 0.5). No conflicts with existing policies.",
"executed": true,
"rollback_id": "snap_019520b0-5678-7000-8000-000000000043",
"outcome": "improved"
}გადაწყვეტილების ჟურნალის მოთხოვნები
CLI ბრძანებები
# ბოლო გადაწყვეტილებების ნახვა
prx evolution decisions --tail 20
# ფენის მიხედვით ფილტრაცია
prx evolution decisions --layer L2 --last 30d
# განაჩენის მიხედვით ფილტრაცია
prx evolution decisions --verdict rejected --last 7d
# შედეგის მიხედვით ფილტრაცია
prx evolution decisions --outcome regressed
# კონკრეტული გადაწყვეტილების სრული დეტალებით ნახვა
prx evolution decisions --id 019520b0-5678-7000-8000-000000000042
# გადაწყვეტილებების ექსპორტი ანალიზისთვის
prx evolution decisions --last 90d --format json > decisions_q1.jsonპროგრამული წვდომა
გადაწყვეტილების ჟურნალი გეითვეის API-ით ხელმისაწვდომია:
# ბოლო გადაწყვეტილებების ჩამონათვალი
curl -H "Authorization: Bearer <token>" \
http://localhost:3120/api/v1/evolution/decisions?limit=20
# კონკრეტული გადაწყვეტილების მიღება
curl -H "Authorization: Bearer <token>" \
http://localhost:3120/api/v1/evolution/decisions/019520b0-5678-7000-8000-000000000042გადაწყვეტილებების შაბლონების ანალიზი
გადაწყვეტილების ჟურნალი ანალიზის რამდენიმე ტიპს შესაძლებელს ხდის:
დამტკიცების მაჩვენებელი ფენის მიხედვით
თვალყურის ადევნეთ წინადადებების რა პროცენტი მტკიცდება ყოველ ფენაზე ევოლუციის სისტემის ეფექტურობის გასაგებად:
prx evolution stats --last 90dგამოტანის მაგალითი:
Layer Proposed Approved Rejected Deferred Approval Rate
L1 142 138 2 2 97.2%
L2 28 19 6 3 67.9%
L3 5 2 3 0 40.0%რეგრესიის აღმოჩენა
იდენტიფიცირეთ გადაწყვეტილებები, რომლებმაც რეგრესია გამოიწვია:
prx evolution decisions --outcome regressed --last 90dყოველი რეგრესიული გადაწყვეტილება შეიცავს fitness_before და fitness_after მნიშვნელობებს, რაც გავლენის გაზომვასა და ცვლილებასთან კორელაციას მარტივს ხდის.
უკუქცევის თვალთვალი
გადაწყვეტილების უკუქცევისას ჟურნალი აღრიცხავს:
- თავდაპირველ გადაწყვეტილებას
outcome = "rolled_back"-ით - ახალ გადაწყვეტილების ჩანაწერს თავად უკუქცევის მოქმედებისთვის
rollback_idაბრუნებს აღდგენილ სნეპშოტთან კავშირს
ეს ჯაჭვი სრული სიცოცხლის ციკლის თვალთვალის საშუალებას გაძლევთ: წინადადება, შესრულება, რეგრესიის აღმოჩენა და უკუქცევა.
უკუქცევა გადაწყვეტილების ჟურნალიდან
კონკრეტული გადაწყვეტილების ხელით უკუქცევისთვის:
# გადაწყვეტილებისა და მისი უკუქცევის სნეპშოტის ნახვა
prx evolution decisions --id <decision_id>
# სნეპშოტის აღდგენა
prx evolution rollback --snapshot <rollback_id>უკუქცევის ოპერაცია ქმნის ახალ გადაწყვეტილების ჩანაწერს, რომელიც ხელით ჩარევას დოკუმენტირებს.
ინტეგრაცია უსაფრთხოების სისტემასთან
გადაწყვეტილების ჟურნალი უსაფრთხოების პაიპლაინთანაა ინტეგრირებული:
- შესრულებამდე -- უსაფრთხოების პაიპლაინი კითხულობს წარსულ გადაწყვეტილებებს შაბლონების აღმოსაჩენად (მაგ., განმეორებითი წარუმატებლობები იმავე სფეროში)
- შესრულების შემდეგ -- რეგრესიის სიგნალები ავტომატურ უკუქცევას იწვევს, რაც ჟურნალში აღირიცხება
- სიჩქარის შეზღუდვა -- პაიპლაინი ჟურნალს ამოწმებს დროის ფანჯარაზე მაქსიმალური ცვლილებების აღსრულებისთვის
შეზღუდვები
- გადაწყვეტილების ჟურნალები PRX ინსტანციის ლოკალურია; მრავალ-კვანძიან განთავსებებში გარე ჟურნალის აგრეგაცია საჭიროა
- ფაილის ბექენდი ინდექსირებულ მოთხოვნებს არ უჭერს მხარს; ფართომასშტაბიანი ანალიზისთვის მონაცემთა ბაზის ბექენდი გამოიყენეთ
- ვარგისიანობის ქულები მხოლოდ დაკვირვების ფანჯრის დასრულების შემდეგ ივსება (ფენის მიხედვით კონფიგურირებადი)
- გადავადებული გადაწყვეტილებები შეიძლება არასდროს გადაწყდეს, თუ გადავადების პირობა ხელახლა არ შეფასდა
დაკავშირებული გვერდები
- თვით-ევოლუციის მიმოხილვა
- ევოლუციის პაიპლაინი -- 4-საფეხურიანი პაიპლაინი, რომელიც გადაწყვეტილებებს წარმოქმნის
- ექსპერიმენტები და ვარგისიანობა -- A/B ტესტირება და ვარგისიანობის ქულირება
- უსაფრთხოება და უკუქცევა -- უსაფრთხოების შემოწმებები და ავტომატური უკუქცევა