自动检测并轮询系统可用模型的技能。
const autoRotator = require('./model-auto-rotator.js');
// 自动检测可用模型
const models = await autoRotator.discoverModels();
console.log('发现可用模型:', models);
// 获取下一个可用模型
const nextModel = autoRotator.next();
console.log('下一个模型:', nextModel);
// 获取当前状态
const status = autoRotator.getStatus();
console.log('轮询状态:', status);
# 轮询模式
export MODEL_ROTATION_MODE=round-robin # 或 weighted
# 优先使用免费模型
export PREFER_FREE=true
# 最大失败次数
export MAX_FAILURES=3
# 超时时间(毫秒)
export MODEL_TIMEOUT=30000
// 发现所有可用模型
await autoRotator.discoverModels()
// 获取下一个可用模型
autoRotator.next()
// 标记模型为不可用
autoRotator.markUnhealthy(model)
// 获取当前状态
autoRotator.getStatus()
// 重置轮询状态
autoRotator.reset()
// 强制重新发现模型
await autoRotator.forceDiscovery()
// 在 OpenClaw 会话中使用
async function createRotatedSession(task) {
const model = autoRotator.next();
const session = await sessions_spawn({
task: task,
model: model,
timeoutSeconds: 300
});
// 监听会话结果
session.on('completed', () => {
console.log(`会话完成,模型: ${model}`);
});
session.on('failed', (error) => {
console.log(`会话失败,标记模型不可用: ${model}`);
autoRotator.markUnhealthy(model);
});
return session;
}
共 1 个版本