基于SQLite嘅轻量级消息队列系统,用于Agent间可靠通讯。
# 通过SkillHub安装
skillhub install agent-cluster-comm-v2
# 或者手动安装
cp -r agent-cluster-comm-v2 ~/.hermes/skills/
复制配置模板:
cp ~/.hermes/skills/agent-cluster-comm-v2/config.yaml.example ~/.hermes/skills/agent-cluster-comm-v2/config.yaml
编辑配置文件:
# 消息队列配置
queue:
db_path: "agent_messages.db"
poll_interval: 2
max_retries: 3
batch_size: 5
# Agent配置
agents:
- name: "agent1"
enabled: true
- name: "agent2"
enabled: true
from sqlite_message_queue import SQLiteMessageQueue
queue = SQLiteMessageQueue("agent_messages.db")
queue.send("agent1", "agent2", "你好!")
queue.close()
from sqlite_message_queue import SQLiteMessageQueue
queue = SQLiteMessageQueue("agent_messages.db")
messages = queue.poll("agent2", limit=10)
for msg in messages:
print(f"来自 {msg.from_agent}: {msg.content}")
queue.ack(msg.id, success=True)
queue.close()
python start.py agent1
queue = SQLiteMessageQueue(db_path: str)
msg_id = queue.send(
from_agent: str,
to_agent: str,
content: str,
msg_type: str = "text"
) -> str
messages = queue.poll(
agent_name: str,
limit: int = 10
) -> List[Message]
queue.ack(
message_id: str,
success: bool = True,
error_message: str = None
)
stats = queue.get_stats()
count = queue.reset_stuck_messages(timeout_seconds: int = 300)
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| ------ | ------ | -------- | ------ |
| db_path | str | agent_messages.db | 数据库文件路径 |
| poll_interval | int | 2 | 轮询间隔(秒) |
| max_retries | int | 3 | 最大重试次数 |
| batch_size | int | 5 | 批量处理大小 |
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| ------ | ------ | -------- | ------ |
| name | str | - | Agent名称 |
| enabled | bool | true | 是否启用 |
查看 examples/ 目录获取更多示例:
basic_usage.py — 基本使用示例stats = queue.get_stats()
if stats['pending_count'] > 100:
print("消息积压!")
queue.reset_stuck_messages(timeout_seconds=300)
stats = queue.get_stats()
if stats['failed_count'] > 0:
print(f"有 {stats['failed_count']} 条失败消息")
stats = queue.get_stats()
if stats['dead_count'] > 0:
print(f"有 {stats['dead_count']} 条死信消息")
共 1 个版本