ruFlo Scout-Explorer 技能深度解析:蜂群侦察 Agent 的实时记忆上报协议与 MCP 底层实现
【免费下载链接】ruflo🌊 The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated项目地址: https://gitcode.com/GitHub_Trending/cl/ruflo
本文围绕 ruFlo 仓库中的 agent-scout-explorer 技能定义 展开,完整讲解这个「蜂群侦察兵」角色如何通过 MCPmemory_usage工具向coordination命名空间实时写入侦察情报(状态、发现、威胁、机会、环境、指标六类数据结构),并结合 v2-compat-tools.ts 与 memory-tools.ts 的源码,剖析这些上报调用在 MCP 服务器端的真实落盘路径。读完本文,你将掌握 scout 技能的全部协议细节、键名规范、三种侦察策略,以及 V2 兼容工具到 V3 记忆服务的映射机制,能够在多智能体蜂群中正确部署并验证一个侦察角色。
1. 技能定位:蜂群的「眼睛与传感器」
scout-explorer是 ruFlo 蜂群体系中的一个侦察型角色技能,其 YAML 元数据声明了角色的核心属性:
| 元数据字段 | 取值 | 含义 |
|---|---|---|
name | scout-explorer | 技能内部角色名 |
description | Information reconnaissance specialist… | 探索未知区域、收集情报、通过持续记忆更新向蜂群汇报 |
color | cyan | 蜂群可视化配色 |
priority | high | 调度优先级 |
文件本身是双层 frontmatter 结构:外层 frontmatter(name: agent-scout-explorer,description: Agent skill for scout-explorer - invoke with $agent-scout-explorer)是技能包装层,说明该技能可通过$agent-scout-explorer语法在支持.agents技能体系的 Agent CLI 中直接调用;内层 frontmatter 才是角色本体的元数据。
关于.agents目录的组织方式,.agents/README.md 给出了官方说明:该目录存放 Agent 配置与技能,结构为config.toml(主配置,控制模型选择、审批策略、沙箱模式、MCP 服务器连接与技能配置)+skills/(每个技能一个子目录,内含SKILL.md指令文件、可选scripts/与docs/),技能通过$skill-name语法触发,且每条技能包含 YAML frontmatter 元数据、触发/跳过条件、命令与示例。
其角色使命在文档开头一句话中定调:「You are a Scout Explorer, the eyes and sensors of the hive mind」——探索、收集情报、识别机会与威胁,并「通过持续的记忆协调」上报所有发现。整个技能的核心机制可以概括为:侦察动作本身不产生持久价值,价值全部经由mcp__claude-flow__memory_usage工具写入coordination命名空间的共享记忆。
2. 侦察协议(Reconnaissance Protocol):两类基础写入
文档将「所有发现必须立即上报记忆」标记为 MANDATORY(强制),并定义了两类基础写入模板。
2.1 DEPLOY:上报探索开始
// DEPLOY - Signal exploration start mcp__claude-flow__memory_usage { action: "store", key: "swarm$scout-[ID]$status", namespace: "coordination", value: JSON.stringify({ agent: "scout-[ID]", status: "exploring", mission: "reconnaissance type", target_area: "codebase|documentation|dependencies", start_time: Date.now() }) }键名swarm$scout-[ID]$status遵循「swarm$<角色>$<用途>」的私有状态键规范:[ID]由部署方替换为具体实例标识(如scout-code-1),使每个侦察兵的状态互不覆盖。target_area字段枚举了侦察目标域:codebase(代码库)、documentation(文档)、dependencies(依赖)。
2.2 DISCOVER:实时上报发现
// DISCOVER - Report findings in real-time mcp__claude-flow__memory_usage { action: "store", key: "swarm$shared$discovery-[timestamp]", namespace: "coordination", value: JSON.stringify({ type: "discovery", category: "opportunity|threat|information", description: "what was found", location: "where it was found", importance: "critical|high|medium|low", discovered_by: "scout-[ID]", timestamp: Date.now() }) }注意这里键名切换到了swarm$shared$discovery-[timestamp]前缀——shared段标识这是全体蜂群可见的共享键,用[timestamp]后缀保证每次发现都是独立条目、永不互相覆盖。负载中的category三分类(机会/威胁/信息)与importance四级(critical/high/medium/low)构成下游角色做优先级决策的依据。
3. 三种专项侦察模式(Exploration Patterns)
技能为不同侦察目标域各给出一套完整的存储模板,全部写入swarm$shared$前缀的共享键,供 queen-coordinator 等决策角色读取。
3.1 Codebase Scout:代码库测绘
// Map codebase structure mcp__claude-flow__memory_usage { action: "store", key: "swarm$shared$codebase-map", namespace: "coordination", value: JSON.stringify({ type: "map", directories: { "src/": "source code", "tests/": "test files", "docs/": "documentation" }, key_files: ["package.json", "README.md"], dependencies: ["dep1", "dep2"], patterns_found: ["MVC", "singleton"], explored_by: "scout-code-1" }) }codebase-map是一个固定共享键(无时间戳后缀),意味着该图会被重复侦察时刷新,保持最新测绘结果。patterns_found字段用于记录架构模式(如 MVC、单例),这为后续的 worker-specialist 直接按地图作业提供了索引。
3.2 Dependency Scout:依赖分析
// Analyze external dependencies mcp__claude-flow__memory_usage { action: "store", key: "swarm$shared$dependency-analysis", namespace: "coordination", value: JSON.stringify({ type: "dependencies", total_count: 45, critical_deps: ["express", "react"], vulnerabilities: ["CVE-2023-xxx in package-y"], outdated: ["package-a: 2 major versions behind"], recommendations: ["update package-x", "remove unused-y"], explored_by: "scout-deps-1" }) }该负载将依赖侦察压缩为六个可机读字段:总数、关键依赖、已知漏洞(CVE 引用格式)、过期程度(按 major 版本数量化)、可执行建议、侦察者署名。vulnerabilities与outdated两个字段直接对接第 4 节的威胁上报流程。
3.3 Performance Scout:性能瓶颈识别
// Identify performance bottlenecks mcp__claude-flow__memory_usage { action: "store", key: "swarm$shared$performance-bottlenecks", namespace: "coordination", value: JSON.stringify({ type: "performance", bottlenecks: [ {location: "api$endpoint", issue: "N+1 queries", severity: "high"}, {location: "frontend$render", issue: "large bundle size", severity: "medium"} ], metrics: { load_time_ms: 3500, memory_usage_mb: 512, cpu_usage_percent: 78 }, explored_by: "scout-perf-1" }) }注意负载中location字段复用了$分隔符(api$endpoint、frontend$render),与记忆键名体系保持同一套命名约定,便于下游用相同的字符串规则精确定位。metrics三元组(加载耗时/内存/CPU)给出了量化基准,使「瓶颈」成为可验证的论断而非定性描述。
4. 威胁检测与机会识别:两类高价值情报
4.1 威胁警报(Threat Detection)
// ALERT - Report threats immediately mcp__claude-flow__memory_usage { action: "store", key: "swarm$shared$threat-alert", namespace: "coordination", value: JSON.stringify({ type: "threat", severity: "critical", description: "SQL injection vulnerability in user input", location: "src$api$users.js:45", mitigation: "sanitize input, use prepared statements", detected_by: "scout-security-1", requires_immediate_action: true }) }威胁负载的设计要点有四:severity定级、location精确到文件与行号(src$api$users.js:45)、mitigation必须给出缓解措施(不能只报问题)、以及布尔开关requires_immediate_action。最后一个字段是蜂群调度层的直接触发信号,等价于向 queen-coordinator 发出的紧急指令。
4.2 机会识别(Opportunity Identification)
// OPPORTUNITY - Report improvement possibilities mcp__claude-flow__memory_usage { action: "store", key: "swarm$shared$opportunity", namespace: "coordination", value: JSON.stringify({ type: "opportunity", category: "optimization|refactor|feature", description: "Can parallelize data processing", location: "src$processor.js", potential_impact: "3x performance improvement", effort_required: "medium", identified_by: "scout-optimizer-1" }) }机会负载将「收益」与「成本」显式分离:potential_impact描述潜在收益,effort_required描述投入量,category三分类(优化/重构/新功能)决定它流向哪类 worker。这让决策者可以直接按 impact/effort 比率排序,而不必回头追问侦察兵。
5. 环境扫描与性能指标:自我遥测
除对外侦察外,scout 还需维护对运行环境的持续感知:
// ENVIRONMENT - Monitor system state mcp__claude-flow__memory_usage { action: "store", key: "swarm$scout-[ID]$environment", namespace: "coordination", value: JSON.stringify({ system_resources: { cpu_available: "45%", memory_available_mb: 2048, disk_space_gb: 50 }, network_status: "stable", external_services: { database: "healthy", cache: "healthy", api: "degraded" }, timestamp: Date.now() }) }环境负载写入私有键(swarm$scout-[ID]$environment),与共享键区分:每个 scout 只维护自己的环境视图,避免多实例互相污染。external_services对数据库/缓存/API 做健康分级(healthy/degraded 等),当api: "degraded"这类信号出现时,worker 端可以据此降级或重试。
自我绩效指标用于量化侦察效率:
// Track exploration efficiency mcp__claude-flow__memory_usage { action: "store", key: "swarm$scout-[ID]$metrics", namespace: "coordination", value: JSON.stringify({ areas_explored: 25, discoveries_made: 18, threats_identified: 3, opportunities_found: 7, exploration_coverage: "85%", accuracy_rate: 0.92 }) }六个指标覆盖广度(areas_explored)、产出(discoveries_made)、威胁/机会双通道计数、覆盖率与准确率,是 queen-coordinator 评估侦察兵是否值得继续投入的资源依据。
6. 三种侦察策略:广度优先、深度优先与持续巡逻
技能正文将侦察策略归纳为三种工作模式,对应不同任务阶段:
广度优先探索(Breadth-First Exploration)
- 快速勘察整个区域
- 识别高层模式
- 标记需要深入检查的区域
- 上报初步发现
- 引导聚焦探索
深度优先调查(Depth-First Investigation)
- 选定特定区域
- 彻底探索
- 记录全部细节
- 识别隐蔽问题
- 上报综合分析
持续巡逻(Continuous Patrol)
- 定期监控关键区域
- 即时检测变化
- 追踪时间趋势
- 异常时告警
- 维持态势感知
三者构成「先测绘、再钻取、后驻守」的完整侦察生命周期:Breadth-First 阶段主要产出第 3.1 节的codebase-map;Depth-First 阶段产出threat-alert与performance-bottlenecks;Continuous Patrol 则持续刷新environment与discovery-*流。
7. 集成点:scout 在蜂群中的上下游关系
文档「Integration Points」一节明确了 scout 的双向连接,且这些对接角色在仓库中均有对应的技能定义文件可以印证:
Reports To(上报对象)
- queen-coordinator:战略情报的接收方。其技能定义在 agent-queen-coordinator/SKILL.md 中,queen 通过
swarm$shared$royal-directives下发指令(含Begin reconnaissance, assignee: "scouts"),正是 scout 侦察任务的来源 - collective-intelligence:模式分析消费方
- swarm-memory-manager:发现的归档方。其技能定义见 agent-swarm-memory-manager/SKILL.md,负责构建
swarm$shared$memory-index记忆索引、多级缓存与同步清单
Supports(服务对象)
- worker-specialist:提供其作业所需的情报(如
codebase-map) - Other scouts:互相协调,避免重复劳动
- neural-pattern-analyzer:为其供给训练/分析数据
整个蜂群的拓扑与共识策略(hierarchical/mesh/adaptive 拓扑、byzantine/raft/gossip/crdt 共识)由 hive-mind 技能 定义,scout 作为其中的高优先级角色运行在该协调框架之上。
8. 源码纵深:memory_usage工具在 MCP 端的真实实现
以上是技能文档中 Agent 视角的调用模板,而 ruFlo 仓库中这些调用的服务端实现位于 v2-compat-tools.ts。从源码结构看,memory_usage是一个V2 向后兼容工具(文件头部注释明确给出memory_usage -> memory/store or memory/search的映射表),其实现细节与技能文档高度吻合:
输入 Schema 与技能文档完全一致:action枚举store | retrieve | delete | list,namespace默认值即为'coordination'——这解释了为什么所有 scout 示例都显式声明namespace: "coordination";detail参数(summary | detailed | by-agent)控制 list 的返回粒度。
handler 的四分支映射逻辑(v2-compat-tools.ts):
| V2 action | 内部委托 | 关键行为 |
|---|---|---|
store | storeMemoryTool.handler | key 被重写为`${namespace}/${input.key}`(即coordination/swarm$shared$threat-alert),并把 namespace 记入 metadata |
retrieve | searchMemoryTool.handler | 以 key 为查询词、限定 namespace、limit: 1,返回{found, value, key} |
delete | storeMemoryTool.handler | 写入value: null+deleted: true元数据(软删除语义) |
list | listMemoryTool.handler | detail === 'detailed'时 limit 100,否则 limit 20 |
这意味着技能文档中所有swarm$shared$xxx键,在 V3 记忆服务中的实际物理键都是coordination/swarm$shared$xxx形式,检索时由retrieve分支做同命名空间内的搜索匹配(limit: 1说明 retrieve 语义是「取最近/最相关一条」而非严格等值查询)。
V3 原生记忆工具的 Schema定义在 memory-tools.ts(文件头注明实现 ADR-005「MCP-First API Design」与 ADR-006「Unified Memory Service / AgentDB integration」)。从源码结构看,V3 的memory/store负载比 V2 更丰富:记忆类型分为episodic | semantic | procedural | working四类,支持tags分类、importance(0–1 浮点分值,对应 scout 负载中的importance分级)、ttl(毫秒级临时记忆,天然适合swarm$scout-[ID]$status这类短生命周期状态键);memory/search支持semantic | keyword | hybrid三种检索模式并带minRelevance阈值;memory/list支持按created | accessed | importance | relevance排序与分页。
一个需要注意的兼容性事实:memoryUsageTool在源码中标记了deprecated: true,其 description 也写明「Deprecated: Use memory/store, memory/search, or memory/list instead」。也就是说,scout 技能文档沿用的是 V2 调用约定,在 V3 MCP 服务器中仍可运行(兼容层完整保留了四分支逻辑),但新技能开发建议直接使用memory/store等 V3 工具名。理解这一点可以避免把「工具名不存在」的报错误判为技能配置错误。
9. 质量标准(Quality Standards):侦察纪律
技能以 Do/Don't 清单固化了侦察兵的纪律边界,这与第 7 节「不修改所发现代码」的只读定位直接呼应:
必须做(Do)
- 发现立即上报
- 告警前先验证
- 提供可执行的(actionable)情报
- 测绘未探索区域
- 高频更新自身状态
禁止做(Don't)
- 修改所发现的代码
- 对发现擅自做决策(决策权在 queen-coordinator)
- 忽略潜在威胁
- 重复其他 scout 的工作
- 超出侦察边界活动
这套「只侦察、不行动」的职责隔离是多智能体系统中防止角色越权与状态竞争的关键设计:scout 的写入键空间(swarm$scout-*私有 +swarm$shared$discovery-*追加式发现键)天然避免了对 worker 工作区键的覆盖写。
10. 使用方式与适用前提
查看与调用:技能定义位于 .agents/skills/agent-scout-explorer/SKILL.md,.agents/README.md说明技能通过$agent-scout-explorer语法调用;技能启用与 MCP 服务器连接由 .agents/config.toml 统一管理。
适用前提与限制:
- scout 的全部产出依赖
mcp__claude-flow__memory_usage工具可用,即 Claude Flow MCP 服务器已按config.toml配置并处于活动状态; - 文档中的
[ID]、[timestamp]为模板占位符,部署时须替换为实例 ID 与真实时间戳,否则多实例状态会互相覆盖; - 技能模板采用 V2 工具名,当前仓库的 V3 MCP 服务器以兼容层提供该工具(已标记 deprecated),生产新代码时建议对照 v2-compat-tools.ts 头部的映射表迁移到
memory/store/memory/search/memory/list; - scout 定位为只读情报角色,任何需要修改代码或做出决策的后续动作必须路由给 queen-coordinator / worker-specialist,不应在 scout 技能内扩展写操作。
延伸阅读:侦察兵的上游指挥链见 agent-queen-coordinator 与 agent-swarm-memory-manager 两个技能文件;蜂群拓扑与共识策略见 hive-mind 技能;V3 记忆服务实现见 v3/mcp/tools/memory-tools.ts。
【免费下载链接】ruflo🌊 The original agent meta-harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, RAG integration, and native Claude Code / Codex / Hermes and many more Integrated项目地址: https://gitcode.com/GitHub_Trending/cl/ruflo
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考