You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
main.py khởi động Docker (runtime/docker_env.py), tạo client LLM và chạy vòng lặp agent core/loop.AgentLoop.run(goal).
AgentLoop xây prompt gồm instruction hệ thống, lịch sử từ core/memory.AgentMemory, và goal người dùng; gọi LLM để tạo output.
core/decision_engine.DecisionEngine trích xuất code block (bash hoặc python) từ output của LLM.
Kiểm tra các pattern nguy hiểm (chặn lệnh interactive, server blocking, hoặc loop vô hạn).
Nếu hợp lệ, thực thi trong container Docker (runtime/docker_env.DockerEnv.exec) hoặc bọc/encode python và chạy.
Ghi lại action và observation vào AgentMemory.
Sau khi thực thi, core/reflection/self_check.ReflectionEngine gửi observation và ngữ cảnh cho LLM để quyết định continue hay fix_error.
Vòng lặp lặp lại tới khi agent báo xong bằng cách khiến output chứa ALL_TASKS_COMPLETED.
File chính và nội dung ngắn gọn
main.py:
Entrypoint; đọc .env, khởi docker, tạo LLMClient, chạy AgentLoop.run(goal) và dọn docker khi kết thúc.
core/loop.py (class AgentLoop):
Xây prompt hệ thống (quy tắc, khả năng, workflow verification), gửi đến LLM, lấy output, gọi DecisionEngine.execute, ghi observation và gọi ReflectionEngine.reflect.
Quản lý số vòng lặp tối đa (max_iters).
core/decision_engine.py (class DecisionEngine):
Trích xuất code block từ markdown do LLM trả về.
Áp luật bảo mật: chặn các lệnh interactive, chặn chạy server blocking trực tiếp (yêu cầu chạy background với nohup ... &), chặn các pattern nguy hiểm trong Python.
Thực thi code trong container và trả về observation; lưu step vào AgentMemory.
core/memory.py (class AgentMemory):
Lưu lịch sử hành động và kết quả (steps) với giới hạn max_steps.
to_prompt_context() xây lại context để chèn vào prompt (giữ 2 bước đầu + 10 bước cuối, rút gọn phần giữa nếu quá dài).