- 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.
It uses Whisper for transcripts, which I believe are better than the YouTube generated ones.
My guess is that there are more relevant results from the semantic search than I'm including in the context (to reduce costs) and that exact snippet isn't being given to the answering model as context.
Ha, nice work getting ChatGPT to do it. I started down the same route, but wanted to get it done fast so I'm just grabbing the relevant HTML and then adding a few styles to clean up things like controls.