Cowork Local · Tài liệu kỹ thuật
Cấu trúc hệ thống
Trợ lý AI dạng agent chạy cục bộ trên máy (desktop, ưu tiên Windows). Người dùng trò chuyện, chạy luồng nhiều bước, thao tác tệp và lên lịch tác vụ — mọi thứ được bọc trong một khung bảo mật nhiều lớp.
01 Tổng quan & nguyên tắc
Bốn nguyên tắc định hình toàn bộ kiến trúc.
▤Local-first
Cấu hình, lịch sử hội thoại, workspace và nhật ký đều nằm trên máy người dùng. Chỉ lệnh gọi mô hình mới ra ngoài.
⛨Bảo mật nhiều lớp
Mọi tool có tác động (chạy lệnh, ghi tệp, tải URL) đi qua chuỗi kiểm soát fail-closed; xem tài liệu Bảo mật.
⧉Đa workspace
Nhiều project chạy song song, mỗi project nhiều hội thoại Cowork và nhiều luồng Co4E — không cái nào chặn cái nào.
⇄Provider-agnostic
Nhiều nhà cung cấp mô hình (OpenAI-compatible…), tự động định tuyến chọn mô hình phù hợp trong số các model được bật.
02 Ngăn xếp công nghệ
Những thư viện/thành phần chủ chốt và vai trò của chúng.
03 Kiến trúc phân lớp
Một yêu cầu đi từ giao diện xuống lớp thực thi rồi ra ngoài — mỗi lớp có trách nhiệm rõ ràng.
Lớp giao diện — PySide6
người dùng thao tácLớp agent / lõi thực thi
điều phối lượt chạyLớp công cụ & sandbox
ranh giới tin cậyLớp nhà cung cấp mô hình
gọi ra mạng an toànDịch vụ bên ngoài
không tin cậy mặc định04 Các subsystem chính
Mỗi khối là một tính năng lớn người dùng thấy được, ánh xạ tới module tương ứng.
▦Workspaces & Projects
Nhiều project song song, mỗi cái một pane riêng với sandbox bật/tắt để tiết kiệm tài nguyên.
workspace_tab.pyworkspace_pane.py💬Cowork · đa hội thoại
Nhiều hội thoại trong một project; lượt chạy nền giữ đúng hội thoại gốc kể cả khi bạn chuyển tab.
chat_panel.pycowork_tab.py◈Co4E flows
Canvas nhiều bước, agent tùy biến, chế độ auto/plan/manual, chạy song song & theo dõi ở Flow Status.
co4e_tab.pyco4e_runner.py⇉Model routing
Tự đánh giá & chọn mô hình tốt nhất trong số model được bật theo policy (chất lượng/chi phí/độ trễ).
core/routing/*⛨Sandbox
Chọn backend theo mức rủi ro: best-effort → AppContainer → Windows Sandbox VM.
sandbox_manager.pyappcontainer_sandbox.py⏱Scheduler
Tác vụ theo lịch (Cowork/Code/Flow), phụ thuộc chuỗi, opt-in chạy lệnh.
task_scheduler.pytask_executors.py📊Monitoring
Tổng quan chi phí, nhật ký sự kiện/bảo mật, quản trị Tool/Agent, trang Security.
monitoring_tab.py🗄Lưu trữ
Cấu hình + lịch sử theo project + workspace + audit log, tất cả trên máy.
config.pycore/history.py05 Mô hình đồng thời
Vì sao nhiều lượt chạy song song không giẫm chân nhau.
Cô lập theo lượt (per-turn)
Mỗi lượt chat chạy trong một AgentWorker (QThread) riêng. Tại thời điểm bắt đầu, lượt chụp lại bối cảnh home_* (id hội thoại, thư mục làm việc, project) — nên dù người dùng chuyển sang hội thoại khác, lượt nền vẫn ghi kết quả về đúng hội thoại gốc và quét đúng thư mục của nó.
Quản lý luồng Co4E dùng chung
Một Co4ERunManager duy nhất phục vụ mọi pane, mỗi run gắn project_id để lọc. Khi dừng một worker bị treo, nó được "park" giữ tham chiếu (không GC luồng đang chạy → tránh crash QThread destroyed while running).
06 Luồng dữ liệu một lượt chat
Từ tin nhắn người dùng đến kết quả — mỗi bước là một điểm kiểm soát.
- Tin nhắn + đính kèmNgười dùng gửi; tệp/thư mục workspace được nạp qua
_augment. - Bọc nội dung không tin cậyNội dung tệp/web/tool được rào trong khối UNTRUSTED DATA — model coi là dữ liệu, không phải mệnh lệnh.
- Định tuyến mô hìnhAuto Routing có thể chọn mô hình phù hợp trong số model được bật.
- Gọi provider
provider.chat()quatls_trust; usage_tracker ghi token/chi phí theo hội thoại gốc. - Model gọi toolMỗi tool qua: kiểm scope ở executor → human-gate (nếu bật) → classifier → sandbox.
- Kết quả & lưuVăn bản/diff hiện realtime; hội thoại lưu vào
.cowork_historycủa project.
07 Lưu trữ trên máy
Dữ liệu nằm ở đâu.