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

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