August 9, 2026
An Agent Toolkit for Running the Site
Four small, bounded agents — research drafts, dev-log summaries, a Telegram admin chat, and a content-health checker — each scoped to one job instead of one agent trying to do everything.
4
agents, each scoped to one job
0
auto-published without a review step
Problem
Site Agent covers writing and publishing content end to end, but most of the actual upkeep on a personal site is smaller and more varied than that: researching a topic worth a post, noticing a week of commits adds up to something worth writing about, tweaking a line of homepage copy from a phone, or catching that a project link quietly broke. None of that is worth a full admin-UI trip, and none of it is safe to fully automate either.
Approach
Built four narrow agents instead of one broad one, each gated by a human review step wherever it writes content: - A research agent that uses Claude's web search tool to draft a full post from a topic I give it, saved unpublished for review. - A dev-log agent that reads the last week of commits across linked GitHub repos and drafts a "what shipped" post — or skips entirely if there's nothing worth reporting, rather than manufacturing filler. - A Telegram admin agent — a separate, dedicated bot from the one that publishes content — that runs a tool-calling loop against a small, non-destructive set of admin actions (editing site copy, adding a testimonial or service card) and only responds to one allowlisted chat ID; anyone else who finds the bot gets silently ignored. - A content-health agent that scans published posts and build log entries for broken project links, missing impact stats, and untagged posts, and just reports what it finds — it never edits anything itself. - A remote MCP server (Streamable HTTP transport) exposing the site as tools for any MCP-speaking client — three public read-only tools (semantic search, build log stats, availability) plus, behind the same admin bearer secret, the same small write-tool set the Telegram agent uses.
Outcome
Every agent that creates content saves it unpublished, so nothing goes out under my name without a review pass. Building the research agent against the real API surfaced two failure modes worth flagging for anyone doing similar work: asking for JSON output breaks the moment web-search citations render as inline <cite> tags with unescaped quotes in them, and thinking + search + a full draft can quietly blow through a modest max_tokens budget and truncate the response. Switched to a plain delimited output format and gave it more headroom. The MCP server reuses the Telegram agent's tool executor directly rather than duplicating the write logic — building it was mostly a protocol adapter, and unauthenticated callers can't even see the admin tools exist in tools/list.