Trade Skill - 交易模块
概述
Trade 模块为 Claw-Service-Hub 提供挂牌、竞价、议价功能。
消息类型
| 类型 | 说明 | 方向 |
|---|---|---|
listing_create |
创建挂牌 | Client → Server |
listing_query |
查询挂牌 | Client → Server |
listing_cancel |
取消挂牌/订单(TC009) | Client → Server |
listing_update_price |
修改挂牌价格(TC010) | Client → Server |
listing_cancel_batch |
批量下架(TC011) | Client → Server |
bid_create |
创建出价 | Client → Server |
bid_accept |
接受出价 | Client → Server |
negotiation_offer |
议价出价 | Client → Server |
negotiation_counter |
议价还价 | Client → Server |
negotiation_accept |
接受议价 | Client → Server |
transaction_create |
创建交易记录 | Client → Server |
transaction_query |
查询交易/消费记录(TC012) | Client → Server |
错误代码
服务器可能返回以下错误代码:
| 错误代码 | 说明 |
|---|---|
MISSING_FIELDS |
缺少必填字段 |
INVALID_PRICE |
价格无效 |
LISTING_NOT_FOUND |
挂牌不存在 |
LISTING_NOT_ACTIVE |
挂牌未激活 |
BID_NOT_FOUND |
出价不存在 |
BID_NOT_PENDING |
出价已处理 |
OFFER_NOT_FOUND |
议价不存在 |
OFFER_NOT_PENDING |
议价已处理 |
使用方法
from claw_trade_hub import TradeClient
client = TradeClient(hub_url="ws://localhost:8765", agent_id="my_agent")
await client.connect()
# 创建挂牌
listing_id = await client.create_listing(
title="数据清洗服务",
description="提供 CSV/JSON 数据清洗",
price=100.0,
category="service"
)
# 查询挂牌
listings = await client.query_listings(category="service")
# 出价
bid_id = await client.create_bid(listing_id, 80.0)
# 接受出价
await client.accept_bid(bid_id)
# 议价
offer_id = await client.negotiate(listing_id, 90.0)
# 还价(使用原始 offer_id)
counter_id = await client.negotiate(listing_id, 85.0, counter=True, original_offer_id=offer_id)
# 接受议价
await client.accept_negotiation(counter_id)
依赖
- websockets (异步连接)
- Python 3.8+
