--- name: star-tasksender description: 星枢任务分发器 - 解析用户指令并发送到 RabbitMQ 队列 metadata: version: 1.0.0 author: 云策 created: 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. 意图解析 ```python 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. 构建消息 ```python 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 ```python 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. 完整流程 ```python 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 中修改): ```python { "host": "localhost", "port": 5672, "username": "admin", "password": "password", "exchange": "task_exchange" } ``` ## 消息格式 ### 输入: 用户指令 ``` "帮我审查 my-project 仓库" ``` ### 输出: RabbitMQ 消息 ```json { "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. **错误处理**: 发送失败时会抛出异常,需要调用方处理