Sweep active code, tests, identity files, public docs, CMS seed content, and stale handoffs so old assistant-name fixtures no longer leak into current Clawdie/system-namespace behavior. Keep the skills-memory SQL artifact unchanged per regeneration policy. --- Build: pass Tests: pass — 2197 passed (164 files) --- Build: pass | Tests: pass — 2197 passed (650 files)
4.3 KiB
| title |
|---|
| Multi-agent razpored (opcijsko) |
Clawdie podpira izvršavanje več neodvisnih agentov na istem FreeBSD gostitelju, vendar je privzeta pot en agent na gostitelju ali na bhyve VM. Uporabite ta priročnik le, ko namerno želite drugega agenta kasneje.
Hitra odločitev
- Najenostavnejša izolacija: en agent na bhyve VM (vsak VM ima svoj
warden0) - Isti-gostitelj multi-agent: en gostitelj
warden0most nosi več /24 podmrež
Koncepti (kaj mora ostati edinstveno)
AGENT_NAMEje ključ identitete:- rc.d ime storitve (
/usr/local/etc/rc.d/${AGENT_NAME}) - tmux imeni seje
- predpona imena ječe (priporočeno)
- DB identifikatorji (uporabniki + baze)
- rc.d ime storitve (
AGENT_SUBNET_BASEdodeljuje namensko/24temu agentu:- izberite katerokoli zasebno
/24, ki ne trči z drugim agentom - primeri v repoju spodaj uporabljajo
10.0.1 - živi sistemi lahko uporabijo tudi
192.168.72,172.16.50itd
- izberite katerokoli zasebno
warden0je kanonsko ime mostu. Enwarden0lahko gosti več podmrež; gostitelj mora lastiti IP naslov.1gateway za vsako podmezo.- Raje VNET ječe (
bastille create -B ... warden0) za čistejšo izolacijo.
Isti-gostitelj multi-agent (VNET pot)
Primer: dodaj drugega agenta s imenom atlas na 10.0.1.0/24.
1) Ustvari drugo direktorij projekta
Uporabi ločeno kloniranje, tako da ima vsak agent svoj .env, logs/ in stanje izvajanja.
2) Nastavi .env za drugega agenta
Najmanjši ključi za nastavitev (primer vrednosti):
AGENT_NAME=atlas
ASSISTANT_NAME=Atlas
AGENT_SUBNET_BASE=10.0.1
WARDEN_GATEWAY=10.0.1.1
WARDEN_SUBNET=10.0.1.0/24
WARDEN_GIT_IP=10.0.1.2
WARDEN_CMS_IP=10.0.1.3
WARDEN_OLLAMA_IP=10.0.1.4
WARDEN_LLAMA_CPP_IP=10.0.1.4
WARDEN_DB_IP=10.0.1.5
To so samo primerne vrednosti. Če gostitelj že uporablja drugo zasebno podmrežo, jo obdržite in bodite dosledni v celotni konfiguraciji.
Preglejte imena ječe (izogni se trčenjem z ječah obstoječega agenta):
CMS_JAIL_NAME=atlas-cms
OLLAMA_JAIL_NAME=atlas-ollama
LLAMA_CPP_JAIL_NAME=atlas-llamacpp
Opombe:
setup/git.tsže privzeto privzema${AGENT_NAME}-git, zatoGIT_JAIL_NAMEobičajno ni potreben.- Če se odločite za deljenje lokalne LLM ječe med agenti, ohrani eno
ollamaječe in oba agenta usmerti na enak IP namesto ustvarjanja per-agent LLM ječa.
Locale na agenta (opcijsko vendar podprto)
Vsak agent lahko prikazuje v lastnem jeziku brez spremembe locale gostitelja.
Ohrani locale gostitelja stabilna (UTF-8), nato nastavi per-agent prikazni/asistentov
locale v .env tega agenta:
DISPLAY_LOCALE=sl-SI
ASSISTANT_LOCALE=sl-SI
SYSTEM_LOCALE=sl_SI.UTF-8
Za drugega agenta, izberite druge vrednosti (npr. de-DE, ru-RU, zh-CN).
Ne uporabljaj zastarele kodiranja; SYSTEM_LOCALE mora biti UTF-8.
Če več agentov deli en tmux strežnik, nove plošče dedujejo locale strežnika.
Bodisi uporabi ločene tmux seje na agenta bodisi nastavi locale spremenljivk okolja v .env
vsakega agenta rc.d storitve.
3) Dodaj nov gateway IP na warden0
Trenutno (takoj):
sudo ifconfig warden0 inet 10.0.1.1/24 alias
Trajno preko ponovnih zagona (izberi naslednji prosti alias indeks):
sudo sysrc ifconfig_warden0_alias0="inet 10.0.1.1/24"
4) Posodobi PF NAT za vključitev obeh podmrež
Če uporabljate vključek kot /etc/pf.warden.conf, ključna ideja je:
warden_net = "{ 10.0.1.0/24, 192.168.72.0/24 }"
nat on $ext_if from $warden_net to any -> ($ext_if)
pass quick on warden0 inet from $warden_net to any keep state
Ponovno naloži PF:
sudo pfctl -nf /etc/pf.conf
sudo pfctl -f /etc/pf.conf
5) Zagotavi druge ječe drugega agenta
Iz direktorija drugega agenta repo:
sudo just setup-db
sudo just setup-git
sudo just setup-cms
sudo just setup -- --step ollama # opcijsko
sudo just setup -- --step llama-cpp # opcijsko
Zagotavljanje baze podatkov je mogoče narediti prek just setup-db (ali npm run setup -- --step db) ali prek Ansible
playbooks v infra/ansible/playbooks/.
6) Namesti in zaženi drugo rc.d storitev
sudo just setup -- --step service
sudo service atlas onestart
bhyve opomba
Če razporejate enega agenta na bhyve VM, običajno ne potrebuješ nobenega od
istega-gostitelja subnet aliasinga ali multi-subnet PF pravil. Vsak VM lahko ohrani
en-agenta warden0 + en /24 interno.