posts_db(30) ─┐
source_today ─┴─► context.json ─► [02]
facts[] + URL, already_said[]
Gom đúng thứ model cần thấy: 30 bài gần nhất và nguồn hôm nay, mọi dữ kiện kèm URL.Gathers exactly what the model should see: the last 30 posts and today's source, every fact with a URL.
- Dùng choUse for
- Nhà máy nội dung hằng ngày, chatbot cần lịch sử, bản tin tổng hợp.Daily content factories, chatbots needing history, digest newsletters.
- ĐượcGain
- Ít bịa đặt, chống lặp, test được, gần như miễn phí.Less fabrication, no repetition, testable, nearly free.
- MấtLose
- Nguồn sai thì kịch bản sai rất trôi chảy; hỏng âm thầm khi trang nguồn đổi cấu trúc.A bad source yields a smoothly wrong script; breaks silently when the source page changes.
Đổi sự tự do tìm thông tin của model lấy việc biết chính xác model đã thấy gì.Trades the model's freedom to find information for knowing exactly what it saw.
Dấu hiệu cần:Signal: model hay lặp lại ý của tuần trước.the model keeps repeating last week's points.
02Script + shot list
SinhGenerate
context.json ─► [LLM, pinned] ─► script.json
hook · beats[5]{voice, on_screen, shot}
claims[] → facts[i]
Lần gọi LLM duy nhất được quyết định nội dung. Trả JSON đúng schema, mỗi khẳng định trỏ về một dữ kiện.The only LLM call allowed to decide content. Returns schema-valid JSON; every claim points to a fact.
- Dùng choUse for
- Kịch bản theo khuôn, mô tả sản phẩm hàng loạt, biên bản họp theo mẫu.Template scripts, bulk product copy, minutes on a fixed template.
- ĐượcGain
- Một điểm bất định duy nhất, chi phí dự đoán được, đổi model không đụng chặng khác.One point of non-determinism, predictable cost, swap models without touching other stages.
- MấtLose
- Vẫn có thể bịa; năm nhịp cố định nhanh nhàm; model nâng cấp có thể đổi giọng âm thầm.Can still fabricate; five fixed beats get stale; upgrades can shift voice silently.
Đổi khả năng tự sửa nhiều vòng lấy chi phí cố định và một điểm lỗi dễ khoanh vùng.Trades multi-pass self-correction for fixed cost and one easily isolated failure point.
Dấu hiệu cần:Signal: mọi đầu ra có cùng cấu trúc, chỉ khác nội dung.every output shares a structure, only content differs.
audio_id ∈ licensed? claim → facts[i]?
banned topic? hook repeat?
all pass ─► [04] any fail ─► [02] + reason
Bộ quy tắc chặn kịch bản trước khi tốn công render. Bị chặn thì quay về chặng 02, không bao giờ đi tiếp.Rules that block a script before render time is spent. Blocked goes back to 02, never forward.
- Dùng choUse for
- Nội dung công khai có rủi ro pháp lý, email marketing, agent được chạy lệnh.Public content with legal risk, marketing email, agents that run commands.
- ĐượcGain
- Chặn lỗi ở chỗ rẻ nhất; quy tắc đọc được, audit được; chạy trong mili giây.Catches errors where cheapest; rules are readable and auditable; runs in milliseconds.
- MấtLose
- Chỉ chặn thứ đã viết thành luật; "có trỏ nguồn" chưa phải "nguồn ủng hộ claim".Only blocks what's written down; "points to a source" isn't "the source supports it".
Đổi sự đa dạng và tốc độ ra bài lấy việc không bao giờ phải gỡ video đã đăng.Trades variety and speed for never taking down a published video.
Dấu hiệu cần:Signal: một lỗi có thể dẫn tới gỡ bài hoặc khiếu nại bản quyền.one mistake can mean a takedown or copyright claim.
voice ─► TTS ─► wav ─┐
shots ─► library ────┼─► ffmpeg ─► reel.mp4 9:16
captions + timing ───┘ (burned in)
Biến kịch bản thành video bằng TTS, ffmpeg và phụ đề in thẳng vào hình. Việc của máy, không phải của LLM.Turns the script into video with TTS, ffmpeg and burned-in captions. A machine job, not an LLM job.
- Dùng choUse for
- Video theo template, audiobook từ văn bản, báo cáo PDF định kỳ.Template video, audiobooks from text, periodic PDF reports.
- ĐượcGain
- Tất định, lỗi tái hiện được; render reel 60 giây dưới một phút.Deterministic, reproducible bugs; a 60-second reel renders in under a minute.
- MấtLose
- ffmpeg khó gỡ lỗi; giọng TTS và kho cảnh có hạn làm video giống nhau.ffmpeg is hard to debug; one TTS voice and a small library make videos look alike.
Đổi tay nghề của biên tập viên lấy một video mỗi ngày với chi phí gần bằng không.Trades an editor's craft for a daily video at near-zero cost.
Dấu hiệu cần:Signal: khung hình, font, nhịp cắt giống nhau giữa các video.framing, fonts and cut rhythm match across videos.
ffprobe 1080x1920, duration
silencedetect speech < 1.5s
ebur128 true peak ≤ −1 dBTP
fail ─► [04] ×2 ─► human
Gate kiểm file video bằng code trước khi đăng. Trả lại render tối đa hai lần, rồi dừng.A code gate on the video file before posting. Back to render at most twice, then stop.
- Dùng choUse for
- Mọi pipeline ra file, CI/CD, kiểm JSON từ LLM.Any file-producing pipeline, CI/CD, validating LLM JSON.
- ĐượcGain
- Bắt sai tỷ lệ, mất tiếng, khung đen trước khi ai thấy; chạy vài giây.Catches wrong ratio, lost audio, black frames before anyone sees; runs in seconds.
- MấtLose
- Đúng kỹ thuật vẫn có thể nhàm; render lại cùng đầu vào thường ra cùng lỗi.Technically correct can still be boring; same input usually re-renders the same failure.
Đổi khả năng chấm chất lượng sáng tạo lấy sự chắc chắn tuyệt đối về chất lượng kỹ thuật.Trades judging creative quality for certainty about technical quality.
Dấu hiệu cần:Signal: đầu ra có đặc tả kỹ thuật đo được.the output has a measurable technical spec.
reel + caption ─► platform API ─► post_id
24–72h later
retention ─► posts_db ─► [01] tomorrow
Lên lịch đăng qua API, rồi kéo số liệu về. Đây là chặng duy nhất không rút lại hoàn toàn được.Schedules via API, then pulls metrics back. The only stage that can't be fully undone.
- Dùng choUse for
- Kênh đăng theo lịch, đăng chéo nhiều nền tảng, thử A/B hook.Scheduled channels, cross-posting, A/B testing hooks.
- ĐượcGain
- Khép vòng phản hồi; đăng đúng giờ khi bạn vắng; gỡ nhanh bằng post_id.Closes the feedback loop; posts on time while you're away; fast takedown via post_id.
- MấtLose
- API đổi liên tục, cần kiểm duyệt, có quota; không dùng được nhạc trending.APIs change, need review, have quotas; no trending sounds.
Đổi lần nhìn cuối của con người lấy sự đều đặn không phụ thuộc lịch của bạn.Trades the last human look for consistency independent of your calendar.
Dấu hiệu cần:Signal: giờ đăng cố định mỗi ngày.the same publish time every day.
Observability
Xuyên suốtCross-cutting
run_id=2026-10-02
[02] ok 6.1s $0.012
[03] FAIL claim#3 no source
[02] ok (attempt 2)
Mỗi chặng ghi đầu vào, đầu ra, thời gian, chi phí và kết quả theo một mã chạy chung.Each stage logs input, output, duration, cost and result under one shared run ID.
- Dùng choUse for
- Pipeline chạy khi không ai nhìn, hệ có LLM, kiểm soát chi phí API.Unattended pipelines, LLM systems, API cost control.
- ĐượcGain
- Tìm chặng lỗi trong vài phút; biết chính xác chi phí mỗi reel.Find the failing stage in minutes; know exact cost per reel.
- MấtLose
- Log không ai đọc là vô dụng; lưu video trung gian tốn dung lượng.Unread logs are useless; storing intermediate video eats space.
Đổi công sức và dung lượng lấy khả năng trả lời "vì sao" cho mọi sự cố.Trades effort and storage for answering "why" on every incident.
Dấu hiệu cần:Signal: lỗi chỉ được phát hiện sau khi đã xảy ra.failures are only found after the fact.
What got saved
Xuyên suốtCross-cutting
[06] retention ─► posts_db
─► [01] top_posts + already_said
(memory lives in data, model unchanged)
Kết quả của chặng 06 chảy ngược về chặng 01. Hệ thống nhớ bằng dữ liệu, không bằng fine-tune.Stage 06 results flow back to 01. The system remembers through data, not fine-tuning.
- Dùng choUse for
- Nội dung cải thiện theo khán giả, agent làm dài ngày, chăm sóc khách hàng.Audience-driven content, long-running agents, customer care.
- ĐượcGain
- Cải thiện không tốn fine-tune; minh bạch; đổi model vẫn giữ bộ nhớ.Improves without fine-tuning; transparent; memory survives model swaps.
- MấtLose
- Dễ kẹt ở tối ưu cục bộ; số liệu từng bài rất nhiễu.Prone to local optima; per-post metrics are noisy.
Đổi khả năng học sâu của fine-tune lấy sự rẻ, minh bạch và đảo ngược được.Trades fine-tuning's deeper learning for cheap, transparent, reversible memory.
Dấu hiệu cần:Signal: có chỉ số thành công đo được sau khi phát hành.there's a success metric measurable after release.
Bounded loops
Xuyên suốtCross-cutting
for try in 1..2:
r = step(input, feedback)
if gate(r).ok: return r
escalate_to_human(run_id)
Mọi vòng thử lại có số đếm; hết lượt thì chuyển cho người. Không giới hạn thì harness chỉ là while(true) đắt tiền.Every retry loop has a counter; out of tries goes to a human. Unbounded, a harness is an expensive while(true).
- Dùng choUse for
- Gọi lại LLM khi sai, gọi API hay lỗi tạm thời, agent sửa code tới khi test xanh.LLM retries, flaky API calls, agents fixing code until tests pass.
- ĐượcGain
- Chi phí tối đa biết trước; lỗi im lặng thành lỗi có tiếng.Known maximum cost; silent failures become loud.
- MấtLose
- Có ngày không có bài; báo động liên tục làm người nhận chai lì.Some days ship nothing; constant alerts cause fatigue.
Đổi khả năng "cuối cùng cũng xong" lấy chi phí và thời gian tối đa biết trước.Trades "it'll get there eventually" for known maximum cost and time.
Dấu hiệu cần:Signal: sơ đồ có một cạnh quay lui.the diagram has a back-edge.