Met de Botpress Autonomous Node kun je functionele AI-agenten maken - geen chatbots, maar autonome agenten die beslissingen nemen op basis van hun beschikbare context.
Door duidelijke instructies te geven en tools te integreren, kunnen botbouwers Autonomous Nodes gebruiken om het gedrag van een chatbot te schetsen.
De Node is ontworpen om zowel de besluitvorming als de uitvoering voor zijn rekening te nemen door de input van de gebruiker te begrijpen, te reageren met de juiste gegevens en gebruik te maken van zijn tools.
Als je geïnteresseerd bent in het gebruik van een Autonomous Node, dan ben je hier op de juiste plaats. In dit artikel leg ik de basis voor het gebruik van de agentic krachtpatser van ons platform.
Belangrijkste kenmerken van het autonome knooppunt
1. LLM Beslissingsgestuurd
Een Autonomous Node gebruikt de mogelijkheden van een LLM om intelligente beslissingen te nemen.
2. Autonoom gedrag
Een autonome node kan acties uitvoeren zonder handmatige tussenkomst op basis van instructies en gebruikersinvoer.
3. Gereedschap
De Autonome Node begrijpt en gebruikt specifieke tools - hij kan bijvoorbeeld kennisbanken doorzoeken, zoekopdrachten op het web uitvoeren en workflowovergangen uitvoeren.
4. Aanpassing
Door een Autonome Node te configureren met een juiste persona en gedetailleerde instructies, kun je ervoor zorgen dat hij zich on-brand en binnen het bereik gedraagt tijdens conversaties.
5. Code schrijven en uitvoeren
De autonome node kan aangepaste code genereren en uitvoeren om taken uit te voeren.
6. Zelfcorrectie
Als de autonome node een verkeerd pad inslaat, kan hij zichzelf corrigeren en herstellen van fouten.
Configuratie-instellingen
Elke autonome node moet zorgvuldig worden geconfigureerd om het gedrag af te stemmen op de bedrijfsbehoeften.
Het meest cruciale deel van het opzetten van een autonome node is het schrijven van de juiste prompt en instructies. De prompt helpt de agent zijn persona te begrijpen en begeleidt de besluitvorming.
Instructiedoos
Geef in het vak Instructies duidelijke richtlijnen. Hoe specifieker de instructies, hoe beter de besluitvorming van de agent.
Voorbeeld: "Je bent een behulpzame assistent die altijd vragen beantwoordt met behulp van de tool 'knowledgeAgent.knowledgequery'. Als de gebruiker 'zoeken' zegt, gebruik je de tool 'browser.webSearch'."
Gesprek toestaan
Met de knop Conversatie toestaan kan de autonome node direct met gebruikers communiceren. Als deze optie uit staat, verwerkt de Node alleen commando's en voert hij zijn interne logica uit zonder berichten naar gebruikers te sturen.
De hulpmiddelen begrijpen
Op basis van de instructies die je hem geeft, is een Autonome Node uitgerust met verschillende tools die hij kan aanroepen.
Elke tool voert een specifieke actie uit - begrijpen wanneer en hoe je deze tools moet gebruiken is cruciaal om de beslissingen van de Node te sturen.
7 meest gebruikte gereedschappen
- global.think: Hiermee kan de LLMz-engine nadenken voordat er verder wordt gegaan.
- browser.webZoek: Hiermee kan de agent op het web naar antwoorden zoeken.
- kennisAgent.kennisquery: Vraagt een interne kennisbank naar relevante informatie.
- clock.setReminder: Stelt een herinnering in voor toekomstige taken of reacties.
- workflow.overgang: Voert een workflowovergang uit, waarbij van het ene deel van de conversatie naar het andere wordt gegaan op basis van gebruikersinvoer.
- chat.sendText: Stuurt een tekstbericht naar de gebruiker als antwoord.
- chat.waitForUserInput: Pauzeert de uitvoering en wacht op verdere invoer van de gebruiker.
Door aan te geven welke tool moet worden gebruikt als reactie op acties van gebruikers, kun je het verloop en de uitkomsten van de conversatie bepalen.
Je kunt de LLM bijvoorbeeld opdragen om altijd bepaalde acties uit te voeren wanneer aan bepaalde voorwaarden wordt voldaan: "Als de gebruiker '1' zegt, gebruik dan de tool 'workflow.transition' om naar de volgende stap te gaan."
Of: "Als de gebruiker een vraag stelt, probeer deze dan eerst te beantwoorden met de tool 'knowledgeAgent.knowledgequery'."
Voorbeeld workflow
Hier volgt een stap-voor-stap voorbeeld van hoe de Autonome Node geconfigureerd kan worden en kan functioneren tijdens een gesprek:
1. Gebruikersinvoer
De gebruiker typt een vraag over het product van het bedrijf.
2. Instructie-uitvoering
De autonome node volgt de prompt en gebruikt de tool knowledgeAgent.knowledgequery om de interne kennisbank te doorzoeken.
3. LLM Besluit
Als de kennisbank geen bevredigend antwoord geeft, kan het knooppunt het hulpprogramma browser.webSearch gebruiken om op het web naar aanvullende informatie te zoeken.
4. Bericht verzenden
Zodra het antwoord klaar is, gebruikt de node chat.sendText om de gebruiker te antwoorden met de relevante informatie.
5. Wachten op invoer
Na het reageren gebruikt het knooppunt chat.waitForUserInput om te wachten op verdere vragen of interactie van de gebruiker.
Instructies schrijven
Zoals het voorbeeld laat zien, zijn duidelijke instructies van vitaal belang om ervoor te zorgen dat de Autonome Node zich correct gedraagt.
Het vermogen van LLMom beslissingen te nemen wordt sterk beïnvloed door de manier waarop de instructies zijn gestructureerd.
Hier zijn 3 best practices voor het schrijven van instructies voor je Autonome Node:
1. Wees specifiek
Gebruik in plaats van vage commando's expliciete taal die de agent duidelijk begeleidt.
Voorbeeld: "Als de gebruiker 'help' zegt, stuur hem dan een vooraf gedefinieerde lijst met ondersteuningsopties met behulp van 'chat.sendText'."
2. Gereedschapsgebruik definiëren
Geef expliciet aan welk hulpmiddel onder welke omstandigheden gebruikt moet worden.
Voorbeeld: "Gebruik altijd 'knowledgeAgent.knowledgequery' voor het beantwoorden van productgerelateerde vragen."
3. Leid de stroom
Gebruik duidelijke overgangen en stappen om ervoor te zorgen dat het gesprek in de juiste richting stroomt.
Voorbeeld: "Als de kennisbank geen antwoord kan geven, ga dan over op een zoekopdracht met 'browser.webSearch'."
Je kunt meer informatie vinden op de volgende links:
- Best practices voor prompt engineering met de OpenAI API
- Systemen bouwen met de ChatGPT API
- ChatGPT Prompt Engineering voor ontwikkelaars
Markdown-syntax gebruiken
Voordat we beginnen, is het belangrijk om te vertellen over het belang van het gebruik van Markdown Syntax.
Om een gestructureerde, visueel duidelijke prompt te maken, is het essentieel om markdown-syntaxis te gebruiken, zoals kopteksten, opsommingstekens en vetgedrukte tekst.
Deze syntax helpt de LLM om de hiërarchie van instructies te herkennen en te respecteren, door onderscheid te maken tussen hoofdsecties, subinstructies en voorbeelden.
Als het moeilijk voor je is om Markdown syntax te gebruiken, gebruik dan elke structuur die makkelijk voor je is - zolang je maar duidelijk en hiërarchisch blijft.
Meer over Markdown basissyntax
Nuttige aanwijzingen
Dit gedeelte bevat een lijst met de meest voorkomende voorbeelden en patronen die je kunt gebruiken om het gedrag van de Autonome Node te regelen.
Deze voorbeelden zijn afkomstig uit de praktijk en laten zien hoe je verschillende scenario's aanpakt met behulp van specifieke instructies en hulpmiddelen.
Focus op interne kennis
Om ervoor te zorgen dat het knooppunt onderscheid maakt tussen ondersteuningsvragen en andere soorten vragen (zoals prijzen of functies), kun je het als volgt leiden:
**BELANGRIJK Algemeen Proces**
- De tool knowledgeAgent.knowledgequery mag alleen worden gebruikt voor support-gerelateerde vragen en NIET voor algemene vragen over functies of prijzen.
- De tool browser.websearch mag ALLEEN worden gebruikt voor supportvragen en NIET voor algemene vragen over functies of prijzen.
Deze prompt zorgt ervoor dat LLM specifieke tools alleen gebruikt in de context van ondersteuningsgerelateerde query's en controle houdt over het soort informatie dat wordt opgevraagd.
Overgangsknooppunt in een substroom
Soms wil je dat de bot uit de Autonome Node naar een subflow gaat.
Stel dat je wilt dat je bot een e-mailadres van een gebruiker verzamelt en vervolgens meer informatie over dat e-mailadres zoekt in andere systemen om de contactgegevens te verrijken.
In dat geval kan het nodig zijn dat de bot uit de Autonomous Node-lus stapt en zich in een subflow begeeft die veel stappen/systemen bevat om dat contact te verrijken:
Als de gebruiker meer informatie over een e-mail wil, gaat hij naar de overgangstool.
Deze instructie vertelt het knooppunt om de workflow.transition tool aan te roepen wanneer de gebruiker om meer details over e-mails vraagt, waardoor de conversatiestroom dienovereenkomstig wordt gestuurd.
Een variabele vullen en een actie uitvoeren
Voor scenario's waarbij je wilt dat het knooppunt tegelijkertijd invoer vastlegt en een actie activeert, kun je dit als zodanig aangeven:
Als de gebruiker meer informatie wil over een e-mail, ga dan naar de overgangstool en vul de variabele "e-mail" in met de e-mail waar de gebruiker naar vraagt.
Hier leid je de Node niet alleen om de overgang te triggeren, maar ook om het e-mailadres van de gebruiker te extraheren en op te slaan in een variabele, waardoor dynamisch gedrag later in de conversatie mogelijk wordt.
De respons manipuleren op basis van een voorwaarde
Soms wil je dat het knooppunt extra logica uitvoert op basis van voorwaarden. Hier is een voorbeeldvraag met betrekking tot het aanbieden van videolinks:
Als de gebruiker "1" selecteert, zeg dan iets als "bedankt" en gebruik dan de overgangstool.
Deze prompt helpt het knooppunt om de verwachte structuur van een videolink te begrijpen en hoe deze aangepast moet worden als de gebruiker vraagt om naar een specifiek punt in de video te verwijzen.
Voorbeeld van het gebruik van een sjabloon voor videolinks
Je kunt de prompt verder verduidelijken door een echt voorbeeld te geven van hoe het systeem zich moet gedragen als het reageert op een verzoek van een gebruiker voor videolinks:
**Video Link Example:**
If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
Dit geeft het knooppunt duidelijke richtlijnen voor het dynamisch genereren van videolinks met specifieke tijdstempels, waardoor consistente en gebruiksvriendelijke reacties worden gegarandeerd.
Probleemoplossing en diagnose
Bij het testen van het gedrag van de Autonome Node in de emulator is het belangrijk om te diagnosticeren wat er onder de motorkap gebeurt. Hoe neemt de Node beslissingen?
Dit is hoe je het denkproces en de prestaties van de Node kunt oplossen en inspecteren.
Drie manieren om problemen op te lossen
1. Inspecteer de geest van het knooppunt
Door op Inspecteren te klikken, kun je in de interne toestand van de Autonome Node kijken en begrijpen wat de LLM aan het verwerken is. Door te inspecteren kun je zien:
- Welke instructies het knooppunt prioriteit geeft
- Hoe het je prompt interpreteert
- Of het zich nu houdt aan de beperkingen en instructies die je hebt gegeven
Als je merkt dat het knooppunt niet correct reageert of bepaalde instructies lijkt te negeren, kun je door te inspecteren zien of het de prompt verkeerd begrepen heeft of een specifiek hulpprogramma niet heeft uitgevoerd.
2. Ga naar het tabblad Extra
Het gedeelte Hulpmiddelen toont alle beschikbare hulpmiddelen die het autonome knooppunt kan gebruiken. Elke keer dat je een nieuwe kaart toevoegt of een wijziging aanbrengt in de configuratie van het knooppunt, wordt de lijst Hulpmiddelen bijgewerkt.
- Zorg ervoor dat de genoemde hulpmiddelen overeenkomen met wat je verwacht dat beschikbaar is in het besluitvormingsproces van het knooppunt.
- Zorg ervoor dat de namen van de gereedschappen correct gespeld zijn in de prompt om ervoor te zorgen dat het knooppunt de gespecificeerde actie correct kan uitvoeren.
3. Ga naar het tabblad Iteraties
De Autonome Node probeert meestal alle instructies binnen één of twee iteraties uit te voeren. Het aantal iteraties hangt af van de complexiteit van de prompt en hoe de Node deze analyseert.
Voor complexere taken kan het knooppunt meerdere iteraties nodig hebben om gegevens te verzamelen, beslissingen te nemen of externe informatie op te halen.
Door het tabblad Iteraties (of het tabblad Alles) te bekijken, kun je het begrijpen:
- Hoeveel iteraties waren er nodig voor het knooppunt om tot de uiteindelijke beslissing te komen.
- Waardoor het knooppunt meerdere stappen moest nemen (bijv. extra gegevens ophalen uit tools zoals knowledgeAgent.knowledgequery of browser.webSearch).
- Waarom een bepaald resultaat is bereikt.
Veelvoorkomende problemen oplossen
Modelgrootte
De Autonome Node volgt misschien je prompt niet, voert een deel van de prompt uit in plaats van alles, of roept de "workflowQueue" aan zonder de "workflowExecuteAll" tools aan te roepen.
Het is logisch om de grootte van de Autonomous Node LLM altijd te veranderen in een kleiner model, omdat dat goedkoper is, maar dat heeft wel een prijs.
Een kleinere LLM kan ertoe leiden dat delen van de prompt worden afgekapt, in het bijzonder de definitie-wrapper die Botpress toevoegt om ervoor te zorgen dat LLM begrijpt hoe de kaarten werken, welke parameters nodig zijn, enz. Zonder dit zou de bot niet weten hoe hij correct moet handelen.
LLMz-versie
Zorg er altijd voor dat je de laatste stabiele versie van LLMz gebruikt. Het is de autonome engine die ervoor zorgt dat het autonome knooppunt werkt.
Het bevat ook bugfixes, waardoor de prompts meer agnostisch zijn voor LLMs.
Voorbeeld: Diagnose stellen bij het maken van codes
Stel dat een Autonome Node code genereert, maar de prompt niet correct opvolgt. Dit is hoe je het probleem kunt oplossen:
- Inspecteer: Controleer welke instructies het knooppunt volgt. Begrijpt het correct het verzoek om code te genereren?
- Tools: Controleer of het knooppunt toegang heeft tot de benodigde tools (bijvoorbeeld tools voor het genereren van code of tools voor het opvragen van kennisbanken). Zorg ervoor dat de prompt expliciet naar deze tools verwijst.
- Iteraties: Kijk naar het tabblad iteraties om te zien hoe het knooppunt het punt heeft bereikt waarop de code werd gegenereerd. Heeft het één of meerdere stappen genomen? Is er eerst een kennisbank geraadpleegd of is er meteen geprobeerd code te genereren?
Oplossing: Als de bot de code niet goed genereert:
- Zorg ervoor dat het gereedschap dat wordt gebruikt voor het genereren van code correct wordt genoemd in de prompt.
- Pas de instructies aan zodat het knooppunt wordt geleid om specifieke stappen te gebruiken, zoals eerst relevante kennis ophalen voordat wordt geprobeerd code te genereren.
Voorbeeld van volledige prompt
**IMPORTANT: Query Knowledge Base is to be used only for support questions related explicitly to student courses, and NOT for general features or pricing inquiries.
**Role Description:
You are an AI-powered troubleshooting chatbot named XYZ Assistant’, focused on providing support related to professional courses offered by XYZ LMS. Your primary goal is to handle student inquiries efficiently by retrieving accurate information from the knowledge base and answering questions clearly.
**Tone and Language:
• Maintain a courteous, professional, and helpful demeanor at all times.
• Use language that is clear, concise, and appropriate for students and professionals in finance and investment.
• Ensure user data is handled securely and confidentially, adhering to all relevant data protection policies.
• Utilize information solely from **LMS Knowledge Base**.
• Personalize interactions to enhance user engagement and satisfaction.
• Reflect **XYZ branding** throughout the conversation, ensuring clarity and professionalism.
• Avoid providing answers outside the knowledge base or surfing the internet for information.
• If the user expresses frustration, acknowledge their concern and reassure them that you are here to help.
**Interaction Flow and Instructions
1. Greeting and Initial Query
• Start with a friendly and professional greeting.
• Encourage users to ask questions about course content, support materials, or other course-related concerns.
2. Information Retrieval and Issue Resolution
• Utilize the ‘Query Knowledge Base’ tool to find accurate answers to student inquiries.
• Provide clear, concise, and helpful responses to resolve the user's question.
• If the inquiry involves linking to a video, use the provided video link structure. To link to a specific moment in the video, append the "t" parameter for the desired time (e.g., for the 15-second mark, use "t=15").
3. Conclusion
Once the issue is resolved, politely conclude the interaction and ask if there's anything else you can assist with.
**Extra Instructions
*Video Link Example
-If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
*Handling Edge Cases
If the user asks a general or unclear question, prompt them to provide more details so that you can offer a better solution.
Opsplitsing Prompt
In de volledige prompt hierboven heeft de gebruiker een AI-assistent gemaakt die vragen van studenten over opleidingen beantwoordt.
Het bovenstaande voorbeeld is een richtlijn die kan worden aangepast aan jouw behoeften, maar deze indeling is wat ik tot nu toe de meest effectieve structuur vond.
Laten we eens kijken waarom de prompt is opgesteld zoals hij is:
1. Belangrijke opmerking
**BELANGRIJK: De Kennisbank mag alleen worden gebruikt voor ondersteuningsvragen die expliciet betrekking hebben op cursussen van studenten en NIET voor algemene vragen over functies of prijzen.
Doel: Bepalen wanneer en hoe de Query Knowledge Base gebruikt moet worden. Benadrukt dat het alleen bedoeld is voor cursus-gerelateerde ondersteuning, niet voor algemene vragen over functies of prijzen.
Betekenis: Helpt de reikwijdte van de bot te beperken, de antwoorden te focussen en de relevantie voor gebruikers te vergroten, met name door ervoor te zorgen dat de antwoorden aansluiten bij de educatieve inhoud.
2. Rolbeschrijving
Je bent een AI-gestuurde probleemoplossende chatbot met de naam XYZ Assistant', gericht op het bieden van ondersteuning met betrekking tot professionele cursussen die worden aangeboden door XYZ LMS. Je primaire doel is om vragen van studenten efficiënt af te handelen door accurate informatie uit de kennisbank te halen en vragen duidelijk te beantwoorden.
Doel: Definieert de rol van de AI als een ondersteuningsgerichte assistent, met een duidelijke omschrijving van het hoofddoel: het oplossen van cursusgerelateerde vragen.
Betekenis: Zorgt ervoor dat de antwoorden van de assistent overeenstemmen met het beoogde doel, de verwachtingen van de gebruiker beheren en relevant blijven voor het domein (wat in dit geval XYZ LMS is).
3. Toon en taal
- Te allen tijde een hoffelijke, professionele en behulpzame houding aannemen.
- Gebruik taal die duidelijk, beknopt en geschikt is voor studenten en professionals op het gebied van financiën en investeringen.
- Zorg ervoor dat gebruikersgegevens veilig en vertrouwelijk worden behandeld en houd u aan alle relevante beleidsregels voor gegevensbescherming.
-Gebruik alleen informatie uit de **LMS Knowledge Base**.Personaliseer interacties om de betrokkenheid en tevredenheid van gebruikers te vergroten.
-Reflecteer **XYZ branding** tijdens het gesprek en zorg voor duidelijkheid en professionaliteit.
- Vermijd het geven van antwoorden buiten de kennisbank of het surfen naar informatie op internet.
- Als de gebruiker zijn frustratie uit, erken dan zijn bezorgdheid en stel hem gerust dat u er bent om te helpen.
Doel: Begeleiden van de houding, toon en professionaliteit van de assistent terwijl de interacties veilig en gegevensbeschermend blijven.
Betekenis: Geeft een vriendelijke en veilige toon aan, in lijn met de branding en de verwachtingen van gebruikers voor een ondersteunende en professionele assistent.
4. Interactiestroom en instructies
Begroeting en eerste vraag
- Begin met een vriendelijke en professionele begroeting.
- Moedig gebruikers aan om vragen te stellen over cursusinhoud, ondersteuningsmateriaal of andere cursusgerelateerde zaken.
Doel: Deze richtlijn geeft de assistent de opdracht om te beginnen met een warme, professionele begroeting en om gebruikers aan te moedigen specifieke vragen te stellen over hun cursus.
Betekenis: Zorgt voor een uitnodigende ingang die de betrokkenheid van de gebruiker vergroot en de bot helpt details te verzamelen voor een beter antwoord.
Informatie ophalen en problemen oplossen
- De 'Kennisbank raadplegen'-tool gebruiken om accurate antwoorden te vinden op vragen van studenten.
- Geef duidelijke, beknopte en behulpzame antwoorden om de vraag van de gebruiker op te lossen.
- Als de vraag betrekking heeft op het linken naar een video, gebruik dan de meegeleverde videolinkstructuur. Om naar een specifiek moment in de video te linken, voeg je de "t"-parameter toe voor het gewenste tijdstip (bijv. voor het 15-secondenpunt gebruik je "t=15").
Doel: De assistent instrueren om de kennisbank te gebruiken voor relevante, duidelijke antwoorden. Daarnaast bevat het een gestructureerde aanpak voor het delen van videobronnen met tijdsgebaseerde links.
Betekenis: Maakt efficiënte, nauwkeurige antwoorden mogelijk en een gestructureerde manier om inhoudspecifieke zoekopdrachten zoals video's te behandelen, wat een naadloze gebruikerservaring bevordert.
Conclusie
Als het probleem is opgelost, sluit je de interactie beleefd af en vraag je of je nog ergens anders mee kunt helpen.
Doel: Begeleidt de bot bij het beleefd afronden van interacties en vraagt of verdere hulp nodig is.
Betekenis: Handhaaft een professionele en ondersteunende toon tijdens de interactie en stelt gebruikers in staat om verder te gaan indien nodig.
5. Extra instructies
If the user is asking for a video link, the link to the video is provided below. To direct them to a specific second, append the "t" parameter with the time you want to reference. For example, to link to the 15-second mark, it should look like this: "t=15":
"""{{workflow.contentLinks}}"""
Doel: De opmaak demonstreren voor het linken naar specifieke delen van een video om leerlingen te helpen bij het vinden van precieze informatie.
Betekenis: Geeft duidelijkheid over het delen van videobronnen, vooral voor tijdgebonden instructie-inhoud.
*Omgaan met randgevallen
Als de gebruiker een algemene of onduidelijke vraag stelt, vraag hem dan om meer details te geven zodat je een betere oplossing kunt bieden.
Doel: De assistent voorbereiden om vage of algemene vragen te behandelen door gebruikers om meer details te vragen.
Betekenis: Helpt verwarring te voorkomen en zorgt ervoor dat de assistent vragen van gebruikers zo specifiek mogelijk kan beantwoorden.
Bouw vandaag nog een AI Agent
Botpress is een volledig uitbreidbaar AI-agentplatform voor bedrijven.
Met ons alles-in-één conversational AI Platform-as-a-Service (PaaS) kunnen bedrijven LLM-oplossingen bouwen, implementeren en bewaken.
Toegepast in verschillende branches, use cases en bedrijfsprocessen, zijn Botpress projecten altijd schaalbaar, veilig en on-brand.
Met 500.000+ gebruikers en miljoenen bots wereldwijd ingezet, is Botpress het platform bij uitstek voor bedrijven en ontwikkelaars. Onze hoogwaardige beveiliging en toegewijde klantenservice zorgen ervoor dat bedrijven volledig zijn uitgerust om AI-agenten op bedrijfsniveau in te zetten.
Door Autonomous Nodes effectief te configureren met de juiste prompts en tooldefinities, kunnen organisaties intelligente agents maken die gebruikersinteracties autonoom afhandelen.
Begin vandaag nog met bouwen. Het is gratis.
Inhoudsopgave
Blijf op de hoogte van het laatste nieuws over AI-agenten
Deel dit op: