neuron-explorer
Qwen3.5‑4B 전용 조향형 뉴런 탐색기, 모든 MLP 뉴런을 밀어 결과를 보관·탐색
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
A local-first AI coding agent with three layers of awareness.
Runs locally with Ollama, or through an optional Gemini 3 + Google ADK profile. Remembers across sessions. Searches your org's knowledge before writing code.
A privacy-first AI coding agent that runs the model locally and gives it three distinct kinds of awareness — not just one giant chat window:
All three are opt-in. The default runtime stays local with Ollama. Cloud model, MCP, memory, search, and telemetry connections are enabled separately.
Live demo: ll-mai.vercel.app · Demo video (3 min): youtu.be/V3Rda1kLSosREADME 전문 보기 ↗A privacy-first AI coding agent that runs the model locally and gives it three distinct kinds of awareness — not just one giant chat window:
| Layer | Backed by | What it gives the agent |
|---|---|---|
| Operational | Dynatrace (OpenTelemetry → Bindplane) | Every tool call traced: latency, token count, permission outcome, success/error |
| Personal | MongoDB Atlas (per-workspace) | Recalls your past sessions, decisions, and extracted facts. Boots warm |
| Organizational | Elastic (per-org) | Hybrid search over GitLab issues, CI failure logs, docs — checks "have we seen this before?" before writing code |
All three are opt-in. The default runtime stays local with Ollama. Cloud model, MCP, memory, search, and telemetry connections are enabled separately.
Live demo: ll-mai.vercel.app · Demo video (3 min): youtu.be/V3Rda1kLSos
┌─ search_knowledge ──► Elastic (issues + docs)
│
Browser / CLI ──► Agent Loop ────────┼─ recall_memory ─────► MongoDB Atlas
│ │ (per-workspace sessions
│ │ + summaries + knowledge)
│ │
│ └─ query_logs ────────► Elastic ES|QL
│ (pipeline + agent self-logs)
│
▼
OTel spans
│
▼
Bindplane ──┬──► Dynatrace (traces + metrics)
│
└──► Elastic llmai-agent-logs
(so the agent can query itself)
LLM backend: Ollama by default; Gemini 3 and Google ADK are optional
| How to run | Best for | |
|---|---|---|
| CLI REPL | llmai | Terminal power users |
| Web UI | llmai-server → http://localhost:7777 | Browser, streaming, permission cards |
The server no longer pops a browser window on start; set LLMAI_OPEN_BROWSER=1
if you want the old behavior.
The local server also serves a daily briefing dashboard at
http://localhost:7777/briefing — and the hosted site's ☀️ Briefing tab
embeds it directly (the server grants scoped CORS to /healthz and
/briefing* for https://ll-mai.vercel.app only; override with
LLMAI_BRIEFING_ORIGINS).
Each briefing contains:
The briefing auto-regenerates in the background on server startup whenever
the saved one isn't from today; POST /briefing/refresh forces a rebuild
(also wired to the ↻ button in the tab).
Install from PyPI (the distribution is named llmai-agent because bare
llmai was already taken; the import path is still import llmai):
pip install llmai-agent
ollama serve
ollama pull qwen2.5-coder
llmai-server # → http://localhost:7777
Or install from source for development:
git clone https://github.com/sechan9999/LLMai.git
cd LLMai
pip install -e .
ollama serve
ollama pull qwen2.5-coder
llmai-server # → http://localhost:7777
That's it. The agent has 8 core tools (read/write/edit files, run shell, search code, list files, fetch URL, mkdir) plus 11 GitLab tools when GITLAB_TOKEN is set. Read-only ops auto-approve; writes and shell commands prompt for permission.
make install-telemetry # adds opentelemetry packages
# in .env (copy from .env.example):
DT_ENDPOINT=https://<your>.live.dynatrace.com
DT_API_TOKEN=dt0c01.YOUR_TOKEN
make bindplane-up # starts the OTel collector locally
export LLMAI_OTEL_ENABLED=true
export LLMAI_OTEL_ENDPOINT=http://localhost:4318
llmai-server
Spans: agent.turn → agent.iteration → llm.chat + tool.invocation. Metrics: tool invocation counts, LLM latency, token histograms.
Full guide: docs/dynatrace-setup.md
make install-memory # adds pymongo
ollama pull nomic-embed-text # embedding model
# in config.json or env:
LLMAI_MEMORY_ENABLED=true
LLMAI_MEMORY_URI=mongodb+srv://USER:[email protected]/
python scripts/setup_atlas_indexes.py # one-time vector index bootstrap
llmai-server
Three collections: sessions (metadata-only by default), summaries
(vector-embedded), knowledge (extracted facts, vector-embedded). New tool:
recall_memory for the agent. On each new session, the 3 most recent prior
summaries are auto-injected as a system message. Full transcript retention
requires explicit LLMAI_MEMORY_STORE_TRANSCRIPTS=true.
Full guide: docs/atlas-setup.md
make install-elastic # adds elasticsearch client
make elastic-up # local ES + Kibana via docker
make elastic-setup # creates llmai-* indices
# optional: pull org knowledge in
export GITLAB_TOKEN=glpat-...
export GITLAB_PROJECT=group/project
make elastic-ingest # pulls last 500 issues + 50 failed pipelines
export LLMAI_ELASTIC_ENABLED=true
export LLMAI_ELASTIC_URL=http://localhost:9200
llmai-server
Two tools: search_knowledge (hybrid keyword + dense vector, RRF-fused, auto-approved) and query_logs (raw ES|QL, permission-gated). System prompt nudges the model to call search_knowledge before writing code that touches error paths or external APIs.
Full guide: docs/elastic-setup.md
pip install 'llmai-agent[mcp]' # MCP Python SDK (servers below also need Node >= 18)
# in config.json — GitLab's official MCP server via the mcp-remote bridge:
# "mcp": { "enabled": true, "servers": { "gitlab": {
# "command": "npx",
# "args": ["-y", "mcp-remote", "https://gitlab.com/api/v4/mcp"],
# "allow": [] } } }
llmai-doctor # verify SDK + server commands
llmai-server # tools appear as mcp__gitlab__*, mcp__mongodb__find, ...
Every MCP tool defaults to ask; only names in the server's allow list auto-approve. Servers run as local stdio subprocesses — no sockets.
Full guide: docs/mcp-setup.md
make demo-up # starts Elastic + Kibana + Bindplane
make demo-bootstrap # pulls embed model + creates ES indices
make demo-status # health check across the whole stack
mcp__{server}__{tool} behind the permission gategemma3, phi3, etc.WORKSPACE_ROOT; dangerous command patterns blocked| Category | Tools | Default permission |
|---|---|---|
| Core (8) | read_file, write_file, edit_file, run_command, list_files, search_code, fetch_url, create_directory | reads allow, writes/shell ask |
| GitLab (11) | gitlab_list_issues, gitlab_get_mr, gitlab_get_job_log, … | reads allow, mutations ask |
| Memory (1) | recall_memory | allow |
| Elastic (2) | search_knowledge, query_logs | allow / ask |
| MCP (dynamic) | mcp__{server}__{tool} — discovered from configured MCP servers | ask (per-server allow list) |
Tools are registered conditionally — the model never sees a tool whose backend isn't connected.
config.json (or env vars — env always wins):
{
"ollama_url": "http://localhost:11434",
"model": "qwen2.5-coder",
"permissions": { ... },
"telemetry": { "enabled": false, "endpoint": "http://localhost:4318", ... },
"memory": { "enabled": false, "uri": "mongodb+srv://...", ... },
"elastic": { "enabled": false, "url": "http://localhost:9200", ... }
}
Full example: config.example.json.
| Command | Description |
|---|---|
/reset | Clear conversation context (and finalize session memory) |
/model <name> | Switch model |
/models | List Ollama models locally |
/tokens | Show estimated token count |
/perms | Show current permission settings |
/compress | Force context compression now |
/exit | Quit |
Native tool calling (recommended): Qwen 2.5 / 2.5-Coder / 3, Llama 3.1+, Mistral NeMo, FireFunction, Command-R(+).
XML fallback: gemma3, phi3, mistral — anything OpenAI-incompatible. Slightly lower fidelity but functional.
The agent speaks the OpenAI /v1/chat/completions contract.
# Gemini 3 through the existing CLI and Web UI agent loop
export GEMINI_API_KEY=...
export GEMINI_MODEL=gemini-3.1-pro-preview # optional — this is already the default (llmai/llm.py); set only to override, e.g. gemini-3.5-flash
llmai-doctor # validates the key and model availability
# Any OpenAI-compat endpoint (LM Studio, vLLM, custom):
# set "ollama_url" in config.json
LLMai also includes an optional Google Agent Development Kit (ADK) entry point. In this profile, a Gemini 3 model orchestrates read-only workspace tools and GitLab's official MCP server. It is separate from the default Web UI runtime and does not claim to reproduce the Web UI's interactive write approvals.
pip install -e ".[google-cloud]"
export GOOGLE_API_KEY=...
export LLMAI_GOOGLE_MODEL=gemini-3.1-pro-preview
adk web .
The discovered agent is google_agent. Its local and GitLab tools are filtered to read-only operations. See docs/google-cloud-agent-builder.md for AI Studio, Vertex AI, OAuth, and verification steps.
LLMai/
├── llmai/ # Python package (formerly vixcode)
│ ├── agent.py # Sync CLI agent loop
│ ├── main.py # CLI REPL entry point
│ ├── llm.py # OpenAI-compat HTTP client
│ ├── tools.py # 8 core tools + conditional registration
│ ├── gitlab_tools.py # 11 GitLab tools
│ ├── permissions.py # allow / ask / deny system
│ ├── telemetry.py # OpenTelemetry init + span context managers
│ ├── memory/ # MongoDB Atlas persistent memory
│ │ ├── store.py
│ │ ├── embeddings.py
│ │ └── recall_tool.py
│ ├── elastic/ # Elasticsearch knowledge search + log analytics
│ │ ├── client.py
│ │ ├── search_tool.py
│ │ └── query_tool.py
│ └── mcp/ # MCP client: partner servers over stdio
│ ├── client.py
│ ├── bridge.py
│ └── registry.py
├── google_agent/ # Optional Gemini 3 + Google ADK entry point
├── server/ # FastAPI + WebSocket Web UI
│ ├── app.py # Routes + daily briefing (auto-regen, scoped CORS)
│ ├── agent_ws.py # Async agent loop (native + XML modes)
│ └── static/ # Web UI + briefing dashboard/template
├── website/ # Hosted site (Vercel)
│ ├── index.html # Chat + Briefing tab + About + Install
│ ├── landing.html # Marketing landing page
│ └── promo.html # 60-second animated demo
├── api/chat.js # Vercel serverless cloud fallback (Groq)
├── scripts/ # Bootstrap scripts for partner integrations
│ ├── setup_atlas_indexes.py
│ ├── elastic_setup_indexes.py
│ ├── elastic_ingest_gitlab.py
│ └── elastic_ingest_logs.py
├── bindplane/config.yaml # OTel collector → Dynatrace + Elastic
├── docker-compose.bindplane.yml # Bindplane container
├── docker-compose.elastic.yml # Elasticsearch + Kibana
├── Makefile # Common dev / demo tasks
├── docs/
│ ├── dynatrace-setup.md
│ ├── atlas-setup.md
│ └── elastic-setup.md
└── tests/ # 103 passing
MIT