AI self learning
Most AI agents sit idle until you talk to them. They wait. They respond. They forget.
This is fine for a chatbot. It is not fine for a team.
I run 18 AI agents. They handle security, marketing, sales, content, infrastructure, health tracking, even my jazz gig calendar. Each one has a domain. Each one has tools. But until last week, none of them learned anything on their own.
They only knew what I told them.
The problem with reactive agents
A security agent that only checks for vulnerabilities when you ask is not a security agent. It is a search engine with a personality. A marketing agent that only writes copy when prompted is not a marketing agent. It is a template engine.
Real team members do not wait to be activated. They read industry news. They notice trends. They come to you and say "hey, I saw something relevant." They build domain expertise over time, not just execute tasks in the moment.
AI agents should do the same.
Teaching agents to learn
So I built a learning phase. Every morning between 06:55 and 08:10, all 16 of my AI agents wake up and browse the web.
Each agent has defined sources relevant to their domain:
- Security agent reads The Hacker News, Krebs on Security, Bruce Schneier, CISA advisories, and follows Troy Hunt and SwiftOnSecurity on X
- Developer agent follows Anthropic, OpenAI, Simon Willison, and watches the Claude Code changelog
- SEO agent reads Search Engine Land, Ahrefs blog, and follows Google Search Liaison
- Finance agent reads SaaStr, the Estonian E-Residency blog, and follows Stripe updates
- Music agent (yes, I have one) reads All About Jazz and JazzTimes
Each agent fetches content from RSS feeds, web pages, and X/Twitter (using Bird CLI for authenticated access). Then an LLM filters everything through the lens of our specific context.
This is the key part. The filter is not "what is interesting." The filter is "what is relevant to us, right now, given our stack, our products, our situation."
When the security agent reads about an npm supply chain attack, it does not just flag it generically. It checks: do we use this package? Are we running the affected version? What should we do about it? The first time it ran, it flagged an Axios vulnerability that directly affected our Node.js MCP server.
The architecture
The implementation is simple. One PHP script. A config array per agent. Three source types: RSS, Twitter, web pages.
06:55 Wayne (CEO) - Jack Dorsey, PG, Sam Altman, Stratechery
07:00 Chick (Security) - Hacker News, Schneier, Krebs, CISA
07:05 Herbie (Dev) - Anthropic, OpenAI, Simon Willison
07:10 Keith (Infra) - DigitalOcean, Nginx, Ubuntu
...
08:10 Paolo (Padel) - World Padel Tour, FIP News
Staggered five minutes apart to avoid rate limits. Each agent fetches its sources, passes them through a domain-specific LLM filter with our context baked in, and saves relevant findings to a markdown file in its workspace.
If nothing is relevant today, the agent saves nothing. No noise. Quality over quantity.
The output is a dated markdown file: agents/chick/learnings/2026-04-01.md. The agent can read its own past learnings for context in future cycles. Over time, each agent builds genuine domain expertise, not just task execution history.
What this changes
Before the learning phase, I was the bottleneck for all new information. If I did not read about a security vulnerability, nobody in the system knew about it. If I did not notice a Google algorithm update, the SEO agent was flying blind.
Now, by the time I wake up, 16 agents have already scanned their domains. The security agent has checked today's CVEs. The developer agent knows if Anthropic shipped something new. The content agent has seen what the indie hacker community is talking about.
I went from being the single source of truth to being the reviewer of a pre-filtered intelligence feed.
The bigger pattern
This is part of a three-phase cognitive cycle I am building for AI agents:
- Learning (morning) - agents proactively research their domains
- Working (all day) - agents respond to tasks and take actions
- Dreaming (weekly) - agents consolidate memories, prune contradictions, update long-term knowledge
Learning feeds working. Working generates daily memory logs. Dreams consolidate those logs into structured knowledge. The cycle repeats.
This is not a metaphor. It is literally how I have structured the cron jobs. And it maps surprisingly well to how human cognition works: absorb during the day, consolidate during sleep, wake up slightly smarter.
The difference is my agents do all three on a schedule, every day, without getting tired. And there are sixteen of them.