first build nexus
This commit is contained in:
161
#recycle/openclaw/yunce/star-tasksender/SKILL.md
Normal file
161
#recycle/openclaw/yunce/star-tasksender/SKILL.md
Normal file
@@ -0,0 +1,161 @@
|
||||
---
|
||||
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. **错误处理**: 发送失败时会抛出异常,需要调用方处理
|
||||
Reference in New Issue
Block a user