Autonomous coding · cho dự án nhiều milestone · v2.17.0
Một team outsource bằng AI agent.
Vận hành đúng quy trình, liên tục 24/7, cho những dự án lớn.
Astragentic là scaffold để vận hành một team AI agent theo mô hình orchestrator. Bạn trao đổi với một người đại diện, team thi công theo role, và mọi việc đi qua issue tracker: GitHub Issues, Jira hoặc Linear. Những phần khó của việc điều hành nhiều agent đã được giải quyết sẵn; phần còn lại là của bạn.
AI outsource team
Công việc của mỗi agent.
Mỗi thành viên trong team là một agent: một session Claude Code mở từ CLI với một role cố định. Nó nhận việc, làm xong thì trả kết quả, và có thể nhân bản: nhiều Builder cùng thi công, nhiều QA cùng kiểm, như một team thật.
Mỗi role có một tên riêng: Thomas, Shaper, Builder, Rin, QA. Tên riêng giữ agent không trôi khỏi role của mình trong context dài, và là địa chỉ để gửi việc, đọc pane, gắn đúng skill.
- Thomasngười đại diệnSession thường trực, kéo dài qua nhiều ticket.Giữ tracker, chạy frontier query, claim, dispatch và merge. Là agent duy nhất còn ở đó khi Builder đã đóng session, nên mọi trạng thái bền đều thuộc Thomas. Hỏi lại bạn ở những quyết định quan trọng.claude · claude-opus-5 · effort medium
- Shaperđịnh hìnhMột session liền mạch từ đầu tới cuối, không compact.Chạy grill-with-docs, to-spec, to-tickets theo thứ tự, dừng sau spec để bạn duyệt.claude · claude-opus-5 · effort high
- Builderthi côngMột session mỗi ticket, trong worktree riêng, là người viết duy nhất ở đó.Implement, code review hai trục, simplify, rồi lượt review chéo do Codex đọc lại. Có thể giao phần gõ code cho một pane junior. Commit ở mỗi ranh giới, không chỉ lúc handback.claude · claude-sonnet-5 · effort medium
- RingateMột session mỗi milestone, worktree tách riêng tại đúng SHA được review.Chỉ đọc và viết đúng một file: báo cáo gate. Một vòng mỗi milestone, không lặp.
- QAnghiệm thuMột session mỗi lượt walk, với sản phẩm đang chạy thật trong worktree riêng.Dùng sản phẩm như người dùng, không đọc diff. Mặc định chỉ đọc, mọi thao tác ghi cần bạn cho phép từng lần.claude · claude-sonnet-5 · effort low
Model và effort theo role
Agent của mỗi role chạy trên model và effort hợp với việc của role đó. Thomas và Shaper suy luận dài nên dùng Opus, Shaper ở effort high. Builder và QA cần nhanh và rẻ nên dùng Sonnet. Rin gate trên Opus ở effort medium.
Bảng này đọc thẳng từ .agents/orchestrator.md trong repo của bạn. Đổi một dòng là đổi runtime, model hay effort của role đó ở lần dispatch kế tiếp, không cần sửa contract của role.
harness/.agents/orchestrator.md
## Active assignments| Role | Runtime | Model | Effort | Advisor ||---|---|---|---|---|
| thomas | claude | claude-opus-5 | medium | fable || shaper | claude | claude-opus-5 | high | fable || builder | claude | claude-sonnet-5 | medium | opus || qa | claude | claude-sonnet-5 | low | opus |
Vuốt ngang để xem hết sơ đồ
Thomas quản trị cả team: nhận yêu cầu từ bạn, gọi Shaper khi cần spec, dispatch ticket cho Builder, gọi Rin gate ở mỗi milestone và QA walk trước khi merge, rồi báo lại bạn. Mỗi mũi tên trên hình là một lượt trao đổi đi và về.
Cách bạn làm việc với AI team
Mô hình vận hành.
Bạn là khách hàng, trao đổi với Thomas là người đại diện của team. Team làm việc quanh issue tracker, và mọi việc đều đi qua đó để bạn đọc lại được bất cứ lúc nào.
Hằng ngày, bạn chỉ làm việc với Thomas
- Thomas điều phối team.
- Thomas mở session Shaper khi cần shape, dispatch ticket cho Builder theo capacity, gọi Rin gate ở mỗi milestone và QA walk trước khi merge. Bạn không phải tự gọi từng agent.
- Thomas đọc báo cáo thay bạn.
- Handback, receipt, kết luận gate, walk report đều về Thomas trước. Thomas đọc, đối chiếu với ticket, rồi kể lại cho bạn theo cách hai bên vẫn trao đổi: ngôn ngữ bạn dùng, mức chi tiết bạn cần, ví dụ thay cho thuật ngữ khi bạn muốn. Báo cáo gốc vẫn nằm trên tracker để bạn kiểm chứng.
- Bạn chỉ cần làm Thomas hiểu ý định của mình.
- Bạn nói điều mình muốn và hướng đi; Thomas tự triển khai với team, tự quyết trong quá trình làm. Nó chỉ quay lại hỏi khi một quyết định thật sự là của bạn, như UI/UX hay tech stack, và lúc đó câu hỏi đã được thu gọn thành một lựa chọn trả lời được.
Vuốt ngang để xem hết sơ đồ
Giao tiếp giữa các agent
Dispatch một ticket là mở một cuộc trao đổi có địa chỉ.
Ticket là một issue trên tracker, cắt đủ nhỏ để một Builder hoàn thành trong một session. Nó mang một id ổn định, một trạng thái, một assignee, và các blocking edge tới việc phải xong trước.
Thomas dispatch theo skill dispatch-ticket: claim trên tracker, tạo branch và worktree, mở pane herdr, launch agent theo role, gửi brief, đặt watcher. Chuỗi ticket → assignee → pane → worktree → branch → PR là một-một, nên nhiều Builder chạy song song mà không giẫm lên nhau.
Giữa các session Claude Code, kênh chính là cross-session messaging có sẵn. Mỗi session có một tên; Thomas tra tên bằng ListAgents rồi gửi thẳng. Ở đầu nhận, thông điệp hiện thành dòng preview › Message from @thomas: …, mở rộng bằng ctrl+o, và câu trả lời đi ngược về đúng session đã gửi.
herdr là mặt phẳng nhìn thấy và là đường dự phòng: mỗi agent một pane có tên, watcher báo working, blocked, idle. Thomas đọc pane bằng herdr agent read khi một session im lặng, và nhắn cho pane junior qua herdr CLI.
- Câu hỏi kỹ thuật: Thomas trả lời thay bạn, từ contract, spec và tracker.
- Quyết định thiết kế: đi lên bạn qua
to-questionnaire, dưới dạng câu hỏi trả lời được. - Vị trí của bạn: đứng trên vòng lặp, không đứng trong từng bước của nó.
Issue tracker
Mọi việc đi qua tracker, nên không việc nào lạc hướng.
Trạng thái công việc được lưu trên tracker, không trong chat hay trí nhớ của một agent. Thomas hỏi tracker cái gì đã sẵn sàng; bạn mở board là đọc được.
- Ticket là dữ liệu: id, status, assignee, blocking edge, đọc và ghi qua API. Không còn ô tick trong file markdown mà agent phải nhớ sửa.
- Claim là một dòng assignee ghi và đọc lại được, nên nhiều Builder chạy song song.
- Một ticket là một branch, một worktree, một PR, cùng mã ticket trong tên. Merge xong thì ticket đóng, worktree dọn.
- Ticket giữ cả câu chuyện: nội dung việc, cách làm, câu hỏi đã hỏi, receipt đã commit. Bạn hiểu một việc bằng cách mở ticket.
- Không có công cụ mới phải học: GitHub Issues, Jira, Linear đều dùng được.
năm yêu cầu với tracker · nguyên văn từ tracker-contract.md
- A stable ticket id in the TITLE
- A status with five states — Backlog / Todo / In Progress / Done / Won't fix
- An assignee, written and read back atomically
- Every precondition as a queryable EDGE
- A surface the OWNER can open and read without running a query
linear-issue-trackerLinear
github-issue-trackerGitHub Issues
jira-issue-trackerJira
Vuốt ngang để xem hết sơ đồ
Vòng đời ticket
Một ticket đi qua bảy stage.
Bảy stage có tên, nên mỗi sự cố đo được gắn vào đúng một stage.
Vuốt ngang để xem hết sơ đồ
- 01claim
Assignee ghi rồi đọc lại.
- 02brief
Dispatch vào pane, tại Base.
- 03build
Builder làm trong worktree riêng.
- 04code-review
Rin đọc lại artifact và dấu vết.
- 05simplify
Dọn marker, cắt phần thừa.
- 06arm
Codex đọc lại, receipt buộc vào SHA.
- 07merge
Ledger ghi một dòng, assignee gỡ.
mattpocock-skills
Astragentic chọn mattpocock-skills làm khung quản trị và phát triển dự án.
Bộ skill của Matt Pocock bao trọn hai nửa của một dự án, và Astragentic gắn từng skill vào đúng role.
- Nửa quản trị: wayfinder định hướng, triage phân loại việc, grill hỏi cho ra yêu cầu, to-spec chốt spec, to-tickets cắt thành ticket.
- Nửa phát triển: implement theo TDD, code-review, simplify, diagnosing-bugs.
- Một khung cho cả hai: Thomas quản trị và Builder thi công theo cùng một phương pháp, từ yêu cầu đầu tiên tới PR cuối cùng.
- Thomas
- triage · wayfinder · to-questionnaire · ask-matt
- Shaper
- grill-with-docs → to-spec → to-tickets
- Builder
- implement
- Dùng chung
- grilling · tdd · code-review · codebase-design · domain-modeling · research · prototype · diagnosing-bugs
Vuốt ngang để xem hết sơ đồ
Cách tiếp cận
AI đã là một developer thực thụ. Astragentic đặt bạn vào vị trí người dẫn dắt team developer đó.
Coding agent hôm nay nhận việc, viết code, chạy test và sửa cho tới khi xanh. Khi thực thi không còn là nút thắt, giá trị của người kỹ sư chuyển sang chỗ khác: đặt yêu cầu đúng, quyết định đúng, giữ quy trình đi đúng hướng.
Astragentic được xây để bạn làm đúng phần đó. Nó tổ chức các agent thành một team outsource theo kỷ luật SDLC quen thuộc, và thiết kế lại cách dispatch, review, handback để khai thác tốc độ mà một team người không duy trì được.
Tính năng
Sáu điều một team làm được mà một agent đơn lẻ thì không.
Mỗi thẻ mở trang giải thích cơ chế bên dưới.
Review gate hai lớp, hai AI của hai hãng.
Mọi ticket đi qua code-review theo Standards và Spec trên Claude Code, rồi một lượt đọc chéo trên Codex. Hai model của hai hãng, Claude và Codex, đọc cùng một diff trước khi merge, nên chất lượng không phụ thuộc vào một model duy nhất.
Đọc tiếp →Vận hành liên tục quanh issue tracker.
Mọi yêu cầu, spec và ticket đều nằm trên tracker. Review phát hiện việc mới thì ghi thành ticket mới. Team chạy 24/7 mà không cần bạn ngồi canh, và không có việc nào rơi ra ngoài hệ thống.
Đọc tiếp →Team có tên, có role, có contract.
Thomas đại diện, Shaper định hình, Builder thi công, Rin giữ gate, QA nghiệm thu. Mỗi role có contract và system context riêng, nên trách nhiệm rõ và không ai làm thay việc của ai.
Đọc tiếp →Một runtime, một hãng thứ hai đọc lại.
Mọi role chạy trên Claude Code. Codex thêm vào khi bạn cần hãng thứ hai đọc lại diff, và Builder có thể giao phần gõ code cho pane junior trên runtime khác. Model và effort của từng role khai trong orchestrator.md.
harness/.agents/orchestrator.mdbuilder · claude · claude-sonnet-5 · medium
Đọc tiếp →Role Runtime Model Effort Thomas claude claude-opus-5 medium Shaper claude claude-opus-5 high Builder claude claude-sonnet-5 medium QA claude claude-sonnet-5 low Đúng model cho đúng việc.
Sonnet cho Builder và QA, nơi cần nhanh và rẻ; Opus cho Thomas, Shaper và Rin, nơi cần suy luận dài. Chi phí và chất lượng cân theo từng role thay vì một model cho tất cả.
Đọc tiếp →Toàn quyền giám sát, không cần ra tay.
Board tracker, pane herdr, thiết kế và quyết định đều đọc lại được. Thomas hỏi lại bạn ở những điểm quan trọng: UI/UX, lựa chọn tech stack. Bạn quyết, team làm.
Đọc tiếp →
Quy mô phù hợp
Dành cho dự án dài hơi, nhiều phần, chạy song song.
Một dự án lớn không lớn vì có sprint hay story. Nó lớn vì sống lâu, rộng, có phụ thuộc và có rủi ro, và Astragentic có đúng một cơ chế cho mỗi thứ: tracker và receipt giữ trạng thái ngoài trí nhớ agent, claim và worktree cho nhiều Builder chạy song song, blocking edge và frontier query giữ thứ tự, Rin gate và QA walk chặn trước khi merge. Thiếu cả bốn thì một session agent bình thường là đủ.
Hợp khi
- Có roadmap nhiều release; codebase còn được sửa nhiều tháng sau khi ra mắt.
- Nhiều module hay hệ con (app, backend, admin, tích hợp) làm song song.
- Việc phụ thuộc nhau, cần thứ tự; có người dùng thật, regression là rủi ro.
Chưa cần khi
- Một deliverable, giao xong là xong.
- Một người làm tuần tự cũng kịp, không có gì chạy song song.
- Không có phụ thuộc giữa các việc, không có release sau.
Tech stack
Bảy thứ cần có trước khi cài.
Năm thứ bắt buộc, một tuỳ chọn, một chọn một trong ba. Script check-requirements.sh kiểm tất cả cho bạn trước khi cài.
Tech stack cần có
- Claude Code CLIrequired
Runtime chạy các agent. Gate milestone của Rin chỉ chạy trên Claude, nên thiếu Claude là không gate được.
- Codex CLIoptional
AI của hãng thứ hai (OpenAI) cho lượt review chéo. Thiếu Codex, team chạy chế độ một provider.
- Git ≥ 2.5, có worktreerequired
Ranh giới cô lập: mỗi Builder một checkout riêng, không ai ghi đè HEAD của ai.
- herdr ≥ 0.8.0 và herdr skillrequired
Mỗi agent một pane. Thomas nhìn thấy agent nào đang chạy, gửi và chờ tin qua herdr CLI.
- mattpocock-skills ≥ 1.3.1required
Phương pháp SDLC mà team đi theo: grill, spec, tickets, implement, code review.
- Issue tracker: GitHub Issues, Jira hoặc Linearpick one
Bộ nhớ chung (shared memory) của team. Mọi task, claim và receipt đều đi qua đây.
- python3required
Chạy git-guard hook và nạp lại contract sau compaction.
Mở agent qua CLI
claude --dangerously-skip-permissions --agent builder --model <model> --effort <low|medium|high|xhigh|max>
Install
Năm bước để đưa team vào repo của bạn.
Astragentic cài từ bản checkout của bạn vào từng thư mục dự án, không cài vào máy. Một bản phục vụ nhiều dự án, và mọi tuỳ biến đi tới các dự án bằng đúng đường cài đặt này.
năm bước · chạy theo thứ tự
Kiểm máy có đủ tech stack chưa
./check-requirements.sh
Cài harness vào repo của bạn
Chạy từ thư mục Astragentic, trỏ tới thư mục dự án. Lệnh chỉ chép một bản release vào
.astraler/releases/của dự án đó, không sửa file nào của bạn. Một bản Astragentic cài được cho nhiều dự án; bạn chỉnh và nâng cấp harness ở một chỗ rồi cài lại cho từng dự án../install.sh /path/to/your-repo
Để Claude Code thích nghi harness với repo
Đọc và thực thi ADAPT-HARNESS.md: đặt tên tracker, prefix ticket, đường dẫn docs.
cd /path/to/your-repo
claude "Read .astraler/releases/2.9.0/ADAPT-HARNESS.md completely and execute it."
Cấu hình mattpocock-skills cho repo, chạy một lần
Skill này khai tracker, bộ nhãn triage và chỗ để GLOSSARY.md, ADR; các skill engineering sau đó đọc cấu hình này.
claude
/mattpocock-skills:setup-matt-pocock-skills
Mở session Thomas
Thomas chạy không hỏi quyền từng lệnh để điều phối liên tục; model và effort theo dòng thomas trong orchestrator.md.
claude --dangerously-skip-permissions --agent thomas --model claude-opus-5 --effort medium
Tuỳ biến
Mỗi người một cách làm việc với AI. Astragentic là bộ khung cho người theo trường phái agent orchestration.
Không có một cách làm việc với AI đúng cho tất cả. Astragentic không chọn thay bạn.
- Đủ vòng SDLC: năm role, gate ở mỗi milestone, QA walk trước khi merge.
- Tối giản: hai agent, một người đại diện và một người thi công.
- Theo hạ tầng của bạn: đổi tracker, đổi runtime, thêm một bước review riêng.
Tuỳ biến là sửa file trong bản checkout của bạn. Mỗi role là một contract, mỗi skill là một thư mục, mỗi hook là một script.
Đường đưa thay đổi tới dự án là đường phát hành: tăng VERSION, ghi một mục trong RELEASE-NOTES.md, rồi cài lại bằng install.sh. Bước thích nghi trong dự án so bản mới với bản đang chạy và giữ nguyên các file thuộc về bạn, như orchestrator.md.
Vuốt ngang để xem hết sơ đồ
Tự sửa chữa
Bộ khung học từ mỗi vòng làm việc, và luật rút ra đi thẳng vào file agent đọc.
Một team agent lặp lại lỗi của chính nó nếu không có chỗ nào ghi lại. Ở đây có: mỗi sự cố là một dòng trong một cuốn sổ chỉ thêm, mang mã cố định, không đánh số lại và không xoá.
Dòng nào rút ra được luật thì luật đó viết thẳng vào contract của role, vào skill hoặc vào hook — những file agent đọc ở đầu session. Lần dispatch sau cả team làm khác đi, không phải vì ai nhớ, mà vì văn bản đã đổi.
Phần cuối của một commit merge
Pass: code-review, simplify, armLedger: AST-136 — --grep is BASIC regex, and every marker kindin this system contains parentheses
- Khép lại ở lúc merge: commit merge mang một dòng
Ledger:nói rõ cái gì vừa vào sổ.Ledger: nonelà hợp lệ; thiếu hẳn dòng đó thì không. - Không có bước build: luật nằm trong chính file contract, agent đọc nó ở đầu session. Một hook nạp lại contract sau khi session bị compact.
- Sổ chỉ thêm: dòng chưa rút ra được luật vẫn nằm nguyên đó. Một hồ sơ chờ trung thực hơn một cuốn sổ chỉ chứa những lần đã giải quyết xong.
Cùng cơ chế đó cho phép một agent tự tuỳ biến bộ khung. Toàn bộ Astragentic là văn bản — contract, skill, hook — không có binary, không có config schema phải học. Bạn mở một session ngay trong bản checkout, mô tả cách mình muốn làm việc, nó đề xuất diff, bạn duyệt.
Đọc cơ chế đầy đủ →