- daemons are specified by a DAEMON.md file in the repo (like skills). it's version-controlled and team-owned, not hidden in a dashboard or linked to a single developers account.
- daemons have a specialized event pipeline that joins similar webhooks events into a single daemon activation and can inject late arriving events into a daemon that's already running (this is key to avoid duplicate work and noisy actions).
- the watch conditions are a more powerful activation method because they use semantic matching and can be mixed with cron schedules.
- daemons have access to the logs from their past runs (and soon proper memory) so they can learn from their own mistakes.
it's similar to triggers, but with a routing layer that combines semantic triggers and memory. the magic is defining them as files in the repo (like skills) and not worrying about the execution.
the working spec is files like `.agents/daemons/<name>/DAEMON.md` and they have access to skills and rules in the repo so you don't need to duplicate them.
you could even have a daemon that just says to run an existing skill.
It was less than $2 to embed all 100+ episodes with the new OpenAI embeddings and was as easy as just making a bunch of API calls. Pretty hard to beat that experience.
He just told you? The prompt is a combination of the top 5 search results, the phrase to say it doesn't know if it does not have context, and the question the user is actually asking. That is sent to OpenAI and the response is shown along with the search results as the references.
there's details on how other platforms can support it here: https://ai-daemons.com/spec/#provider-guide