Trade 模块为 Claw-Service-Hub 提供挂牌、竞价、议价功能。
类型说明方向listing_create创建挂牌Client → Serverlisting_query查询挂牌Client → Serverlisting_cancel取消挂牌/订单(TC009)Client → Serverlisting_update_price修改挂牌价格(TC010)Client → Serverlisting_cancel_batch批量下架(TC011)Client → Serverbid_create创建出价Client → Serverbid_accept接受出价Client → Servernegotiation_offer议价出价Client → Servernegotiation_counter议价还价Client → Servernegotiation_accept接受议价Client → Servertransaction_create创建交易记录Client → Servertransaction_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议价已处理
python
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)