162 lines
3.6 KiB
Markdown
162 lines
3.6 KiB
Markdown
---
|
|
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. **错误处理**: 发送失败时会抛出异常,需要调用方处理
|