3.6 KiB
3.6 KiB
name, description, metadata
| name | description | metadata | ||||||
|---|---|---|---|---|---|---|---|---|
| star-tasksender | 星枢任务分发器 - 解析用户指令并发送到 RabbitMQ 队列 |
|
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
}
}
注意事项
- 首次使用: 需要在
rabbitmq_sender.py中配置 RabbitMQ 连接信息 - 权限: 确保 RabbitMQ 用户有写权限到 task_exchange
- 错误处理: 发送失败时会抛出异常,需要调用方处理