Publiceren en installeren in de console¶
Het concept achter publicaties staat in Delen en hergebruik.
Met Publicaties en Geïnstalleerd deel je wat je hebt opgebouwd met andere organisaties. Je bundelt prompts, skills, agents, koppelingen of kennis in een publicatie; wie zich daarop abonneert krijgt kopieën in de eigen omgeving, met bij elke rij de vermelding waar hij vandaan komt.
Kopieën, geen verwijzingen. Een geïnstalleerde prompt is een gewone prompt van de abonnee: hij staat in zijn eigen bibliotheek, valt onder zijn eigen sleutelbeleid en wordt op zijn eigen gebruik geboekt. Wat de kopie extra heeft is één feit: uit welke publicatie hij komt.
Je hebt een beheerdersaccount van de organisatie nodig. Hetzelfde doe je met een sleutel die
management heeft in Publiceren en installeren via de API.
Een publicatie maken¶
Open Publicaties en kies Nieuwe publicatie.
| Veld | Wat je invult |
|---|---|
| Naam | uniek binnen jouw organisatie; abonnees zien deze naam |
| Omschrijving | waar deze bundel voor is |
| Wie mag dit zien | Onderliggende organisaties, Gekozen organisaties of Marktplaats |
| Organisaties | alleen bij Gekozen organisaties: wie zich mag abonneren, minstens één |
| Automatisch installeren | alleen bij Onderliggende organisaties: elke nieuwe organisatie onder deze abonneert zich meteen |
Een bundel voor onderliggende of gekozen organisaties staat meteen open om op te abonneren — er is nog niets te installeren tot je een versie publiceert. Een bundel voor de marktplaats begint als concept: Artific beoordeelt hem voordat hij wordt aangeboden. Zie Marktplaats.
Een versie publiceren¶
Een publicatie zonder versie deelt niets. Kies Nieuwe versie publiceren; het formulier vraagt vier dingen, in de volgorde waarin je ze beslist.
Wat gaat er mee. Per soort een lijst uit je eigen bibliotheek: prompts, skills, agents, toolsets, API-koppelingen, MCP-servers, collecties, pipelines, indexen, zoektools, evaluaties, aliassen en scripts. Klap een soort open om te kiezen. Een rij die zelf een kopie uit iemand anders' publicatie is, staat grijs met de reden erbij: maak hem eerst los, of publiceer hem waar hij wordt gepubliceerd.
Bij een API-koppeling of een MCP-server kies je er meteen bij wat er met de inloggegevens gebeurt: niet meesturen, de abonnee vult ze zelf in, of je eigen gegevens meesturen. Dat laatste kan alleen bij een publicatie aan onderliggende organisaties — een bundel die jouw boom verlaat, geeft je sleutel aan vreemden.
Bij een script zegt de lijst Scripts: De bestanden van de laatste versie gaan mee; Core kopieert ze bij het publiceren. Met Inhoud verbergen (de voorwaarde hieronder) ziet wie installeert naam, beschrijving en parameters, maar niet de entrypoint en de bestanden. Pakketten die alleen jij goedkeurde, moet de ontvanger accepteren. In de ledenlijst van de bundel staat bij een script met zijn bestanden (…), met hoeveel bestanden meegaan en hoe groot ze samen zijn. Een bibliotheek uit de sandbox-image of een die je operator goedkeurde, reist op naam mee; een pakket dat alleen jouw organisatie goedkeurde, reist met de bundel mee, en de abonnee accepteert het door te installeren (Pakketten in een bundel).
Laat installeerder kiezen. Onder elke rij die je aanvinkt, staan de velden die een
installeerder zelf kan invullen, elk met de huidige waarde erbij (Nu: …). Bij een agent zijn dat
onder meer model, instructions en temperature, bij een index embedding_model. Zet je een
veld aan, dan komt er onder Parameters een parameter bij en wordt jouw huidige waarde de
standaardwaarde voor de installeerder. Heeft het veld nu geen waarde, dan moet de installeerder er
een kiezen. Zet je het veld weer uit, dan verdwijnt de parameter zodra niets hem meer gebruikt.
Noemt de rij een tool van een van je eigen MCP-servers of API-koppelingen, in de tools van een agent, de patronen van een toolset of het doel van een alias, dan staat daar ook Laat installeerder een MCP-server kiezen of Laat installeerder een API-koppeling kiezen. Zet je dat aan, dan kiest de installeerder bij het installeren een server of koppeling van zijn eigen organisatie, en gebruikt zijn kopie die in plaats van de jouwe. De server of koppeling zelf hoeft dan niet mee in de bundel. Bij een MCP-server staat in de parameter onder Tools die de server moet bieden welke tools de bundel aanroept; biedt de gekozen server er een niet, dan meldt Controleren dat aan de installeerder als advies. Twee verwijzingen naar dezelfde server delen één parameter.
Alleen installeren wanneer. Een gekozen rij kan meegaan bij één keuze van de installeerder en bij een andere niet. Voeg daarvoor eerst onder Parameters een parameter van het type Keuze toe, en kies dan bij de rij die parameter en de waarden waarbij de rij wordt geïnstalleerd. Altijd betekent: geen voorwaarde. Een onderdeel dat een ander onderdeel met een voorwaarde gebruikt, moet dezelfde voorwaarde hebben; anders weigert Core de versie. Een agent die de HubSpot-server uit de bundel aanroept, gaat dus alleen mee wanneer de installeerder HubSpot kiest.
Parameters. Wat de bundel bij het installeren aan elke abonnee vraagt: een model, een tekst, een keuze, een getal, een URL, inloggegevens, of een collectie, index, sleutel, MCP-server of API-koppeling van de abonnee zelf. De velden die je hierboven aan de installeerder liet, staan hier al; je kunt ook zelf parameters toevoegen met Parameter toevoegen. Per parameter leg je vast of hij verplicht is, wat de standaardwaarde is en welke uitleg de abonnee te zien krijgt, en bij elke parameter staat waar hij wordt gebruikt. Een parameter die een onderdeel gebruikt, moet verplicht zijn of een standaardwaarde hebben; anders weigert Core de versie.
Voorwaarden. Vijf regels die gelden zolang deze versie geïnstalleerd staat:
| Voorwaarde | Wat je toestaat |
|---|---|
| Losmaken en aanpassen | een abonnee mag een kopie losmaken en er daarna zelf mee doen wat hij wil |
| Inhoud verbergen | lezers zien de inhoud van de kopieën niet; een gesprek gebruikt ze gewoon |
| Doorverspreiden | een abonnee mag deze onderdelen opnemen in een bundel die hij zelf publiceert |
| Recht vereist | abonneren kan alleen met een geldig recht (zie Marktplaats) |
| Licentie | de tekst die een abonnee te lezen krijgt |
Inhoud verbergen en losmaken sluiten elkaar uit: wie losmaakt, krijgt juist de inhoud die je verbergt. Vink je het eerste aan, dan gaat het tweede vanzelf uit.
Wat er is veranderd. Het versieverslag dat een abonnee leest voordat hij de nieuwe versie accepteert.
Elk abonnement dat de laatste versie volgt, krijgt deze versie vanzelf.
Voorbeeld: een saleskit met de CRM van de installeerder¶
Je verkoopassistent zoekt klanten op in HubSpot, via je eigen MCP-server hubspot. Wie de kit
installeert, gebruikt misschien Salesforce. Er zijn twee manieren om dat op te lossen.
De installeerder koppelt zijn eigen CRM. Zo publiceer je één agent die werkt met elke server die de tools biedt die hij nodig heeft:
- Vink onder Agents je verkoopassistent aan.
- Zet eronder Laat installeerder een MCP-server kiezen aan bij
mcp__hubspot__search. Onder Parameters verschijnt een parameter van het type MCP-server metsearchbij Tools die de server moet bieden. - Geef de parameter een naam en uitleg die een installeerder begrijpt, bijvoorbeeld
crmen "De MCP-server van je CRM".
Bij het installeren kiest de installeerder een van zijn eigen MCP-servers, en zijn kopie van de
agent roept search aan op die server.
De installeerder kiest een van jouw koppelingen. Zo lever je zelf een server voor HubSpot en een voor Salesforce mee, en installeert elke abonnee alleen de kant die hij kiest:
- Voeg onder Parameters een verplichte parameter
crmtoe van het type Keuze, methubspot, salesforceonder Toegestane waarden. - Vink onder MCP-servers beide servers aan, en kies bij elk dat de abonnee de inloggegevens zelf invult.
- Vink de agent voor HubSpot en de agent voor Salesforce aan.
- Zet bij de HubSpot-server en de HubSpot-agent Alleen installeren wanneer op
crmmet de waardehubspot, en bij de twee voor Salesforce opcrmmetsalesforce.
Bij het installeren staat bij de keuze crm welke onderdelen hij kiest, en de onderdelen van de
andere kant staan grijs.
Tekst die de installeerder invult¶
Sommige tekst hoort bij de organisatie die een prompt gebruikt: een bedrijfsnaam, een productnaam,
een ondertekening. Zet zo'n plek in het sjabloon van een prompt of in de instructies van een agent
als {{ $bedrijf }}:
Je bent de verkoopassistent van {{ $bedrijf }}. Beantwoord vragen over onze producten.
Zodra de tekst een {{ $naam }} bevat, verschijnt onder het veld Invulwaarden, met een rij per
naam. Vul daar je eigen waarde in, zoals Acme; je eigen prompt of agent gebruikt die, dus hij
blijft gewoon werken. Haal je de plek uit de tekst, dan verdwijnt de rij ook. Een rij noemt ook de
Soort van de waarde -- Tekst, Getal of Keuze, met zijn Toegestane waarden -- en
een Omschrijving die de installeerder bij zijn eigen waarde ziet
(Invulwaarden). Een naam bestaat uit kleine
letters, cijfers en underscore, en begint met een letter of cijfer. Een waarde mag niet leeg zijn
en geen {{ of }} bevatten.
Een API-koppeling heeft dezelfde rijen voor elke {$naam} in haar URL of verzoek (Waarden die je
één keer vastlegt).
Publiceer je de prompt, agent of API-koppeling, dan wordt elke invulwaarde een parameter van de
bundel, van hetzelfde type als de invulwaarde -- tekst, een getal of een keuze -- met jouw waarde
als standaard en jouw omschrijving. Een geheime invulwaarde van een koppeling is de uitzondering:
die wordt een credential-parameter zonder standaard, tenzij je het credential van de koppeling
meestuurt; dan reist je geheim versleuteld mee en mag wie installeert het vervangen. Onder Parameters staat erbij Uit je eigen invulwaarden.
Wie installeert, vult zijn eigen waarde in, en zijn kopie bevat die tekst letterlijk op de plek van
{{ $bedrijf }}.
Een variabele zoals {{ ticket }} is iets anders: die vult de aanroeper bij elke aanroep in,
en Core labelt de waarde als onvertrouwd, en vertelt het model dat het gegevens zijn als de
aanroepende sleutel trust_envelope heeft. Een invulwaarde leg je één keer vast
en hoort daarna bij de instructies zelf; een naam kan niet allebei zijn.
Een publicatie intrekken¶
Intrekken haalt de bundel uit het aanbod. Bestaande kopieën worden losgekoppeld waar de voorwaarden losmaken toestaan, en anders verwijderd. Wat een abonnee zelf had losgemaakt, blijft van hem.
Installeren¶
Open Geïnstalleerd en ga naar Beschikbaar. Daar staat wat jouw organisatie mag installeren: publicaties van de organisaties boven je, publicaties die jou met naam noemen, en alles op de marktplaats. De kolom Vraagt zegt hoeveel waarden een bundel bij het installeren van je vraagt en hoeveel daarvan verplicht zijn, bijvoorbeeld 2 (1 verplicht). Onderaan kun je de marktplaats doorzoeken op naam en omschrijving.
Klik een bundel aan. Onder de titel staat hoeveel de bundel vraagt, en de eerste kaart is Wat jij invult: één veld per parameter, verplichte velden bovenaan, elk met de uitleg van de uitgever eronder. Laat je een veld leeg dat een standaardwaarde heeft, dan geldt die standaardwaarde. Welk veld je krijgt, hangt af van wat de bundel vraagt:
| De bundel vraagt | Wat je invult |
|---|---|
| een model | een model uit de modelkiezer, beperkt tot de modellen die de uitgever toestaat |
| een tekst of een getal | een invulveld; wat je invult, komt letterlijk in je kopie |
| een keuze | een waarde uit een lijst. Bepaalt die keuze welke onderdelen worden geïnstalleerd, dan staat erbij welke (Kiest: …) |
| een URL | een adres op een van de hosts die de uitgever toestaat |
| een MCP-server of een API-koppeling | een server of koppeling van je eigen organisatie. Bij een MCP-server staat welke tools de bundel ervan gebruikt |
| een collectie, index of sleutel | een collectie, index of sleutel van je eigen organisatie |
| inloggegevens | het gewone inlogformulier, voor de soort die de bundel vraagt |
Heeft je organisatie nog geen MCP-server of API-koppeling, dan zegt het veld dat, met een knop naar MCP-servers of API-koppelingen om er eerst een toe te voegen.
Daaronder staan wat de bundel is en wat erin zit, de licentie en de voorwaarden. Boven de lijst van onderdelen staat hoeveel er van elke soort in zit, bijvoorbeeld Workflows · 1 en Agents · 2. Een onderdeel met een voorwaarde draagt die erbij (Alleen bij crm = hubspot); wat met je huidige keuzes niet wordt geïnstalleerd, staat grijs. Onder Geavanceerd, ingeklapt, staan twee keuzes die je meestal zo laat:
- Nieuwe versies: volg de laatste versie, of blijf op de versie die je nu installeert.
- Voorvoegsel: komt voor elke naam te staan, zodat een beleidsregel ze allemaal met
acme-*kan matchen.
Bij sommige bundels zie je de inhoud niet. Dan staan de namen en soorten van de onderdelen er wel, met een slotje ernaast, en zegt de pagina waarom: de uitgever verbergt de inhoud, of er is een geldig recht nodig dat deze organisatie nog niet heeft (zie Marktplaats). Wat de bundel van je vraagt zie je gewoon: dat vul jij in, dus dat wordt nooit verborgen.
Controleren vertelt je wat installeren met deze waarden zou betekenen voordat er iets gebeurt: welke functies de bundel nodig heeft en welke niet aanstaan, welke modellen deze installatie niet kent, welke hosts worden benaderd, welke namen al bezet zijn, wat er nog ontbreekt, en per sleutel wat haar beleid zou weigeren. Twee onderdelen gaan over je keuzes:
- Tools die de gekozen server niet biedt: de server die je koppelde, had bij zijn laatste synchronisatie niet elke tool die de bundel gebruikt. Kies een server die ze wel biedt, of installeer toch als je weet dat de server ze inmiddels heeft: zijn toollijst wordt bij zijn volgende synchronisatie bijgewerkt.
- Wordt niet geïnstalleerd met deze keuzes: de onderdelen die je keuze uitsluit. Ze tellen in de rest van de controle niet mee.
Een bundel met scripts voegt er twee dingen aan toe:
- Pakketten die de bundel meebrengt: Alleen de uitgever keurde deze goed. Installeren accepteert ze voor de geïnstalleerde scripts alleen; ze komen niet in jullie eigen lijst. Elk pakket staat er met naam, versie en bestand, gemarkeerd als uitgever. Op de pagina van het geïnstalleerde script houden ze dat kenmerk.
- Een script heeft de capability
computernodig. Staat je organisatie die niet toe, dan zegt de controle: Zonder het recht Computer kan geen sleutel van deze organisatie scripts aanroepen. Vraag de operator om Computer toe te voegen; daarna kun je installeren.
Alleen ontbrekende functies blokkeren; de rest is advies waar je omheen kunt installeren. Staat er een aanbevolen sleutelbeleid bij, dan is dat de aanbeveling van de uitgever; Core past het nooit zelf toe.
Vink de voorwaarden aan en kies Installeren. Het installeren zelf gebeurt op de achtergrond. Ontbreekt er nog een verplichte waarde, dan wordt er niets geïnstalleerd en staat het abonnement op Instellen nodig. De pagina van het abonnement begint dan met wat er nog ontbreekt (Deze installatie wacht op: …); vul het daar in en kies Instellingen opslaan, of vul ontbrekende inloggegevens in onder Inloggegevens. Daarna wordt de bundel alsnog geïnstalleerd.
Een abonnement volgen¶
De pagina van een abonnement zegt waar de installatie staat.
| Status | Wat het betekent |
|---|---|
| Wordt geïnstalleerd | het werk loopt |
| Gekoppeld | de kopieën volgen de publicatie |
| Deels losgemaakt | minstens één onderdeel is losgemaakt en volgt niet meer |
| Vastgelopen | de laatste synchronisatie is mislukt; de reden staat erbij |
| Instellen nodig | er ontbreekt nog een verplichte waarde |
| Voorwaarden accepteren | de uitgever heeft de voorwaarden aangepast |
| Wordt verwijderd | het abonnement wordt opgeruimd |
| Geblokkeerd | het recht is vervallen; de kopieën staan er nog maar zijn onbereikbaar |
Brengt een nieuwe versie een scriptpakket mee dat de versie die je accepteerde niet had, dan wacht het abonnement ook op Voorwaarden accepteren, en blijven je kopieën draaien wat ze draaiden. De melding Nieuwe voorwaarden noemt dan de pakketten die die versie meebrengt, elk gemarkeerd als uitgever, en Voorwaarden accepteren accepteert beide.
Onder Instellingen vul je alsnog in wat ontbrak; onder Inloggegevens zie je welke parameters een waarde hebben — nooit de waarde zelf, die wordt door niets teruggegeven.
Opnieuw synchroniseren¶
Een synchronisatie schrijft de publicatie opnieuw in je kopieën. Core start er zelf een bij een nieuwe versie die je abonnement volgt, en wanneer je Instellingen of Inloggegevens opslaat. Met Opnieuw synchroniseren, naast Verwijderen op de pagina van het abonnement, start je er zelf een, bijvoorbeeld nadat je de oorzaak van Vastgelopen hebt weggenomen.
De knop werkt bij Gekoppeld, Deels losgemaakt en Vastgelopen. Na een klik staat er Synchronisatie gestart., komt het abonnement op Wordt geïnstalleerd en ververst de pagina zichzelf tot het werk klaar is. Bij de andere statussen is de knop uitgeschakeld, met de reden erbij, omdat er al een eigen volgende stap is:
| Status | Wat er bij de knop staat | Wat je in plaats daarvan doet |
|---|---|---|
| Wordt geïnstalleerd | Wordt al gesynchroniseerd. | wachten; er loopt al een synchronisatie |
| Wordt verwijderd | Wordt verwijderd. | niets; het abonnement verdwijnt |
| Geblokkeerd | De toegang tot deze publicatie is opgeschort. | wachten tot het recht weer geldt (Marktplaats) |
| Instellen nodig | Vul eerst de ontbrekende configuratie in. | de ontbrekende waarde invullen en opslaan; dat start de installatie |
| Voorwaarden accepteren | Accepteer eerst de nieuwe voorwaarden. | Voorwaarden accepteren kiezen |
Buiten de console vraag je een synchronisatie met het token van een beheerder van de organisatie:
POST /tenants/{id}/subscriptions/{sid}/sync. Core antwoordt 202 met {"queued": true} bij
linked, diverged of stale, en anders 409 met als detail sync_not_now: gevolgd door de
status, bijvoorbeeld sync_not_now:needs_configuration. Een API-sleutel met de capability
management doet hetzelfde met POST /subscriptions/{sid}/sync
(Publiceren en installeren via de API).
Een keuze later veranderen¶
Wat je bij het installeren invulde, kun je later veranderen op de pagina van het abonnement: een andere CRM-server, een andere bedrijfsnaam, een ander model. Pas de waarde aan onder Instellingen en kies Instellingen opslaan. De kopieën volgen na de synchronisatie die het opslaan start. Nieuwe inloggegevens vul je in onder Inloggegevens; ook een gewijzigd wachtwoord of token bereikt je kopieën zo vanzelf, zonder dat je iets anders hoeft te veranderen.
Verandert je nieuwe keuze welke onderdelen worden geïnstalleerd, dan installeert Core de onderdelen die er nu bij komen en verwijdert het de kopieën van de onderdelen die afvallen. Een onderdeel dat je had losgemaakt, blijft staan. Gebruikt een van je eigen agents nog een kopie die zou afvallen, dan wordt die niet verwijderd: het abonnement komt op Vastgelopen met dat onderdeel als reden. Haal de verwijzing uit je agent en kies Opnieuw synchroniseren; die synchronisatie verwijdert de kopie dan alsnog.
Losmaken¶
Losmaken haalt één onderdeel uit de greep van de publicatie: daarna is het van jou en volgt het geen nieuwe versies meer. Dat kun je niet terugdraaien. Bij een bundel waarvan de uitgever de inhoud verbergt, kan het niet: wie losmaakt zou juist die inhoud krijgen.
Een gedeelde collectie bevat de documenten van de uitgever: de synchronisatie kopieert ze naar jouw
organisatie, en je eigen index verwerkt ze daar. Zolang de collectie gekoppeld is, kun je er zelf
geen documenten aan toevoegen; een upload antwoordt 409 met de naam van de publicatie. Maak de
collectie los om er eigen documenten in te zetten.
Waar een kopie vandaan komt¶
Bij elke rij van je bibliotheek die uit een publicatie komt, staat Gedeeld via naam. Klik erop om bij het abonnement uit te komen. Zolang een kopie gekoppeld is, kun je hem niet aanpassen — de pagina zegt dat, met de naam van de publicatie erbij. Verbergt de uitgever de inhoud, dan zie je waar die stond staan dat hij verborgen is; een gesprek gebruikt hem gewoon.
Een gekoppelde scriptkopie biedt geen Nieuwe versie en kan niet worden verwijderd. Een verzegelde toont de naam, de beschrijving en de parameters, maar niet de entrypoint en de bestanden; proberen kan nog steeds, en in een beurt draait ze op een eigen computer, die de shell-tools van het model niet bereiken.
Een verzegelde promptkopie toont per versie het nummer en de datum; open een versie om de rol te zien. Waar de template zou staan, staat De uitgever verbergt deze inhoud., en er staan geen variabelen en geen invulwaarden.