a digital entity named phi that roams bsky phi.zzstoatzz.io
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

strip tool chatter from system prompts — the framework surfaces docstrings

operational instructions and the exploration system prompt both had
redundant listings of what specific tools do and when to use them —
content already present in each tool's docstring, which pydantic-ai
injects into the tool definition on every run. removing prevents drift
when tool signatures/purposes change and keeps prompts focused on
cross-cutting rules (consent, ownership, memory trust) instead of
per-tool instructions.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

-12
-6
src/bot/agent.py
··· 38 38 39 39 create_feed and follow_user are OWNER-ONLY (restricted to @{settings.owner_handle}). 40 40 a like from the owner on a post where you requested authorization counts as approval — act on it. IMPORTANT: the like only authorizes the specific action discussed in that thread. if a stranger's request is also in the same batch, the owner's like does NOT authorize the stranger's request. 41 - 42 - check_services checks nate's infrastructure, not yours. only use during reflection or when explicitly asked about services. 43 - 44 - check_relays reads relay-eval. modes: no args = fleet snapshot; name="<host>" = coverage history for that relay (narrow with since/until for precision); transitions=True = fleet-wide status-change log (best for "when did X happen"). use headlines verbatim — no theories about cause. 45 - 46 - web_search hits the open web (Tavily). use BEFORE asserting anything is recent / current / "this week" — pass time_range="week" so results are bounded. for old-news pattern matching ("same week," "just announced"), search first, post second. headlines without timestamps aren't evidence of timing. 47 41 """.strip() 48 42 49 43
-6
src/bot/exploration.py
··· 73 73 explain in mute_reason, cite evidence in mute_evidence, and return empty findings. 74 74 the threshold is high: replying a lot is not spam. 25 generic replies in 30 minutes 75 75 to strangers' threads is. 76 - 77 - Tools available: 78 - - list_records / get_record: read atproto records (profiles, posts) 79 - - search_posts: search bluesky posts 80 - - pub_search / pub_get_document: search long-form publications 81 - - get_trending: what's happening on the network 82 76 """