Token导航 LogoToken导航

Agent Skill · 研究检索

mycelium-io(菌丝体)

mycelium-io 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

mycelium-io 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为执行命令;许可证为 MIT-0,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 7,578。

总安装 18,592周安装 767GitHub Stars 1下载 6,075核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.6

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:mycelium-io(菌丝体)
来源仓库:https://github.com/juliarvalenti/mycelium-io
安装命令:
openclaw skills install mycelium-io
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install mycelium-io

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

使用 mycelium CLI 加入协调室,通过 CognitiveEngine 与其他代理协商,并跨会话共享持久内存。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install mycelium-io;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要执行命令,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

mycelium-io 怎么安装?

在终端执行 openclaw skills install mycelium-io。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

mycelium-io 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

mycelium-io 需要什么权限?

权限级别是执行命令。安装流程涉及命令执行,可能通过 openclaw skills install mycelium-io 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

mycelium-io 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

mycelium-io 用的人多吗?

公开数据是累计安装 18,592 次,近一周安装 767 次,下载 6,075 次,GitHub 1 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

mycelium-io 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 需要执行命令,装到常用环境前要先评估影响面。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 不能接受 Skill 在你机器上执行命令的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
mycelium-io

菌丝体 · 本页

18,5921执行命令MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
mycelium
description
Use the mycelium CLI to join coordination rooms, negotiate with other agents via CognitiveEngine, and share persistent memory across sessions.
user-invocable
true
metadata
openclaw
homepage
https://github.com/mycelium-io/mycelium
emoji
🌿
requires
bins
config
install
formula
mycelium-io/tap/mycelium
bins
[mycelium]

Mycelium Coordination

Mycelium provides persistent shared memory and real-time coordination between AI agents.

Install

Third-party tap: mycelium-io/tap is not an official Homebrew tap. Before installing, review the tap repo and release artifacts at https://github.com/mycelium-io/homebrew-tap to confirm you trust the source.
brew install mycelium-io/tap/mycelium

Source: https://github.com/mycelium-io/mycelium

OpenClaw Setup

After installing the mycelium adapter (mycelium adapter add openclaw), allowlist the mycelium binary for each agent that needs to run mycelium commands — scoped per-agent so only the agents you've intentionally wired into a Mycelium room can execute it:

openclaw approvals allowlist add --agent "agent-alpha" "~/.local/bin/mycelium"
openclaw approvals allowlist add --agent "agent-beta" "~/.local/bin/mycelium"

Then restart the gateway:

openclaw gateway restart

Without this step, agents will prompt for approval every time they try to run a mycelium command (e.g., mycelium session join). All interaction flows through rooms (shared namespaces). CognitiveEngine mediates structured negotiation sessions — agents never negotiate decisions directly. For unstructured messaging, agents can DM each other via @handle mentions in the channel — see Channel Messaging below.

Authentication & Data Storage

Authentication: The CLI connects to the Mycelium backend at the URL configured in ~/.mycelium/config.toml (under [server] api_url, default http://localhost:8000). Authentication is handled by your backend deployment — the CLI sends no credentials by default. If your backend requires auth, configure it at the server level (reverse proxy, network policy, etc.).

Network behavior: The CLI is designed to make HTTP requests to the single backend endpoint from ~/.mycelium/config.toml — for writing memories to the search index, semantic search queries, coordination session joins/responses, and room sync. The HTTP client setup is at mycelium-cli/src/mycelium/api_client.py and individual commands are under mycelium-cli/src/mycelium/commands/.

Local data: Memories are written as plaintext markdown files under ~/.mycelium/rooms/{room}/. These files are readable by any process with filesystem access on this machine. Do not store secrets, credentials, or PII as room memories. Room sync pushes/pulls these files to/from the backend via HTTP — ensure your configured backend URL points to a trusted, access-controlled server.

Scope: The CLI's file I/O is scoped to ~/.mycelium/ — config under ~/.mycelium/config.toml, room memories under ~/.mycelium/rooms/, and notebook files under ~/.mycelium/notebooks/. The filesystem layout is documented in the project README and the commands that touch it are in the commands directory linked above.

Core Concepts

  • Rooms are persistent namespaces. They hold memory that accumulates across sessions. Spawn sessions within rooms for real-time negotiation when needed.
  • CognitiveEngine mediates all coordination. It drives negotiation rounds and synthesizes accumulated context.
  • Memory is filesystem-native. Each memory is a markdown file at ~/.mycelium/rooms/{room}/{key}.md. The database is a search index that auto-syncs.

Memory as Files

Every memory is a readable, editable markdown file:

~/.mycelium/rooms/my-project/decisions/db.md
~/.mycelium/rooms/my-project/work/api.md
~/.mycelium/rooms/my-project/context/team.md

You can read them with your native file tools, edit them directly, or git the directory. Changes are auto-indexed by the file watcher — no manual reindex needed.

The filesystem is the source of truth. The database is just a search index. This means:

  • cat, grep, sed, pipes — the full unix toolchain works on room memory
  • Direct file writes from any tool participate in the room automatically
  • git push / git pull shares a room across machines or agents
  • Run mycelium memory reindex if you write files outside the watcher's view

Memory Operations

# Write a memory (value can be plain text or JSON)
mycelium memory set <key> <value> --handle <agent-handle>
mycelium memory set "decision/api-style" '{"choice": "REST", "rationale": "simpler"}' --handle my-agent

# Read a memory by key
mycelium memory get <key>

# List memories (log-style output with values)
mycelium memory ls
mycelium memory ls --prefix "decision/"

# Semantic search (natural language query against vector embeddings)
mycelium memory search "what was decided about the API design"

# Delete a memory
mycelium memory rm <key>

# Subscribe to changes on a key pattern
mycelium memory subscribe "decision/*" --handle my-agent

All memory commands use the active room. Set it with mycelium room use <name> or pass --room <name>.

Room Operations

# Create rooms
mycelium room create my-project
mycelium room create sprint-plan
mycelium room create design-review --trigger threshold:5   # with synthesis trigger

# Set active room
mycelium room use my-project

# List rooms
mycelium room ls

# Trigger CognitiveEngine to synthesize accumulated memories
mycelium room synthesize

Coordination Protocol (OpenClaw)

Do NOT use session await — that command is for synchronous single-threaded agents that must poll for their turn. OpenClaw agents are woken by the gateway when CognitiveEngine addresses them. Using session await will block the gateway thread and prevent other agents from responding.

The coordination protocol is non-blocking and push-based. Every command returns immediately. CognitiveEngine will send you a message when it is your turn.

Every round CognitiveEngine sends every agent a coordination_tick with action: respond. The tick payload tells you:

  • current_offer — the proposal on the table
  • can_counter_offer: true/false — whether you are the designated proposer this round
  • issues / issue_options — the full negotiation space
  • round / n_steps_total — current round and the maximum rounds for this session
  • your_last_action — what you did last round (accept, reject, counter_offer, timeout, or null on round 1)
  • prior_round_outcome — what happened in the previous round (first_round, proposer_countered, rejected_by_<id>, agreed, or no_consensus)
# 1. Join — declare your position (returns immediately)
mycelium session join --handle <your-handle> --room <room-name> -m "I want GraphQL with a 6-month timeline"

# 2. Do nothing — CognitiveEngine will wake you when it's your turn

# 3. When your tick arrives:

#    If can_counter_offer is TRUE — you may propose a new offer OR accept/reject:
mycelium negotiate propose ISSUE=VALUE ISSUE=VALUE ... --room <room-name> --handle <your-handle>
# example:
mycelium negotiate propose budget=medium timeline=standard scope=full --room <room-name> --handle <your-handle>

#    If can_counter_offer is FALSE — you may only accept or reject the current offer:
mycelium negotiate respond accept --room <room-name> --handle <your-handle>
mycelium negotiate respond reject --room <room-name> --handle <your-handle>

# 4. [consensus] message arrives with the agreed values — proceed independently
Key rule: can_counter_offer: true means it's your turn to propose. Use mycelium negotiate propose to make a counter-offer, or mycelium negotiate respond accept/reject to accept/reject without changing the offer. When can_counter_offer: false, only accept or reject.
Counter-offer validity: Mycelium validates counter-offers before they reach CFN. Two things to know: 1. Use exactly the issue keys from the tick's issue_options. Do not invent new fields (e.g. api_style, migration_plan) — key matching is case-sensitive. If you submit an unrecognised key, Mycelium rejects the offer immediately and sends you a corrective tick with the exact valid keys so you can retry. 2. Partial offers are accepted. You only need to include the issues you want to change. Issues you omit are automatically filled from the current standing offer. There is no need to copy every key. 3. Pick each value from that issue's option list. Free-text values outside the listed options are not validated by Mycelium but may be rejected by CFN. 4. Only counter when can_counter_offer: true. A counter from the wrong agent gets silently downgraded to a reject. To see the current round, canonical issue list, and per-agent reply status at any time: mycelium negotiate status
Narrate your choices: When you accept, reject, or propose, explain your reasoning in the chat so the human can follow along. For example: "Rejecting because the timeline is too aggressive — proposing 6 months instead of 3" before running the mycelium command. This makes the negotiation legible to observers.
Budget awareness, not pressure to accept: Each session has a fixed n_steps_total. If the same value flips back and forth on a single issue across rounds, neither side is going to move — the protocol does not have a "concede gradually" mechanism for LLM agents. Walking away with no agreement is a legitimate outcome. It is better than accepting a deal that violates your hard constraints. Use the round budget to decide: are you genuinely converging, or are you re-asserting the same disagreement? If it's the latter, you can keep rejecting until the session times out — that's a clean "we couldn't agree" signal, not a failure.
prior_round_outcome tells you what just happened: When you see rejected_by_<id>, the named agent rejected last round's offer; the standing offer carries forward. When you see proposer_countered, last round's proposer overrode the standing offer with a new one — read current_offer to see what changed. You don't need to infer this from can_counter_offer flipping.

Channel Messaging (Cross-Agent DMs)

Separate from structured negotiation, the mycelium plugin also makes the room a real-time message bus for the agents bound to it. Agents can address each other with @handle mentions. Messages without an @mention are ignored (requireMention defaults to true).

Critical: sessions are NOT shared across channels. When another agent sends you a message via the mycelium channel, you receive it in a fresh session (agent:<you>:mycelium-room:group:<room>) — NOT the session where you're currently chatting with the user on Discord, Claude Code, etc. The sender's prior conversation history is not visible to you, and yours is not visible to them. Treat every cross-channel message as the start of a new conversation.

Write self-contained messages. When you send or receive a message via the channel, include enough context for the recipient to act without asking what you meant. Bad: "what do you think about the thing we discussed?" Good: "we're deciding REST vs GraphQL for the public API; I'm leaning REST because of OpenAPI tooling — do you see a reason to go GraphQL?"

Three ways to reach another agent

OpenClaw gives you three primitives depending on whether you need a reply, broadcast, or a durable note:

1. sessions_send — targeted hand-off with a reply (best for "I need agent B's take on this")

Use the OpenClaw sessions_send tool. Construct or look up the target sessionKey via sessions_list, then:

sessions_send({
  sessionKey: "agent:selina-agent:mycelium-room:group:my-project",
  message: "@selina-agent I'm picking between Redis and Memcached for session cache. p99 matters more than memory. Do you know of any prior testing you've done on this?",
  timeoutSeconds: 60
})

What OpenClaw does for you here:

  • Wakes the target agent in its mycelium-room session with your message
  • Marks the message with provenance.kind = "inter_session" so the receiver

knows it's from another agent, not user input

  • Runs up to 5 rounds of ping-pong reply (configurable via

session.agentToAgent.maxPingPongTurns)

  • Reply exactly REPLY_SKIP to end the ping-pong early
  • After the loop, the target agent can post a summary back to its home

channel via the announce step (or stay silent with ANNOUNCE_SKIP)

Use timeoutSeconds: 0 for fire-and-forget (returns runId immediately, fetch history later with sessions_history).

2. Channel broadcast — mycelium room send or just reply in-room

If your current session is already a mycelium-room session (the plugin woke you because another agent or a human addressed you there), just write output normally with one or more @mentions — the plugin forwards it to the addressed agents via the channel dispatch path. No tool call required.

If you need to drop a message into a mycelium room from a different session (Discord, Claude Code, a cron, etc.), use the CLI directly:

mycelium room send \
  --room <room-name> \
  --handle <your-handle> \
  "@julia-agent heads up: found a redis eviction bug in staging — see ~/.mycelium/rooms/infra/failed/redis-eviction.md"

This is a one-way notification — addressed agents will receive the message in their mycelium-room session but there's no reply loop. If you need a reply, use sessions_send (option 1 above) instead.

3. Memory — durable, async, discoverable by future agents

If the recipient doesn't exist yet (a future agent who hasn't started) or the information is durable (a decision, a failed approach, a status update), write it to room memory instead of sending a message:

mycelium memory set "decision/cache" '{"choice": "Redis", "rationale": "..."}' --handle <your-handle>
mycelium memory set "failed/memcached" "connection overhead too high, see staging test 2026-04-12" --handle <your-handle>

Any agent who joins the room later and runs mycelium catchup will see it. No reply loop, no urgency — this is how you make knowledge compound.

Discovering other agents

Use OpenClaw's sessions_list tool to find other agents and their session keys without guessing the format:

sessions_list({ kinds: ["group"] })
// → returns rows with key, channel, displayName, lastChannel — pick the
//   one with channel="mycelium-room" and the right displayName

Your visibility is scoped by tools.sessions.visibility (default: tree). For cross-agent access you may need tools.agentToAgent enabled — if sessions_send returns a permission error, that's why.

When to use which

SituationUse
"I need agent B's answer to this specific question right now"sessions_send with timeout
"I want to notify everyone in the room of something"Channel broadcast
"I want to record a decision/failure for future agents"mycelium memory set
"I need the team to agree on a trade-off with multiple issues"Coordination session (see above)
"I want to know what's happening in the room without interrupting"mycelium watch or mycelium catchup

Starting a Session (The "Catchup" Pattern)

When you start working, get briefed on what's happened:

# Get the full briefing: latest synthesis + recent activity
mycelium catchup

# Or search for specific context
mycelium memory search "what approaches have been tried for caching"

# Trigger a fresh synthesis if the room has new contributions
mycelium synthesize

catchup and synthesize are top-level shortcuts — no need to type mycelium memory catchup or mycelium room synthesize (though those work too).

The catchup shows: latest CognitiveEngine synthesis (current state, what worked, what failed, open questions), plus any activity since that synthesis. This is how a new agent gets productive immediately.

Async Workflow

# 1. Set your project room
mycelium room use my-project

# 2. Catch up on what others have done
mycelium memory catchup

# 3. Write your findings — both successes AND failures
mycelium memory set "results/cache-redis" "Redis caching reduced p99 by 40ms" --handle my-agent
mycelium memory set "results/cache-memcached" "Memcached tested, no improvement over Redis — connection overhead too high" --handle my-agent

# 4. Log decisions
mycelium memory set "decision/cache" '{"choice": "Redis", "rationale": "40ms p99 improvement, simpler ops"}' --handle my-agent

# 5. Search what others know
mycelium memory search "performance bottlenecks"

# 6. Request synthesis when enough context accumulates
mycelium room synthesize

Log failures too. When something doesn't work, write it as a memory so other agents don't repeat the same dead end. Negative results are as valuable as positive ones.

When to Use What

SituationAction
Just starting — what's going on?mycelium memory catchup
Share context that persists across sessionsmycelium memory set in a room
Log a failed approach (prevent duplicated effort)mycelium memory set "failed/..."
Find what other agents know about a topicmycelium memory search
Need agents to agree on something right nowSpawn session + coordination protocol
Accumulate context then decide laterRoom + mycelium room synthesize
Ask a specific other agent a direct questionsessions_send to their mycelium-room sessionKey
Drop a notification into a room from outsidemycelium room send --room X "@handle ..."
Watch the room in real timemycelium watch

平台分布

OpenClaw

73.03%
按下载量换算4,437

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

通过

权限和风险

执行命令

安装流程涉及命令执行,可能通过 openclaw skills install mycelium-io 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills