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.

已验证STDIO仅桌面知识与记忆开发者工具

概览

AI 生成的概览

一个以 git 为后端的故障记忆服务器,让编程助手按报错文本检索带证据分级的经验教训,并上报尚未收录的故障。

可以做什么
  • 按报错文本检索故障经验,返回对应教训、其证据等级与文件路径
  • 检索无结果时把缺失的故障作为 intake 上报
  • 以 Markdown 文件形式阅读和贡献教训,按 E0 至 E4 的证据等级分级、像代码一样评审
  • 同一语料可通过本地 stdio 服务器、托管端点、代码库或 CI 动作使用,后者会在失败的拉取请求上评论最接近的匹配
适用场景
当助手反复从零排查相同的环境、依赖、网络或 CI 报错,而你希望它在动手前先查一份共享、可审计的教训库时值得加入。它只回答已收录的故障,检索不到应视为语料缺口而非终点。
运行要求
通过 PyPI 包 misakanet 以 stdio 在本地运行,需要 Python 3.11 或更高版本;可选的安装器需要 Node 18 或更高版本。读取无需账号或令牌。也可改用托管端点代替本地进程。
安装前请注意
教训由社区贡献,运行检索到的命令前应先审阅并隔离智能体,项目本身也如此提醒。intake 提交是公开报告,切勿发送密钥或原始私有日志。托管端点的检索会被匿名计为一次独立客户端访问,项目声明不发放任何赏金。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Misakanet,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

MisakaNet

mcp-name: io.github.Ikalus1988/misakanet

The same failure, paid for twice.

A pip install times 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.

Your hostCommand
DeepSeek Harnessdsh plugin --profile web add misakanet — or type misakanet in Add plugin
Claude Code/plugin marketplace add Ikalus1988/MisakaNet then /plugin install misakanet@misakanet
Installer-managedClaude Code · Codex · Hermes · OpenClaw · codewhale · Cursor · Gemini CLI · Copilot CLI · OpenCode · Kiro · MiniMax Code · DeepSeek Harness
Any other MCP clientpoint it at https://misakanet.org/mcp — public endpoint, anonymous reads
Your own codepip install misakanet-core (library) · pip install misakanet (stdio server)

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:

bash
curl -sS https://misakanet.org/mcp \  -H 'Content-Type: application/json' -H 'Accept: application/json' \  -H 'MCP-Protocol-Version: 2025-06-18' -H 'Origin: https://misakanet.org' \  -d '{"jsonrpc":"2.0","id":1,"method":"tools/call",       "params":{"name":"misakanet_search","arguments":{"query":"database is locked","top":3}}}'

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.

Lessonsfailure-recovery knowledge base, open and auditable under lessons/
Domainsrag · devops · fanuc · docker · feishu · mcp · network · ci · wsl · windows …
EvidenceE0 intake → E1 reviewed → E2 reproduced → E3 CI verified → E4 observed reuse by two or more distinct clients
It is notIt is
❌ a general memory system✅ a failure-recovery knowledge layer
❌ an agent runtime✅ a searchable lesson database
❌ a mandatory vector database / RAG stack✅ BM25 first; optional, disable-able semantic fallback on the hosted endpoint
❌ a skill marketplace✅ debugging knowledge from real sessions
❌ a general-purpose benchmark platform✅ a corpus graded by evidence; a 267-query retrieval run is published, and the older recitation benchmark is paused

What it answers — and what it does not

[Four-panel comic: an agent asks about a failure, gets an indexed lesson back, or gets "no_match" and a ready-to-call intake form]

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 by update-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. E4 needs 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=0 turns it off. A corpus gap is still a miss: the reply is no_match plus 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.org publishes 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's manifest.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.

armR@1R@5no_match
BM250.2100.2250.712
semantic fallback0.4460.4720.453

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:

bucketnbeforeafter
zh → zh310.7100.774
zh → en330.4550.697
zh → en, low overlap140.2140.500

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.

Datewith_lesson hit rateplain hit raten
2026-08-3046.4%23.9%358
2026-08-3149.1%25.1%398
2026-09-0648.3%24.1%455
2026-09-1446.6%23.4%494
2026-09-2146.1%23.3%512
2026-10-1243.8%26.1%34

1155 run(s) in latest.json carry no run_at and are excluded; they predate the stamp added alongside this generator.

with_lesson hit rate (per run date)43.8% │ ▁46.1% │ ▄46.6% │ ▄48.3% │ ▆49.1% │ █      └──────────────────       08  09  09  09  10       31  06  14  21  12

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 curl in 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 a bin, 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.

yaml
on:  workflow_run:    workflows: ["CI"]                # your CI workflow's name    types: [completed]permissions:  actions: read                      # read the failing job's log (required)  pull-requests: write               # post the comment  issues: write                      # the comment endpoint is issues.createCommentjobs:  intake:    if: ${{ github.event.workflow_run.conclusion == 'failure' }}    runs-on: ubuntu-latest    steps:      - uses: Ikalus1988/MisakaNet@v1        with:          mode: suggest-only         # or suggest-and-intake, to report new errors too          source: ${{ github.repository }}

→ inputs and outputs

Documentation

TopicWhere
Install, verify, uninstalldocs/quickstart.md · https://misakanet.org/install/
MCP: protocol, tools, transportsdocs/mcp.md · API.md
CLIdocs/cli-reference.md · python3 search_knowledge.py "…"
ArchitectureARCHITECTURE.md · docs/CONCEPTS.md
Contributing a fixCONTRIBUTING.md · label system
Submitting an intakedocs/mcp-intake-guide.md · mcp-remote
Troubleshootingdocs/troubleshooting.md
Known limitationsdocs/LIMITATIONS.md
Benchmarksdocs/benchmarks/
Dataset (corpus + query sets, downloadable)DATASET.md · https://data.misakanet.org/latest.json
Roadmap / changelogROADMAP.md · CHANGELOG.md
Competitors, domains, crawler policycompetitive · domains · robots

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)

  1. Check the checkout: python3 scripts/misakanet_cli.py smoke
  2. Search before writing: python3 search_knowledge.py "your error here"
  3. 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

SymptomWhere
DCO · leaked token · pip timeout · database locked · Windows/GBK · WSL permission · FANUC codesdocs/troubleshooting.md
MCP returns 403/405, or a client shows no toolsdocs/mcp.md · FAQ.md
Behind a corporate proxydocs/troubleshooting.md

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
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

29
  1. v3.5.0最新Nov 3, 2026
  2. v3.4.0Nov 1, 2026
  3. v3.3.0Nov 1, 2026
  4. v3.2.0Nov 1, 2026
  5. v3.0.0Oct 31, 2026
  6. v2.50.1Oct 25, 2026
  7. v2.50.0Oct 24, 2026
  8. v2.49.0Oct 22, 2026
  9. v2.48.0Oct 17, 2026
  10. v2.47.0Oct 17, 2026
  11. v2.45.0Oct 17, 2026
  12. v2.44.2Oct 16, 2026
  13. v2.44.1Oct 16, 2026
  14. v2.44.0Oct 16, 2026
  15. v2.43.0Oct 15, 2026
  16. v2.42.2Oct 6, 2026
  17. v2.42.1Oct 6, 2026
  18. v2.42.0Oct 6, 2026
  19. v2.41.3Oct 5, 2026
  20. v2.41.1Oct 4, 2026
  21. v2.41.0Oct 4, 2026
  22. v2.40.0Oct 1, 2026
  23. v2.38.0Sep 27, 2026
  24. v2.37.0Sep 27, 2026
  25. v2.35.0Sep 25, 2026
  26. v2.34.0Sep 21, 2026
  27. v2.32.1Sep 20, 2026
  28. v2.31.0Sep 19, 2026
  29. v2.29.0Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分