{ "name": "trader_diagnosis", "kind": "diagnosis", "domain": "trader", "description": "当用户反馈交易员无法启动、启动后不交易、反复报错、绑定模型或交易所缺失、运行状态异常、收益或仓位表现异常时调用。适用于交易员运行过程中的排障与原因定位。不用于创建、修改、删除、启动、停止或查询交易员这类管理操作。", "capabilities": [ "读取交易员当前状态、账户、持仓和最近决策记录", "在用户明确指定目标交易员后,读取该交易员最近的后端日志", "把错误日志、运行状态和绑定信息合并成适合新手理解的诊断结论" ], "dynamic_rules": [ "当用户问“为什么报错”“为什么不交易”“为什么停了”这类问题时,优先走诊断而不是管理类 skill。", "如果已经能唯一确定目标交易员,应优先结合 get_backend_logs、持仓、状态和决策记录一起分析,而不是只看配置。", "交易员不下单的排查顺序固定为:是否运行中 -> 是否已到扫描间隔 -> 策略候选币/行情数据是否为空 -> 最近 AI 决策是否为 hold/wait -> 风控是否拦截 -> 交易所下单是否报错 -> 余额、杠杆、仓位模式或权限是否限制。", "如果模型是 claw402 或 blockrun-base,应单独检查钱包 USDC 余额;余额不足时应说“支付余额不足/需要充值”,不要泛化成“模型没启用”。", "如果日志显示 AI 返回 hold/wait,应解释为模型判断当前没有足够交易信号,不应误判为系统没有运行。", "如果日志显示下单失败,应优先归因到交易所权限、API 凭证、仓位模式、余额、杠杆或 symbol 可交易性,而不是策略没有生效。", "当用户表达“启动不了”“启动失败”“无法启动”“一启动就报错”“为什么启动不起来”这类启动故障时,只要目标交易员能唯一确定,就优先自动读取 get_backend_logs。", "当日志中已经出现明确错误原因时,直接用人话解释原因和下一步,不要只复述原始日志。" ], "tool_mapping": { "query_runtime_state": "get_trader_system_status", "query_positions": "get_positions", "query_account": "get_account_info", "query_recent_decisions": "get_decisions", "query_backend_logs": "get_backend_logs" } }