Tiny software factory: agentic engineering làm sai có chủ ý
Dựng một tiny software factory near loop: durable agent, agent access parity, core four control, extensible harness và cron prompt chạy theo lịch.
✓ Đã duyệt độc lập · cập nhật 06/11/2026 · 19 min
1. Agentic engineering "làm sai" một cách có chủ ý
IndyDevDan mở đầu (video đăng ngày 02/11/2026) bằng ý tưởng về những tiny software factory: những software factory nhỏ, hữu ích, làm việc cho bạn suốt ngày đêm, để bạn chuyển từ chỗ bị kẹt trong vòng lặp (stuck in the loop) sang chỗ đứng gần vòng lặp (near the loop). Chủ đề anh đặt ra là "agentic engineering done wrong": agentic engineering làm sai. Anh tự đặt câu hỏi: nghe hơi lạ, vì sao bạn lại muốn học agentic engineering theo cách không đúng? Rồi anh giải thích.
Theo IndyDevDan (video đăng ngày 02/11/2026), ý ở đây là nâng dần agentic engineering của bạn theo từng bước, tới ngưỡng hữu ích gần nhất (the closest useful threshold). Bạn sẽ gặp nhiều "dark pattern" của agentic engineering, những cách làm sẽ không scale được. Đổi lại, bạn đi nhanh, làm vỡ thứ này thứ kia, sửa chúng, rồi ship. Nhưng đây là anti-pattern, và anh muốn nói thật rõ điều đó.

Thứ được tập trung ở đây là agentic engineering kiểu near loop. Theo IndyDevDan (video đăng ngày 02/11/2026), agentic engineering kiểu out loop, nơi ta build những hệ thống hoàn toàn tự động vận hành cho bạn mà không cần bạn, có đòn bẩy cao hơn nhiều nhưng cũng khó hơn. Những gì bạn thấy ở đây không được khuyến nghị làm giải pháp lâu dài. Các anti-pattern này nhằm đưa bạn từ con số không tới chỗ có giá trị, với cái giá là về cơ bản mọi thứ, trừ việc làm xong việc.
Anh gọi đây là "blitzscaling cho agentic engineering", là cách sửa nhanh (the quick fix). "Nó không phải thiền, nó là Xanax. Nó không phải tập thể dục, nó là GLP-1." Theo anh (video đăng ngày 02/11/2026), đây là một cực đại cục bộ hữu ích (useful local maximum) để có kết quả bằng mọi giá.
Nói rõ điều đó xong, anh thêm (video đăng ngày 02/11/2026): chỉ vì nó không đúng về mặt kỹ thuật không có nghĩa là các tiny software factory của bạn không thể cực kỳ hữu ích. Ở đây, ta thôi lo chuyện làm cho đúng và tập trung vào chuyện ship được việc.
2. Tiny software factory là gì
Câu hỏi hiển nhiên đầu tiên: tiny software factory là gì? Định nghĩa IndyDevDan đưa ra (video đăng ngày 02/11/2026): một tiny software factory là một software factory được build để giải một vấn đề cụ thể, nơi một proactive agent làm việc suốt ngày đêm trong một môi trường durable, còn bạn đứng gần vòng lặp thay vì ở trong nó.

Anh nhấn vào các mảnh chính của định nghĩa này: build để giải một vấn đề, với một proactive agent, chạy suốt ngày đêm, trong một môi trường durable, với bạn ở gần vòng lặp chứ không ở trong vòng lặp. Theo anh (video đăng ngày 02/11/2026), bạn sẽ gặp lại những thuộc tính này như các chủ đề lặp đi lặp lại khi bạn làm chủ tiny software factory.
3. In loop và near loop: bạn là bottleneck
Đã thống nhất định nghĩa, câu hỏi quan trọng tiếp theo: vì sao thứ này có giá trị? Điều gì làm một tiny software factory đáng giá hơn việc ngồi trong terminal prompt qua prompt lại với một agent? Câu trả lời của IndyDevDan (video đăng ngày 02/11/2026) là in-loop đối với near-loop.
Theo anh (video đăng ngày 02/11/2026), lợi thế lớn của tiny software factory là bạn không bắt buộc phải có mặt trong vòng lặp. Thay vào đó, bạn tiến lại gần vòng lặp để đưa feedback, ra quyết định và duyệt những việc agent đã làm xong. Feedback bạn đưa cho near-loop agent tạo ra một data flywheel: factory tốt lên với mỗi tín hiệu bạn đưa vào.

"Hãy đối mặt đi", anh nói. Sự thật là bạn và anh là bottleneck, và theo anh (video đăng ngày 02/11/2026), 80% hoặc hơn công việc ta đang làm có thể chạy mà không cần ta, nếu có đúng hệ thống. Tiny software factory đưa ta tới đó thật nhanh.
In loop, bạn prompt. Near loop, bạn phản hồi (respond). Mẹo nằm ở chỗ có đúng hệ thống, để bạn không bị kẹt ngồi lì trên chiếc ghế dev của mình (theo IndyDevDan, video đăng ngày 02/11/2026).
4. Triển khai nhanh, mở rộng được: initialize, configure, specialize
Điều gì khác làm tiny software factory có giá trị? Theo IndyDevDan (video đăng ngày 02/11/2026), nó triển khai được rất nhanh (rapidly deployable) và được thiết kế để thay đổi. Với một meta skill và một lệnh, "bam", bạn có thể mount một factory mới ngay cạnh codebase để giải một vấn đề cụ thể. Trỏ nó vào repo của bạn, thả nó vào một sandbox, và bạn đi từ con số không tới một hệ thống agentic chạy được trong vài phút.
Anh so sánh (video đăng ngày 02/11/2026): build một software factory có thể scale tốn rất nhiều thời gian, kể cả với những language model mạnh. Kết quả lúc nào cũng còn cách "thêm một feature nữa". Rồi bạn nhận ra nó không làm được mọi thứ cho mọi tình huống bạn đang cố build. Tiny software factory cho bạn một lợi thế lớn vì nó là một hệ thống chạy được, nén rất chặt, với những mặc định tốt (great defaults) mà bạn có thể triển khai nhanh hết lần này tới lần khác. Nó là cách sửa nhanh, và đó chính là mục đích.
Một điều nữa, theo anh (video đăng ngày 02/11/2026): kiến trúc này mở rộng được ngay từ thiết kế (extensible by design), được thiết kế để tuỳ biến. Mọi prompt, tool, hotkey, extension, theme đều nằm trong tầm tay của bạn và của in-loop agent của bạn. Nghĩa là bạn có thể nhanh chóng build cái hệ thống để build hệ thống (the system that builds the system), đẩy nhanh bước chuyển từ in the loop sang near the loop. Bạn có thể thay đổi nó để nó uốn theo bất kỳ vấn đề nào bạn cần giải. Anh tóm lại bằng ba chữ: initialize, configure, specialize.
5. Proactive agent: nó làm cho bạn, rồi mới chờ
Điều cuối cùng nhưng không kém quan trọng, theo IndyDevDan (video đăng ngày 02/11/2026): kiến trúc tiny software factory đặc biệt vì những near-loop agent bên trong nó không ngừng làm việc cho bạn. Mỗi factory chứa một durable agent cộng với một trigger, đặt trong một sandbox, để cho bạn một proactive agent. Bạn có thể cấu hình để nó bắt đầu làm việc trước khi bạn thức dậy. Và khi bạn check in, việc đã nằm chờ bạn review.
"Nó không chờ bạn làm việc. Nó làm việc cho bạn, rồi chờ." Theo anh (video đăng ngày 02/11/2026), ta có một hệ thống agentic triển khai nhanh, có thể dựng lên bất cứ lúc nào để giải nhất quán một vấn đề cụ thể suốt ngày đêm với một proactive agent.

6. Feature map và empty factory
Vậy một tiny software factory thực sự trông như thế nào? IndyDevDan trình bày các feature của nó từng cái một bằng một feature map. Trên màn hình, feature map có bốn factory level (dòng "01 / 04 FACTORY LEVEL"), và theo lời anh (video đăng ngày 02/11/2026), mỗi level chứa những feature riêng, đi qua dần từng cái một.
Mỗi feature nằm trên ba chiều: effort cần bỏ ra; value bạn nhận được khi bỏ effort để build và dùng feature đó; và một yêu cầu kỹ năng mà bạn phải đạt. Để giữ mọi thứ đơn giản, đúng tinh thần tiny software factory, anh tập trung vào value và effort (video đăng ngày 02/11/2026).
Thuộc tính đầu tiên và quan trọng nhất, theo anh (video đăng ngày 02/11/2026), là empty factory. Empty factory là template. Nó đã được build đầy đủ, có mọi feature bạn cần để specialize, nhưng chưa specialize gì cả. Empty factory không có mục đích cho tới khi bạn trao cho nó một mục đích.
Anh mở một empty factory thật trong browser. Đó là một giao diện tối giản với hai sidebar mà anh sẽ đi qua ngay. Theo anh (video đăng ngày 02/11/2026), mỗi feature là một năng lực bạn có, và bạn có thể specialize nó để giải những vấn đề cụ thể của mình.

7. Agent bên phải, danh sách bên trái
Feature tiếp theo bên trong empty factory là agent on your right, agent ở bên phải. Theo IndyDevDan (video đăng ngày 02/11/2026), đây là một durable agent bên trong factory, luôn bật, luôn chỉ cách bạn một tin nhắn. Anh mở sidebar bên phải và gõ "ping"; agent trả lời "pong", nói nó đã sẵn sàng và hỏi anh muốn nó xem gì (demo trong video đăng ngày 02/11/2026). Một agent cổ điển sẵn sàng làm việc cho bạn, thứ bạn đã rất quen.
Theo anh (video đăng ngày 02/11/2026), ứng dụng nào cũng có thể được tăng lực bằng một agent, để bạn đi ở tốc độ agentic. Và software factory nào cũng phải vận hành trên một thứ gì đó. Empty factory này vận hành trên cái gì? Câu hỏi đó dẫn tới feature thứ ba: lists on your left, danh sách ở bên trái. "Mọi sản phẩm đều là một danh sách của thứ gì đó. Danh sách của bạn chứa gì?"
Bên trái ở đây là các page, những trang mà bạn và agent cùng thao tác. Theo anh (video đăng ngày 02/11/2026), phần này được thiết kế để thay thế. Nhưng chỉ với ba feature này, ta đã có thể bắt đầu vận hành tiny software factory. Anh gõ cho agent, theo lời anh:
Explain the basics of Python, TypeScript, and Rust nested folders in our pages.
Agent bắt đầu tạo các folder Python, TypeScript, Rust trong tiny software factory, tạo các page và lấp đầy factory (demo trong video đăng ngày 02/11/2026). Anh mở từng page ra xem được. Có cả một trang "Start Here", và khung giữa giờ đã chuyển focus sang nội dung đó.

pages_create, pages_update và lời báo xong việc.8. Focus ở giữa và agent access parity
Đó là feature tiếp theo: focus is in the center, focus ở giữa. Theo IndyDevDan (video đăng ngày 02/11/2026), thứ chính mà bạn và agent cùng làm nằm ở giữa tiny software factory; hãy tập trung sự chú ý ở đó. Với empty factory này, đó là một ứng dụng đơn giản dựa trên generative UI: có page, có artifact, có những tài liệu markdown đơn giản mà agent thao tác, build, tweak và tune thay cho ta. Ở đây là các trang language basics cho Python, TypeScript và Rust do agent tạo ra, nằm sẵn đó để ta phân tích, xem, tinh chỉnh (demo trong video đăng ngày 02/11/2026).
Nhưng những lệnh agent vừa chạy gợi ra một thuộc tính rất quan trọng, theo anh (video đăng ngày 02/11/2026): agent access parity. Mọi thứ bạn làm được, agent của bạn làm được. Mọi control trên UI đều có một agent tool tương ứng. Theo anh, điều này có hệ quả lớn, giúp bạn đi nhanh hơn đối thủ rất nhiều, vì nó cho phép bạn đi ở tốc độ agentic, tốc độ của agent.
Anh tập trung vào agent và gõ "list pages tools". Agent liệt kê toàn bộ tool nó có để thao tác trên page (demo trong video đăng ngày 02/11/2026). Trên màn hình là năm tool làm việc trên cùng một cây folder và page do factory lưu: pages_read, pages_create, pages_update, pages_delete, cộng với tsf_ui (focus/unfocus) để chuyển màn hình sang một page hay folder. Theo anh, agent thực sự có quyền truy cập mọi thứ ta có bên trong tiny software factory.
Anh hứa cho xem thêm một core feature để thấy rõ ý mình, và mở đầu bằng một câu: theo IndyDevDan (video đăng ngày 02/11/2026), bạn không thực sự sở hữu agent của mình nếu bạn không có core four control.
9. Core four control: context, model, prompt, tools
Core four là context, model, prompt, tools. Theo IndyDevDan (video đăng ngày 02/11/2026), một software factory thực thụ phải cho bạn toàn quyền kiểm soát agent. Trong giao diện, anh mở settings: một danh sách settings đầy đủ, chia thành phần essentials, phần core four và phần advanced. Anh nói về core four vì đây là thứ tạo nên agent của bạn.
Theo anh (video đăng ngày 02/11/2026): nếu bạn làm chủ core four, bạn sẽ làm chủ agent. Và nếu bạn cấu hình và tuỳ biến được nó, bạn có thể build những agent không ai khác build được. Trong tiny software factory, điều đó là tất cả.

Đầu tiên là một context bar. Theo lời anh (demo trong video đăng ngày 02/11/2026), auto compaction đặt ở 200K, force compaction ở 500K; khi agent vượt ngưỡng 200K, nó bắt đầu compact ở chế độ nền. Anh nói đây là một feature then chốt của durable agent.
Tiếp theo là model selection và thinking level, chia thành các tier. Theo IndyDevDan (video đăng ngày 02/11/2026), điều này rất quan trọng: bạn không muốn dính chặt vào một model; bạn muốn dùng đúng model cho đúng việc, ở đúng điểm cân bằng giữa performance, cost và speed.
Rồi có một system prompt mà anh đã prompt engineer; theo anh (video đăng ngày 02/11/2026), nó làm những việc rất cụ thể bên trong software factory. Và tất nhiên có các tool: bạn thấy toàn bộ tool agent có ở đó, rồi tới một số settings khác.
Khi các feature bắt đầu chồng lên nhau, anh cho xem lại (demo trong video đăng ngày 02/11/2026). Trong settings của core four: phần context, auto compaction đang bật; chi tiết model; tất cả prompt được tách ra, gồm custom prompt, extension prompt, và những custom prompt có thể nối thêm vào agent bất cứ lúc nào. Còn tất cả tool agent được dùng thì xem được ở chế độ quick view: hiện mô tả của từng tool, rồi hiện đầy đủ tham số theo cú pháp bạn thích dùng để nạp tool.
10. Agent tự sửa chính mình
"Các feature đang bắt đầu chồng lên nhau rồi", IndyDevDan nói (video đăng ngày 02/11/2026), và anh cho xem agentic access parity thực sự nghĩa là gì. Anh đóng khung chính, tập trung vào agent, rồi chạy:
disable all coding tools, update thinking level to max.
Agent tự sửa chính mình (demo trong video đăng ngày 02/11/2026). Theo anh, đây là một trong những lợi thế then chốt của một durable agent có đúng tool: "reflection for agents", sự phản tỉnh cho agent.

tsf_settings để đọc, cập nhật rồi đọc lại, và báo: coding-tools extension đã tắt (read, write, edit, bash không còn), thinking giờ là "max" trên Workhorse A; các tool page, image, tsf và factory prompt vẫn bật.Anh mở lại settings (demo trong video đăng ngày 02/11/2026). Anh nói thinking giờ đã đặt ở "high", còn câu trả lời của agent trên màn hình ghi "max". Ở phần tools, toàn bộ coding tool (read, write, edit, bash) đã bị tắt. Theo anh, agent có một bộ tool cụ thể mà ta tinh chỉnh được, và nó có thể tự sửa chính mình tới một giới hạn hữu ích mà, một lần nữa, bạn tự đặt.
Theo IndyDevDan (video đăng ngày 02/11/2026), rõ ràng năng lực này có thể rất nguy hiểm nếu bạn không kiểm soát nó đúng cách. Nhưng agentic access parity cho agent làm mọi thứ bạn làm được. Và theo anh, những tuỳ biến quan trọng nhất mà một agentic engineer có thể làm lúc này là cấu hình agent và phần code bao quanh agent. Làm được việc đó ở tốc độ agentic thì bạn sẽ đi nhanh hơn nhiều. Ta tuỳ biến được core four nhờ agentic access parity.
11. Extensible harness: agent ghép từ các lát năng lực
Điều đó dẫn tới một feature lớn khác của tiny software factory: bạn có thể build một extensible harness. Theo IndyDevDan (video đăng ngày 02/11/2026), near-loop agent của factory này được build trên những lát năng lực (slices of capability). Anh giải thích bằng cách quay lại menu settings, xuống phần advanced, vào mục harness.
Ở đó, agent là một tổ hợp của nhiều agent harness (demo trong video đăng ngày 02/11/2026): factory harness; coding tools, mà như ta thấy đã bị tắt hẳn; page harness; image generation harness, thêm một lớp năng lực nữa; và factory controls. Không tính phần settings mặc định của coding agent, anh đã chồng thêm bốn lớp lên trên. Theo anh, phần này tuỳ biến được hoàn toàn.

12. Customizable DX/UX và liquid software
Theo IndyDevDan (video đăng ngày 02/11/2026), những tool dùng sướng tay tạo ra trải nghiệm tốt hơn, và trải nghiệm tốt hơn nghĩa là bạn sẵn lòng đầu tư hơn vào những tool mình đang build và đang dùng. Vì vậy feature tiếp theo rất quan trọng: customizable DX/UX. Bạn tuỳ biến tiny software factory tới tận lõi: theme, cập nhật nav bar, hotkey, animation. Hãy nặn factory theo cách bạn làm việc.
Anh chỉ ra: có lẽ bạn đã để ý anh mở settings bằng một hotkey. Theo anh (video đăng ngày 02/11/2026), nếu muốn đi nhanh, tool bạn dùng phải cho phép bạn làm thế, và tiny software factory được build với ý đó trong đầu. Anh tiếp tục mở rộng theme bằng một lệnh:
update to another dark theme, then add context bar to the agent nav bar, then add status in the global nav bar on the left side
Agent khởi chạy, kiểm tra danh sách theme, và vì có toàn quyền truy cập, nó cập nhật settings (demo trong video đăng ngày 02/11/2026). Vài thứ đã đổi: trạng thái của agent đã lên nav bar, và theme cũng đã đổi. Một lần nữa, ta có quyền truy cập agentic tới mọi thứ ta làm được trên UI, nên ta đi được ở tốc độ của agent.

Anh nhấn: full agentic access parity là tới cả những việc đơn giản như thế này. Anh gõ "unselect the page", và agent đóng page đang mở (demo trong video đăng ngày 02/11/2026). Mọi thứ bạn làm được, agent của bạn cũng làm được. Theo anh, chính những thao tác nhỏ mà bạn và anh làm mới cộng dồn lại thành lớn theo thời gian.
Context bar trông hơi chật, nên anh gõ "move context bar into full width mode" để có thêm chỗ; nó bị đẩy xuống dưới (demo trong video đăng ngày 02/11/2026). Theo anh, bạn có thể lấy cái này, tuỳ biến nó, làm bất cứ điều gì bạn muốn, biến nó thành của mình. Rồi vì không định dùng nhiều context, anh gõ "drop context bar".
Anh không thích theme này lắm, nên quay vào phần theme trong settings và đổi sang "Midnight" (demo trong video đăng ngày 02/11/2026). Ta có thể tiếp tục tuỳ biến thoả thích. Trong nav bar, bạn thấy chính xác agent đang sắp xếp giao diện ra sao. Có thể cập nhật animation để phân biệt lúc agent đang làm và lúc không. Và có hotkey để cấu hình toàn bộ ứng dụng, đi thật, thật nhanh.
Theo IndyDevDan (video đăng ngày 02/11/2026), trong một thế giới mà phần mềm có thể thay đổi với tốc độ ánh sáng, tooling cốt lõi và các ứng dụng cốt lõi của ta phải được build với điều đó trong đầu. Anh gọi đây là liquid software: nó sinh ra để được thay đổi, để được tuỳ biến, và đó là một thuộc tính then chốt của tiny software factory. Anh gõ "switch back to default tsf theme" để trở về theme mặc định.
13. Cron prompts: prompt chạy theo lịch
Điều gì khác làm tiny software factory mạnh? Theo IndyDevDan (video đăng ngày 02/11/2026), nếu bạn muốn tiến gần vòng lặp và cuối cùng ra khỏi vòng lặp, bạn sẽ cần cron, cụ thể là cron prompts. Chúng đúng là thứ bạn nghĩ: prompt chạy theo lịch, do agent chạy trong lúc bạn vắng mặt. Theo anh, đây là một bước nâng cấp lớn cho agentic engineering, vì với tiny software factory, ý tưởng này triển khai nhanh được lên bất kỳ vấn đề nào bạn có.
Mặc định (out of the box), hotkey cho cron là R (demo trong video đăng ngày 02/11/2026). Mỗi cron có một bộ thành phần đơn giản: một tên, một lịch, và một prompt. Chỉ vậy thôi. Theo anh, điều này cho bạn chạy ngay các lịch lặp, các job lặp, tức thì, với chi phí bằng không.

Một đoạn của prompt job mẫu "Codebase pulse" trên màn hình:
## Purpose Keep a page called Pulse current with the codebase changes that matter, newest first, so the engineer sees what moved since they last looked. ## Variables - PAGE: Pulse - SINCE: the time of the newest entry on PAGE ## Instructions - When PAGE does not exist yet, create it and take SINCE as one day ago.
14. Demo cron: mỗi phút một khái niệm mới
Anh tạo một cron để bắt đầu lấy giá trị thật từ near-loop agent (demo trong video đăng ngày 02/11/2026). Vì trước đó đã cho agent viết các trang language basics, anh gõ (theo màn hình và lời anh):
Add cron: every minute add a new file to each of our programming languages where you'll breakdown one new concept each
"Xem agent nghĩ gì về việc này", anh nói (demo trong video đăng ngày 02/11/2026). Agent nêu hai điểm vướng; anh đọc một điểm: nó không có quyền ghi file. "Không sao, nó không cần cái đó." Anh nhắc thêm rằng chạy như vậy thì mỗi ngày là rất nhiều, rồi bảo: "Không sao. Cứ xác nhận. Dùng page tools." Cron "Language Concept Minute" được tạo và bắt đầu chạy workflow đó mỗi phút: đọc các page rồi thêm một kiến thức nền tảng mới vào folder của từng ngôn ngữ.

Theo anh, rõ ràng đây chỉ là một ví dụ ngẫu nhiên để cho thấy cảm giác thật bên trong tiny software factory. Kết quả (demo trong video đăng ngày 02/11/2026): với Python là context managers, câu lệnh with kinh điển, decorator context manager, "trông tuyệt"; với TypeScript là utility types, "trông tuyệt", có mục vì sao nó quan trọng và các lỗi hay gặp ở cuối; với Rust là lifetimes, một nhãn trên một borrow cho compiler biết nó còn hợp lệ bao lâu, cũng có vì sao nó quan trọng và các lỗi hay gặp. "Tuyệt vời."
Gần hết một phút, agent nhận event thêm một lần nữa và cron chạy tiếp (demo trong video đăng ngày 02/11/2026). Theo IndyDevDan, phần quan trọng là nó chạy dù anh có ở đây hay không: đây là một ứng dụng durable, anh có thể refresh bao nhiêu tùy thích, có thể đóng cửa sổ browser, và agent cứ tiếp tục làm việc, tiếp tục chồng thêm nội dung.
Theo anh (video đăng ngày 02/11/2026), cron prompt là một cách cực kỳ quan trọng, mạnh, nhanh và đơn giản để thêm job lặp vào tiny software factory. "Bạn đang đi nhanh. Bạn đang làm xong việc."
Nguồn và liên kết 4 nguồn
- Tên gốc: Tiny Software Factories: Agentic Engineering DONE WRONG
- Sự kiện: YouTube
- Video gốc: https://www.youtube.com/watch?v=1v7ldJiyH-Y youtube.com
- Kênh YouTube IndyDevDan (IndyDevDan): youtube.com/channel/UC_x36zCEGilGpB1m-V4gmjg youtube.com