11 KiB
Jasne — z tego diagramu mogę przygotować “bootstrap commands” dla OpenClaw, które:
- tworzą strukturę folderów (MCC + 3 misje + sekcje + archiwa)
- zapisują minimalne pliki startowe (README + routing rules + templates)
- tworzą plik konfiguracyjny mapowania (callsign → folder, callsign → agenci, SIM/FLIGHT gates)
⚠️ Jedna ważna rzecz: nie znam dokładnie Twojego interfejsu OpenClaw (CLI/REST/JSON-RPC/function calling).
Dlatego dam Ci 3 gotowe warianty — wybierzesz ten, który pasuje do Twojej instalacji:
- A) “OpenClaw Tool Calls” (najbardziej typowe w agentowych gatewayach)
- B) REST (jeśli OpenClaw ma endpointy)
- C) Shell bootstrap (gdy chcesz to odpalić lokalnie jednym skryptem, a OpenClaw ma tylko dostęp do FS)
Wszystkie bazują 1:1 na Twoim diagramie: PROGRAM LEAD / MCC / APOLLO / HUBBLE / ARTEMIS + sekcje i agenci.
0) Ustal 2 parametry (wstaw w komendach)
Wszędzie używam placeholderów:
ROOT_PATH– gdzie ma powstać system (np./data/missionsalboD:\org\missions)TODAY– data do paczek (OpenClaw może ją wyliczać sam)
Przykład:
ROOT_PATH=/data/missions(Linux)ROOT_PATH=D:\org\missions(Windows)
1) Plik konfiguracyjny (to jest serce mapowania)
To jest jedno źródło prawdy, które OpenClaw powinien mieć (jako JSON).
Zapisz to jako:
{ROOT_PATH}/_MCC/openclaw.missions.json
{
"root_path": "{{ROOT_PATH}}",
"wip_limit": 5,
"modes": {
"default": "SIM",
"flight_requires_checklist": true,
"flight_requires_program_lead_for_priority": ["P0", "P1"]
},
"governance": {
"program_lead": {
"name": "PROGRAM LEAD",
"responsibilities": ["Vision", "Strategy", "Final Decisions"]
},
"mission_control": {
"name": "MISSION CONTROL",
"alias": "MCC",
"responsibilities": ["Research", "Delegation", "Execution", "Orchestration"]
}
},
"missions": {
"APOLLO": {
"label": "FLIGHT SYSTEMS",
"sections": {
"APOLLO-CORE": { "folder": "APOLLO/CORE_TECH", "agents": ["Anvil", "Cipher"] },
"APOLLO-CODE": { "folder": "APOLLO/FLIGHT_CODE", "agents": ["Pixel", "Sentry"] },
"APOLLO-VERIFY": { "folder": "APOLLO/VERIFICATION", "agents": ["Inspector"] }
}
},
"HUBBLE": {
"label": "MISSION STORY",
"sections": {
"HUBBLE-CONTENT": { "folder": "HUBBLE/CONTENT", "agents": ["Rex", "Sage", "Echo", "Clip"] },
"HUBBLE-CREATIVE": { "folder": "HUBBLE/CREATIVE", "agents": ["Nebula", "Nova"] }
}
},
"ARTEMIS": {
"label": "MISSION OUTCOMES",
"sections": {
"ARTEMIS-EXP": { "folder": "ARTEMIS/EXPERIMENTS", "agents": ["Scout", "Herald"] },
"ARTEMIS-TLM": { "folder": "ARTEMIS/TELEMETRY", "agents": ["Forge", "Pulse"] },
"ARTEMIS-GROUND": { "folder": "ARTEMIS/GROUND_CREW", "agents": ["Beacon", "Link", "Vibe"] }
}
}
},
"packet": {
"name_format": "YYYY-MM-DD__CALLSIGN__slug",
"required_files": [
"00_brief.md",
"10_worklog.md",
"30_results.md",
"40_decision.md",
"90_links.md"
],
"artifact_dir": "20_artifacts"
}
}
2) “Bootstrap” — co ma powstać na dysku (docelowy stan)
OpenClaw ma stworzyć:
ROOT/
_MCC/
00_operating-manual.md
10_backlog.md
20_active-missions.md
30_decisions.md
40_routing-rules.md
50_templates/
task-brief.md
sim-flight-checklist.md
post-mission-report.md
decision-record.md
openclaw.missions.json
90_archive-index.md
APOLLO/
CORE_TECH/missions/
FLIGHT_CODE/missions/
VERIFICATION/missions/
99_archive/
HUBBLE/
CONTENT/missions/
CREATIVE/missions/
99_archive/
ARTEMIS/
EXPERIMENTS/missions/
TELEMETRY/missions/
GROUND_CREW/missions/
99_archive/
3) Wariant A — OpenClaw “Tool Calls” (najbardziej pasuje do Twojego opisu ToolManager)
Zakładam, że OpenClaw potrafi wykonywać narzędzia typu:
fs.mkdirfs.write_filefs.append_file
Jeśli nazwy masz inne, podmień — struktura zostaje identyczna.
3.1 Komendy tworzące katalogi
{
"tool": "fs.mkdir",
"args": { "path": "{{ROOT_PATH}}/_MCC" }
}
Potem (kolejno):
{ "tool":"fs.mkdir", "args":{"path":"{{ROOT_PATH}}/_MCC/50_templates"} }
{ "tool":"fs.mkdir", "args":{"path":"{{ROOT_PATH}}/APOLLO/CORE_TECH/missions"} }
{ "tool":"fs.mkdir", "args":{"path":"{{ROOT_PATH}}/APOLLO/FLIGHT_CODE/missions"} }
{ "tool":"fs.mkdir", "args":{"path":"{{ROOT_PATH}}/APOLLO/VERIFICATION/missions"} }
{ "tool":"fs.mkdir", "args":{"path":"{{ROOT_PATH}}/APOLLO/99_archive"} }
{ "tool":"fs.mkdir", "args":{"path":"{{ROOT_PATH}}/HUBBLE/CONTENT/missions"} }
{ "tool":"fs.mkdir", "args":{"path":"{{ROOT_PATH}}/HUBBLE/CREATIVE/missions"} }
{ "tool":"fs.mkdir", "args":{"path":"{{ROOT_PATH}}/HUBBLE/99_archive"} }
{ "tool":"fs.mkdir", "args":{"path":"{{ROOT_PATH}}/ARTEMIS/EXPERIMENTS/missions"} }
{ "tool":"fs.mkdir", "args":{"path":"{{ROOT_PATH}}/ARTEMIS/TELEMETRY/missions"} }
{ "tool":"fs.mkdir", "args":{"path":"{{ROOT_PATH}}/ARTEMIS/GROUND_CREW/missions"} }
{ "tool":"fs.mkdir", "args":{"path":"{{ROOT_PATH}}/ARTEMIS/99_archive"} }
3.2 Komendy zapisujące pliki MCC (startowe)
_MCC/40_routing-rules.md
{
"tool": "fs.write_file",
"args": {
"path": "{{ROOT_PATH}}/_MCC/40_routing-rules.md",
"content": "# Routing Rules (MCC)\n\n## Missions\n- APOLLO (Flight Systems): Core Tech, Flight Code, Verification\n- HUBBLE (Mission Story): Mission Content, Creative Studio\n- ARTEMIS (Mission Outcomes): Experiments, Telemetry, Ground Crew\n\n## Call-signs\n- APOLLO-CORE → APOLLO/CORE_TECH\n- APOLLO-CODE → APOLLO/FLIGHT_CODE\n- APOLLO-VERIFY → APOLLO/VERIFICATION\n\n- HUBBLE-CONTENT → HUBBLE/CONTENT\n- HUBBLE-CREATIVE → HUBBLE/CREATIVE\n\n- ARTEMIS-EXP → ARTEMIS/EXPERIMENTS\n- ARTEMIS-TLM → ARTEMIS/TELEMETRY\n- ARTEMIS-GROUND → ARTEMIS/GROUND_CREW\n\n## Default mode\nSIM is default. FLIGHT requires SIM→FLIGHT checklist and approvals.\n"
}
}
_MCC/00_operating-manual.md (skrót, ale wystarczający do startu)
{
"tool": "fs.write_file",
"args": {
"path": "{{ROOT_PATH}}/_MCC/00_operating-manual.md",
"content": "# Operating Manual — Mission System\n\n## Governance\n- PROGRAM LEAD: vision, strategy, final decisions\n- MISSION CONTROL (MCC): triage, routing, execution, WIP, closure\n\n## Missions\n- APOLLO: Flight Systems\n- HUBBLE: Mission Story\n- ARTEMIS: Mission Outcomes\n\n## Packet standard\nEach packet folder contains:\n- 00_brief.md\n- 10_worklog.md\n- 20_artifacts/\n- 30_results.md\n- 40_decision.md\n- 90_links.md\n\n## Modes\n- SIM (default): drafts/experiments\n- FLIGHT: production/final. Requires SIM→FLIGHT checklist.\n\n## Closure decisions\nPROCEED | ITERATE | HOLD | SCRUB\n"
}
}
Puste indeksy (żeby UI/LLM miał gdzie pisać)
{ "tool":"fs.write_file", "args":{"path":"{{ROOT_PATH}}/_MCC/10_backlog.md","content":"# Backlog (MCC)\n\n"} }
{ "tool":"fs.write_file", "args":{"path":"{{ROOT_PATH}}/_MCC/20_active-missions.md","content":"# Active Missions (MCC)\n\n"} }
{ "tool":"fs.write_file", "args":{"path":"{{ROOT_PATH}}/_MCC/30_decisions.md","content":"# Decisions (MCC)\n\n"} }
{ "tool":"fs.write_file", "args":{"path":"{{ROOT_PATH}}/_MCC/90_archive-index.md","content":"# Archive Index (MCC)\n\n"} }
Zapis config JSON (ten z sekcji 1)
{
"tool": "fs.write_file",
"args": {
"path": "{{ROOT_PATH}}/_MCC/openclaw.missions.json",
"content": "{{PASTE_JSON_CONFIG_HERE}}"
}
}
3.3 Templates (MCC/50_templates)
Wklejam tylko 1 przykład, resztę dodasz analogicznie — ale jeśli chcesz, w kolejnym kroku dam Ci wszystkie 4 jako osobne fs.write_file.
task-brief.md
{
"tool": "fs.write_file",
"args": {
"path": "{{ROOT_PATH}}/_MCC/50_templates/task-brief.md",
"content": "# [CALLSIGN] Task Brief — <title>\n\n**Routing:** [CALLSIGN]\n**Agent:** <AgentName>\n**Mode:** SIM | FLIGHT\n**Priority:** P0 | P1 | P2\n\n## Context\n\n## Goal\n\n## Output / Deliverables\n- [ ] \n\n## Constraints\n\n## Acceptance Criteria\n- [ ] \n\n## Risks / Unknowns\n- \n"
}
}
4) Wariant B — jeśli OpenClaw ma REST (przykładowe endpointy)
Jeśli Twój OpenClaw ma REST, zwykle wygląda to jak:
POST /tools/fs/mkdirPOST /tools/fs/write_file
Przykład requestu (curl):
curl -X POST http://localhost:18789/tools/fs/mkdir \
-H "Content-Type: application/json" \
-d '{"path":"'"$ROOT_PATH"'/_MCC"}'
I analogicznie dla pozostałych katalogów i plików.
Jeśli powiesz mi jak u Ciebie wyglądają endpointy (1 przykład), przerobię cały bootstrap na gotowy skrypt
curl1:1.
5) Wariant C — jeśli chcesz “jednym strzałem” (shell/powershell)
To nie są “komendy OpenClaw”, ale jest to najprostszy bootstrap, który potem OpenClaw przejmie jako workspace.
Bash (Linux/macOS)
ROOT_PATH="/data/missions"
mkdir -p "$ROOT_PATH/_MCC/50_templates"
mkdir -p "$ROOT_PATH/APOLLO/CORE_TECH/missions" "$ROOT_PATH/APOLLO/FLIGHT_CODE/missions" "$ROOT_PATH/APOLLO/VERIFICATION/missions" "$ROOT_PATH/APOLLO/99_archive"
mkdir -p "$ROOT_PATH/HUBBLE/CONTENT/missions" "$ROOT_PATH/HUBBLE/CREATIVE/missions" "$ROOT_PATH/HUBBLE/99_archive"
mkdir -p "$ROOT_PATH/ARTEMIS/EXPERIMENTS/missions" "$ROOT_PATH/ARTEMIS/TELEMETRY/missions" "$ROOT_PATH/ARTEMIS/GROUND_CREW/missions" "$ROOT_PATH/ARTEMIS/99_archive"
6) Dodatkowo: komenda OpenClaw do “utworzenia pakietu” (na przyszłość)
Po bootstrapie, OpenClaw może mieć komendę “create_packet”, np.:
{
"tool": "mcc.create_packet",
"args": {
"callsign": "ARTEMIS-TLM",
"mode": "SIM",
"priority": "P1",
"slug": "retention-drop-7d",
"owner_agent": "Pulse",
"brief": {
"context": "Spadek retencji w ostatnich 14 dniach.",
"goal": "Zdiagnozować spadek i zaproponować działania.",
"deliverables": ["Raport", "Rekomendacje", "Telemetry plan"],
"constraints": ["Brak zmian FLIGHT bez checklisty"],
"acceptance": ["Wskazany etap lejka", "2-3 eksperymenty", "metryki + progi"],
"risks": ["Brak pełnych danych"]
}
}
}
To już bezpośrednio korzysta z mapowania z openclaw.missions.json.
7) Jedno pytanie, żebym dał Ci idealnie dopasowane komendy (bez zgadywania)
👉 Jak dokładnie wywołujesz narzędzia w OpenClaw?
Wybierz jedną opcję:
- JSON tool calls (jak w sekcji 3)
- REST (daj mi 1 przykład endpointu)
- CLI (pokaż jak wygląda pojedyncze polecenie)
Wystarczy przykład jednej działającej komendy (np. “mkdir”), a ja w następnym kroku wygeneruję Ci pełny bootstrap jako jeden plik (np. bootstrap_openclaw.jsonl albo bootstrap.sh), gotowy do odpalenia.