Files
nexus/#recycle/openclaw/yunce/star-tasksender/SKILL.md
2026-03-23 20:57:45 +08:00

3.6 KiB

name, description, metadata
name description metadata
star-tasksender 星枢任务分发器 - 解析用户指令并发送到 RabbitMQ 队列
version author created
1.0.0 云策 2026-03-17

Star Task Sender - 星枢任务分发器

将星枢收到的用户指令解析为标准消息格式,并发送到 RabbitMQ 队列。

功能

  • 意图解析: 将自然语言指令转换为结构化任务
  • 消息构建: 生成标准 JSON 消息格式
  • 队列发送: 通过 RabbitMQ 分发给子 Agent

文件结构

star-tasksender/
├── SKILL.md
└── scripts/
    ├── intent_parser.py    # 意图解析模块
    ├── message_builder.py  # 消息构建模块
    ├── rabbitmq_sender.py # RabbitMQ 发送模块
    └── __init__.py

使用方法

1. 意图解析

from scripts.intent_parser import IntentParser

parser = IntentParser()

# 解析用户指令
intent = parser.parse_intent("帮我审查 my-project 仓库")
# 结果: {
#   "action": "code_review",
#   "target": "yunce",
#   "params": {"repo": "my-project", "branch": "main"}
# }

2. 构建消息

from scripts.message_builder import MessageBuilder
from scripts.intent_parser import IntentParser

parser = IntentParser()
intent = parser.parse_intent("帮我审查 my-project")

builder = MessageBuilder()
message = builder.build_task_message(intent)
# 结果: 标准任务消息 JSON

3. 发送到 RabbitMQ

from scripts.rabbitmq_sender import RabbitMQSender
from scripts.message_builder import MessageBuilder

# 构建消息
builder = MessageBuilder()
message = builder.build_task_message(intent)

# 发送
sender = RabbitMQSender(host='192.168.1.100', username='admin', password='password')
task_id = sender.send_task(message)
sender.close()

4. 完整流程

from scripts.intent_parser import IntentParser
from scripts.message_builder import MessageBuilder
from scripts.rabbitmq_sender import RabbitMQSender

def process_user_command(user_input):
    # 1. 解析
    parser = IntentParser()
    intent = parser.parse_intent(user_input)
    
    # 2. 构建
    builder = MessageBuilder()
    message = builder.build_task_message(intent)
    
    # 3. 发送
    sender = RabbitMQSender()
    task_id = sender.send_task(message)
    sender.close()
    
    return f"✅ 任务已下发: {task_id}"

支持的指令模式

用户指令 action target params
审查 xxx 仓库 code_review yunce {repo: "xxx", branch: "main"}
部署 xxx 到生产 deploy prometheus {service: "xxx", env: "prod"}
检查 xxx 状态 status_check atlas {target: "xxx"}
分析 xxx 数据 data_analysis atlas {data: "xxx"}

RabbitMQ 配置

默认配置 (可在 rabbitmq_sender.py 中修改):

{
    "host": "localhost",
    "port": 5672,
    "username": "admin",
    "password": "password",
    "exchange": "task_exchange"
}

消息格式

输入: 用户指令

"帮我审查 my-project 仓库"

输出: RabbitMQ 消息

{
  "taskId": "task_20260317_135600_a1b2c3",
  "type": "task",
  "source": "xingyao",
  "target": "yunce",
  "priority": "high",
  "content": {
    "action": "code_review",
    "params": {
      "repo": "my-project",
      "branch": "main"
    }
  },
  "metadata": {
    "createdAt": "2026-03-17T13:56:00Z",
    "retryCount": 0,
    "maxRetries": 3
  }
}

注意事项

  1. 首次使用: 需要在 rabbitmq_sender.py 中配置 RabbitMQ 连接信息
  2. 权限: 确保 RabbitMQ 用户有写权限到 task_exchange
  3. 错误处理: 发送失败时会抛出异常,需要调用方处理