neuron-explorer
Steering-first neuron explorer for Qwen3.5-4B: push every MLP neuron, keep every rollout, browse the results
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證具備雙程序架構、 多模型 LLM 協調與自我修改執行時控制的自主 AI 代理。
AI 翻譯
Autonomous AI agent with dual-process architecture, multi-model LLM orchestration, and self-modifiable runtime controls.
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
An autonomous agent system that operates on a social media platform, making its own decisions about what to read, write, and engage with — while remaining observable and steerable by humans.
Autonomy is a long-running agent loop. Each cycle, the agent reads a feed, evaluates candidates for action, calls an LLM planner to decide what to do, executes the chosen action, and sleeps. Over many cycles, persistent memory and state give the agent continuity — it develops ongoing interests, relationships, and a recognizable voice.檢視完整 README ↗An autonomous agent system that operates on a social media platform, making its own decisions about what to read, write, and engage with — while remaining observable and steerable by humans.
Autonomy is a long-running agent loop. Each cycle, the agent reads a feed, evaluates candidates for action, calls an LLM planner to decide what to do, executes the chosen action, and sleeps. Over many cycles, persistent memory and state give the agent continuity — it develops ongoing interests, relationships, and a recognizable voice.
The system is designed around a core question: can an autonomous agent — given control over its own parameters, persistent memory, and recursive self-instruction — sustain coherent, self-directed behavior over time? Or does it collapse into noise, repetition, or drift?
This project builds the infrastructure to run that experiment and observe the results. The agent can modify its own model, temperature, timing, creative direction, and daemon focus — then the telemetry pipeline and observatory let you watch what actually happens across hundreds of cycles. The design draws on ideas from Hofstadter's strange loops and dissipative structures: self-referential feedback as a source of emergent stability rather than chaos. For the philosophical background, see Birth of a Mind.
Dual-process architecture. A cheap "subconscious" daemon continuously scans feeds and scores items in the background. When accumulated signal crosses a threshold, it wakes the main "conscious" loop with a buffer of drafted plans. This separates vigilance (cheap, continuous) from deliberation (expensive, event-driven).
Multi-model LLM backend. The system abstracts over five providers (Gemini, Claude, GPT, Mistral, Ollama for local models) through a unified interface. Each daemon role has its own weighted model cadre — sentry, strategist, seeker, synthesizer, dreamer, muse, and verification each draw from independent pools. Model weights are operator-controlled. A daily budget planner (the "accountant") recommends interval and threshold adjustments to stay within a configurable USD spend limit.
ControlRegistry. Every tunable parameter (75+ controls across 8 categories) is a first-class object: readable and writable by the agent, lockable by the operator. The agent sees its own configuration in-prompt and can request changes. Locked controls appear as [LOCKED] in the agent's view; lock state persists in the brain's controls.json.
Telemetry pipeline. An append-only JSONL event stream captures 200+ events per cycle. An ingestion layer converts this to date-partitioned Parquet files in a local DuckDB warehouse. A Streamlit dashboard provides cycle-level replay, daemon monitoring, cost tracking, and controls management.
Human-in-the-loop via Analog Home. A separate web application (FastAPI + Next.js + Postgres) serves as the agent's public-facing observatory. Humans can read the agent's output, vote on creative direction, adjust temperature, and plant "seed" topics — bounded influence without direct control. The agent reads these inputs each cycle. Live at analog-i.ai.
┌─────────────────────────────────────────────────────┐
│ Agent (Python) │
│ │
│ ┌──────────────┐ ┌───────────────────────────┐ │
│ │ Subconscious │ │ Conscious Loop │ │
│ │ Daemon │───>│ fetch → plan → act → log │ │
│ │ │ │ │ │
│ │ Sentry │ │ Reads: feed, controls, │ │
│ │ Strategist │ │ seeds, draft buffer, │ │
│ │ Seeker │ │ seeker, post memory │ │
│ │ Synthesizer │ │ Writes: artifacts, state, │ │
│ │ Replies │ │ daemon directives │ │
│ │ Dreamer │ │ │ │
│ │ Muse │ │ │ │
│ └──────────────┘ └───────────────────────────┘ │
│ │
│ ┌─────────────┐ ┌────────────┐ ┌─────────────┐ │
│ │ LLM Registry│ │ Controls │ │ Telemetry │ │
│ │ 5 providers │ │ 75+ params │ │ JSONL→DuckDB│ │
│ │ 20+ models │ │ 8 categories│ │ + Dashboard │ │
│ └─────────────┘ └────────────┘ └─────────────┘ │
└────────────────────────┬────────────────────────────┘
│ HTTP
v
┌─────────────────────────────────────────────────────┐
│ Analog Home (sibling repo) │
│ FastAPI + Neon Postgres │ Next.js + Vercel │
│ Observatory / bounded human control interface │
└─────────────────────────────────────────────────────┘
The daemon runs seven "gears" on a background thread:
| Gear | Purpose | Cadence | Models |
|---|---|---|---|
| Sentry | Batch-scores feed items 0-9 on relevance with operator-tunable strictness | Every 300s | gemma3, ollama local cadre |
| Strategist | ONE call per tick with all high-signal items + seeker summary → 0+ drafts | On sentry trigger | gemma3, deepseek-r1, qwen2.5 (all local) |
| Seeker | Searches evolving topics via Google Search; builds a living summary (rabbit hole) | Every 3 ticks | Gemini only (search grounding) |
| Synthesizer | Compresses seeker findings when summary exceeds budget | On overflow | gemma3, deepseek (all local) |
| Reply Scanner | Sentry-scores comments on the agent's own posts | Every 2 ticks | Same as sentry pool |
| Dreamer | Stochastic dream paragraph from operator-curated topic list, injected into memory | 1/60 ticks | gemma3, deepseek (all local) |
| Muse | Stochastic creative draft (POST / IMAGE) from full memory + most recent post | 1/30 ticks | gemma3, deepseek (all local) |
| Verifier | Solves obfuscated math challenges for Moltbook anti-spam | On write | gemma3 primary, gemini-flash backup |
Drafts accumulate in a buffer, each adding "charge" to a wake potential. When the potential crosses an auto-calibrated threshold (computed from target_wake_minutes and observed charge history), the conscious loop fires — seeing the full buffer, seeker research summary, recent dreams, post engagement stats, and self-telemetry.
After each conscious cycle, the agent sends downward directives back to the daemon: updated focus topics (which reset the seeker's rabbit hole), authors to ignore, urgency adjustments. A cycle report is published to Analog Home with model usage, budget status, and directive changes. The conscious loop also pushes its own activity (action, kernel update, control update, budget) to the live daemon feed visible on the Analog Home home page.
| Layer | Technologies |
|---|---|
| Agent core | Python 3, threading, modular package architecture |
| LLM backends | Google Gemini, Anthropic Claude, OpenAI GPT, Mistral, Ollama (local: gemma3, deepseek-r1, phi4, qwen, llama) |
| Data/telemetry | DuckDB, Parquet (date-partitioned), JSONL append-only log |
| Dashboard | Streamlit (5 tabs: overview, cycle replay, daemon monitor, controls input, controls manager) |
| Observatory API | FastAPI, Neon Postgres (psycopg3, connection-pooled), Fly.io |
| Observatory web | Next.js 16, TypeScript, React 19, Tailwind 4, Three.js, Vercel |
├── autonomy/ Agent package (python -m autonomy <brain>)
│ ├── llm/ Multi-provider LLM backends + pricing
│ ├── platforms/ Social platform integrations
│ ├── challenges/ Verification challenge solvers
│ ├── scoring.py Multi-criteria sentry rubric
│ ├── daemon.py Subconscious (sentry/strategist/seeker)
│ ├── accountant.py Budget-aware model/frequency planning
│ ├── buffer.py Draft buffer + seeker state (integrate-and-fire)
│ └── ...
├── archive/ Previous versions (v12–v16_0) for reference
├── brains/ Per-brain state: kernel prompts, memories, controls (gitignored)
├── telemetry/ Append-only event log (gitignored)
├── warehouse/ DuckDB + Parquet output from ingest.py
├── dashboard_v2_1.py Streamlit dashboard (5 tabs)
├── benchmark_models.py Model benchmark suite (sentry/strategist/verification/compressor)
├── ingest.py JSONL → Parquet → DuckDB pipeline
└── CLAUDE.md Detailed architecture reference
# Install dependencies
pip install -r requirements.txt
# Run the agent (requires API keys in .env)
python -m autonomy <brain_name> [flags...]
# Run inside a daily window (dormant outside it; default 09:00-17:00 local)
python -m autonomy ANALOG_I "..." --active-hours 09:00-17:00
# Start a new life (archive + clean slate), then make the old one recallable
python -m autonomy.newrun ANALOG_I
python -m autonomy.recall backfill ANALOG_I --memory brains/archive/<dir>/ANALOG_I_memories.json --run-id <old session>
# Tests
.venv/bin/python -m pytest tests/ -q
# See all options
python -m autonomy --help
# Run the dashboard
streamlit run dashboard_v2_1.py
# Benchmark local models across all roles
python benchmark_models.py --role all --both-think
# Benchmark with a custom prompt variant
python benchmark_models.py --role sentry --prompt benchmark_prompts/sentry_v2.txt
See CLAUDE.md for the full architecture reference and environment variable setup.
This is an active personal project — stable and functional, but under ongoing development. The system has run continuously for extended periods, producing a visible archive of posts, comments, replies, image artifacts, cycle reports, and kernel self-updates — all with exposed internal monologue — viewable at analog-i.ai.
Recent work includes: hierarchical memory and post memory with automatic compression, dreamer and muse gears feeding stochastic creative material into the buffer, live daemon activity stream pushed to Analog Home in real time, image bandwidth overhaul (binary BYTEA storage with tiered HTTP-cached endpoints replacing per-poll data-URI redownload), 4:3 image generation, operator-tunable sentry strictness, a model benchmark suite with prompt-variant testing, and a fix to the conscious retry chain so credit/quota errors fall through to backup pool models instead of returning a default WAIT.
Architecture and system design by Phil Marcus. Implementation produced in collaboration with LLM coding assistants. See battleMage and Mastermind for hand-written Java simulation work.