DVM < bots
nevent1qqsxpzk9cw2w4kch3lxyd6m8f3q35ssz2umgcg546hng0zffrqq0mtspz3mhxue69uhhyetvv9ujuerpd46hxtnfduljdj62
nostr:npub1mgvwnpsqgrem7jfcwm7pdvdfz2h95mm04r23t8pau2uzxwsdnpgs0gpdjc would you say nostr:npub1z4d47qqqafcfmnmmn6fy655fc2xfkstxkppe44vrl3steeafdwkswtj7rz qualifies as a DVM or not? Shouldn't that kind of thing also be considered a DVM?
What about a thing like https://bsky.app/profile/did:plc:bpkpvmwpd3nr2ry4btt55ack? I think the way Bluesky did this "labeler" stuff is interesting in a way: the DVM is just a "bot".
The bot should have a kind:0 profile and it can even post notes sometimes, perhaps advertising their services.
Some bots respond to kind:1 commands, others respond to kind:5001 commands, some send DMs, others publish content when prompted, others do it without being prompted.
If multiple people are running bots that behave similarly -- or if we expect that to happen -- it's time to standardize their behavior, otherwise there is no point.
There are tons of bots out there, I'd say some will never qualify as a DVM because they're just shitposting (which is good), but some are posting weather data, others are posting bitcoin data. It would be nice if bots publishing weather data could be standardized as DVMs, for example. I don't know bitcoin data, but what do I know?
I don't have a very concrete plan.
DVM < bots
nevent1qqsxpzk9cw2w4kch3lxyd6m8f3q35ssz2umgcg546hng0zffrqq0mtspz3mhxue69uhhyetvv9ujuerpd46hxtnfduljdj62
They are different stuff, cannot compare oranges with apples
Are you sure?
Totally, what about you?
Care to explain the difference?
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
It wasn't clear to me at first, but now I think we should reframe DVMs as bots, instead of as a standard for RPC communication via Nostr events.
"Bots" are often seen as useless, playful things, but if we call them "DVMs" it's clearer they can also be useful tools. Ultimately it doesn't matter, it's all marketing.
Finally, we can also reframe HTTP/JSON APIs as yet another type of DVM. Zap providers, for example, are an HTTP/Event-hybrid DVM. nostr:npub18kzz4lkdtc5n729kvfunxuz287uvu9f64ywhjz43ra482t2y5sks0mx5sz 's translator API is another type of HTTP/JSON DVM that follows an existing standard (which is to copy some other translation provider I forgot) and is implemented in some clients (Damus?). Primal, Nostr.Band and Nostr.Wine also offer trending feeds HTTP/JSON-based DVMs, but they're all incompatible among each other (meanwhile Snort and Iris use the Nostr.Band API while Primal and Yakihonne use the Primal API, I don't know who uses the Nostr.Wine API), we should try to get them to standardize these (or offer these feeds as custom relays, which would be better).
That would solve our problems instead of creating more.
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.
what is a bot?
A pubkey that responds automatically to structured events when mentioned, processing them through predefined schemas and potentially publishing result events in response
“When mentioned” - so you mean via kind:1 events? What do you mean by “structured events” then?
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
Sounds like DVMs without payments
Good. So we don’t need to keep both concepts.
And since bots is already an established concept I’ll suggest sticking with it
Please link to this established concept for me
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
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.
Yes, DVMs are already run by lots of people and used by lots of users. You haven’t even defined what a bot is more than 1-2 sentences
I agree, and also subjectivity and hardcoded constants > self-described schemas.