Query: work kanban task t_ae5db2e6 Initializing agent... ──────────────────────────────────────── ┊ 📋 preparing kanban_show… ┊ ⚡ kanban_sh 0.0s ┊ 📚 preparing skill_view… ┊ 📚 skill hermes-agent 0.0s ┌─ Reasoning ──────────────────────────────────────────────────────────────────┐ **Inspecting workspace configuration files** └──────────────────────────────────────────────────────────────────────────────┘ ┊ 🔎 preparing search_files… ┊ 🔎 find * 0.2s ┌─ Reasoning ──────────────────────────────────────────────────────────────────┐ **Planning terminal workspace inspection** └──────────────────────────────────────────────────────────────────────────────┘ ┊ 💻 preparing terminal… ┊ 💻 $ pwd + 1 command 0.4s ┌─ Reasoning ──────────────────────────────────────────────────────────────────┐ **Inspecting workspace files** └──────────────────────────────────────────────────────────────────────────────┘ ┊ 🔎 preparing search_files… ┊ 🔎 find * 0.1s ┌─ Reasoning ──────────────────────────────────────────────────────────────────┐ **Planning markdown guide creation****Adding lock exclusion note to guide** └──────────────────────────────────────────────────────────────────────────────┘ ┊ ✍️ preparing write_file… ┊ ✍️ write /root/.hermes/kanban/boards/nv-office/workspaces/t_ae5db2e6/parallel-it-ai-runbook.md 0.2s ┊ review diff a/parallel-it-ai-runbook.md → b/parallel-it-ai-runbook.md @@ -0,0 +1,95 @@ +# IT-AI parallel worker runbook + +Mục tiêu: chạy nhiều worker `it-ai` song song trên cùng máy/venv mà không lock chéo gateway/profile, đồng thời giữ mỗi worker một context riêng. + +## 1) Nguyên tắc khóa chéo + +- Mỗi profile Hermes phải có state riêng trong `~/.hermes/profiles//`. +- Gateway chỉ chạy một instance cho một profile tại một thời điểm. +- Worker song song không dùng chung session state; chỉ dùng chung venv/runtime binaries. +- Khi cần nhiều agent cùng lúc, ưu tiên `delegate_task` hoặc các tiến trình `hermes` độc lập với profile/worktree riêng. + +## 2) Cấu trúc chạy độc lập trên cùng venv + +Dùng 1 venv cài đặt chung, nhưng mỗi worker phải có: + +- session riêng +- workspace riêng +- profile riêng hoặc task context riêng +- không dùng chung file trạng thái runtime + +Khuyến nghị: + +- Worker 1: profile `it-ai-a` +- Worker 2: profile `it-ai-b` +- Worker 3: profile `it-ai-c` + +Nếu chưa tạo profile riêng, clone từ `it-ai` rồi cấu hình khác nhau để tránh đụng session/memory/cache. + +## 3) Mẫu chạy song song bằng `delegate_task` + +Khi bài toán tách thành 3 nhánh độc lập, spawn batch song song: + +```python +from hermes_tools import delegate_task + +result = delegate_task(tasks=[ + { + "goal": "Khảo sát cách tách profile và gateway để tránh lock chéo", + "context": "Tập trung vào config profile, gateway, session isolation, và các điểm xung đột tài nguyên.", + "role": "leaf", + }, + { + "goal": "Đề xuất mô hình worker độc lập trên cùng venv", + "context": "Tập trung vào process isolation, workdir isolation, và cách gọi hermes process riêng.", + "role": "leaf", + }, + { + "goal": "Viết hướng dẫn vận hành 3 task song song cho it-ai", + "context": "Tạo ví dụ lệnh, quy ước đặt tên, và checklist vận hành.", + "role": "leaf", + }, +]) +``` + +### Ghi chú + +- `delegate_task` phù hợp cho 3 việc độc lập trong cùng một turn. +- Mỗi subagent có context riêng nên không chồng thông tin. +- Chỉ dùng khi cần reasoning/soạn hướng dẫn; nếu chỉ chạy lặp thì dùng tiến trình riêng hoặc cron. + +## 4) Mẫu chạy 3 tiến trình Hermes độc lập + +Nếu muốn tách hẳn tiến trình: + +```bash +hermes --profile it-ai-a chat -q "...task A..." & +hermes --profile it-ai-b chat -q "...task B..." & +hermes --profile it-ai-c chat -q "...task C..." & +wait +``` + +Tốt hơn nữa khi mỗi agent làm việc với mã nguồn: + +- dùng worktree/workspace riêng +- ghim `HERMES_KANBAN_TASK` riêng +- không dùng chung output directory + +## 5) Checklist tránh lock chéo … omitted 17 diff line(s) across 1 additional file(s)/section(s) ┊ ✔ preparing kanban_complete… ┊ ⚡ kanban_co 0.1s ╭─ ⚕ Hermes ───────────────────────────────────────────────────────────────────╮ Tôi đã hoàn thành task thiết lập logic chạy song song cho worker it-ai. Tài liệu hướng dẫn chi tiết và cách vận hành đã được lưu tại: /root/.hermes/kanban/boards/nv-office/workspaces/t_ae5db2e6/parallel-it-ai-runbook.md Tóm tắt các điểm quan trọng: 1. Tránh lock chéo: Mỗi worker song song nên sử dụng một profile riêng (it-ai-a, it-ai-b, it-ai-c...) để tránh đụng độ gateway, SQLite session store và memory cache. 2. Workers độc lập trên cùng venv: Sử dụng chung binary và venv của hệ thống, nhưng mỗi worker chạy với workspace riêng biệt (`cd $WORKSPACE`), context riêng biệt và tập tin runtime tách biệt. 3. Hướng dẫn chạy delegate_task song song: Sử dụng batch mode của delegate_task (truyền mảng chứa 3 task độc lập với role: leaf) để chạy đồng thời các subtask suy luận mà không làm phình context chính. Tài liệu có chứa code mẫu cụ thể để gọi 3 đầu việc song song qua API Python. ╰──────────────────────────────────────────────────────────────────────────────╯ Resume this session with: hermes --resume 20260714_082301_760faa -p it-ai Session: 20260714_082301_760faa Duration: 51s Messages: 16 (1 user, 14 tool calls)