All Products
Search
Document Center

Agent Run:Panduan integrasi basis pengetahuan

Last Updated:Aug 24, 2026

Fitur basis pengetahuan di AgentRun memungkinkan Anda mengaitkan agen AI dengan dokumen profesional eksternal atau data privat. Saat menjalankan tugas, agen dapat mengambil konteks relevan dari basis pengetahuan yang terintegrasi, sehingga secara signifikan meningkatkan akurasi dan ketepatan waktu tanggapannya.

AgentRun saat ini mendukung jenis basis pengetahuan berikut:

  • Alibaba Cloud Model Studio

  • RAGFlow

Menyambungkan basis pengetahuan

  1. Login ke Konsol AgentRun. Di bilah menu atas, klik Others.

  2. Di panel navigasi kiri, pilih Knowledge Base > Create Knowledge Base.

Menyambungkan basis pengetahuan Alibaba Cloud Model Studio

Jika Anda menggunakan Alibaba Cloud Model Studio sebagai layanan Generasi yang Diperkaya dengan Pengambilan Data (RAG), konfigurasikan parameter berikut:

  • Knowledge Base Name: Masukkan nama tampilan untuk basis pengetahuan.

  • Description: Deskripsi singkat mengenai tujuan atau cakupan data basis pengetahuan.

  • Untuk Knowledge Base Type, pilih Model Studio.

  • Workspace: Untuk penggunaan pertama kali, klik tombol otorisasi untuk Default Workspace guna memberikan otorisasi dan konfirmasinya.

  • Knowledge Base: Dari daftar drop-down, pilih satu atau beberapa basis pengetahuan yang telah Anda buat di Alibaba Cloud Model Studio. Ubah Retrieval Configuration sesuai kebutuhan.

Klik Create Knowledge Base untuk menyambungkan basis pengetahuan dari Alibaba Cloud Model Studio ke platform AgentRun.

Menyambungkan basis pengetahuan RAGFlow

RAGFlow adalah mesin open source untuk pemahaman dokumen mendalam. Untuk menyambungkan basis pengetahuan RAGFlow, berikan informasi berikut:

  • Knowledge Base Name: Masukkan nama tampilan kustom.

  • Description: Deskripsi singkat mengenai tujuan atau cakupan data basis pengetahuan.

  • Untuk Knowledge Base Type, pilih RAGFlow.

  • Konfigurasi RAGFlow (untuk petunjuknya, lihat Deploy Cepat RAGFlow Menggunakan SAE):

    • BaseURL: Masukkan titik akhir API layanan RAGFlow.

    • DataSet IDs: Masukkan ID set data yang ingin dikaitkan. Anda dapat memasukkan beberapa ID.

    • Credential Configuration: Pilih kredensial Kunci API yang telah disimpan untuk RAGFlow.

    Catatan

    Untuk informasi lebih lanjut tentang cara memperoleh parameter konfigurasi RAGFlow, lihat Cara memperoleh informasi konfigurasi RAGFlow.

  • Retrieval Configuration: Anda dapat menyesuaikan Similarity Threshold dan Vector Similarity Weight sesuai kebutuhan.

Klik Create Knowledge Base untuk menyambungkan basis pengetahuan RAGFlow yang di-host sendiri ke platform AgentRun.

Cara memperoleh informasi konfigurasi RAGFlow

Untuk RAGFlow yang dideploy menggunakan SAE, Anda dapat login ke platform RAGFlow melalui Service Instance > Ragflow Endpoint. Untuk menghubungkan ke RAGFlow, Anda perlu mengambil tiga informasi inti berikut dari platform RAGFlow:

Memperoleh BaseURL

  • Klik gambar profil Anda di pojok kanan atas untuk membuka halaman pengaturan pribadi atau manajemen akun.

  • Di bagian API, nilai untuk API Server adalah BaseURL.

    image

Memperoleh API-KEY

  • Di halaman pengaturan API pribadi, temukan RAGFlow API > API KEY.

  • Salin kunci API yang sudah ada. Jika Anda belum memiliki kunci, klik Create new key.

    image

  • Lihat Manajemen Kredensial dan sambungkan kunci API tersebut sebagai kredensial untuk mengakses layanan pihak ketiga di platform AgentRun. Saat membuat kredensial, atur Service Type menjadi Other Services.

Memperoleh Dataset ID

  • Di bilah menu atas, klik Knowledge Base.

  • Dalam daftar, temukan dan klik set data yang ingin Anda kaitkan.

  • Periksa URL di bilah alamat browser Anda atau temukan UUID set data di bagian konfigurasi pada halaman tersebut. UUID ini adalah Dataset ID.

    image

Panduan pengembang: Mengintegrasikan basis pengetahuan ke dalam agen

Setelah Anda menyambungkan basis pengetahuan, Anda dapat memanggilnya di tingkat kode menggunakan AgentRun SDK.

Contoh kode: Mengkueri basis pengetahuan

Gunakan modul agentrun.knowledgebase untuk langsung mengambil konten dari basis pengetahuan.

from agentrun.knowledgebase import KnowledgeBase

## Mendapatkan satu basis pengetahuan dan melakukan kueri.
knowledgebase = KnowledgeBase.get_by_name("ragflow-test")
single_kb_retrieve_result = knowledgebase.retrieve("<your-query>")
print(single_kb_retrieve_result)

## Mendapatkan beberapa basis pengetahuan dan melakukan kueri. Jenis basis pengetahuan lintas vendor didukung.
multi_kb_retrieve_result = KnowledgeBase.multi_retrieve(
    query="<your-query>",
    knowledge_base_names=["ragflow-test", "<your-knowledge-base-name-2>"],
)
print(multi_kb_retrieve_result)

Mengintegrasikan basis pengetahuan ke dalam framework agen

Suntikkan basis pengetahuan sebagai tool ke LangChain atau framework agen lainnya. Hal ini memungkinkan AI secara otomatis berkonsultasi dengan dokumen.

"""Contoh kode integrasi agen basis pengetahuan AgentRun

Sebelum memulai, lihat https://docs.agent.run/docs/tutorial/quick-start untuk mengonfigurasi informasi otentikasi dan variabel lingkungan yang diperlukan.

curl http://127.0.0.1:9000/openai/v1/chat/completions -X POST \
    -H "Content-Type: application/json" \
    -d '{"messages": [{"role": "user", "content": "What is Serverless?"}], "stream": true}'
"""

import json
import os
from typing import Any

from langchain.agents import create_agent
import pydash

from agentrun import Config
from agentrun.integration.langchain import model
from agentrun.integration.langchain import knowledgebase_toolset
from agentrun.integration.langgraph.agent_converter import AgentRunConverter
from agentrun.knowledgebase import KnowledgeBase
from agentrun.server import AgentRequest, AgentRunServer
from agentrun.server.model import ServerConfig
from agentrun.utils.log import logger

# Ganti dengan nama model yang telah Anda buat.
AGENTRUN_MODEL_SERVICE = os.getenv("AGENTRUN_MODEL_SERVICE", "<your-model-service>")
AGENTRUN_MODEL_NAME = os.getenv("AGENTRUN_MODEL_NAME", "<your-model-name>")
KNOWLEDGE_BASES = os.getenv("AGENTRUN_KNOWLEDGE_BASES", "ragflow-test").split(",")

if AGENTRUN_MODEL_NAME.startswith("<") or not AGENTRUN_MODEL_NAME:
    raise ValueError("Ganti MODEL_NAME dengan nama model yang telah Anda buat.")

## Memuat tool basis pengetahuan. Basis pengetahuan dapat dipanggil oleh agen sebagai tool.
knowledgebase_tools = []
if KNOWLEDGE_BASES and not KNOWLEDGE_BASES[0].startswith("<"):
    knowledgebase_tools = knowledgebase_toolset(
        knowledge_base_names=KNOWLEDGE_BASES,
    )
else:
    logger.warning("KNOWLEDGE_BASES belum diatur atau belum diganti. Lewati pemuatan tool basis pengetahuan.")

agent = create_agent(
    model=model(AGENTRUN_MODEL_SERVICE, model=AGENTRUN_MODEL_NAME, config=Config(timeout=180)),
    tools=[
        *knowledgebase_tools,   ## Mengintegrasikan kemampuan kueri basis pengetahuan menggunakan tool.
    ],
    system_prompt="Anda adalah pakar AI AgentRun yang dapat menjawab pertanyaan pengguna dengan mengkueri dokumen basis pengetahuan.",
)


async def invoke_agent(request: AgentRequest):
    messages = [
        {"role": msg.role, "content": msg.content}
        for msg in request.messages
    ]

    # Jika basis pengetahuan dikonfigurasi, kueri basis pengetahuan dan tambahkan hasilnya ke konteks.
    if KNOWLEDGE_BASES and not KNOWLEDGE_BASES[0].startswith("<"):
        # Mendapatkan konten pesan terbaru pengguna sebagai kueri.
        user_query = None
        for msg in reversed(request.messages):
            if msg.role == "user":
                user_query = msg.content
                break

        if user_query:
            try:
                retrieve_result = await KnowledgeBase.multi_retrieve_async(
                    query=user_query,
                    knowledge_base_names=KNOWLEDGE_BASES,
                )
                # Langsung tambahkan hasil pengambilan ke konteks.
                if retrieve_result:
                    messages.append({
                        "role": "assistant",
                        "content": json.dumps(retrieve_result, ensure_ascii=False),
                    })
            except Exception as e:
                logger.warning(f"Gagal mengambil basis pengetahuan: {e}")

    input: Any = {"messages": messages}

    converter = AgentRunConverter()
    if request.stream:

        async def async_generator():
            async for event in agent.astream(input, stream_mode="updates"):
                for item in converter.convert(event):
                    yield item

        return async_generator()
    else:
        result = await agent.ainvoke(input)
        return pydash.get(result, "messages[-1].content", "")


AgentRunServer(
    invoke_agent=invoke_agent,
    config=ServerConfig(
        cors_origins=[
            "*"
        ]
    ),
).start()

Catatan

  • Konektivitas jaringan: Jika Anda menerapkan instans RAGFlow privat, pastikan lingkungan server tempat layanan AgentRun berjalan dapat mengakses BaseURL RAGFlow.

  • Validitas kunci API: Periksa secara berkala apakah Kunci API Anda masih berlaku. Jika Anda mereset kunci di RAGFlow, Anda juga harus memperbaruinya di Konsol AgentRun.

  • Konsistensi semantik: Untuk hasil pengambilan optimal, model penyematan yang digunakan oleh basis pengetahuan harus sesuai dengan kemampuan pemahaman semantik model bahasa besar (LLM) yang digunakan oleh agen.