Baik Anda membangun aplikasi AI maupun mengotomatisasi tugas yang kompleks, membuat AI agent bekerja dengan data dan tools yang tepat bisa jadi menantang. Sistem AI sederhana sering mengalami kesulitan saat perlu bernalar, mengambil informasi, atau menangani tugas dari berbagai sumber. Agent LlamaIndex mempermudah hal ini dengan menghubungkan model AI dengan tools, data, dan sistem retrieval untuk menangani tugas dengan lebih efektif. Baca artikel ini untuk mempelajari cara membangun dan menerapkan workflow agent LlamaIndex demi aplikasi AI yang lebih cerdas dan fleksibel.
Apa itu agent LlamaIndex?
Agent LlamaIndex adalah sistem AI yang dapat bernalar tentang suatu tugas dan menentukan langkah-langkah yang diperlukan untuk menyelesaikannya. Agent ini dapat memecah permintaan yang kompleks menjadi tugas-tugas yang lebih kecil, memilih tools, dan menggunakan data eksternal bila diperlukan. Agent juga dapat mengingat langkah-langkah sebelumnya dan menggunakan informasi yang diambil untuk meningkatkan responsnya. Ini memungkinkan agent menangani tugas yang membutuhkan lebih dari sekadar respons tanya-jawab sederhana.
Bagaimana cara kerja agent LlamaIndex?
Agent LlamaIndex memungkinkan aplikasi LLM melampaui tanya-jawab sederhana dengan membiarkan model bernalar tentang tugas, memilih tools, dan menyelesaikan workflow multi-langkah. Alih-alih mengikuti pipeline yang tetap, agent secara dinamis memutuskan tindakan apa yang diperlukan berdasarkan tujuan pengguna dan kemampuan yang tersedia.
Workflow agent LlamaIndex yang umum mengikuti proses berikut:
User request
↓
Understand the task
↓
Select tools
↓
Execute actions
↓
Process results
↓
Return final responseMemahami tujuan pengguna
Ketika agent menerima permintaan, LLM yang mendasarinya menganalisis tugas, konteks yang tersedia, dan tools yang terhubung untuk menentukan pendekatan terbaik.
Untuk pertanyaan sederhana, agent dapat menghasilkan respons secara langsung. Untuk tugas yang kompleks, agent dapat memecah permintaan menjadi langkah-langkah yang lebih kecil dan menentukan operasi apa yang diperlukan.
Memilih dan menggunakan tools
Tools memperluas kemampuan agent di luar LLM itu sendiri. Agent LlamaIndex dapat terhubung ke fungsi Python khusus, query engine, API, database, dan sistem retrieval melalui tools seperti FunctionTool dan QueryEngineTool.
Misalnya, agent dapat menggunakan tool pencarian untuk mengumpulkan informasi, tool database untuk mengambil data, atau fungsi khusus untuk melakukan kalkulasi.
Menjalankan tugas melalui agent loop
Setelah memilih tool, agent menjalankan tindakan tersebut, mengamati hasilnya, dan menentukan langkah selanjutnya. Loop penalaran-tindakan ini memungkinkan agent menangani workflow kompleks yang membutuhkan beberapa operasi.
Reason → Act → Observe → RepeatJika tugas belum selesai, agent dapat terus memanggil tools atau menyempurnakan pendekatannya hingga menghasilkan jawaban akhir.
Mengelola konteks dan workflow
Agent LlamaIndex menyimpan konteks yang relevan selama proses eksekusi, yang membantu mereka mengelola tugas multi-langkah dan menggunakan hasil dari langkah-langkah sebelumnya. Untuk aplikasi yang lebih kompleks, developer dapat menggunakan workflow dan arsitektur multi-agent untuk mengoordinasikan beberapa agent, dengan setiap agent menangani peran atau tugas tertentu.
Sebagai contoh:
Research Agent
↓
Analysis Agent
↓
Writing AgentIni membuat react agent LlamaIndex cocok untuk aplikasi seperti asisten riset AI, sistem pengetahuan perusahaan, dan workflow data otomatis.
Komponen inti agent LlamaIndex
Multi-agent LlamaIndex menggabungkan beberapa komponen untuk mengubah LLM menjadi sistem yang dapat bernalar, menggunakan fungsi eksternal, dan mempertahankan konteks. Setiap komponen memiliki peran yang berbeda, tetapi mereka bekerja sama untuk membantu agent menangani tugas dengan lebih efektif. Berikut beberapa komponen intinya:
LLM: Mesin penalaran agent
LLM berfungsi sebagai mesin penalaran utama yang menafsirkan permintaan pengguna dan menentukan langkah selanjutnya. LLM dapat menganalisis konteks yang tersedia dan menentukan apakah harus menjawab secara langsung atau menggunakan tool. LlamaIndex mendukung berbagai penyedia LLM, sehingga developer dapat memilih model berdasarkan kebutuhan aplikasi mereka. Karena itu, LLM mengendalikan pengambilan keputusan dan pembuatan respons agent.
Tools: Memperluas kemampuan agent
Tools memungkinkan agent melakukan tindakan yang melampaui pembuatan teks. Tools bisa berupa fungsi Python sederhana atau tools khusus untuk bekerja dengan API, query engine, dan layanan eksternal lainnya. Agent menentukan tool mana yang akan digunakan dan menyediakan input yang diperlukan berdasarkan permintaan pengguna. Hasil dari tool kemudian ditambahkan ke percakapan agar agent dapat menggunakannya pada langkah selanjutnya.
Memori: Mempertahankan konteks
Memori memungkinkan agent LlamaIndex menyimpan informasi yang relevan selama menyelesaikan tugas. Secara default, agent menggunakan ChatMemoryBuffer, yang menyimpan riwayat percakapan agar tetap tersedia selama eksekusi. Developer juga dapat menyesuaikan konfigurasi memori, seperti mengatur batas token berdasarkan aplikasi. Ini membantu agent mempertahankan konteks dan menangani tugas yang membutuhkan beberapa langkah.
Jenis-jenis agent LlamaIndex
LlamaIndex menawarkan berbagai jenis agent untuk menangani tugas berdasarkan tingkat penalaran, penggunaan tool, dan kontrol yang diperlukan. Mari kita lihat jenis-jenis utamanya dan perbedaannya:
| Jenis agent | Cara kerjanya | Fitur utama | Kasus penggunaan terbaik |
|---|---|---|---|
| FunctionAgent | Menggunakan kemampuan function-calling dari LLM modern untuk memilih dan menjalankan tool yang telah ditentukan berdasarkan permintaan pengguna. | Native tool calling Input dan output terstruktur Eksekusi tool yang andal Implementasi sederhana | Asisten AI Alur otomatisasi bisnis Aplikasi berbasis API Agent yang berorientasi tugas |
| ReActAgent | Menggunakan pendekatan Reasoning + Acting, di mana agent secara iteratif melakukan reasoning terhadap suatu tugas, mengambil tindakan, mengamati hasilnya, dan terus berlanjut hingga tugas selesai. | Reasoning bertahap Pemilihan tool secara dinamis Menangani tugas multi-langkah Pemecahan masalah yang fleksibel | Asisten riset Menjawab pertanyaan kompleks Eksplorasi data Alur kerja terbuka |
| CodeActAgent | Memungkinkan agent menyelesaikan tugas dengan menghasilkan dan menjalankan kode ketika reasoning berbasis kode lebih efektif. | Pembuatan dan eksekusi kode Pemecahan masalah secara programatik Cocok untuk tugas komputasi | Analisis data Alur kerja ilmiah Asisten pemrograman |
| Sistem multi-agent | Menggunakan beberapa agent khusus yang berkolaborasi, mendelegasikan tugas, dan menyelesaikan alur kerja kompleks secara bersama-sama. | Kolaborasi antar agent Delegasi tugas Spesialisasi peran Alur kerja yang skalabel | Pipeline riset otomatis Alur kerja enterprise Proses bisnis yang kompleks |
Agent-agent ini memberi developer fleksibilitas untuk memilih pendekatan yang tepat untuk berbagai tugas dan workflow. Setelah jenis agent dipilih, langkah selanjutnya adalah menghubungkannya ke backend LLM yang mumpuni untuk mendukung penalaran dan penggunaan tool-nya. Mari kita lihat cara membangun AI agent dengan LlamaIndex dan Kimi API.
Cara Membangun AI Agent dengan LlamaIndex dan Kimi API
Menghubungkan LlamaIndex ke LLM API memberikan agent kekuatan penalaran yang dibutuhkannya untuk memahami permintaan dan memilih tindakan yang tepat. Langkah-langkah berikut menunjukkan cara menyiapkan AI agent dengan LlamaIndex dan Kimi API, mulai dari mengonfigurasi model hingga menjalankan agent:
Langkah 1: Prasyarat
Sebelum memulai, pastikan Anda telah memiliki hal berikut:
Python 3.9+ terinstal
Kimi API Key yang valid dari Moonshot AI Platform
Pemahaman dasar tentang agent LlamaIndex dan konsep RAG
Langkah 2: Instal dependensi
Contoh aslinya menggunakan llama-index-llms-ollama. Ganti dengan llama-index-llms-openai untuk terhubung ke API Kimi yang kompatibel dengan OpenAI. Tetap gunakan paket embedding HuggingFace untuk embedding lokal yang gratis.
pip install llama-index llama-index-llms-openai llama-index-embeddings-huggingfaceLangkah 3: Konfigurasi variabel environment
Simpan Kimi API key Anda dengan aman menggunakan variabel environment. Jangan menuliskannya secara langsung (hardcode) di skrip Anda.
export KIMI_API_KEY = "your-kimi-api-key-here"Di Windows (PowerShell):
$env:KIMI_API_KEY = "your-kimi-api-key-here"Langkah 4: Buat agent dasar dengan Kimi API
Buat file bernama starter_kimi.py. File ini mengganti LLM Ollama dengan Kimi sambil tetap mempertahankan logika agent dan definisi tool yang sama.
from llama_index.core.agent.workflow import FunctionAgent; import os
from llama_index.llms.openai import OpenAI; import asyncio
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
from llama_index.core import Settings
# Configure global settings
Settings.llm = OpenAI(
model="kimi-latest", # Or: kimi-k2, kimi-k2.5, etc.
api_key=os.getenv("KIMI_API_KEY"),
api_base="https://api.moonshot.ai/v1",
temperature=0.3,
request_timeout=120.0,
)
Settings.embed_model = HuggingFaceEmbedding(
model_name="BAAI/bge-base-en-v1.5"
)
# Define a calculator tool
def multiply(a: float, b: float) -> float:
"""Useful for multiplying two numbers."""
return a * b
# Create the agent
agent = FunctionAgent(
tools=[multiply],
llm=Settings.llm,
system_prompt="You are a helpful assistant that can multiply two numbers.",
)
async def main():
response = await agent.run("What is 1234 * 4567?")
print(str(response))
if __name__ == "__main__":
asyncio.run(main())Jalankan skrip:
python starter_kimi.pyOutput yang diharapkan:
The answer to 1234 * 4567 is 5635678.Langkah 5: Tambahkan riwayat obrolan (konteks)
Untuk mengaktifkan percakapan multi-turn, teruskan objek Context. Agent akan menyimpan memori antar-pemanggilan.
from llama_index.core.workflow import Context
# Create context
ctx = Context(agent)
# Run agent with context
response = await agent.run("My name is Logan", ctx=ctx)
print(response)
response = await agent.run("What is my name?", ctx=ctx)
print(response)Langkah 6: Tambahkan Kemampuan RAG dengan Kimi API
Tingkatkan agent dengan pengambilan dokumen. Langkah embedding tetap berjalan secara lokal, sementara proses generasi dialihkan melalui Kimi.
Siapkan data sampel
mkdir data
wget https://raw.githubusercontent.com/run-llama/llama_index/main/docs/examples/data/paul_graham/paul_graham_essay.txt -O data/paul_graham_essay.txtSkrip agent lengkap dengan RAG
Buat starter_kimi_rag.py:
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader, Settings; import os
from llama_index.core.agent.workflow import AgentWorkflow; import asyncio
from llama_index.llms.openai import OpenAI
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
# Global settings
Settings.embed_model = HuggingFaceEmbedding(model_name="BAAI/bge-base-en-v1.5")
Settings.llm = OpenAI(
model="kimi-k3",
api_key=os.getenv("KIMI_API_KEY"),
api_base="https://api.moonshot.ai/v1",
temperature=0.3,
)
# Load documents and build index
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
# Define tools
def multiply(a: float, b: float) -> float:
"""Useful for multiplying two numbers."""
return a * b
async def search_documents(query: str) -> str:
"""Useful for answering natural language questions about Paul Graham's essay."""
response = await query_engine.aquery(query)
return str(response)
# Create enhanced agent
agent = AgentWorkflow.from_tools_or_functions(
[multiply, search_documents],
llm=Settings.llm,
system_prompt="""You are a helpful assistant that can perform calculations
and search through documents to answer questions.""",
)
async def main():
response = await agent.run(
"What did the author do in college? Also, what's 7 * 8?"
)
print(response)
if __name__ == "__main__":
asyncio.run(main())Jalankan skrip:
python starter_kimi_rag.pypython starter_kimi_rag.pyLangkah 7: Simpan Index RAG
Untuk menghindari pemrosesan ulang dokumen setiap kali dijalankan, simpan vector index ke disk.
# Save the index
index.storage_context.persist("storage")
# Later, load the index
from llama_index.core import StorageContext, load_index_from_storage
storage_context = StorageContext.from_defaults(persist_dir="storage")
index = load_index_from_storage(storage_context)
query_engine = index.as_query_engine()# Save the index
index.storage_context.persist("storage")
# Later, load the index
from llama_index.core import StorageContext, load_index_from_storage
storage_context = StorageContext.from_defaults(persist_dir="storage")
index = load_index_from_storage(storage_context)
query_engine = index.as_query_engine()Pemecahan masalah
Jika Anda mengalami masalah saat menyiapkan agent, beberapa masalah umum dapat memengaruhi autentikasi, konektivitas, instalasi paket, atau kecepatan embedding. Tabel di bawah ini menyoroti error paling umum beserta solusinya, sehingga Anda dapat memecahkan masalah setup dengan cepat:
| Masalah | Penyebab | Solusi |
|---|---|---|
AuthenticationError | API key tidak valid atau tidak ada | Periksa apakah KIMI_API_KEY sudah diekspor dengan benar |
Connection timeout | Latensi jaringan ke api.moonshot.ai | Naikkan request_timeout menjadi 300.0 atau lebih tinggi |
ModuleNotFoundError | Package tidak ditemukan | Jalankan ulang pip install llama-index-llms-openai |
| Embedding berjalan lambat di CPU | Model Hugging Face berjalan di CPU | Gunakan model yang lebih kecil atau aktifkan akselerasi GPU |
Manfaat menggunakan Kimi API
Setelah agent terhubung dan berfungsi, kombinasi LlamaIndex dan Kimi API menawarkan beberapa keuntungan praktis untuk membangun aplikasi AI yang mumpuni. Berikut beberapa manfaat utama menggunakan Kimi API dengan agent LlamaIndex:
Membangun agent AI yang lebih pintar: Kimi API meningkatkan kemampuan agent LlamaIndex dengan pemahaman bahasa dan penalaran yang kuat, membantu agent memilih tool, memproses informasi, dan menyelesaikan tugas dengan lebih efektif.
Meningkatkan pengambilan dan analisis data: Dipadukan dengan kerangka kerja data LlamaIndex, Kimi dapat bekerja dengan dokumen dan basis pengetahuan privat untuk menghasilkan respons yang lebih akurat dan sesuai konteks.
Memungkinkan workflow AI yang fleksibel: LlamaIndex menghubungkan agent dengan tool, API, dan query engine, sementara Kimi menyediakan kecerdasan yang diperlukan untuk memutuskan kapan dan bagaimana menggunakan kemampuan tersebut.
Mendukung aplikasi AI yang kompleks: Dengan pemahaman konteks panjang dan kemampuan agent, Kimi API bersama LlamaIndex cocok untuk membangun asisten riset, agent pengetahuan, dan aplikasi analisis dokumen.
Penerapan nyata agent LlamaIndex
Agent LlamaIndex dapat digunakan untuk berbagai tugas di mana AI perlu bernalar, mengakses informasi, dan mengambil tindakan. Kemampuannya menghubungkan LLM dengan tool dan data membuatnya bermanfaat di bidang riset, bisnis, analitik, dan dukungan pelanggan. Berikut beberapa penerapan praktisnya:
Asisten riset AI
Asisten riset AI dapat mencari melalui dokumen, mengambil informasi yang relevan, dan membantu menjawab pertanyaan yang kompleks. Asisten ini dapat membagi tugas riset menjadi langkah-langkah yang lebih kecil dan menggunakan tool yang berbeda saat diperlukan. Hal ini memudahkan analisis data dalam jumlah besar dan penyusunan respons yang detail.
Agent pengetahuan perusahaan
Agent pengetahuan perusahaan dapat menghubungkan karyawan dengan dokumen internal, database, dan basis pengetahuan. Agent ini dapat mengambil informasi perusahaan yang relevan dan memberikan jawaban berdasarkan data bisnis yang tersedia. Hal ini membantu karyawan menemukan informasi lebih cepat tanpa perlu mencari secara manual di berbagai sistem.
Agent analisis data
Agent analisis data dapat bekerja dengan dataset dan menggunakan tool untuk memproses, menganalisis, dan menafsirkan informasi. Agent ini dapat melakukan perhitungan, mengenali pola, dan membantu menjelaskan hasilnya dengan cara yang sederhana. Hal ini membuatnya bermanfaat untuk tugas seperti pelaporan, eksplorasi data, dan analisis bisnis.
Agent layanan pelanggan
Agent layanan pelanggan dapat mengakses informasi produk, FAQ, dan sumber daya dukungan untuk menjawab pertanyaan pelanggan. Agent ini dapat menggunakan tools untuk mengambil detail yang relevan dan menangani permintaan berdasarkan konteks yang tersedia. Hal ini dapat membantu mengotomatiskan tugas dukungan rutin sekaligus memberikan respons yang lebih cepat dan konsisten.
Kesimpulan
Agent LlamaIndex menyediakan cara praktis untuk membangun sistem AI yang dapat bernalar, menggunakan tools, dan bekerja dengan informasi yang relevan. Fleksibilitasnya membuatnya bermanfaat untuk membuat aplikasi yang lebih dari sekadar percakapan sederhana. Dengan backend LLM yang tepat, agent ini dapat disesuaikan untuk berbagai tugas dan workflow. Coba Kimi API dengan LlamaIndex untuk membangun dan menguji AI agent Anda sendiri. Jelajahi Kimi dan lihat apa yang dapat Anda ciptakan dengannya.