Bot review PR GitHub.
Claude Sonnet 4.6 + tool calling + webhook GitHub. Mem-posting komentar inline dengan kategori severity. ~250 baris Python.
Arsitektur — Yang kita bangun
- GitHub mengirim webhook
pull_requestsaat PR dibuka / disinkronkan. - Handler FastAPI kita memverifikasi signature GitHub + memulai review di latar belakang.
- Loop review memanggil Claude Sonnet dengan diff PR + dua tool:
read_filedanpost_review_comment. - Model berulang: membaca file, berpikir, mem-posting komentar, ulangi sampai puas (atau mencapai batas 15 langkah).
- Guardrail Anoman memeriksa setiap prompt + respons. Kebijakan tool memastikan bot hanya bisa memanggil dua tool yang kita deklarasikan.
1. Definisi tool — Apa yang bisa dilakukan bot
Dua tool. Skema dikirim ke model pada setiap panggilan. Set tool_choice: "auto" dan biarkan model yang memutuskan.
Tool definitions
2. Loop review — Loop agent dengan batas langkah
Loop agent berbasis tool yang standar: terus memanggil sampai model mengembalikan teks tanpa tool call (atau kita mencapai batas langkah untuk membatasi biaya).
Review loop
3. Entrypoint webhook GitHub — Jalankan bot dari webhook
GitHub webhook entrypoint (FastAPI)
Pola signature yang sama dengan webhook milik Anoman sendiri — lihat /docs/webhooks untuk resep verifikasinya.
4. Pengerasan untuk produksi — Tangani blokir guardrail + rate limit
Jangan retry pada blokir guardrail (akan gagal lagi dengan cara yang sama). Retry pada 503/504 dengan backoff eksponensial. Berhenti cepat saat anggaran terlampaui.
Robust call with retry + guardrail awareness
Deploy produksi — Tips dunia nyata
- Anggaran per key — tetapkan batas USD bulanan pada key Anoman bot-mu. PR yang lepas kendali kena 402 alih-alih menguras dompetmu.
- Policy group untuk tool — buat policy group khusus dengan
read_file+post_review_commentdi allowlist. Kini jika Anthropic sewaktu-waktu mengembalikan tool tak terduga, tool itu diblokir. - Tag Agent ID — kirim header
anoman-agent-id: code-revieweragar dashboard mengelompokkan semua panggilan di bawah satu agent. - Vision untuk screenshot — perluas untuk memanggil
gpt-4opada PR yang berisi lampiran gambar — berguna untuk PR design-system.
Resep lain untuk pola agentic.
Chat streaming, analisis dokumen batch, RAG dengan caching.