name: eywa description: 多智能体协调、空间记忆与群体导航:连接到 Eywa 服务器,使各智能体能够共享信息、分配任务、避免冲突,并共同朝目标方向前进。 user-invocable: true metadata: { "openclaw": { "emoji": "🌳", "requires": { "anyBins": ["curl", "wget"] }, "homepage": "https://www.eywa-ai.dev", "install": [ { "kind": "node", "package": "eywa-ai", "bins": ["eywa"], "label": "Install Eywa CLI" } ] }
}
Eywa:多智能体协调层
您现在已连接到Eywa,这是一个用于管理智能体群组的协调层。Eywa为您提供共享的空间信息、任务管理、冲突检测以及跨多个智能体的目标导航功能。
设置
您的Eywa连接是通过环境变量配置的:
EYWA_ROOM— 房间标识(例如demo、my-project)EYWA_AGENT— 智能体身份前缀(例如openclaw)。服务器会自动添加一个唯一的后缀(例如/jade-dusk)。EYWA_URL— MCP(Master Control Point)的端点(默认:https://eywa-mcp.armandsumo.workers.dev)
位于 {baseDir}/eywa-call.sh 的辅助脚本负责处理所有的MCP通信。
如何使用Eywa工具
使用 exec 工具来运行辅助脚本:
bash {baseDir}/eywa-call.sh <tool_name> '<json_arguments>'
示例:
# Start a session (always do this first)
bash {baseDir}/eywa-call.sh eywa_start '{"task_description":"Implementing user auth"}'
# Log an operation with semantic tags
bash {baseDir}/eywa-call.sh eywa_log '{"role":"assistant","content":"Added JWT middleware","system":"api","action":"create","scope":"auth service","outcome":"success"}'
# Check what other agents are doing
bash {baseDir}/eywa-call.sh eywa_status '{}'
# View the task queue
bash {baseDir}/eywa-call.sh eywa_tasks '{}'
# Claim a task
bash {baseDir}/eywa-call.sh eywa_pick_task '{"task_id":"<uuid>"}'
# Update task progress
bash {baseDir}/eywa-call.sh eywa_update_task '{"task_id":"<uuid>","status":"in_progress","notes":"Working on it"}'
# Store knowledge that persists across sessions
bash {baseDir}/eywa-call.sh eywa_learn '{"content":"Auth uses JWT with RS256, tokens expire in 1h","tags":["auth","api"],"title":"JWT auth pattern"}'
# Set the team destination
bash {baseDir}/eywa-call.sh eywa_destination '{"action":"set","destination":"Ship v1.0 with auth, billing, and dashboard","milestones":["Auth system","Billing integration","Dashboard MVP"]}'
# Mark session complete
bash {baseDir}/eywa-call.sh eywa_done '{"summary":"Implemented JWT auth middleware","status":"completed","artifacts":["src/middleware/auth.ts"],"tags":["auth","feature"]}'
可用的工具
会话生命周期
eywa_start — 启动一个会话。返回包含活跃智能体、近期活动、任务、目标及相关信息的会话快照。请始终首先调用此函数。
task_description(必填):您正在处理的任务内容continue_from(可选):用于从先前会话中加载上下文的智能体名称
eywa_done — 标记会话完成,并提供结构化的总结信息。
summary、status(已完成/阻塞/失败/部分完成)、artifacts[]、tags[]、next_steps
eywa_stop — 快速结束会话并生成总结。
内存与日志记录
eywa_log — 以语义标签记录操作内容。其他智能体和人类用户可以查看您的操作。
role、content、system(git/api/deploy/filesystem等)、action(读取/写入/创建/部署/测试等)、scope、outcome(成功/失败/阻塞)
eywa_learn — 存储持久性知识(会话结束后仍然保留)。
content、tags[]、title
eywa_knowledge — 检索知识库。
tag、search、limit
eywa_search — 根据内容搜索所有消息。
任务管理
- eywa_tasks — 按优先级排序的任务列表。可以按状态、负责人或里程碑进行筛选。
- eywa_task — 创建新任务。
- eywa_pick_task — 选择一个未完成的任务(将任务状态设置为“已领取”,并触发冲突检测)。
- eywa_update_task — 更新任务状态、添加备注或重新分配任务。
- eywa_subtask — 将任务拆分为子任务。
协作
- eywa_status — 查看所有智能体的工作内容、所使用的系统及其“曲率”评分(表示工作进度)。
- eywa_claim — 声明您的任务范围和使用的文件。这将触发冲突检测。
- eywa_context — 从所有智能体那里获取共享的上下文信息。
- eywa_msg — 向特定智能体或所有智能体发送消息。
导航
- eywa_destination — 设置、更新或查看团队的目标位置,并跟踪进度。
工作流程
- 开始:使用您正在处理的任务内容调用
eywa_start,然后读取会话快照。 - 领取任务:如果需要领取任务,请调用
eywa_pick_task;否则,请使用您的任务范围调用eywa_claim。 - 执行任务:完成您的任务,并使用
eywa_log记录重要的操作(使用相应的标签进行标记)。 - 学习新知识:将有价值的信息存储到
eywa_learn中。 - 完成任务:调用
eywa_done,并提供总结信息、任务状态、相关成果及下一步行动。
何时需要记录操作
| 事件 | 所使用的系统 | 操作 | 结果 |
|---|---|---|---|
| 读取文件 | 文件系统 | 读取 | 成功 |
| 编写/编辑文件 | 文件系统 | 写入 | 成功 |
| 创建新文件 | 文件系统 | 创建 | 成功 |
| 运行测试 | 测试工具 | 测试 | 成功/失败 |
| 提交Git代码 | Git | 写入 | 成功 |
| 推送Git代码 | Git | 部署 | 成功/失败 |
| 部署到测试/生产环境 | 部署工具 | 部署 | 成功/失败 |
| 调用API | API | 读取/写入 | 成功/失败 |
| 数据库迁移 | 数据库工具 | 写入 | 成功/失败 |
| 遇到障碍 | 相关操作 | 阻塞 |
请记录足够的操作信息,以便其他智能体能够理解您的工作内容并继续进行。
关键原则
- 协调工作,避免重复:在开始工作之前,请检查
eywa_status和eywa_tasks。如果已有其他智能体正在处理该任务,请选择其他任务。 - 记录操作:所有重要的操作都应被标记。未被关注的智能体的“曲率”评分为0。
- 存储知识:如果您发现了有用的信息(例如工作模式、问题或最佳实践),请使用
eywa_learn进行记录。这些信息将对未来的会话有所帮助。 - 朝着目标前进:查看
eywa_destination以明确工作方向,确保您的操作始终朝着目标方向进行。