Apache Burr: Membangun agen dan aplikasi AI yang andal
(burr.apache.org)- Apache Burr adalah framework untuk membangun aplikasi AI berbasis pengambilan keputusan dengan Python, mulai dari chatbot sederhana hingga sistem multi-agent yang kompleks
- Aplikasi didefinisikan sebagai kumpulan aksi dan transisi, dan ditulis dengan fungsi serta decorator Python tanpa DSL atau YAML
- Burr UI menyediakan pemantauan, debugging, dan pelacakan per langkah eksekusi, serta memungkinkan perubahan status dipantau secara real-time
- Status dapat disimpan ke disk, database, atau backend kustom dan dilanjutkan dari titik jeda, serta mendukung penantian input manusia dan eksekusi paralel
- Terintegrasi dengan alat yang sudah ada seperti OpenAI, Anthropic, LangChain, FastAPI, PostgreSQL, dan lainnya, tanpa efek vendor lock-in atau wrapper
Membangun agen dan aplikasi AI yang andal
- Apache Burr adalah Apache Incubating Project yang memudahkan pengembangan aplikasi yang melakukan pengambilan keputusan
- Cakupannya meluas dari chatbot sederhana hingga sistem multi-agent yang kompleks
- Implementasinya menggunakan Python murni dan mengusung prinsip “no magic”
- Metrik publik yang ditampilkan meliputi 1.641 GitHub Stars, 379k+ unduhan PyPI, dan 457+ anggota Discord
API Python yang sederhana dan kuat
- Burr menyediakan antarmuka yang dapat dikomposisikan untuk membangun mulai dari chatbot hingga sistem multi-agent
- Kode contoh menggunakan
burr.coredenganaction,State, danApplicationBuilderuntuk mendefinisikan aksichat @action(reads=["messages"], writes=["messages"])menentukan status yang dibaca dan ditulisApplicationBuilder()mengonfigurasi aksi, transisi, status awal, dan pelacak lokal, lalu membangun aplikasi- Contoh eksekusi menggunakan bentuk
app.run(halt_after=["chat"], inputs={"llm_client": client})untuk meneruskan klien LLM sebagai input
Elemen yang dibutuhkan untuk membangun aplikasi AI
- Simple Python API mendefinisikan aplikasi sebagai kumpulan aksi dan transisi, hanya memakai fungsi dan decorator Python tanpa DSL atau YAML
- Built-in Observability memungkinkan semua tahap aplikasi dipantau, di-debug, dan dilacak secara real-time melalui Burr UI
- Persistence & State Management memungkinkan status disimpan otomatis ke disk, database, atau backend kustom dan dilanjutkan dari titik jeda
- Human-in-the-Loop memungkinkan eksekusi dihentikan di tahap mana pun untuk menunggu input manusia, sehingga cocok untuk alur persetujuan dan agen interaktif
- Branching & Parallelism mendukung eksekusi aksi paralel, fan out / fan in, pembangunan DAG kompleks, dan komposisi sub-aplikasi
- Testing & Replay meningkatkan keyakinan terhadap sistem AI melalui pemutaran ulang eksekusi sebelumnya, pengujian unit per aksi, dan verifikasi transisi status
Integrasi dengan stack yang sudah ada
- Burr terintegrasi dengan alat dan framework yang sudah digunakan, tanpa memerlukan vendor lock-in atau wrapper
- Integrasi LLM yang ditampilkan mencakup OpenAI, Anthropic, dan Instructor
- Integrasi framework yang ditampilkan mencakup LangChain, Hamilton, dan Haystack
- Integrasi UI dan serving yang ditampilkan mencakup Streamlit dan FastAPI
- Integrasi validasi dan penyimpanan yang ditampilkan mencakup Pydantic dan PostgreSQL
- Daftar integrasi lengkap dapat dilihat di dokumentasi
Pengalaman penggunaan dari developer dan tim
- Ulasan Peanut Robotics menyebut setelah mengevaluasi berbagai framework LLM, manajemen status Burr menjadi jawaban kuat untuk deployment robot berbasis pengambilan keputusan AI
- Ulasan Watto.ai menilai Burr memudahkan pembuatan aplikasi AI modular, dan UI-nya membuat proses debugging lebih mudah
- Ulasan Paxton AI menekankan bahwa Burr tidak memakai konsep aneh dan sulit dipahami hanya karena ini AI
- Ulasan Provectus menilai manajemen status Burr berguna untuk membuat snapshot status, debugging, replay, dan membangun kasus evaluasi
- Ulasan CognitiveGraphs menilai dibanding berbagai platform LLM agentic seperti LangChain, CrewAi, AutoGen, dan Agency Swarm, Burr menawarkan framework yang lebih kokoh untuk merancang perilaku kompleks
- Ulasan TaskHuman menyebut mereka bisa mulai dalam hitungan jam setelah berpindah dari LangChain ke Burr, dan kemudian memindahkan seluruh codebase ke Burr
Komunitas dan status proyek
- Komunitasnya dibangun sebagai ruang untuk meminta bantuan, berbagi proyek, dan berkontribusi pada masa depan Burr
- Jalur partisipasi tersedia melalui Discord, GitHub, dan Twitter / X
- Sumber daya proyek terhubung ke dokumentasi, contoh, YouTube, roadmap, dan changelog
- Apache Burr adalah proyek yang sedang dalam inkubasi di Apache Software Foundation, dengan dukungan dari Apache Incubator
- Status inkubasi tidak selalu mencerminkan kelengkapan atau stabilitas kode, tetapi menunjukkan bahwa proyek ini belum menerima persetujuan penuh dari ASF
1 komentar
Komentar Hacker News
Saya masih menahan penilaian soal framework agent, dan kegunaannya berbeda tergantung sifat agent-nya. Misalnya, kasus yang harus mengembalikan respons yang cukup bagus dalam 3 detik berbeda dengan kasus yang harus menyelesaikan satu masalah selama 3 jam
Pada akhirnya, agent bisa diringkas menjadi penyusunan konteks, pemanggilan LLM, eksekusi pemanggilan tool yang diminta, parsing output model akhir, lalu mengembalikannya ke frontend. Ada perluasan seperti memori atau pemanggilan tool asinkron, tetapi dari sudut pandang rekayasa perangkat lunak tradisional, ini tidak terlalu rumit
Semua orang ingin membuat framework agent mereka sendiri, tetapi jika memang harus membuat agent tertentu, menurut saya kode 1:1 yang disesuaikan untuk agent itu jauh lebih mudah dan lebih baik dalam pemeliharaan. Abstraksi framework sering menutupi logika inti dan malah mengganggu, dan pada akhirnya kita harus menyesuaikan diri dengan abstraksi yang dipilih framework sehingga kadang melenceng dari tujuan sebenarnya
Selain itu, dibutuhkan manajemen proyek yang menangani tiket, dependensi, progres, dan restart tiket yang macet, penyimpanan riwayat percakapan serta fitur memori, dreaming, dan pembelajaran kumulatif, observability untuk melihat biaya dan penggunaan, evaluasi prompt dan penyesuaian otomatis, pergantian penyedia model dan penguncian versi model, serta sandbox untuk menjalankan sesi nyata
Semuanya tidak harus didapat dari satu vendor, tetapi dalam kebanyakan kasus saya rasa kita sebaiknya tidak terkunci pada satu penyedia model, dan konteks milik sendiri serta pembelajaran kumulatif harus dimiliki langsung
Pada akhirnya, segala hal dalam aplikasi berjenis agent diwujudkan sebagai urutan token atau pemanggilan penyedia, jadi bentuk itu harus jelas di hampir setiap lapisan aplikasi
Namun orang tetap butuh pekerjaan atau mainan yang menyenangkan, dan “orang berikutnya” biasanya tidak dianggap terlalu penting, jadi tampaknya tidak masalah melemparkan hasil dari waktu bermain berbayar kepada mereka
Misalnya, Apache Burr tampaknya mendukung atau akan mendukung sistem vector RAG yang bisa dipasangi plugin, tetapi yang saya butuhkan adalah cara menambahkan dokumen ke konteks dan mempertahankannya sebagai bagian dari system prompt yang diperbarui, sambil memasukkan penyesuaian yang sangat spesifik ke dalam proses itu. Ini adalah cara memakai konsep RAG yang sudah ada secara khusus, jadi tidak terlalu cocok dengan framework tertentu
Untuk kebutuhan saya, implementasi kustom memang lebih tepat, tetapi pilihan engineering untuk memperbarui agent lama tetap menjadi persoalan
Membuat chatbot sendiri dari nol bisa saja mudah, atau bahkan lebih mudah, tetapi ceritanya berubah ketika kita harus menambahkan observability atau tracing. Jika cukup menambahkan satu environment variable lalu semua tracing bisa ditinjau di UI hampir tanpa pekerjaan tambahan, solusi buatan sendiri akan sulit bersaing
Saya penasaran apakah halaman ini dibuat dengan https://vorpus.github.io/performativeUI/
Halaman ini menginjak hampir semua klise khas landing page buatan AI semaksimal mungkin. Atau jangan-jangan memang sindiran yang disengaja
Saya senang memakai framework ini di proyek pribadi dan proyek kerja. Menyenangkan karena saya bisa mendapatkan workflow stateful yang andal untuk model AI serta observability gratis
Saya merangkai tool untuk me-mount state machine Burr sebagai MCP, memberi agent rel untuk diikuti, dan betapa pun rumitnya state machine itu, tool MCP tetap dibatasi pada penjelajahan state machine: https://github.com/msradam/theodosia
Sekarang saya sedang mengerjakan konversi skill menjadi state machine. Banyak skill populer sudah ditulis dalam bentuk langkah-langkah yang dapat diikuti model AI, jadi dengan memanfaatkan kemampuan eksplisit Burr, rasanya ini bisa dibuat lebih andal
Saya penasaran bagaimana perbandingannya dengan https://strandsagents.com/. Saya tertarik pada tool di area ini dan belum terikat pada tool tertentu, tetapi Bedrock + Serverless on Agent Core terasa seperti “jalur panduan yang mudah”. Hanya saja saya tidak suka ketergantungan pada platform
Sejauh ini rasanya tidak begitu, dan kadang malah terlihat seperti keduanya saling berbenturan
Di sini terlihat builder pattern dan dekorator. Python juga punya dekorator, tetapi menurut saya penggunaan yang paling tepat adalah sebagai “filter” yang diterapkan pada fungsi atau metode. Misalnya, fungsi ini di-cache, output fungsi ini selalu diserialisasi, dan fungsi ini disiapkan sebagai alat untuk mesin eksekusi bergaya agen
Menurut saya ini bukan untuk registrasi atau kontrol alur. Anda mungkin tidak setuju, tetapi seseorang harus mengatakannya. FastAPI terlalu banyak menyeret penggunaan dekorator modern ke arah yang keliru
Builder pattern lebih mirip konvensi yang muncul karena Rust tidak punya argumen bernama sebagai keyword, sementara fungsi Python sudah mengekspos kontrak bernama. Hampir tidak ada alasan untuk meneruskan parameter konfigurasi secara berurutan lewat rantai pemanggilan metode
Jika Anda perlu menambahkan state yang belum ada di konstruktor atau factory, itu bukan builder pattern melainkan registrasi. Satu-satunya tempat yang masih bisa ditoleransi untuk builder pattern kira-kira adalah query builder. Di sana kita benar-benar menumpuk konsep secara berulang, dan slot metadata berupa nama metode dan argumen keyword memang berguna. Menurut saya menggunakan metode yang menerima satu parameter tunggal alih-alih argumen keyword itu keliru
Ini tampak seperti versi yang cukup naif tentang apa itu agen AI yang andal
Keandalan berarti “bisakah ia menyelesaikan pekerjaan yang diberikan”, dan tidak terlalu berkaitan dengan mesin status
Saya baru pertama kali mendengar Burr, jadi saya penasaran kenapa proyek ini diinkubasi di Apache
Sebagian lulus dan menjadi nama yang dikenal semua orang, sebagian gagal dan masuk ke attic. ASF menyediakan dukungan organisasional dan umumnya membantu menumbuhkan komunitas yang baik
Halamannya terlihat seperti sampah sekali pakai yang dibuat dengan Claude Code, dan bahkan tidak berusaha berjalan tanpa JavaScript. Setidaknya ada konsistensi merek
Saya tidak bisa menemukan dasar penamaan yang eksplisit, tetapi untuk yang penasaran ada contoh Hamilton: https://github.com/apache/burr/tree/main/examples/multi-agen...
Keterkaitannya dengan Hamilton adalah bahwa ini merupakan pustaka open source kedua yang dirilis DAGWorks setelah pustaka Hamilton. Namanya membayangkan bagaimana jadinya jika Burr dan Hamilton bisa selaras, melampaui perbedaan mereka, dan membangun federasi yang lebih baik
Awalnya Burr dibuat sebagai mekanisme untuk menangani state di antara eksekusi DAG Hamilton, karena DAG tidak memiliki siklus. Belakangan kami menyadari cakupan penerapannya lebih luas, lalu merilisnya secara lebih umum
https://pypi.org/project/burr/
Saya penasaran apakah ada alat atau platform orkestrasi agen coding yang layak direkomendasikan. Saya ingin menjalankan, mengelola, dan memantau agen codex atau claude di beberapa mesin
Kalau bisa yang self-hostable atau open source. Saya tahu claude code secara internal sudah punya banyak fungsi seperti itu, tetapi itu khusus untuk claude
Saya tidak yakin bagaimana integrasinya dengan skill dan sebagainya, tetapi sekilas tampaknya bisa bekerja
https://burr.apache.org/docs/examples/agents/