Chuyển đến nội dung

Cách hoạt động

Từ một mục tiêu đến kế hoạch bạn theo dõi được

Sáu giai đoạn, trong một vòng lặp. Bạn nói điều bạn muốn. PO lập kế hoạch, sắp thứ tự các tác vụ, nhớ lại những gì dự án đã biết, chạy công việc, kiểm tra và lưu lại những gì đã học. Dưới mỗi giai đoạn, bạn có thể mở phần chi tiết kỹ thuật.

Lập kế hoạch → Sắp thứ tự → Nhớ lại → Chạy → Kiểm tra → Ghi nhớ, rồi quay lại Nhớ lại. Những gì giai đoạn 6 lưu lại sẽ được giai đoạn 3 nhớ lại ở kế hoạch kế tiếp.

Vòng lặp

Vòng lặp, từng giai đoạn

Cuộn xuống: mỗi hình được vẽ giống như các màn hình của sản phẩm. Ví dụ là một cuối tuần của nhóm.

Giai đoạn 1 trên 6

Bạn nói điều bạn muốn, bạn nhận một kế hoạch

Bạn mô tả kết quả trong một câu. Trợ lý biến nó thành một kế hoạch gồm các tác vụ. Mỗi tác vụ có các bước, và mỗi bước cho biết cách kiểm tra là đã xong.

Bên trong

Kết quả được lưu thành một kế hoạch có mức ưu tiên và các ràng buộc, rồi chia thành các tác vụ. Mỗi tác vụ cho biết nó phụ thuộc vào gì và liệt kê các bước. Mỗi bước mang theo phép kiểm tra chứng minh nó đã xong.

Kế hoạch, tác vụ và bước được lưu thành dữ liệu, không phải văn bản tự do trong một cuộc chat. Các màn hình và trình chạy đọc cùng một trạng thái.

plan(action: "create", title, description, priority: 8, constraints: [{ constraint_type: "performance", … }])task(action: "create", plan_id, title, depends_on: [task_id], steps: [{ description, verification }])
  • Trạng thái kế hoạch: draft, approved, in_progress, completed, cancelled.
  • Các loại ràng buộc: performance, security, style, compatibility, other.
  • code(action: "plan_implementation", auto_create_plan: true) soạn một kế hoạch từ đồ thị mã.

Giai đoạn 2 trên 6

Các tác vụ không phụ thuộc nhau được làm cùng nhau

PO sắp xếp các tác vụ. Một tác vụ chỉ chờ những tác vụ nó cần. Tất cả các tác vụ khác có thể bắt đầu ngay, cùng lúc.

Bên trong

Một tác vụ chỉ bắt đầu khi mọi thứ nó phụ thuộc đã hoàn thành. PO biến các liên kết này thành các đợt: đợt 1 gồm mọi tác vụ không còn điều kiện tiên quyết nào, đợt 2 gồm những gì đợt 1 mở khóa, và cứ thế.

Các tác vụ trong cùng một đợt độc lập với nhau, nên chúng chạy cùng lúc. Chuỗi phụ thuộc dài nhất, tức đường găng, quyết định số đợt tối thiểu.

plan(action: "get_waves", plan_id)plan(action: "get_critical_path", plan_id)
  • plan(action: "get_dependency_graph") trả về DAG của các tác vụ.
  • task(action: "get_next") trả về tác vụ kế tiếp không bị chặn, ưu tiên cao nhất trước.
  • Khi một lượt chạy được tiếp tục, các đợt được tính lại và các đợt đã xong sẽ được bỏ qua.

Giai đoạn 3 trên 6

Trợ lý tra cứu những gì dự án đã biết

Trước mỗi tác vụ, trợ lý đọc các ghi chú và quyết định có liên quan. Nhờ vậy nó không hỏi lại những câu cũ.

Bên trong

Trước một tác vụ, trợ lý đọc bộ nhớ của dự án: ghi chú (cảnh báo, hướng dẫn, mẫu làm việc), quyết định kèm lý do và, với dự án có mã, phần mã quanh các tệp nó sẽ chạm vào. Tìm kiếm theo ý nghĩa sẽ tìm các kết quả gần nhất trước.

Sau đó PO đi theo các liên kết giữa các ghi chú. Một ghi chú không khớp với câu hỏi vẫn có thể xuất hiện, vì một ghi chú đã khớp liên kết chặt với nó. Liên kết yếu dần ở mỗi bước, và các ghi chú đã mờ đi sẽ bị loại.

note(action: "search_semantic", query, project_slug)decision(action: "search_semantic", query)admin(action: "search_neurons", query, max_hops: 2)note(action: "get_context", entity_type: "file", entity_id)
  • Mặc định của spreading activation: 20 ghi chú khởi đầu, 2 bước nhảy, tín hiệu giảm một nửa ở mỗi bước, 10 kết quả.
  • 40% số chỗ trong kết quả dành cho các ghi chú đến được qua synapse.
  • Điểm lan truyền bằng điểm của nút cha x trọng số synapse x năng lượng của ghi chú x độ suy giảm.

Giai đoạn 4 trên 6

Các trợ lý làm tác vụ, từng nhóm một

Mỗi tác vụ được giao cho một trợ lý riêng. Các tác vụ trong một nhóm chạy cùng lúc, còn nhóm kế tiếp phải chờ.

Bên trong

plan(action: "run") khởi động trình chạy trên một nhánh git riêng. Với mỗi đợt, nó mở một phiên agent cho mỗi tác vụ đủ điều kiện và chạy song song, tối đa theo một giới hạn (mặc định là 4).

Mỗi tác vụ nhận một prompt dựng từ bộ nhớ dự án: mô tả, các bước và ràng buộc của nó, các ghi chú liên kết, persona và kỹ năng phù hợp, cùng bản tóm tắt những gì các đợt trước đã làm. Một lớp bảo vệ theo dõi phiên về thời gian nhàn rỗi, lời gọi lặp lại và quá thời gian, và gửi gợi ý khi agent đi lạc hướng.

plan(action: "run", plan_id, cwd, project_slug)plan(action: "run_status", plan_id)
  • Một tác vụ được xếp loại đơn giản, phức tạp hoặc sáng tạo dựa trên thẻ, bước và tệp của nó. Loại này đặt giới hạn thời gian và ngân sách chi phí.
  • Đơn giản: 600 s và $0.50. Phức tạp: 3600 s và $2.00. Sáng tạo: 1800 s và $1.00.
  • Các lượt chạy được lưu, nên có thể tiếp tục một lượt chạy sau khi khởi động lại. plan(action: "cancel_run") dừng một lượt chạy.

Giai đoạn 5 trên 6

Một nhóm xong khi các phép kiểm tra đều đạt

Trước khi nhóm kế tiếp bắt đầu, PO kiểm tra công việc. Các bước phải được đóng và không tệp nhạy cảm nào được lọt vào thay đổi. Với dự án có mã, PO còn kiểm tra rằng nó vẫn build được.

Bên trong

Khi một đợt kết thúc, trình chạy kiểm tra nó trước khi đợt sau bắt đầu. Nó kiểm tra rằng các agent đã tạo commit, mọi bước đều đã hoàn thành hoặc bị bỏ qua, dự án build được và diff không chứa tệp nhạy cảm nào.

Bản thân lượt chạy là một máy trạng thái. Một protocol vòng đời đi từ approved sang executing rồi post_run, và mỗi lần chuyển cần một trigger rõ ràng. Tác vụ có agent thất bại hoặc quá thời gian sẽ được thử lại một lần theo mặc định, kèm lỗi làm ngữ cảnh.

protocol(action: "transition", run_id, trigger: "child_completed")step(action: "get_progress", task_id)
  • Kiểm tra build: cargo check, npm run build hoặc go build ./..., tùy ngôn ngữ phát hiện được.
  • Các tệp nhạy cảm bị từ chối: .env, credentials.json, *.pem, *.key và tương tự.
  • Kiểm thử là tùy chọn, mặc định tắt. plan-runner-reviewed thêm trạng thái awaiting_review để một người xem xét.

Giai đoạn 6 trên 6

Những gì đã học được lưu lại cho lần sau

Khi công việc xong, những gì đã quyết định và học được sẽ được ghi ngược vào bộ nhớ dự án. Kế hoạch kế tiếp bắt đầu với chúng.

Bên trong

Khi một tác vụ hoàn thành, trình chạy ghi ngược mà không gọi mô hình nào: nó gắn các commit với tác vụ và kế hoạch, tạo một ghi chú ngữ cảnh từ git log, và nối các quyết định với những tệp chúng ảnh hưởng.

Trợ lý thêm những gì chỉ nó biết: quyết định kèm các phương án thay thế, cảnh báo, mẫu làm việc. Các ghi chú được dùng cùng nhau sẽ gần nhau hơn. Các ghi chú không bao giờ được dùng sẽ mất năng lượng và trở nên cũ. Một episode ghi lại yêu cầu, đường đi qua các trạng thái và kết quả. Kế hoạch kế tiếp bắt đầu từ giai đoạn 3 với tất cả những điều đó.

decision(action: "add", task_id, rationale, alternatives)note(action: "create", note_type: "gotcha", content, anchors)episode(action: "collect", run_id, project_id)admin(action: "reinforce_neurons", note_ids)
  • Độ cũ tăng theo thời gian kể từ lần hoạt động cuối, với tốc độ phụ thuộc vào loại ghi chú. note(action: "confirm") đặt lại nó.
  • Kỹ năng hình thành từ các cụm ghi chú liên kết chặt (admin(action: "detect_skills")).

Phân vai

Ai làm gì

PO lo phần cơ chế, để trợ lý tập trung vào công việc.

PO tự làm, không cần nhắc

  • Sắp xếp các tác vụ thành nhóm và khởi động các trợ lý.
  • Kiểm tra từng nhóm: các bước đã đóng, không có tệp nhạy cảm, và build cho dự án có mã.
  • Gắn các thay đổi với tác vụ và viết một ghi chú về những gì đã xảy ra.
  • Giữ các thay đổi của mỗi lượt chạy trên một nhánh git riêng.
  • Ghi lại trợ lý chuyên biệt và kỹ năng nào đã giúp.

Trợ lý làm, qua các công cụ của nó

  • Tìm ghi chú và quyết định trước khi bắt đầu.
  • Tạo kế hoạch, tác vụ và bước, và cập nhật trạng thái của chúng.
  • Lưu quyết định kèm các phương án thay thế và những gì chúng ảnh hưởng.
  • Viết cảnh báo, hướng dẫn và mẫu làm việc, gắn với đối tượng của chúng.
  • Đưa một quy trình tiến lên, từng bước.

Cách bắt đầu

Ba cách khởi động vòng lặp

Từ công cụ AI của bạn

Claude Code, Cursor hoặc một công cụ AI khác được kết nối với PO. Bạn mô tả kết quả. Nó lập kế hoạch, sắp thứ tự và nhớ lại, rồi lưu những gì đã học khi kết thúc.

Từ chat

Phần chat tích hợp trong PO nói chuyện với cùng một trợ lý. Mỗi tin nhắn mang theo các kỹ năng phù hợp, các ghi chú và quyết định liên quan, và những gì đang diễn ra.

Tự chạy

Một kế hoạch có thể chạy khi không có ai ở đó. Nó bắt đầu theo lịch hoặc khi có một sự kiện, với một quãng nghỉ giữa hai lần bắt đầu. Các kiểu khởi động là schedule, webhook, event và chat.

Bộ nhớ

PO nhớ những gì bạn quyết định và học được

Ghi chú, quyết định và các liên kết giữa chúng luôn gắn với dự án của bạn. PO tìm lại chúng khi cần. Cuộn xuống để xem một bộ nhớ lớn dần.

menu.pdfcaterer-quote.pdfallergies.xlsxinvoice.pdfoffers.pdfbadges.pptxQuote valid for 30 daysAllergy list sentCaterer chosen on March 5Contract signedInvitations sent on April 160 replies so farInvite partners too
FilePlanTaskNoteDecision

Ví dụ tự dựng: một dự án sự kiện nhỏ. Các tên trong đồ thị chỉ là minh họa, không phải dữ liệu của bạn. Màu sắc và hình dạng giống đồ thị trong sản phẩm.

  1. 1 trên 5

    Các tệp của bạn trở thành những chấm

    PO bắt đầu từ những gì có trong dự án: tài liệu, bảng tính, tệp. Mỗi tệp là một chấm xanh dương.

  2. 2 trên 5

    Kế hoạch và tác vụ tham gia

    Kế hoạch và tác vụ được thêm vào cùng một bức tranh. Mỗi tác vụ được nối với các tệp nó chạm đến.

  3. 3 trên 5

    Ghi chú và quyết định luôn có liên kết

    Điều bạn học được trở thành ghi chú. Điều bạn quyết định trở thành quyết định. Cả hai vẫn được nối với các tệp và với nhau.

  4. 4 trên 5

    Những thứ liên quan tụ lại với nhau

    Các mục cùng chủ đề dịch lại gần nhau. Bạn thấy ngay các chủ đề chính của dự án.

  5. 5 trên 5

    PO tìm câu trả lời theo các liên kết

    Bạn đặt một câu hỏi. PO tìm các ghi chú khớp (màu lục lam). Rồi nó đi theo các liên kết đến những mục liên quan (màu tím), kể cả khi từ ngữ khác nhau.

Bên trong: tên của các liên kết

Đây là tên mà sản phẩm dùng cho các liên kết trong đồ thị của nó. Bạn không cần biết chúng để dùng PO.

  • CONTAINSMột kế hoạch chứa các tác vụ của nó.
  • IMPORTSMột tệp dùng một tệp khác.
  • AFFECTSMột tác vụ chạm đến một tệp.
  • CO_CHANGEDHai tệp thường thay đổi cùng nhau, thấy được trong lịch sử của mã.
  • SYNAPSEMột liên kết giữa ghi chú, quyết định và tệp. Các liên kết không ai dùng sẽ mờ dần.

Dùng thử

Xem một trợ lý làm việc cùng PO

Chọn một yêu cầu. Bạn sẽ thấy câu trả lời bằng lời đơn giản, cùng các lệnh gọi mà trợ lý gửi đến PO ở phía sau. Mở một lệnh gọi để xem chi tiết.

Chat · team-weekendDemo mô phỏng
Organize a weekend in June for my team of 12. We want a quiet place near a train station.

Two notes apply: the place must be close to a train station, and last year the menu had nothing vegetarian. I will write the plan around both.

The plan has 3 tasks in 2 waves. The shortlist and the date poll do not depend on each other, so they happen at the same time. Booking waits for both.

Câu trả lời viết sẵn. Không liên hệ máy chủ nào.

Bản demo mô phỏng: câu trả lời được viết sẵn và không có máy chủ nào được liên hệ. Các lệnh gọi và tham số của chúng là thật.

Bắt đầu

Cho các trợ lý AI của bạn một bộ nhớ và một kế hoạch

Cài trình điều phối, kết nối Claude Code qua MCP, rồi để trợ lý đầu tiên đọc dự án trước khi viết dòng mã đầu tiên.

Hoặc bắt đầu từ terminal

brew install this-rs/tap/project-orchestrator