Kerangka kerja Agen Atom dirancang agar bersifat modular, dapat diperluas, dan mudah digunakan. Tujuan utamanya adalah menghilangkan kompleksitas yang berlebihan, abstraksi yang tidak perlu, dan asumsi tersembunyi sambil tetap menyediakan platform yang fleksibel dan kuat untuk membangun aplikasi AI melalui atomisitas. Kerangka kerja ini menyediakan seperangkat alat dan agen yang dapat digabungkan untuk menciptakan aplikasi yang kuat. Itu dibangun di atas Instruktur dan memanfaatkan kekuatan Pydantic untuk validasi dan serialisasi data dan skema.
Meskipun kerangka kerja AI agen yang ada berfokus pada pembangunan sistem multi-agen yang otonom, kerangka kerja tersebut sering kali tidak memiliki kontrol dan prediktabilitas yang diperlukan untuk aplikasi di dunia nyata. Bisnis memerlukan sistem AI yang menghasilkan output yang konsisten dan andal, selaras dengan merek dan tujuan mereka.
Agen Atom menjawab kebutuhan ini dengan menyediakan:
Modularitas: Bangun aplikasi AI dengan menggabungkan komponen kecil yang dapat digunakan kembali.
Prediktabilitas: Tentukan skema masukan dan keluaran yang jelas untuk memastikan perilaku yang konsisten.
Ekstensibilitas: Mengganti komponen dengan mudah atau mengintegrasikan komponen baru tanpa mengganggu keseluruhan sistem.
Kontrol: Sempurnakan setiap bagian sistem satu per satu, mulai dari perintah sistem hingga integrasi alat.
Di Agen Atom, agen terdiri dari beberapa komponen utama:
System Prompt: Mendefinisikan perilaku dan tujuan agen.
Skema Input: Menentukan struktur dan aturan validasi untuk input agen.
Skema Keluaran: Menentukan struktur dan aturan validasi untuk keluaran agen.
Memori: Menyimpan riwayat percakapan atau data relevan lainnya.
Penyedia Konteks: Memasukkan konteks dinamis ke dalam perintah sistem agen saat runtime.
Berikut diagram arsitektur tingkat tinggi:
Untuk menginstal Agen Atom, Anda dapat menggunakan pip:
pip instal agen atom
Pastikan Anda juga menginstall penyedia yang ingin Anda gunakan. Misalnya, untuk menggunakan OpenAI dan Groq, Anda dapat menginstal paket openai
dan groq
:
pip instal openai groq
Ini juga menginstal CLI Atomic Assembler , yang dapat digunakan untuk mengunduh Alat (dan segera juga Agen dan Saluran Pipa).
Untuk pengembangan lokal, Anda dapat menginstal dari repositori:
git clone https://github.com/BrainBlend-AI/atomic-agents.gitcd atom-agents pemasangan puisi
Agen Atom menggunakan struktur monorepo dengan komponen utama sebagai berikut:
atomic-agents/
: Pustaka inti Agen Atom
atomic-assembler/
: Alat CLI untuk mengelola komponen Agen Atom
atomic-examples/
: Contoh proyek yang menampilkan penggunaan Agen Atom
atomic-forge/
: Kumpulan alat yang dapat digunakan dengan Agen Atom
Daftar contoh lengkap dapat ditemukan di direktori contoh.
Kami berusaha untuk mendokumentasikan setiap contoh secara menyeluruh, namun jika ada yang kurang jelas, jangan ragu untuk membuka masalah atau menarik permintaan untuk menyempurnakan dokumentasi.
Berikut cuplikan singkat yang menunjukkan betapa mudahnya membuat agen yang kuat dengan Agen Atom:
# Tentukan kelas skema keluaran khusus CustomOutputSchema(BaseIOSchema):""" docstring untuk skema keluaran khusus """chat_message: str = Field(..., Description="Pesan obrolan dari agen.")suggested_questions: Daftar[str ] = Field(..., Description="Sarankan pertanyaan tindak lanjut.")# Siapkan sistem promptsystem_prompt_generator = SystemPromptGenerator(background=["Asisten ini berpengetahuan luas, suka membantu, dan menyarankan pertanyaan tindak lanjut."],langkah-langkah =["Analisis masukan pengguna untuk memahami konteks dan maksudnya.","Rumuskan respons yang relevan dan informatif.","Buat 3 pertanyaan tindak lanjut yang disarankan untuk pengguna."],output_instructions=["Berikan informasi yang jelas dan ringkas sebagai respons terhadap pertanyaan pengguna.","Akhiri setiap respons dengan 3 saran pertanyaan relevan untuk pengguna."] )# Inisialisasi agentagent = BaseAgent(config=BaseAgentConfig(client=your_openai_client, # Ganti dengan clientmodel="gpt-4o-mini",system_prompt_generator=system_prompt_generator,memory=AgentMemory(),output_schema=CustomOutputSchema) )# Gunakan agentresponse = agent.run(user_input)print(f"Agent: {response.chat_message}")print("Pertanyaan yang disarankan:") untuk pertanyaan di respon.suggested_questions:print(f"- {question}")
Cuplikan ini menunjukkan cara membuat agen yang dapat disesuaikan yang merespons pertanyaan pengguna dan menyarankan pertanyaan tindak lanjut. Untuk contoh lengkap yang dapat dijalankan, lihat file berikut di direktori atomic-examples/quickstart/quickstart/
:
Chatbot Dasar Contoh chatbot minimal untuk Anda mulai.
Chatbot Khusus Contoh lebih lanjut dengan perintah sistem khusus.
Chatbot Khusus dengan Skema Contoh lanjutan yang menampilkan skema keluaran khusus.
Chatbot Multi-Penyedia Mendemonstrasikan cara menggunakan penyedia berbeda seperti Ollama atau Groq.
Selain contoh panduan memulai, kami memiliki contoh lebih kompleks yang menunjukkan kekuatan Agen Atom:
Agen Pencarian Web: Agen cerdas yang melakukan pencarian web dan menjawab pertanyaan berdasarkan hasilnya.
YouTube Summarizer: Agen yang mengekstrak dan merangkum pengetahuan dari video YouTube.
Untuk daftar contoh lengkap, lihat direktori contoh.
Contoh-contoh ini memberikan titik awal yang bagus untuk memahami dan menggunakan Agen Atom.
Agen Atom memungkinkan Anda menyempurnakan agen Anda dengan konteks dinamis menggunakan Penyedia Konteks . Penyedia Konteks memungkinkan Anda memasukkan informasi tambahan ke dalam perintah sistem agen saat runtime, sehingga membuat agen Anda lebih fleksibel dan sadar konteks.
Untuk menggunakan Penyedia Konteks, buat kelas yang mewarisi SystemPromptContextProviderBase
dan implementasikan metode get_info()
, yang mengembalikan string konteks untuk ditambahkan ke prompt sistem.
Berikut ini contoh sederhananya:
dari atom_agents.lib.components.system_prompt_generator import SystemPromptContextProviderBaseclass SearchResultsProvider(SystemPromptContextProviderBase):def __init__(self, title: str, search_results: List[str]):super().__init__(title=title)self.search_results = search_resultsdef get_info(self ) -> str:return "n".join(self.search_results)
Anda kemudian dapat mendaftarkan Penyedia Konteks Anda ke agen:
# Inisialisasi penyedia konteks Anda dengan datasearch_results_provider = SearchResultsProvider(title="Search Results",search_results=["Result 1", "Result 2", "Result 3"] dinamis )# Daftarkan penyedia konteks dengan agentagent.register_context_provider("search_results", search_results_provider)
Hal ini memungkinkan agen Anda menyertakan hasil pencarian (atau konteks lainnya) dalam perintah sistemnya, sehingga meningkatkan responsnya berdasarkan informasi terbaru.
Agen Atom memudahkan untuk menyatukan agen dan alat dengan menyelaraskan skema input dan outputnya. Desain ini memungkinkan Anda menukar komponen dengan mudah, mendorong modularitas dan penggunaan kembali dalam aplikasi AI Anda.
Misalkan Anda memiliki agen yang menghasilkan kueri penelusuran dan Anda ingin menggunakan kueri tersebut dengan alat penelusuran yang berbeda. Dengan menyelaraskan skema keluaran agen dengan skema masukan alat pencarian, Anda dapat dengan mudah menyatukannya atau beralih di antara penyedia pencarian yang berbeda.
Inilah cara Anda dapat mencapainya:
impor instrukturimpor openaifrom pydantic impor Bidangdari atom_agents.agents.base_agent impor BaseIOSchema, BaseAgent, BaseAgentConfigfrom atom_agents.lib.components.system_prompt_generator import SystemPromptGenerator# Impor alat pencarian yang ingin Anda gunakandari web_search_agent.tools.searxng_search import SearxNGSearchTool# Tentukan skema masukan untuk kueri agentclass QueryAgentInputSchema(BaseIOSchema):"""Skema masukan untuk QueryAgent."""instruksi: str = Field(..., Description="Instruksi untuk menghasilkan kueri penelusuran untuk.")num_queries: int = Field(..., deskripsi="Jumlah kueri yang akan dihasilkan.")# Inisialisasi kueri agentquery_agent = BaseAgent(BaseAgentConfig(client=instructor.from_openai(openai.OpenAI()),model="gpt-4o-mini",system_prompt_generator=SystemPromptGenerator(background= ["Anda adalah pakar pembuatan kueri yang cerdas.","Tugas Anda adalah menghasilkan sejumlah kueri yang beragam dan sangat relevan berdasarkan instruksi yang diberikan."],steps=["Terima instruksi dan jumlah kueri yang akan dihasilkan .","Buat kueri dalam format JSON."],output_instructions=["Pastikan setiap kueri unik dan relevan.","Sediakan kueri dalam skema yang diharapkan."], ),input_schema=QueryAgentInputSchema,output_schema=SearxNGSearchTool.input_schema, # Sejajarkan skema keluaran) )
Dalam contoh ini:
Modularitas : Dengan mengatur output_schema
dari query_agent
agar cocok dengan input_schema
dari SearxNGSearchTool
, Anda dapat langsung menggunakan output dari agen sebagai input ke alat.
Swapabilitas : Jika Anda memutuskan untuk beralih ke penyedia pencarian lain, Anda dapat mengimpor alat pencarian lain dan memperbarui output_schema
yang sesuai.
Misalnya, untuk beralih ke layanan pencarian lain:
# Impor alat pencarian yang berbeda dari web_search_agent.tools.another_search import AnotherSearchTool# Perbarui keluaran skemaquery_agent.config.output_schema = AnotherSearchTool.input_schema
Pola desain ini menyederhanakan proses merangkai agen dan alat, menjadikan aplikasi AI Anda lebih mudah beradaptasi dan mudah dikelola.
Untuk menjalankan CLI, cukup jalankan perintah berikut:
atom
Atau jika Anda menginstal Agen Atom dengan Puisi, misalnya:
puisi berjalan atomik
Atau jika Anda menginstal Agen Atom dengan uv:
uv menjalankan atom
Setelah menjalankan perintah ini, Anda akan disajikan menu yang memungkinkan Anda mengunduh alat.
Setiap alat memilikinya sendiri:
Skema masukan
Skema keluaran
Contoh penggunaan
Ketergantungan
Petunjuk instalasi
CLI atomic-assembler
memberi Anda kendali penuh atas alat Anda, menghindari kekacauan akibat ketergantungan yang tidak perlu. Itu membuat modifikasi alat menjadi mudah dan setiap alat dilengkapi dengan serangkaian pengujian keandalannya sendiri.
Namun Anda tidak terbatas pada CLI! Jika mau, Anda dapat langsung mengakses folder alat dan mengelolanya secara manual hanya dengan menyalin dan menempel sesuai kebutuhan.
Agen Atom bergantung pada paket Instruktur. Artinya, dalam semua contoh yang menggunakan OpenAI, API lain yang didukung oleh Instruktur juga dapat digunakan—seperti Ollama, Groq, Mistral, Cohere, Anthropic, Gemini, dan banyak lagi. Untuk daftar lengkapnya, silakan merujuk ke dokumentasi Instruktur di halaman GitHub-nya.
Dokumentasi API dapat ditemukan di sini.
Atomic Forge adalah kumpulan alat yang dapat digunakan dengan Agen Atom untuk memperluas fungsinya. Alat saat ini meliputi:
Kalkulator
Pencarian CarixNG
Pengikis Transkrip YouTube
Untuk informasi lebih lanjut tentang penggunaan dan pembuatan alat, lihat README Atomic Forge.
Kami menyambut kontribusi! Silakan lihat Panduan Pengembang untuk informasi rinci tentang cara berkontribusi pada Agen Atom. Berikut beberapa langkah cepat:
Cabangkan repositori
Buat cabang baru ( git checkout -b feature-branch
)
Buat perubahan Anda
Jalankan tes ( pytest --cov atomic_agents
)
Format kode Anda ( black atomic_agents atomic_assembler
)
Lint kode Anda ( flake8 atomic_agents atomic_assembler
)
Komit perubahan Anda ( git commit -m 'Add some feature'
)
Dorong ke cabang ( git push origin feature-branch
)
Buka permintaan tarik
Untuk penyiapan dan panduan pengembangan selengkapnya, lihat Panduan Pengembang.
Proyek ini dilisensikan di bawah Lisensi MIT—lihat file LISENSI untuk detailnya.