Replies (29)

DVMs describes a pattern for clients to interact with some computation or functionality, and bots are some sort of systems that have a defined behaviour and do stuff
Can the clients interact with bots via events to be supplied with those services that dvm aim to provide? If so, why dvm are useful abstraction? And what are the advantages of dvms over simple http endpoint?
A bot can have any kind of arbitrary behavior, such as listening for and responding to kind 1 notes, or listening for and responding to any other type of event in they way they want. DVMS describes and tries to standardize how this interaction is done by defining requests, responses, and job feedback. Of course, you could do the same thing and call it a bot, but that is not the point, bots can use dvms to solve some of their features. The differences between an http enpoint and a dvm is nostr
Hmm, I really think we shouldn’t call all those different things the same thing, that could get pretty confusing. They’re different enough to deserve separate standards. In a broad sense, you’re describing a relay, which is pretty much the only type of server on Nostr, aside from some more exotic experiments. They are servers and can have HTTP endpoints, as you mentioned. There’s even a relay management API now, so why not a service API? They can totally provide HTTP JSON APIs, which they’re already doing. Now, as for bots and DVMs, from my point of view, they’re still different things. I see bots as some kind of autonomous agent that follows instructions or has simple behavior to listen, react, or do whatever they need to gather notes. They can publish notes based on certain conditions and can be as complex or simple as you want. They use DVMs to handle some functionality or access services, they both have in common that they do not need to manage or spin up a relay, they can listen and write to multiple relays. Also, DVMs can have HTTP endpoints if you want, but I really think relays, bots, and DVMs are different stuff altogether.
A pubkey that responds automatically to structured events when mentioned, processing them through predefined schemas and potentially publishing result events in response
In mentioned I mean any event that tags him. A better rephrasing: A pubkey that listens to events tagging him, processing them through predefined schemas and potentially publishing result events in response
So you do just want to do it all via kind 1 events then? But what if I want to call an AI model with specific parameters, or what if I want to compute a web of trust to filter out my events, or what if I want to generate an algorithmic feed? To do any of those, I need to give more structured information as an input and it would pollute the kind 1 space. Nothing is preventing anyone from making Nostr bots like the Twitter bot article you posted - you have been able to do this for a long time. DVMs solve a different problem
It solves a different problem, unless you plan to start dumping json into your kind 1 events content field. I might have to unfollow you if you start doing that because it would clutter my social feed
I have never said I want to all via kind 1. If you want to say that “regular bots” act only on kind 1 and “dvm” act on all kinds, that’s ok too. I’m not sure this difference requires a whole new name and concept to learn.