2026-07-21 18:24:41 +08:00
2026-07-21 18:24:41 +08:00
2026-07-21 16:04:18 +08:00
2026-07-21 16:04:18 +08:00
2026-07-21 16:04:18 +08:00
2026-07-21 16:04:18 +08:00
2026-07-21 16:04:18 +08:00
2026-07-21 16:04:18 +08:00
2026-07-21 16:04:18 +08:00

vLLM Agent Strategy

全新版 vLLM-only 智能体策略。目标是最大化验证成功数量:优先跑悬赏模型,其次 Promote 已入库模型,再复用别人已下载模型,最后才自己下载新模型。

优先级

  1. bounty / 悬赏模型:最高优先级,默认可直接提交。
  2. promote:已经在 ModelHub 入库/验证成功的模型。
  3. downloaded_by_others:别人已经下载成功的模型。
  4. self_download:自己下载,最多 8 个 active 下载任务。

任务粒度是 model_id + gpu_type + engine,而不是整个 model。MAX_USER_TASKS 默认 2000。

配置文件

不用每次手动设置一堆环境变量。复制示例配置:

copy config.example.json config.local.json

然后编辑 config.local.json,填入 token、用户信息、目标算力等配置。

默认会按顺序读取:

config.local.json
config.json

也可以用环境变量指定配置文件:

set STRATEGY_CONFIG_FILE=D:\4paradigm\vllm_agent_strategy\config.local.json

环境变量仍然可用,并且优先级高于配置文件,适合临时覆盖:

set SUBMIT_DRY_RUN=false

重要配置:

{
  "AUTH_TOKEN": "",
  "HF_TOKEN": "",
  "CONFTEST_API_TOKEN": "",
  "EMAIL": "",
  "USER_ID": "",
  "CONTRIBUTORS": "",
  "STRATEGY_ID": "",
  "SUBMIT_DRY_RUN": true,
  "TARGET_MACHINE_NAMES": "MTT S4000,Hygon K100,Kunlunxin P800"
}

如果平台实际字段不是 strategyId,改 CONTEST_TASK_STRATEGY_FIELD 即可。

本地 dry run

python -m scripts.init_db
python -m scripts.load_seed --file seeds/bounty_models.example.csv --origin manual_bounty
python -m scripts.dry_run_plan --limit 50
python -m scripts.smoke_check --no-submit

启动服务

python -m app.main

健康检查:

GET /health -> {"status":"ok"}

Docker

docker build -t vllm-agent-strategy:local .
docker run --rm -p 8080:8080 --env-file .env vllm-agent-strategy:local

平台部署

平台部署流程:

推代码到 dev.modelhub.org.cn/Gitea
-> 打 tag
-> 调 agent_platform create 创建策略
-> 拿返回的 id 作为 STRATEGY_ID
-> 等构建 ready
-> deploy
-> logs 查看运行日志

1. 推代码并打 tag

把本目录作为策略仓库根目录推到 dev.modelhub.org.cn,确保仓库根目录有:

Dockerfile
requirements.txt
app/
seeds/
scripts/

示例:

git init
git add .
git commit -m "Initial vLLM agent strategy"
git remote add origin https://dev.modelhub.org.cn/<user>/vllm_agent_strategy.git
git tag v1.0.0
git push origin main --tags

如果已有仓库,按实际分支名和远端地址调整。

2. 创建策略并获取 STRATEGY_ID

可以使用脚本:

python -m scripts.agent_platform_api create \
  --name vllm-agent-strategy \
  --repo-url https://dev.modelhub.org.cn/<user>/vllm_agent_strategy \
  --tag v1.0.0

脚本默认从 AGENT_PLATFORM_TOKENAUTH_TOKEN 读取 token也可以显式传

python -m scripts.agent_platform_api --token <TOKEN> create \
  --name vllm-agent-strategy \
  --repo-url https://dev.modelhub.org.cn/<user>/vllm_agent_strategy \
  --tag v1.0.0

返回 JSON 中的:

id

就是 STRATEGY_ID

3. 查看构建状态

python -m scripts.agent_platform_api get --strategy-id <STRATEGY_ID>
python -m scripts.agent_platform_api sync --strategy-id <STRATEGY_ID>

等状态变成:

ready

4. 部署策略

python -m scripts.agent_platform_api deploy --strategy-id <STRATEGY_ID>

5. 查看日志

python -m scripts.agent_platform_api logs --strategy-id <STRATEGY_ID> --limit 100

6. 停止策略

python -m scripts.agent_platform_api stop --strategy-id <STRATEGY_ID>

7. 本地和平台 STRATEGY_ID 的区别

本地 dry-run 可以在 config.local.json 里填:

"STRATEGY_ID": "local-dry-run"

平台部署时,平台会注入真实 STRATEGY_ID 环境变量。环境变量优先级高于配置文件。

Agent Platform API helper

新增脚本:

scripts/agent_platform_api.py

支持:

python -m scripts.agent_platform_api me
python -m scripts.agent_platform_api list
python -m scripts.agent_platform_api create --name ... --repo-url ... --tag ...
python -m scripts.agent_platform_api get --strategy-id ...
python -m scripts.agent_platform_api sync --strategy-id ...
python -m scripts.agent_platform_api deploy --strategy-id ...
python -m scripts.agent_platform_api logs --strategy-id ...
python -m scripts.agent_platform_api stop --strategy-id ...
python -m scripts.agent_platform_api delete --strategy-id ...

GGUF / llamacpp

本版本只实现 vLLM。GGUF/llamacpp 后续可基于 tasks.engine 增加分支。

Description
No description provided
Readme 69 KiB
Languages
Python 99.6%
Dockerfile 0.4%