Một vòng lặp tác nhân (agent loop) là sự khác biệt giữa việc nhờ AI giúp đỡ và thức dậy với công việc đã hoàn thành. Hầu hết mọi người không bao giờ xây dựng một vòng lặp vì một trăm lần lặp trên một mô hình tiên tiến tốn rất nhiều tiền.
Bên trong: giải thích mô hình vòng lặp trong một sơ đồ, hai thiết lập chính xác (Claude Code và API thô), và phép toán bộ nhớ đệm (cache) khiến K3 trở thành cỗ máy vòng lặp.
Vòng lặp đầu tiên của bạn chạy tối nay với giá khoảng $0.39 mỗi lượt.
Đây là thiết lập đầy đủ 👇
Trước khi đi sâu vào, tôi chia sẻ ghi chú hàng ngày về AI & vibe coding trong kênh Telegram của tôi: https://t.me/zodchixquant 🧠

Vòng lặp thực sự là gì
Bỏ qua những lời thổi phồng, một vòng lặp chỉ là bốn bước lặp lại:
1MỤC TIÊU → THỬ NGHIỆM → KIỂM TRA → (tốt hơn? giữ lại : thử lại)2 ↑__________________________|
- Mục tiêu: một vạch đích có thể đo lường được, không phải là một cảm giác mơ hồ. "Tất cả các bài kiểm tra đều pass", "trang tải dưới 1s", "điểm số trên 90"
- Thử nghiệm: mô hình thực hiện một đơn vị công việc hướng tới mục tiêu đó
- Kiểm tra: một thứ gì đó xác minh kết quả so với mục tiêu. Một bộ kiểm thử, một trình linter, một mô hình thứ hai
- Lặp lại: đưa kết quả kiểm tra trở lại, làm lại, dừng khi đạt được mục tiêu hoặc hết ngân sách
Vậy thôi. Mọi thứ khác (bộ nhớ, tác nhân phụ, chạy qua đêm) chỉ là phần trang trí trên chu kỳ này.
Tại sao lại chọn K3: kinh tế học của vòng lặp
Các vòng lặp đọc lại cùng một ngữ cảnh mỗi lượt: codebase, mục tiêu, lịch sử. Trên hầu hết các mô hình, bạn phải trả toàn bộ chi phí cho sự lặp lại đó. Trên K3 thì không:
1Chi phí mỗi lượt = token_mới × $3/M + token_cache × $0.30/M23Hình dạng thực tế (800K ngữ cảnh ổn định + 50K token mới mỗi lượt):4K3: $0.24 + $0.15 = $0.39/lượt5Fable 5: 850K × $10/M = $8.50/lượt
Một vòng lặp 50 lượt qua đêm: khoảng $20 trên K3, khoảng $425 trên Fable 5. Đó không phải là giảm giá, đó là sự khác biệt giữa "cứ để nó chạy" và "theo dõi nó như một con diều hâu".
Một quy tắc: giữ ngữ cảnh ổn định của bạn như một tiền tố giống hệt nhau mỗi lượt, nhiệm vụ ở cuối, để bộ nhớ đệm thực sự hoạt động.

Thiết lập A: Claude Code (con đường 5 phút)
Nếu bạn sống trong Claude Code, các vòng lặp được tích hợp sẵn và K3 nằm bên dưới thông qua cấu hình chính thức của Moonshot:
1export ANTHROPIC_BASE_URL=https://api.moonshot.ai/anthropic2export ANTHROPIC_AUTH_TOKEN=${YOUR_MOONSHOT_API_KEY}3export ANTHROPIC_MODEL=kimi-k34export ANTHROPIC_DEFAULT_OPUS_MODEL=kimi-k35export ANTHROPIC_DEFAULT_SONNET_MODEL=kimi-k36export ANTHROPIC_DEFAULT_HAIKU_MODEL=kimi-k37export CLAUDE_CODE_SUBAGENT_MODEL=kimi-k38export ENABLE_TOOL_SEARCH=false9export CLAUDE_CODE_AUTO_COMPACT_WINDOW=104857610claude
Sau đó, vòng lặp là hai lệnh:
- /goal đặt vạch đích: "tất cả các bài kiểm tra trong tests/ đều pass và mức độ bao phủ mã duy trì trên 80%". Claude Code tiếp tục làm việc hướng tới mục tiêu đó thay vì dừng lại ở câu trả lời đầu tiên
- /loop làm cho nó lặp lại: phiên làm việc chạy lại theo lịch trình hoặc cho đến khi mục tiêu được giữ vững
Xác nhận bạn đang sử dụng K3 qua /status (menu /model sẽ không hiển thị nó). Cửa sổ tự động nén 1M trong cấu hình có nghĩa là các vòng lặp dài hiếm khi bị nén, giữ cho lịch sử lặp tồn tại.
Thiết lập B: vòng lặp API thô (toàn quyền kiểm soát)
Đối với các vòng lặp bên ngoài Claude Code, đây là một vòng lặp tối thiểu hoàn chỉnh, tương thích với OpenAI:
1from openai import OpenAI23client = OpenAI(4 api_key=MOONSHOT_API_KEY,5 base_url="https://api.moonshot.ai/v1",6)78# Stable prefix: identical every turn = cache hits at $0.30/M9STABLE = f"""Bạn là một tác nhân lập trình trong một vòng lặp.10MỤC TIÊU: làm cho tất cả các bài kiểm tra trong dự án dưới đây đều pass.11DỰ ÁN:12{project_dump}13QUY TẮC:14- Một thay đổi tập trung mỗi lượt15- Giải thích những gì bạn đã thay đổi và tại sao trong 2 dòng16- Nếu bài kiểm tra pass, trả lời chính xác: GOAL_REACHED17"""1819history = []20MAX_TURNS = 302122for turn in range(MAX_TURNS):23 result = run_tests() # Kiểm tra của bạn: pytest, npm test, v.v.24 if result.passed:25 print(f"Hoàn thành trong {turn} lượt")26 break2728 response = client.chat.completions.create(29 model="kimi-k3",30 messages=[31 {"role": "system", "content": STABLE},32 *history[-6:], # 3 trao đổi cuối, có giới hạn33 {"role": "user", "content":34 f"Lượt {turn}. Kết quả kiểm tra:\n{result.output}\n"35 f"Sửa lỗi tiếp theo."},36 ],37 )38 change = response.choices[0].message.content39 apply_change(change) # Ghi chỉnh sửa, commit vào một nhánh40 history += [41 {"role": "user", "content": f"Đã cung cấp kết quả kiểm tra lượt {turn}"},42 {"role": "assistant", "content": change},43 ]
Ba chi tiết quan trọng:
- Việc kiểm tra là code, không phải cảm tính. run_tests() quyết định tiến độ, mô hình không bao giờ tự đánh giá
- Lịch sử có giới hạn. Chỉ 3 trao đổi cuối; tiền tố ổn định mang ngữ cảnh bền vững và luôn thân thiện với bộ nhớ đệm
- Mọi thay đổi đều được đưa vào một nhánh. Vòng lặp có thể sai 10 lần miễn là nhánh chính không bao giờ thấy nó
Rào cản trước khi bạn rời đi
- Giới hạn ngân sách: đếm token mỗi lượt, dừng vòng lặp ở một mức giới hạn đô la. MAX_TURNS là chưa đủ, một lượt phình to có thể tiêu tốn nhiều hơn mười lượt bình thường
- Giới hạn tiến độ: nếu cùng một bài kiểm tra thất bại 3 lượt liên tiếp, hãy dừng lại và đánh dấu. Các vòng lặp không thể hội tụ sẽ đốt tiền một cách lịch sự
- Một điểm cần lưu ý với K3: suy luận hiện chỉ chạy ở chế độ tối đa, vì vậy mỗi lượt mang đầu ra suy nghĩ đầy đủ với giá $15/M. Giữ cho các lượt tập trung, một lỗi mỗi lượt, và phía đầu ra sẽ ổn định
Những lỗi thường gặp
- Mục tiêu mơ hồ. "Cải thiện code" sẽ lặp vô tận. Một vòng lặp chỉ tốt như vạch đích có thể kiểm tra được của nó
- Để mô hình tự đánh giá. "Trông có vẻ đúng với tôi" là cách các vòng lặp tạo ra rác. Người kiểm tra phải là bên ngoài: bài kiểm tra, linter, hoặc một mô hình thứ hai với một tiêu chí
- Phá vỡ bộ nhớ đệm. Dấu thời gian, ID ngẫu nhiên, hoặc các tệp được sắp xếp lại trong tiền tố của bạn có nghĩa là mỗi lượt sẽ tính phí $3/M thay vì $0.30. Giống hệt nhau có nghĩa là giống hệt nhau
- Không có kỷ luật nhánh. Một vòng lặp không được giám sát với quyền ghi vào nhánh chính là một câu chuyện kinh dị với nhiều bước hơn
- Bắt đầu với chạy qua đêm. Chạy các vòng lặp đầu tiên của bạn trong khi theo dõi, 10-15 lượt. Kiếm được sự tin tưởng trước khi bạn ngủ quên trên nó
Thiết lập trong 15 phút
- Lấy một khóa API Moonshot, nạp tiền trong khung thưởng 10-30%, có hiệu lực đến ngày 11 tháng 8 (3 phút)
- Chọn Thiết lập A hoặc B và kết nối nó (5 phút)
- Viết một mục tiêu có thể kiểm tra được cho một nhiệm vụ nhỏ thực tế: một bài kiểm tra thất bại, một lần lint pass (2 phút)
- Chạy 10 lượt có giám sát, xem quá trình kiểm tra thúc đẩy công việc (4 phút)
- Ghi lại chi phí. Sau đó quyết định vòng lặp tiếp theo sẽ lớn đến đâu (1 phút)
Vòng lặp là ý tưởng lâu đời nhất trong lập trình được áp dụng cho công cụ mới nhất. K3 chỉ làm cho nó đủ rẻ để thực sự sử dụng.
Cảm ơn bạn đã đọc!
Tôi chia sẻ ghi chú hàng ngày về AI & vibe coding trong kênh Telegram của tôi: https://t.me/zodchixquant 🧠






