BLA
BLA (Blind LLM Agents) is the open-source Blue Defense MCP and CLI built to protect software artifacts against automated AI reverse-engineering workflows.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 README。 以下为已保存的摘录。
AEGIS: spot the scam, see the evidence
ForgeHacks 2026 · Track 05: AI + Cybersecurity
"Build an AI-powered solution that helps people recognize, prevent, verify, or respond to scams, impersonation, and fraud enabled by AI or modern technologies."
Paste a suspicious email, drop an .eml file, or forward it to the AEGIS inbox. A team of nine
specialist agents takes it apart in about 15 seconds and returns a verdict
(SCAM / SUSPICIOUS / LIKELY SAFE) where every red flag quotes the exact line, link or header
it came from, plus plain-language next steps and a link you can send to a family member.查看完整 README ↗ForgeHacks 2026 · Track 05: AI + Cybersecurity "Build an AI-powered solution that helps people recognize, prevent, verify, or respond to scams, impersonation, and fraud enabled by AI or modern technologies."
Paste a suspicious email, drop an .eml file, or forward it to the AEGIS inbox. A team of nine
specialist agents takes it apart in about 15 seconds and returns a verdict
(SCAM / SUSPICIOUS / LIKELY SAFE) where every red flag quotes the exact line, link or header
it came from, plus plain-language next steps and a link you can send to a family member.
Phishing is still the number one way people get compromised, and AI now writes lures that are personalised, fluent and visually convincing. Spam filters give a silent yes or no, so people never learn why something was a scam and stay vulnerable to the next one. Business-email-compromise scams (fake CEO asking for gift cards) contain no malicious link at all, so link scanners miss them.
/live, "Send a test email" opens your mail app (or Gmail) with the address
and your private code filled in. Paste a suspicious email and send: it appears within seconds,
the nine agents run in front of you, and the verdict is replied in-thread. Only your browser
sees it./live still censors names, addresses and
long numbers on screen, since the page may be screen-shared; links stay as evidence.PRIVATE_RETENTION_DAYS=1); the verdict stays. web (paste / .eml) AgentBoxD webhook AgentBoxD poller
\ | /
+------ analyses queue (SQLite) ---+
|
parse -> triage -> signals -> forensic ----+
\ \-> sandbox ----------------+-> arbiter -> report -> reply in-thread
\ \-> graph (campaigns) -----+ \-> live UI (SSE)
\-> vision (rendered HTML) ---------+
| Agent | What it does | AI? |
|---|---|---|
| parse | Reads raw text or a full .eml (MIME, HTML-only mail, attachments) | no |
| triage | Extracts links, phones, brands, urgency cues, requested action | Kimi K3 |
| signals | 15 deterministic checks: SPF/DKIM/DMARC, lookalike and homoglyph domains, hidden links, sender spoofing, gift-card and executive impersonation | no |
| forensic | Long-context analyst; every finding must quote the email | Kimi K3 |
| vision | Renders the HTML offline (no JS, no network) and asks whether it imitates a brand | Qwen3-VL |
| sandbox | Fetches each link with SSRF guards, looks for password forms and downloads | no |
| graph | Links the email to earlier ones that share infrastructure | no |
| arbiter | Weighted ensemble + corroboration rule + fail-closed | no |
| report | Red flags with evidence, tailored next steps, the email reply | no |
Models run on Featherless AI. The inbox, inbound phishing and prompt-injection scores and the in-thread reply come from AgentBoxD. Full design: ARCHITECTURE.md. API: docs/API.md. Decisions: DECISIONS.md.
Live run against the real models (backend/scripts/eval_live.py, full table in
eval/RESULTS.md): 22 emails, 12 scams and 10 legitimate.
| Metric | Value |
|---|---|
| Scams flagged | 12 / 12 (all at SCAM) |
| Legitimate mail cleared as LIKELY SAFE | 10 / 10 |
| False positives | 0 |
| Time per email | 15 s mean, 32 s max |
This is a small synthetic set: a sanity check of the pipeline, not a real-world accuracy claim.
Requirements: Python 3.11+, Node 20+.
# backend (http://127.0.0.1:8000, API docs at /api/docs)
cd backend
python -m venv .venv && .venv/bin/pip install -r requirements.txt # Windows: .venv\Scripts\pip
.venv/bin/python -m playwright install chromium
export FEATHERLESS_API_KEY=... # required for the AI agents
.venv/bin/uvicorn aegis.main:app --port 8000
# frontend (http://localhost:3000), in a second terminal
cd frontend
npm install && npm run build && npm start
Backend settings (environment variables or backend/.env):
| Variable | Purpose |
|---|---|
FEATHERLESS_API_KEY | Featherless key for the AI agents (without it AEGIS runs degraded and fails closed) |
AEGIS_API_KEY | Require Authorization: Bearer on the API. Set it whenever the backend is reachable beyond localhost; give the same value to the frontend |
AGENTBOXD_API_KEY, AGENTBOXD_INBOX_ID, AGENTBOXD_INBOX_ADDRESS | Inbox integration |
AGENTBOXD_WEBHOOK_SECRET | Enables POST /api/v1/ingest/agentboxd (HMAC-verified) |
AGENTBOXD_POLL | Long-poll the inbox (no public URL needed). Unset: on whenever AgentBoxD is configured and no webhook secret is set |
AGENTBOXD_AUTO_REPLY | Reply in-thread with the verdict card (default true) |
AGENTBOXD_INCLUDE_UNSCREENED | Take mail before AgentBoxD screening finishes, so it shows up at once (default true) |
AGENTBOXD_INCLUDE_HELD | Also read mail AgentBoxD screening held as phishing; needs an API key with the messages:release permission (default false) |
CORS_ORIGINS | Comma-separated allowlist; empty means no CORS headers |
AEGIS_SECRET_KEY | 32 bytes, base64url: encrypts mailbox credentials. If unset, a key is generated into DATA_DIR/secret.key; set it explicitly in production |
PRIVATE_RETENTION_DAYS | Days before pasted and inbox-forwarded email content is purged (default 1) |
INBOX_PUBLIC=true | Demo only: mark test-inbox mail public, so it appears in everyone's campaign graph (it is never listed on Cases or Live) |
AGENTBOXD_BACKFILL_S | On startup, also take inbox mail from this many seconds back (default 0; analyzed mail is skipped) |
MAILBOX_POLL_INTERVAL_S | Seconds between checks of connected mailboxes (default 10) |
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET | Enable Sign in with Google (setup below) |
GOOGLE_REDIRECT_URI | Default ; must match the OAuth client |
Frontend settings: BACKEND_URL (default http://127.0.0.1:8000) and AEGIS_API_KEY
(server-side only; the browser never sees it).
Tests: cd backend && .venv/bin/python -m pytest (82 tests, no network or API key needed).
/inboxconnects Gmail (DECISIONS D15): the backend checks it everyMAILBOX_POLL_INTERVAL_Sseconds and the page refreshes every 3 seconds. Until the setup below is done, Connect is disabled.
Without these two settings the Connect Gmail button on /inbox is disabled. Do this in a normal browser, not an app's
built-in browser panel (Google blocks sign-in there).
https://www.googleapis.com/auth/gmail.modify.http://localhost:3000/api/v1/oauth/google/callback (plus your deployed frontend URL with the
same path).GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET for the backend (and GOOGLE_REDIRECT_URI if
the frontend is not on localhost:3000).Without these two settings the Microsoft button is hidden.
http://localhost:3000/api/v1/oauth/microsoft/callback (plus your
deployed frontend URL with the same path).Mail.ReadWrite, User.Read,
offline_access.MICROSOFT_CLIENT_ID (the Application (client) ID) and MICROSOFT_CLIENT_SECRET for the
backend (and MICROSOFT_REDIRECT_URI if the frontend is not on localhost:3000).Works, verified end to end with real models on Oct 6:
.eml upload, samples) with live agent progress, verdict, highlighted evidence,
share page and abuse report.Limits and not yet verified:
backend/Dockerfile has not been built (no Docker on the build machine).Built during the ForgeHacks window (Oct 3 to 10, 2026) with AI coding assistance (Claude Code).
The v1 pipeline (Oct 3 to 5) is preserved in legacy/v1/; v2 (Oct 6) re-architected it into the
backend/ and frontend/ apps. Featherless, AgentBoxD and the open models are third-party services.
Prompts, pipeline logic, the deterministic checks, the arbiter, the graph, the red-team engine and
the evaluation are this project's own.
http://localhost:3000/api/v1/oauth/google/callbackMICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET | Enable Sign in with Microsoft (setup below) |
MICROSOFT_REDIRECT_URI | Default http://localhost:3000/api/v1/oauth/microsoft/callback; must match the app registration |