Sparround

config.yaml, .env və prioritet qaydası

Konfiqurasiya iki fayla bölünür və bu bölgü təsadüfi deyil:

  • `~/.hermes/config.yaml` — sirr olmayan hər şey: model, terminal backend-i, sıxılma, yaddaş limitləri, təsdiq siyasəti
  • `~/.hermes/.env` — sirrlər: API açarları, bot tokenləri, parollar

Bölgünün səbəbi praktikdir: config.yaml-ı repo-ya qoymaq, komanda ilə paylaşmaq, versiyalaşdırmaq olar; .env isə heç vaxt versiya nəzarətinə düşməməlidir və loglarda avtomatik redaksiya olunur.

Dəyər axtarılanda prioritet yuxarıdan aşağı belədir:

  • CLI arqumentləri — bir çağırışlıq üstünlük
  • `config.yaml` — əsas parametrlər
  • `.env` — ehtiyat mənbə
  • daxili defoltlar — təhlükəsiz standart dəyərlər

Şirkət mühitində bunun üstündə daha bir təbəqə var: administrator tərəfindən sistem səviyyəsində sabitlənən dəyərlər. Onu Təhlükəsizlik mərhələsində açacağıq.

ƏmrNə edir
`hermes config`Cari parametrləri göstərir
`hermes config get KEY`Bir dəyərin həll olunmuş nəticəsini çap edir
`hermes config set KEY VAL`Dəyəri düzgün fayla yazır: açarlar `.env`-ə, qalanı `config.yaml`-a
`hermes config edit``config.yaml`-ı redaktorda açır
`hermes config check`Əskik parametrləri yoxlayır
`hermes config migrate`Əskik parametrləri interaktiv əlavə edir

config.yaml içində ${VAR_NAME} sintaksisi ilə mühit dəyişənlərinə istinad etmək olar. Bu, açarı YAML-a yazmadan konfiqurasiyanı paylaşmağın düzgün yoludur. Dəyişən təyin olunmayıbsa, yer tutucu olduğu kimi qalır və xəbərdarlıq loglanır — yəni səhv sakitcə udulmur, amma özü də düzəlmir.

Praktika. config.yaml-da bir köməkçi modelin açarını ${GOOGLE_API_KEY} şəklində istinad et, açarın özünü isə hermes config set ilə .env-ə yaz. Sonra hermes config get ilə dəyərin həll olunduğunu yoxla və grep -r "sk-" ~/.hermes/config.yaml ilə YAML-da sirr qalmadığını təsdiqlə. Hazır sayılır: grep boş qayıdır və agent işləyir.

📚 Mənbələr və sənədlər