Cursus
Het bouwen van agentische AI-toepassingen is nu veel eenvoudiger dan een paar jaar geleden. In plaats van agentloops, toolintegraties, geheugen, retrieval en orkestratie vanaf nul te bouwen, kunnen ontwikkelaars Python-frameworks gebruiken die deze componenten grotendeels al bieden.
Ik heb veel van de frameworks in dit artikel gebruikt om RAG-toepassingen te bouwen, autonome agents, multi-agentsystemen en inzetbare AI-tools.
Ik gebruik vaak LangChain voor flexibele agentworkflows, LlamaIndex en Haystack voor datagestuurde toepassingen, en de OpenAI Agents SDK of Google ADK wanneer ik sneller met providermodellen wil integreren.
Sommige van deze frameworks zijn zó verbeterd dat een maatwerkoplossing vaak niet meer nodig is. Met een API-sleutel, wat modelcredits en het juiste framework kun je een agent maken, die aan tools of privédata koppelen, testen en uitrollen via een API of gebruikersinterface.
Dit artikel vergelijkt 15 Python-frameworks in vijf categorieën: algemene agentframeworks, officiële agent-SDK’s, frameworks voor multi-agentorkestratie, data- en RAG-frameworks, en lichte open-modelframeworks.
Elke sectie bevat ook een kort Python-voorbeeld dat je kunt kopiëren, plakken en testen om snel te begrijpen hoe het framework werkt.
Algemene agentframeworks
Deze frameworks bieden brede bouwstenen voor het maken van agents, het koppelen van tools, het beheren van state en het aansturen van meerstapsworkflows.
1. LangChain
Voor veel ontwikkelaars begon moderne LLM-applicatieontwikkeling met LangChain, een open-source Python-framework dat is ontworpen om taalmodellen te verbinden met externe data, tools, API’s en applicatielogica. Het werd een van de eerste breed geadopteerde frameworks om de OpenAI API te gebruiken met websites, documenten, vectordatabases en andere databronnen om contextbewustere toepassingen te bouwen.
Tegenwoordig is LangChain uitgegroeid tot een compleet ecosysteem voor het bouwen van end-to-end agentische AI-toepassingen, inclusief RAG-systemen, toolgebruikende agents, workflows, integraties, monitoring en evaluatie. Ik raad aan om de AI Engineering met LangChain-track te bekijken om meer te leren.
Het volgende voorbeeld maakt een eenvoudige LangChain-agent die een documentatiezoektool kan gebruiken om relevante informatie te vinden voordat een vraag wordt beantwoord.
# pip install -U langchain "langchain[openai]"
from langchain.agents import create_agent
def search_docs(query: str) -> str:
"""Search the company documentation."""
return f"Documentation found for: {query}"
agent = create_agent(
model="openai:gpt-5.5",
tools=[search_docs],
system_prompt="Use the documentation tool when needed.",
)
result = agent.invoke({
"messages": [{
"role": "user",
"content": "What is our remote-work policy?"
}]
})
print(result["messages"][-1].content)
2. LangGraph
Waar LangChain het eenvoudig maakt om agents en tools te creëren, biedt LangGraph meer controle over hoe die agents opereren. Ontwikkelaars kunnen een toepassing structureren als een graaf van verbonden stappen, wat het eenvoudiger maakt om loops, toolcalls, gedeelde state, menselijke goedkeuringen en multi-agentworkflows te beheersen.
Ik vind het vooral nuttig bij het bouwen van autonome agents die herhaaldelijk moeten beslissen wat te doen, de juiste tool moeten kiezen, het resultaat moeten controleren en doorgaan tot de taak klaar is. LangGraph ondersteunt ook persistentie, streaming, checkpoints en herstel voor langlopende toepassingen. Onze LangGraph-tutorial geeft meer details.
Het volgende voorbeeld maakt een agent die herhaaldelijk rekenhulpmiddelen kan aanroepen totdat hij genoeg informatie heeft om te antwoorden:
# pip install -U langgraph langchain langchain-openai
from langchain.chat_models import init_chat_model
from langchain.tools import tool
from langgraph.graph import MessagesState, StateGraph, START
from langgraph.prebuilt import ToolNode, tools_condition
model = init_chat_model("openai:gpt-5.5", temperature=0)
@tool
def add(a: int, b: int) -> int:
"""Add two numbers."""
return a + b
@tool
def multiply(a: int, b: int) -> int:
"""Multiply two numbers."""
return a * b
tools = [add, multiply]
model_with_tools = model.bind_tools(tools)
def call_model(state: MessagesState):
response = model_with_tools.invoke(state["messages"])
return {"messages": [response]}
builder = StateGraph(MessagesState)
builder.add_node("agent", call_model)
builder.add_node("tools", ToolNode(tools))
builder.add_edge(START, "agent")
builder.add_conditional_edges("agent", tools_condition)
builder.add_edge("tools", "agent")
agent = builder.compile()
result = agent.invoke({
"messages": [{
"role": "user",
"content": "Add 12 and 8, then multiply the result by 3."
}]
})
print(result["messages"][-1].content)
De graaf stuurt het verzoek naar het model, draait de vereiste tools en loopt terug naar het model totdat er een definitief antwoord is.
3. Agno
Agno is een Python-framework voor het bouwen van agents, multi-agentteams en gestructureerde workflows. Het bevat ook AgentOS, dat ontwikkelaars helpt agents via API’s bloot te stellen, sessies en traces op te slaan en ze te beheren als productieapplicaties. Omdat het op je eigen infrastructuur kan draaien, behouden organisaties meer controle over hun data en beveiliging.
Het volgende voorbeeld maakt een researchagent die het web kan doorzoeken voordat hij een beknopt antwoord geeft.
# pip install -U agno ddgs openai
from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.tools.duckduckgo import DuckDuckGoTools
agent = Agent(
name="AI Research Assistant",
model=OpenAIResponses(id="gpt-5.5"),
tools=[DuckDuckGoTools()],
instructions="Search when needed and keep the answer concise.",
)
agent.print_response(
"Find one recent development in open-source AI and summarize it.",
stream=True,
)
De agent gebruikt de zoektool om actuele informatie te vinden en streamt een korte samenvatting naar de gebruiker.
4. Pydantic AI
Pydantic AI is een Python-native framework van het team achter Pydantic voor het bouwen van agents en generatieve AI-toepassingen. Het voelt vergelijkbaar met werken met Pydantic-modellen of FastAPI, omdat agents, tools, dependencies en outputs worden gedefinieerd met standaard Python-functies, typehints, decorators en BaseModel-klassen. Vervolgens gebruikt het Pydantic-validatie om toolargumenten en modeloutputs gestructureerd en betrouwbaar te houden.
Ik kan de Pydantic AI-tutorial aanraden om meer over het framework te leren.
Het volgende voorbeeld maakt een agent die een gevalideerd artikelplan retourneert als een Pydantic-model.
# pip install -U pydantic-ai
from pydantic import BaseModel, Field
from pydantic_ai import Agent
class ArticlePlan(BaseModel):
title: str
key_points: list[str]
reading_time_minutes: int = Field(ge=1)
agent = Agent(
"openai:gpt-5.6-sol",
output_type=ArticlePlan,
instructions="Create concise article plans for technical readers.",
)
result = agent.run_sync(
"Create a short article plan about building AI agents in Python."
)
print(result.output)
De agent genereert een ArticlePlan-object en valideert dat elk veld overeenkomt met het vereiste Pythontype en de regels voordat het wordt geretourneerd.
Officiële agent-SDK’s
Officiële agent-SDK’s worden onderhouden door AI-providers en bieden meestal de eenvoudigste integratie met hun modellen, API’s, tools, uitrolsystemen en observabilityplatforms.
5. OpenAI Agents SDK
De OpenAI Agents SDK is een lichtgewicht, Python-first framework voor het bouwen van single-agent- en multi-agenttoepassingen. Het biedt een ingebouwde agentloop, function tools, handoffs, guardrails, sessies, menselijke goedkeuringen en tracing zonder te veel abstracties toe te voegen.
Ik werk graag met de OpenAI Agents SDK omdat die eenvoudig is, snel te integreren en makkelijk te begrijpen. Ik heb er veel toepassingen mee gebouwd zonder noemenswaardige problemen. Het maakt ook automatisch traces aan die je kunt bekijken in het OpenAI-dashboard, waardoor het eenvoudig is om modelantwoorden, toolcalls, handoffs en de volledige uitvoeringsflow te inspecteren.
Het volgende voorbeeld maakt een geschiedenisagent die een Python-functie kan aanroepen om een verrassend historisch weetje op te halen.
# pip install openai-agents
import asyncio
from agents import Agent, Runner, function_tool
@function_tool
def history_fun_fact() -> str:
"""Return a surprising historical fact."""
return "The first computer programmer, Ada Lovelace, lived in the 1800s."
agent = Agent(
name="History Assistant",
instructions=(
"Answer history questions clearly and briefly. "
"Use history_fun_fact when it is helpful."
),
tools=[history_fun_fact],
)
async def main():
result = await Runner.run(
agent,
"Tell me something surprising about the history of computing.",
)
print(result.final_output)
if __name__ == "__main__":
asyncio.run(main())
De SDK draait de agent, roept de geschiedenistool aan wanneer nodig, geeft het resultaat terug aan het model en produceert de uiteindelijke respons. De volledige run is ook te inspecteren via de traceviewer.
7. Google Agent Development Kit
Google’s Agent Development Kit, of ADK, is een open-source framework voor het bouwen, evalueren en uitrollen van individuele agents, toolgebruikende assistenten, graafworkflows en multi-agentsystemen. Het werkt vooral goed met Gemini-modellen, maar ondersteunt ook andere modelproviders.
ADK is een van mijn favoriete frameworks geworden omdat het eenvoudig is en natuurlijk werkt met Gemini.
Ik heb het gebruikt om meerdere toepassingen te bouwen zonder noemenswaardige problemen. Hoewel ik de OpenAI Agents SDK nog steeds makkelijker te integreren vind en flexibeler qua controls en ingebouwde features, is ADK een sterk alternatief en vooral concurrerend voor Gemini-gebaseerde toepassingen.
Het volgende voorbeeld maakt een evenementenassistent die een Python-functie kan aanroepen om de starttijd van een event op te halen.
# pip install google-adk
from google.adk.agents.llm_agent import Agent
def get_event_time(city: str) -> dict:
"""Return the event starting time for a city."""
return {
"status": "success",
"city": city,
"time": "6:00 PM",
}
root_agent = Agent(
model="gemini-flash-latest",
name="event_assistant",
description="Provides information about events in different cities.",
instruction=(
"Answer event questions clearly. "
"Use the get_event_time tool when the starting time is requested."
),
tools=[get_event_time],
)
De agent gebruikt de functie als tool wanneer hij de eventtijd voor een specifieke stad moet ophalen.
8. Claude Agent SDK
De Claude Agent SDK is Anthropic’s Python- en TypeScript-framework voor het bouwen van autonome agents met dezelfde agentloop, tools en contextbeheer die Claude Code aandrijven. Het is bijzonder nuttig voor agents die bestanden moeten lezen, code moeten bewerken, commando’s moeten uitvoeren, verbinding moeten maken met MCP-tools en langere taken moeten voltooien.
Anthropic, OpenAI en Google integreren hun modellen nauw met hun eigen agentframeworks, waardoor tools, sessies, tracing en andere geavanceerde features snel op te zetten zijn.
De Claude Agent SDK is echter specifiek ontworpen voor Claude in plaats van willekeurige open-source of lokaal gehoste modellen. Je kunt er meer over leren in onze Claude Agent SDK-tutorial.
Het volgende voorbeeld maakt een codeagent die een Python-bestand reviewt, bugs identificeert en ze automatisch fixt.
# pip install claude-agent-sdk
import asyncio
from claude_agent_sdk import (
AssistantMessage,
ClaudeAgentOptions,
ResultMessage,
query,
)
async def main():
async for message in query(
prompt="Review app.py for errors that could cause crashes and fix them.",
options=ClaudeAgentOptions(
allowed_tools=["Read", "Edit", "Glob"],
permission_mode="acceptEdits",
),
):
if isinstance(message, AssistantMessage):
for block in message.content:
if hasattr(block, "text"):
print(block.text)
elif hasattr(block, "name"):
print(f"Tool used: {block.name}")
elif isinstance(message, ResultMessage):
print(f"Completed: {message.subtype}")
if __name__ == "__main__":
asyncio.run(main())
De SDK draait de agentloop terwijl Claude het bestand leest, de vereiste tools kiest, de code bewerkt en de voortgang streamt totdat de taak voltooid is.
Frameworks voor multi-agentorkestratie
Multi-agentframeworks coördineren meerdere gespecialiseerde agents, waarbij elke agent een specifieke rol, doel, toolset of fase in een grotere workflow krijgt toegewezen.
9. CrewAI
CrewAI is een populair Python-framework voor het bouwen van multi-agentteams. Ontwikkelaars kunnen agents maken met verschillende rollen, doelen en taken en ze vervolgens combineren tot een crew die autonoom samenwerkt. Taken kunnen sequentieel draaien of via een hiërarchisch proces waarin een manager het werk coördineert en delegeert aan de meest geschikte agents.
Het volgende Python-voorbeeld maakt een onderzoeker en schrijver die samenwerken om een kort rapport te produceren.
# pip install crewai
# Set OPENAI_API_KEY before running
from crewai import Agent, Crew, Process, Task
researcher = Agent(
role="AI Researcher",
goal="Find the key facts about {topic}",
backstory="You research technical topics carefully.",
)
writer = Agent(
role="Technical Writer",
goal="Turn research into a clear summary",
backstory="You explain complex topics simply.",
)
research_task = Task(
description="Research {topic} and identify three key findings.",
expected_output="Three concise findings.",
agent=researcher,
)
writing_task = Task(
description="Write a short summary using the research findings.",
expected_output="A clear one-paragraph report.",
agent=writer,
context=[research_task],
)
crew = Crew(
agents=[researcher, writer],
tasks=[research_task, writing_task],
process=Process.sequential,
)
result = crew.kickoff(inputs={"topic": "agentic AI"})
print(result.raw)
De onderzoeker voltooit de eerste taak en de schrijver gebruikt de output als context om het eindrapport te maken.
10. MetaGPT
MetaGPT is een multi-agentframework dat een softwarebedrijf modelleert met gespecialiseerde agents zoals een productmanager, architect, projectmanager en engineer. Deze agents volgen gestructureerde procedures om een korte requirement om te zetten in plannen, technische ontwerpen, documentatie en werkende code.
Het volgende voorbeeld maakt een softwareteam en vraagt het om een eenvoudige command-line takenmanager te bouwen.
# pip install metagpt
# Configure a supported LLM API before running
import asyncio
from metagpt.roles import (
Architect,
Engineer,
ProductManager,
ProjectManager,
)
from metagpt.team import Team
async def startup(idea: str):
company = Team()
company.hire([
ProductManager(),
Architect(),
ProjectManager(),
Engineer(),
])
company.invest(investment=3.0)
company.run_project(idea=idea)
await company.run(n_round=5)
if __name__ == "__main__":
asyncio.run(
startup("Build a simple command-line task manager")
)
De agents verdelen de requirements over hun verschillende rollen en werken samen om het softwareproject te plannen en te ontwikkelen.
11. AgentScope
AgentScope is een Python-framework voor het bouwen van controleerbare en observeerbare agents en multi-agenttoepassingen. Het biedt kant-en-klare agents, tools, geheugen, berichtenroutering, streaming, parallelle toolcalls, workflows, tracing en menselijke interventie. AgentScope Studio kan ook worden gebruikt om de uitvoering van agents te inspecteren en te visualiseren.
Het volgende voorbeeld maakt een ReAct-agent die Python-code kan schrijven en uitvoeren om een berekening te voltooien.
# pip install agentscope
# Set DASHSCOPE_API_KEY before running
import asyncio
import os
from agentscope.agent import ReActAgent
from agentscope.formatter import DashScopeChatFormatter
from agentscope.memory import InMemoryMemory
from agentscope.message import Msg
from agentscope.model import DashScopeChatModel
from agentscope.tool import Toolkit, execute_python_code
async def main():
toolkit = Toolkit()
toolkit.register_tool_function(execute_python_code)
agent = ReActAgent(
name="Nova",
sys_prompt="You are a helpful Python assistant named Nova.",
model=DashScopeChatModel(
model_name="qwen-max",
api_key=os.environ["DASHSCOPE_API_KEY"],
stream=True,
),
formatter=DashScopeChatFormatter(),
toolkit=toolkit,
memory=InMemoryMemory(),
)
await agent(
Msg(
name="user",
content="Use Python to calculate the sum of numbers from 1 to 100.",
role="user",
)
)
if __name__ == "__main__":
asyncio.run(main())
De agent besluit de Python-uitvoeringstool aan te roepen, voert de gegenereerde code uit en gebruikt het resultaat om de gebruiker te antwoorden.
12. CAMEL-AI
CAMEL-AI is een open-source Python-framework voor het bouwen van agents, multi-agentsamenlevingen en rollenspelsimulaties. Het heeft een sterke onderzoeksfocus en biedt componenten voor agentsamenwerking, tools, geheugen, retrieval, datageneratie en wereldsimulatie. Het ondersteunt ook cloudmodellen en lokaal gehoste modellen via platforms zoals Ollama, vLLM en SGLang.
Het volgende voorbeeld maakt een agent die het web kan doorzoeken voordat hij een vraag beantwoordt.
# pip install "camel-ai[web_tools]"
# Set OPENAI_API_KEY before running
from camel.agents import ChatAgent
from camel.models import ModelFactory
from camel.toolkits import SearchToolkit
from camel.types import ModelPlatformType, ModelType
model = ModelFactory.create(
model_platform=ModelPlatformType.OPENAI,
model_type=ModelType.GPT_5_5,
model_config_dict={"temperature": 0.0},
)
agent = ChatAgent(
system_message="You are a helpful AI research assistant.",
model=model,
tools=[SearchToolkit().search_duckduckgo],
)
response = agent.step(
"What are the main uses of multi-agent AI systems?"
)
print(response.msgs[0].content)
De agent gebruikt DuckDuckGo-zoekopdrachten wanneer actuele informatie nodig is en geeft vervolgens het definitieve antwoord.
Data- en RAG-agentframeworks
Deze frameworks helpen LLM’s en agents te koppelen aan documenten, databases, API’s en andere privédatabronnen zodat ze relevante context kunnen ophalen voordat ze reageren.
13. LlamaIndex
LlamaIndex is een Python-framework voor het bouwen van contextbewuste toepassingen over privé of domeinspecifieke data. Het biedt connectors, indexen, retrievers, query-engines, agents en workflows voor toepassingen zoals RAG, enterprise search en documentassistenten.
LlamaIndex was een van mijn favoriete frameworks toen ik begon met het bouwen van RAG-toepassingen. Het maakt het laden, indexeren en bevragen van data extreem eenvoudig, en ik vind de code vaak eenvoudiger en korter dan bij het bouwen van dezelfde toepassing met LangChain. Je kunt de cursus LlamaIndex volgen om meer te leren.
Het volgende voorbeeld laadt documenten uit een map, maakt een doorzoekbare index en beantwoordt een vraag met behulp van de opgehaalde context.
# pip install llama-index
# Set OPENAI_API_KEY before running
from llama_index.core import SimpleDirectoryReader, VectorStoreIndex
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query(
"What are the main findings in these documents?"
)
print(response)
LlamaIndex indexeert de bestanden in de map data en haalt relevante informatie op voordat het het antwoord genereert.
14. Haystack
Haystack is een open-source Python-framework voor het bouwen van productieklare RAG-pijplijnen, semantische zoeksystemen, agents en datagerichte AI-toepassingen. De modulaire pijplijnstructuur biedt duidelijke controle over hoe informatie wordt opgehaald, aan een prompt wordt toegevoegd en naar een model wordt gestuurd.
Ik heb Haystack gebruikt om RAG- en multi-agenttoepassingen te bouwen zonder noemenswaardige problemen. Hoewel het een generiek framework is, is het vooral nuttig voor toepassingen die LLM’s verbinden met documenten, tekst, zoeksystemen en andere databronnen.
Het volgende voorbeeld slaat een paar documenten op, haalt het meest relevante document op en gebruikt dit om een vraag te beantwoorden.
# pip install -U haystack-ai
# Set OPENAI_API_KEY before running
from haystack import Document, Pipeline
from haystack.components.builders import ChatPromptBuilder
from haystack.components.generators.chat import (
OpenAIResponsesChatGenerator,
)
from haystack.components.retrievers import InMemoryBM25Retriever
from haystack.dataclasses import ChatMessage
from haystack.document_stores.in_memory import InMemoryDocumentStore
document_store = InMemoryDocumentStore()
document_store.write_documents([
Document(content="The London AI event starts at 6:00 PM."),
Document(content="The Berlin AI event starts at 7:00 PM."),
])
template = [
ChatMessage.from_system(
"Answer using the following documents:\n"
"{% for doc in documents %}{{ doc.content }}{% endfor %}"
),
ChatMessage.from_user("{{ question }}"),
]
pipeline = Pipeline()
pipeline.add_component(
"retriever",
InMemoryBM25Retriever(document_store),
)
pipeline.add_component(
"prompt_builder",
ChatPromptBuilder(template=template),
)
pipeline.add_component(
"llm",
OpenAIResponsesChatGenerator(model="gpt-5.5"),
)
pipeline.connect("retriever", "prompt_builder.documents")
pipeline.connect("prompt_builder", "llm")
question = "When does the London AI event start?"
result = pipeline.run({
"retriever": {"query": question},
"prompt_builder": {"question": question},
})
print(result["llm"]["replies"][0].text)
Haystack haalt het overeenkomende document op, voegt het toe aan de prompt en gebruikt GPT-5.5 om een onderbouwd antwoord te geven.
Lichte en open-modelframeworks
Deze frameworks bieden eenvoudigere abstracties voor het bouwen van agents met gehoste of lokaal draaiende open modellen.
15. Hugging Face smolagents
Hugging Face smolagents is een lichtgewicht Python-framework voor het bouwen van agents met slechts een beetje code. De CodeAgent voert acties uit door Python te schrijven, terwijl ToolCallingAgent gestructureerde toolcalls gebruikt. Het werkt vooral goed met Hugging Face-modellen, Inference Providers en lokaal gehoste open-sourcemodellen.
Het volgende voorbeeld maakt een webzoekagent en geeft deze aan een manageragent die beslist wanneer onderzoek wordt gedelegeerd.
# pip install -U "smolagents[toolkit]"
# Set HF_TOKEN before running
from smolagents import (
CodeAgent,
InferenceClientModel,
ToolCallingAgent,
WebSearchTool,
)
model = InferenceClientModel(
model_id="Qwen/Qwen3-Next-80B-A3B-Thinking"
)
web_agent = ToolCallingAgent(
tools=[WebSearchTool()],
model=model,
name="web_search_agent",
description="Searches the web and returns useful information.",
)
manager_agent = CodeAgent(
tools=[],
model=model,
managed_agents=[web_agent],
)
result = manager_agent.run(
"Who created Hugging Face, and when was it founded?"
)
print(result)
De manager beslist wanneer actuele informatie nodig is, delegeert de zoekopdracht aan de gespecialiseerde webagent en produceert vervolgens het definitieve antwoord.
Snelle frameworkvergelijking
De onderstaande tabel vergelijkt de belangrijkste kracht van elk framework en het type agentische AI-toepassing waarvoor het het meest geschikt is.
|
Framework |
Belangrijkste kracht |
Kies het wanneer |
|
LangChain |
Groot integratie-ecosysteem |
Je brede integraties, tools en flexibiliteit nodig hebt |
|
LangGraph |
Stateful graaforkestratie |
Je gecontroleerde loops, durabele uitvoering en complexe workflows nodig hebt |
|
Agno |
Compleet agentplatform |
Je agentservices wilt bouwen, zelf hosten en beheren |
|
Pydantic AI |
Type-veilig Python-ontwikkelen |
Je gevalideerde tools, dependencies en gestructureerde outputs nodig hebt |
|
OpenAI Agents SDK |
Eenvoudige agentontwikkeling en tracing |
Je vooral OpenAI-modellen gebruikt en snel wilt integreren |
|
Google ADK |
Gemini-native agentontwikkeling |
Je Gemini, Google Cloud of multi-agentworkflows gebruikt |
|
Claude Agent SDK |
Computer-, bestands- en commandotools |
Je codeer-, research- of langlopende agents met Claude bouwt |
|
CrewAI |
Rolgebaseerde agentteams |
Meerdere gespecialiseerde agents aan een project moeten samenwerken |
|
MetaGPT |
Simulatie van een softwarebedrijf |
Je agents complete softwareprojecten wilt laten plannen en genereren |
|
AgentScope |
Observeerbare en controleerbare agents |
Je traceerbare agents of multi-agenttoepassingen nodig hebt |
|
CAMEL-AI |
Multi-agentonderzoek en simulatie |
Je rollenspel, agentsamenlevingen of grote agentsystemen bestudeert |
|
LlamaIndex |
Dataverbonden en contextbewuste toepassingen |
Je agents privédocumenten moeten ophalen en erover redeneren |
|
Haystack |
Modulaire en transparante RAG-pijplijnen |
Je controle nodig hebt over retrieval, prompting en datastromen |
|
smolagents |
Lichtgewicht open-modelagents |
Je minimale abstracties, code-agents of ondersteuning voor lokale modellen wilt |
Tot slot
Als je net begint met agentische AI, zou ik starten met een officiële SDK zoals de OpenAI Agents SDK, Google ADK of Claude Agent SDK. Ze werken nauw samen met hun eigen modellen en API’s, dus de setup is meestal eenvoudig. Je voegt een API-sleutel toe, laadt wat credits en gaat bouwen.
Ik hou van deze SDK’s omdat ze het makkelijk maken om agents te creëren, tools te koppelen en te inspecteren wat er tijdens een run is gebeurd. Met slechts een paar regels Python kun je een nuttige agent of zelfs een klein multi-agentsysteem bouwen.
Als ik meer flexibiliteit nodig heb, kijk ik meestal naar LangChain of LangGraph. LangChain is handig wanneer ik veel integraties nodig heb, terwijl LangGraph me meer controle geeft over state, loops en langere workflows.
Voor teams van agents met verschillende rollen is CrewAI een goede optie. Voor RAG, privédocumenten en dataverbonden toepassingen zou ik LlamaIndex of Haystack kiezen.
Tot slot is smolagents een goede keuze als ik iets lichtgewicht, eenvoudigs en makkelijk te gebruiken wil met open of lokale modellen.
Mijn advies: begin met het eenvoudigste framework dat bij je project past. Bouw een kleine versie, test die goed en voeg pas meer complexiteit toe wanneer je die echt nodig hebt.
FAQs
Hoeveel kost het draaien van een AI-agent vergeleken met een standaard LLM-prompt?
Hoewel de Python-frameworks zelf open-source en gratis zijn, kan het draaien van agents aanzienlijk duurder zijn dan standaard LLM-API-calls. Omdat agents in loops opereren en continu de systemprompt, toolbeschrijvingen, eerdere tooloutputs en redeneerstappen (zoals ReAct) terug naar het model sturen, loopt het tokenverbruik snel op. Eén gebruikersverzoek kan vijf of zes LLM-calls triggeren voordat de agent tot een definitief antwoord komt. Om kosten te beheersen, gebruiken ontwikkelaars vaak kleinere, goedkopere modellen voor eenvoudige routeringstaken en reserveren ze grotere modellen voor complexere redenering.
Hoe evalueer ik of mijn agent echt goed werkt?
Het testen van niet-deterministische agents vergt meer dan standaard unittests. Ontwikkelaars gebruiken gespecialiseerde evaluatieframeworks met "LLM-as-a-judge", zoals Ragas, TruLens of DeepEval. Deze tools draaien je agent tegen een dataset met testvragen en scoren de outputs op specifieke metrics, zoals:
- Geborgdheid: Heeft de agent gehallucineerd, of is het antwoord puur gebaseerd op opgehaalde context?
- Nauwkeurigheid van toolselectie: Koos de agent de juiste tool voor de taak?
- Relevantie van het antwoord: Gaat de uiteindelijke respons daadwerkelijk in op de vraag van de gebruiker?
Wat is het verschil tussen een standaard RAG-pijplijn (LlamaIndex/Haystack) en een "Agentic" RAG-systeem?
Een standaard RAG-pijplijn volgt een statisch, hardcoded pad: hij neemt een gebruikersvraag, zoekt in een vectordatabase, voegt de resultaten in een prompt in en genereert een antwoord. Hij voert dit één keer uit en stopt. Een Agentic RAG-systeem geeft de LLM autonomie over het retrievalproces. De agent kan beslissen of er überhaupt gezocht moet worden, meerdere verschillende zoekqueries genereren om bredere context te verzamelen, evalueren of de opgehaalde documenten bruikbaar zijn en ervoor kiezen opnieuw te zoeken als de informatie onvolledig is, om uiteindelijk de gebruiker te beantwoorden.
Als gecertificeerd data scientist haal ik met passie het maximale uit de nieuwste technologie om innovatieve machinelearning-toepassingen te bouwen. Met een sterke achtergrond in spraakherkenning, data-analyse en -rapportage, MLOps, conversationele AI en NLP heb ik mijn vaardigheden aangescherpt in het ontwikkelen van intelligente systemen die echt impact maken. Naast mijn technische expertise ben ik ook een sterke communicator met een talent om complexe concepten terug te brengen tot heldere, beknopte taal. Daardoor ben ik uitgegroeid tot een veelgelezen blogger over data science, waar ik mijn inzichten en ervaringen deel met een groeiende community van data-professionals. Op dit moment richt ik me op contentcreatie en redactie, waarbij ik met large language models werk aan krachtige en aansprekende content die zowel bedrijven als individuen helpt het beste uit hun data te halen.

