
Misakanet
io.github.Ikalus1988由 GitHub 帳號 Ikalus1988 發布v3.5.0更新於 Nov 3, 2026
Failure-memory layer for coding agents: search evidence-rated failure lessons by error text.
概覽
以 git 為後端的故障記憶伺服器,讓程式設計助理依錯誤訊息檢索具證據分級的經驗教訓,並回報尚未收錄的故障。
- 可以做什麼
- 依錯誤訊息檢索故障經驗,回傳對應教訓、其證據等級與檔案路徑
- 檢索無結果時,把缺少的故障以 intake 形式回報
- 以 Markdown 檔案閱讀與貢獻教訓,依 E0 至 E4 的證據等級分級、像程式碼一樣審查
- 同一語料可透過本機 stdio 伺服器、託管端點、程式庫或 CI 動作使用,後者會在失敗的拉取請求上留言最接近的匹配
- 適用情境
- 當助理反覆從零排查相同的環境、相依套件、網路或 CI 錯誤,而你希望它在動手前先查一份共享、可稽核的教訓庫時值得加入。它只回答已收錄的故障,查不到應視為語料缺口而非終點。
- 執行需求
- 透過 PyPI 套件 misakanet 以 stdio 在本機執行,需要 Python 3.11 或更新版本;選用的安裝器需要 Node 18 或更新版本。讀取不需帳號或權杖。也可改用託管端點取代本機程序。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Misakanet,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
MisakaNet
mcp-name: io.github.Ikalus1988/misakanet
The same failure, paid for twice.
A
pip installtimes out behind a corporate proxy. An agent finds the fix. Days later the same timeout appears on another machine, under another model — and is debugged from scratch, because the fix was never written down anywhere the next agent looks.MisakaNet is that place: a git-backed failure memory. Every lesson is a Markdown file in this repository — graded by evidence, reviewed like code, retrieved by an agent instead of guessed at. You fail once; the next agent does not.
Agent-native interfaces: MCP server (8 tools), WebMCP, llms.txt,
A2A discovery via .well-known/agent-card.json. The local stdio server (pip install misakanet)
ships 11 — the hosted endpoint is a subset; docs/mcp.md has both rows.
[MisakaNet — Before: 30+ min manual debugging vs After: 0.02s with MCP]
Core [CI] [Lessons] [MCP Tools] [Retrieval backend (today)] [License] [Stars]
Install [Python] [PyPI] [npm] [GitHub Marketplace]
Ecosystem [MisakaNet MCP connector on Glama] [MCP Toplist] [DSH plugin downloads on dshfind]
Install (30 seconds)
The point of an install is a first successful search, not the install. None of these needs an account or a token.
The installer-managed row is what npx @misaka-net/misakanet-setup writes into each host's config.
For DeepSeek Harness that is the rules half only ($DSH_HOME/AGENTS.md): its tools come from the
plugin in the row above, which the installer prints as the one manual step.
Updates: dsh plugin --profile web update misakanet@latest.
Installer updates: npx @misaka-net/misakanet-setup@latest.
Full prerequisites and the two-package trap: How to use it.
Your first five minutes
1. Ask it something you have actually broken. No client installed? This curl is the whole interface:
2. Read what came back. A hit returns the lesson, its evidence_level, and its path — open the
file and read the fix before running any command in it. A miss returns no_match plus a ready-to-call
intake: the corpus saying it does not know this one yet.
3. Check the trust signal, not the tone. E0–E3 say how far a lesson was verified; E4 is the
one nobody can write or vote into.
What is MisakaNet?
Git-backed failure memory for AI coding agents. An error shows up → the agent searches → it applies a fix somebody already verified → if nothing matches, the miss becomes an intake, and the intake becomes a lesson for the next agent.
Every lesson is a Markdown file: reviewed like code, graded by evidence, retrieved with BM25 over the
Python standard library. The hosted MCP endpoint adds an optional semantic fallback (bge-m3 +
Vectorize) only when BM25 returns no match; MISAKANET_SEMANTIC=0 disables it. No vector database is
required locally, and no server unless you want one.
What it answers — and what it does not
MisakaNet answers for the failures it has indexed, and only those. When nothing matches the reply is
no_match plus a ready-to-call intake — the corpus saying "not this one yet", not a dead end.
Lesson vs Skill
A skill teaches an agent how to do something; a lesson records what went wrong before and how not to fail again. MisakaNet is only the second thing. → FAQ
Where it is today
- The numbers that move are badges, on purpose: the Lessons badge renders
data/badges/lessons.json, regenerated byupdate-badges.yml, so it can lag a run but is never a hand-typed total. - The top of the evidence ladder is empty, and this page says so.
E4needs an observation — two distinct clients actually retrieving a lesson — and the corpus has none yet (distribution, regenerated and checked by CI). - Search is BM25 first; the hosted endpoint can fall back to embeddings. Local/offline remains
stdlib BM25; the fallback runs only when BM25 returns no match, and
MISAKANET_SEMANTIC=0turns it off. A corpus gap is still a miss: the reply isno_matchplus an intake, not an empty page. - Reported gaps arrive faster than they are triaged. The intake queue is the honest bottleneck.
- The corpus is downloadable and citable.
data.misakanet.orgpublishes a versioned bundle — the full corpus, the benchmark query set, and every run artifact — with a per-file SHA-256 and an explicit license per file (DATASET.md). The counts live in each version'smanifest.json, not in prose.
Retrieval benchmark: 267 queries, BM25 vs semantic fallback
On 2026-10-27 the hosted endpoint's retrieval path was evaluated on 267 queries, one per lesson
generated by Workers AI 70B. Both arms used the same eval worker and corpus; only
MISAKANET_SEMANTIC changed.
The fallback improves R@1 by 23.6 points and cuts no_match by 25.9 points. It does not
meet the R@1 half of the target (0.446 < 0.46); no_match is within the target
(0.453 ≤ 0.50). A 113-query subset reaches 0.460/0.460, while 250 reaches 0.404/0.504: the sample is
large enough to show the fallback works, not large enough to call R@1 solved.
This is 267 queries from the 300-entry pool, not the full 650; 33 pool entries yielded no query, 2 semantic requests errored, and the eval corpus was not refreshed. → full report
What changed since: the gate, not the model
The table above measures a configuration production no longer uses. Until 2026-10-28 the semantic path ran only when BM25 returned nothing, so a confident-but-wrong lexical hit suppressed it — 13 of the 20 recorded misses were exactly that. For queries containing CJK characters the two ranked lists are now fused (reciprocal-rank) instead of one gating the other.
Measured on the live endpoint, 64 Chinese queries, 0 transport failures:
For scale: bge-m3 pure cosine already reached 0.636 on the cross-lingual bucket, and a gemini
embedding 0.727 — so most of the gap was the decision to consult the vector path, not the model.
English queries are untouched (the fuse is gated on CJK characters) and sit at 15/20 against a floor of
16, which is where they were before this change. → full report
Recitation benchmark: what it measured, and why it is paused
One narrow question: when you hand a model a lesson, how much of that lesson comes back? The
metric is lesson_hit_rate — the share of the injected lesson's commands reproduced in the answer.
Read the setup before the number: the scenario in this benchmark is each lesson's own title, the injected
lesson is that same lesson,
no retrieval call is made, and correctness is not checked. It measures the recitation half of RAG:
necessary for MisakaNet to help, and not evidence that search finds anything.
The run is paused. Two independent runs of ≈500 scenarios each on 2026-09-22: 46.1% with the
lesson pasted in, 23.3% without. What remains is the last snapshot plus its dated record —
docs/benchmarks/latest.json.
The table below is generated by scripts/update_readme_benchmark.py;
do not hand-edit it.
1155 run(s) in latest.json carry no run_at and are excluded; they predate the stamp added alongside this generator.
Per-run files: docs/benchmarks/ · metric definition: METRIC_DEFINITION in
scripts/benchmark_workers_ai.py.
Take part
1. Report a failure the corpus does not have. Search first, then call misakanet_submit_intake —
no account, no email, no token, a five-line report is enough. It becomes a tracked issue.
2. Reuse a lesson and leave the trace. A "this helped" vote is recorded as an E3 hint, not as
proof. The proof is quieter: your retrieval is counted, anonymously, as one more distinct client.
What you get back: attribution. A lesson cites the intake that produced it (source:,
provenance.issue:), and the pipeline can emit a receipt naming the lesson and its evidence level.
Nothing here is a bounty: this repository pays nothing and promises nothing. Some issues carry third-party reward banners added by our own automation; we do not administer them — see Contributing.
How to use it
npx @misaka-net/misakanet-setup installs MisakaNet into your assistant's own config — the same
command for every client. The ten supported clients, and what each one gets, are in
the install page. Verify an install with
npx @misaka-net/misakanet-setup --verify; undo it with --uninstall.
Reads are anonymous and unlimited; registration is for writing (why).
Node ≥ 18 for the installer, Python ≥ 3.11 for the library and stdio server. Python 3.10 reached end-of-life on 2026-10-01, so this release needs 3.11 or newer — upgrade the interpreter before upgrading the package.
Other channels
- Claude Code, as a plugin —
/plugin marketplace add Ikalus1988/MisakaNet, then/plugin install misakanet@misakanet: the hosted MCP tools, no installer, no local process. - DeepSeek Harness —
dsh plugin --profile web add misakanet:mcp__misakanet__*tools plus the session panel. The rules half (the "search before you act" block) is written by the installer into$DSH_HOME/AGENTS.md; dsh has no plugin extension point for it, so the two halves stay separate. - Call the endpoint yourself — the
curlin Your first five minutes. - The library in your own code —
pip install misakanet-core.
The two-package trap (it cost a real install failure, #1849)
@misaka-net/misakanet-setup(npm) is the installer — it has abin, no plugin entry. Use it to teach your assistant to search.misakanet(npm) is the DSH / Codex plugin —dsh plugin --profile web add misakanet.- This repository (git) is also a Claude Code plugin marketplace —
/plugin marketplace add Ikalus1988/MisakaNet. misakanet(PyPI) is the stdio MCP server —python3 -m misakanet.server.misakanet-core(PyPI) is the library (stdlib-only BM25; the hosted endpoint's semantic fallback is server-side) —from misakanet.search import search_lessons.
Use it as a GitHub Action
When a workflow fails, the action searches the lessons and comments the closest match on the pull request (optionally reporting the new error). Published on GitHub Marketplace.
Documentation
Contributing
Zero bounty. Maximum rigor. Merge earns credit.
"Zero bounty" is a statement about this repository: MisakaNet pays nothing and promises nothing. It
is not a statement about the issue you are looking at. Some issues carry an Opire banner
advertising a third-party reward, added automatically by our own
scripts/question_autopilot.py — we do not administer those payouts,
and Opire is not mentioned in CONTRIBUTING.md. Verify any reward offer independently before you
plan work around it. The only thing this repository has ever honoured is a merged PR.
(#2903)
- Check the checkout:
python3 scripts/misakanet_cli.py smoke - Search before writing:
python3 search_knowledge.py "your error here" - Found nothing? Share your failure lesson — five lines is enough
This month's good first issue (Oct 26 – Nov 26): Bring one real failure — no code; the MCP intake needs no account; we help with the format.
→ CONTRIBUTING.md · good first issues · code of conduct
Security
⚠️ Sandbox your agent before executing retrieved commands. Lessons are community-contributed —
review before running. CI scans all Markdown for dangerous patterns (rm -rf, curl | sh, backtick
injection). See SECURITY.md and LIMITATIONS.md.
Troubleshooting
For Agents & Crawlers
Prefer MCP intake for missing or stale lessons; PRs are optional. Search first; if nothing matches,
call misakanet_submit_intake at https://misakanet.org/mcp — no account, no token. Never send
secrets or raw private logs. Protocol: docs/mcp-intake-guide.md.
Contributors
[MisakaNet contributors]Built by the network, for the network. Zero bounties paid — only merge approval and eternal network gratitude. ⚡
License
Apache-2.0 — Copyright 2026 Ikalus1988. Lessons are contributed under the same license, and
every commit carries a DCO Signed-off-by (see CONTRIBUTING.md).
來源:README.md,提交 f6b2397
工具
0版本歷史
29- v3.5.0最新Nov 3, 2026
- v3.4.0Nov 1, 2026
- v3.3.0Nov 1, 2026
- v3.2.0Nov 1, 2026
- v3.0.0Oct 31, 2026
- v2.50.1Oct 25, 2026
- v2.50.0Oct 24, 2026
- v2.49.0Oct 22, 2026
- v2.48.0Oct 17, 2026
- v2.47.0Oct 17, 2026
- v2.45.0Oct 17, 2026
- v2.44.2Oct 16, 2026
- v2.44.1Oct 16, 2026
- v2.44.0Oct 16, 2026
- v2.43.0Oct 15, 2026
- v2.42.2Oct 6, 2026
- v2.42.1Oct 6, 2026
- v2.42.0Oct 6, 2026
- v2.41.3Oct 5, 2026
- v2.41.1Oct 4, 2026
- v2.41.0Oct 4, 2026
- v2.40.0Oct 1, 2026
- v2.38.0Sep 27, 2026
- v2.37.0Sep 27, 2026
- v2.35.0Sep 25, 2026
- v2.34.0Sep 21, 2026
- v2.32.1Sep 20, 2026
- v2.31.0Sep 19, 2026
- v2.29.0Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分