Ich stimme zu, dass man Agenten normalerweise nicht programmatisch verteilt, trotzdem kann man das tatsächlich rein mit LotusScript hinbekommen.
Bevor ich den Lösungsansatz erläutere würde ich aber nach dem Anwendungszweck fragen. Mir ist in meinen knapp 30 Jahren mit Notes / Domino kein Fall untergekommen, wo ich einen Agenten hätte "generisch" mittels LotusScript erstellen müssen.
Sowas macht man normalerweise mit einer angepassten Schablone, die den gewünschten Agenten enthält und ggf. Konfigurationsdokumenten, um das Verhalten des Agenten zu steuern.
Das höchste der Gefühle, was ich bisher benötigt habe, war, dass man LotusScript-Code in einer Konfigurationsmaske hinterlegt, und diesen dann mittels "Evaluate" innerhalb eines Agenten ausführt.
Aber nun zurück zur Frage:
Nutze mal den Designer Client, um einen Agenten als DXL zu exportieren (Tools - DXL Utilities - Exporter). Du erhältst ein XML File, in dem Du den Quellcode gut erkennen kannst... Diesen Quellcode kannst Du nun fast beliebig anpassen (Maskierung von Sonderzeichen beachten) und dann den Agenten mittels NotesDXLImporter einfach in eine beliebige Datenbank importieren... Der XML Quellcode, den Du importierst kommt dabei entweder aus einem File, was irgendwo liegt, oder aus einem In-Memory NotesStream...
Hier mal ein Auszug aus einer meiner Klassen für generellen DXL Import (zu finden in meiner N4Y Toolbar unter https://torsten.link in der ScriptLibrary "N4Y.ImportExportLib" in der Klasse "N4YDXLImporter"). Ist zwar so nicht lauffähig, aber damit solltest Du ein Gefühl dafür geben, wie das geht:
Dim dxlImport As NotesDXLImporter
Dim streamXml As NotesStream
Set streamXml = g_ses.CreateStream
Call streamXml.Open( Me.xmlFilePath )
Set dxlImport = g_ses.Createdxlimporter(streamXml, Me.dbImport)
dxlImport.Documentimportoption = Me.m_limportOptions( N4Y_DXLTYPE_DOCUMENTS )
dxlImport.Designimportoption = Me.m_limportOptions( N4Y_DXLTYPE_DESIGN )
dxlImport.Aclimportoption = Me.m_limportOptions( N4Y_DXLTYPE_ACL )
dxlImport.Replacedbproperties = Me.m_limportOptions( N4Y_DXLTYPE_DBPROPERTIES )
dxlImport.Compilelotusscript = Me.m_limportOptions( N4Y_DXLTYPE_COMPILE )
dxlImport.Replicarequiredforreplaceorupdate = Me.m_limportOptions( N4Y_DXLTYPE_REPLICAREQUIRED )
On Error GoTo ErrorImport
Call dxlImport.Process()
On Error GoTo ErrorRoutine
In Deinem Fall würdest Du DesignImportOption = DXLIMPORTOPTION_REPLACE_ELSE_CREATE setzen und alle anderen auf DXLIMPORTOPTION_IGNORE statt das irgendwoher aus irgendeiner Konfiguration auszulesen.