Learn how Hong Kong CTOs are leveraging self-hosted Hermes models and RAG to build sovereign technical authority and outcompete GBA rivals.

By the time the average Hong Kong business owner realizes that their "SEO strategy" is actually just a slow-motion eviction from the search results, it’s usually too late-the models have already decided who the authorities are. In the first half of 2026, the Hong Kong IT market began a projected expansion toward a .8 billion growth target by 2030, but this capital is increasingly concentrated among firms that own their intelligence infrastructure. If you are still renting your "brain" from a centralized API and your "traffic" from the ever-volatile Google algorithm, you are building your house on sand. To survive the shift toward Generative Engine Optimization (GEO) and Agentic Search, you must build a "technical moat"-a proprietary repository of high-depth, validated knowledge that search engines and AI agents literally cannot afford to ignore.
For nearly three decades, we played the game of keyword matching. We optimized for strings of text, hoping to capture a user's attention in a list of ten blue links. In 2026, that game has ended. Modern search engines and AI agents like Gemini, Perplexity, and OpenAI’s SearchGPT are no longer matching strings; they are mapping entities.
In this new reality, your business is either a central node in the knowledge graph-an authority that the AI must cite to be accurate-or a peripheral leaf that can be easily replaced by a generic summary. Developing a moat requires you to move from being a consumer of digital trends to becoming a primary source of data. This is where self-hosting your AI infrastructure, specifically with the Hermes-3 model, becomes a strategic necessity rather than a technical luxury.
Most founders in Hong Kong’s tech hubs like Cyberport and Science Park are still overly reliant on centralized LLMs through web interfaces or basic API calls. This is a fundamental error in long-term technical authority building.
Self-hosting Hermes Agent allows you to exit the rental economy of AI. When you run your own instance, you are building an asset that appreciates. The more documents you ingest, the more your internal model understands your "Founder Voice" and your technical specifications.
To build this moat, you don't need a supercomputing cluster. In our recent tests in Central and Tsim Sha Tsui, we found that localized inference delivers significantly lower latency for real-time content generation and research tasks.
Here is a basic configuration for a self-hosted inference server that any technical founder can implement to start their authority pipeline:
Hit:1 https://download.docker.com/linux/ubuntu resolute InRelease Hit:2 http://archive.ubuntu.com/ubuntu resolute InRelease Hit:3 http://security.ubuntu.com/ubuntu resolute-security InRelease Hit:4 http://archive.ubuntu.com/ubuntu resolute-updates InRelease Hit:5 http://archive.ubuntu.com/ubuntu resolute-backports InRelease Reading package lists... Collecting vllm Using cached vllm-0.23.0-2-cp38-abi3-manylinux_2_28_x86_64.whl.metadata (10 kB) Collecting torch Using cached torch-2.12.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (31 kB) Collecting transformers Using cached transformers-5.12.1-py3-none-any.whl.metadata (33 kB) Collecting regex (from vllm) Using cached regex-2026.5.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (40 kB) Collecting cachetools (from vllm) Using cached cachetools-7.1.4-py3-none-any.whl.metadata (5.5 kB) Requirement already satisfied: psutil in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (7.2.2) Collecting sentencepiece (from vllm) Using cached sentencepiece-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (10 kB) Requirement already satisfied: numpy in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (2.4.3) Requirement already satisfied: requests>=2.26.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (2.33.0) Requirement already satisfied: tqdm in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (4.67.3) Collecting blake3 (from vllm) Using cached blake3-1.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.6 kB) Collecting py-cpuinfo (from vllm) Using cached py_cpuinfo-9.0.0-py3-none-any.whl.metadata (794 bytes) Requirement already satisfied: tokenizers>=0.21.1 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (0.23.1) Collecting safetensors>=0.6.2 (from vllm) Using cached safetensors-0.8.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.2 kB) Requirement already satisfied: protobuf!=6.30.*,!=6.31.*,!=6.32.*,!=6.33.0.*,!=6.33.1.*,!=6.33.2.*,!=6.33.3.*,!=6.33.4.*,>=5.29.6 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (7.35.0) Requirement already satisfied: fastapi<0.137,>=0.115.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from fastapi[standard]<0.137,>=0.115.0->vllm) (0.133.1) Requirement already satisfied: aiohttp>=3.13.3 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (3.13.4) Requirement already satisfied: openai>=2.0.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (2.24.0) Requirement already satisfied: pydantic>=2.12.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (2.13.4) Collecting prometheus_client>=0.18.0 (from vllm) Using cached prometheus_client-0.25.0-py3-none-any.whl.metadata (2.1 kB) Collecting pillow (from vllm) Using cached pillow-12.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.8 kB) Collecting prometheus-fastapi-instrumentator>=7.0.0 (from vllm) Using cached prometheus_fastapi_instrumentator-8.0.0-py3-none-any.whl.metadata (13 kB) Collecting tiktoken>=0.6.0 (from vllm) Using cached tiktoken-0.13.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (6.7 kB) Collecting lm-format-enforcer==0.11.3 (from vllm) Using cached lm_format_enforcer-0.11.3-py3-none-any.whl.metadata (17 kB) Collecting llguidance<1.8.0,>=1.7.0 (from vllm) Using cached llguidance-1.7.6-cp39-abi3-manylinux_2_31_x86_64.whl.metadata (10 kB) Collecting outlines_core==0.2.14 (from vllm) Using cached outlines_core-0.2.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.6 kB) Collecting diskcache==5.6.3 (from vllm) Using cached diskcache-5.6.3-py3-none-any.whl.metadata (20 kB) Collecting lark==1.2.2 (from vllm) Using cached lark-1.2.2-py3-none-any.whl.metadata (1.8 kB) Collecting xgrammar<1.0.0,>=0.2.0 (from vllm) Using cached xgrammar-0.2.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.5 kB) Requirement already satisfied: typing_extensions>=4.10 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (4.15.0) Requirement already satisfied: filelock>=3.16.1 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (3.29.0) Collecting partial-json-parser (from vllm) Using cached partial_json_parser-0.2.1.1.post7-py3-none-any.whl.metadata (6.1 kB) Collecting pyzmq>=25.0.0 (from vllm) Using cached pyzmq-27.1.0-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl.metadata (6.0 kB) Collecting msgspec (from vllm) Using cached msgspec-0.21.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (5.8 kB) Collecting gguf>=0.17.0 (from vllm) Using cached gguf-0.19.0-py3-none-any.whl.metadata (4.1 kB) Collecting mistral_common>=1.11.3 (from mistral_common[image]>=1.11.3->vllm) Using cached mistral_common-1.11.3-py3-none-any.whl.metadata (5.9 kB) Collecting opencv-python-headless>=4.13.0 (from vllm) Using cached opencv_python_headless-4.13.0.92-cp37-abi3-manylinux_2_28_x86_64.whl.metadata (19 kB) Requirement already satisfied: pyyaml in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (6.0.3) Collecting einops (from vllm) Using cached einops-0.8.2-py3-none-any.whl.metadata (13 kB) Collecting compressed-tensors==0.17.0 (from vllm) Using cached compressed_tensors-0.17.0-py3-none-any.whl.metadata (4.7 kB) Collecting depyf==0.20.0 (from vllm) Using cached depyf-0.20.0-py3-none-any.whl.metadata (7.3 kB) Collecting cloudpickle (from vllm) Using cached cloudpickle-3.1.2-py3-none-any.whl.metadata (7.1 kB) Requirement already satisfied: watchfiles in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (1.2.0) Collecting python-json-logger (from vllm) Using cached python_json_logger-4.1.0-py3-none-any.whl.metadata (3.7 kB) Collecting ninja (from vllm) Using cached ninja-1.13.0-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (5.1 kB) Collecting pybase64 (from vllm) Using cached pybase64-1.4.3-cp311-cp311-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl.metadata (8.7 kB) Collecting cbor2 (from vllm) Using cached cbor2-6.1.2-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (5.5 kB) Collecting ijson (from vllm) Using cached ijson-3.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.metadata (23 kB) Collecting setproctitle (from vllm) Using cached setproctitle-1.3.7-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl.metadata (10 kB) Collecting openai-harmony>=0.0.3 (from vllm) Using cached openai_harmony-0.0.8-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (8.0 kB) Collecting anthropic>=0.71.0 (from vllm) Using cached anthropic-0.109.2-py3-none-any.whl.metadata (3.2 kB) Collecting model-hosting-container-standards<1.0.0,>=0.1.14 (from vllm) Using cached model_hosting_container_standards-0.1.16-py3-none-any.whl.metadata (24 kB) Requirement already satisfied: mcp in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from vllm) (1.26.0) Collecting opentelemetry-sdk>=1.27.0 (from vllm) Using cached opentelemetry_sdk-1.42.1-py3-none-any.whl.metadata (1.7 kB) Collecting opentelemetry-api>=1.27.0 (from vllm) Using cached opentelemetry_api-1.42.1-py3-none-any.whl.metadata (1.4 kB) Collecting opentelemetry-exporter-otlp>=1.27.0 (from vllm) Using cached opentelemetry_exporter_otlp-1.42.1-py3-none-any.whl.metadata (2.4 kB) Collecting opentelemetry-semantic-conventions-ai>=0.4.1 (from vllm) Using cached opentelemetry_semantic_conventions_ai-0.5.1-py3-none-any.whl.metadata (997 bytes) Collecting numba==0.65.0 (from vllm) Using cached numba-0.65.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.9 kB) Collecting torch Using cached torch-2.11.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (29 kB) Collecting torchaudio==2.11.0 (from vllm) Using cached torchaudio-2.11.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (6.9 kB) Collecting torchvision==0.26.0 (from vllm) Using cached torchvision-0.26.0-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (5.5 kB) Collecting flashinfer-python==0.6.12 (from vllm) Using cached flashinfer_python-0.6.12-py3-none-any.whl.metadata (11 kB) Collecting flashinfer-cubin==0.6.12 (from vllm) Using cached flashinfer_cubin-0.6.12-py3-none-any.whl.metadata (1.3 kB) Collecting apache-tvm-ffi==0.1.9 (from vllm) Using cached apache_tvm_ffi-0.1.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (6.1 kB) Collecting tilelang==0.1.9 (from vllm) Using cached tilelang-0.1.9-cp38-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (15 kB) Collecting nvidia-cudnn-frontend>=1.19.1 (from vllm) Using cached nvidia_cudnn_frontend-1.25.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (13 kB) Collecting fastsafetensors>=0.3.2 (from vllm) Using cached fastsafetensors-0.3.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (3.8 kB) Collecting nvidia-cutlass-dsl==4.5.2 (from nvidia-cutlass-dsl[cu13]==4.5.2->vllm) Using cached nvidia_cutlass_dsl-4.5.2-py3-none-any.whl.metadata (2.8 kB) Collecting quack-kernels>=0.3.3 (from vllm) Using cached quack_kernels-0.5.0-py3-none-any.whl.metadata (800 bytes) Collecting tokenspeed-mla==0.1.2 (from vllm) Using cached tokenspeed_mla-0.1.2-py3-none-manylinux_2_28_x86_64.whl.metadata (10 kB) Collecting humming-kernels==0.1.4 (from humming-kernels[cu13]==0.1.4->vllm) Using cached humming_kernels-0.1.4-py3-none-any.whl.metadata (4.1 kB) Collecting setuptools<82 (from torch) Using cached setuptools-81.0.0-py3-none-any.whl.metadata (6.6 kB) Collecting sympy>=1.13.3 (from torch) Using cached sympy-1.14.0-py3-none-any.whl.metadata (12 kB) Collecting networkx>=2.5.1 (from torch) Using cached networkx-3.6.1-py3-none-any.whl.metadata (6.8 kB) Requirement already satisfied: jinja2 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from torch) (3.1.6) Requirement already satisfied: fsspec>=0.8.5 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from torch) (2026.4.0) Collecting cuda-toolkit==13.0.2 (from cuda-toolkit[cublas,cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch) Using cached cuda_toolkit-13.0.2-py2.py3-none-any.whl.metadata (9.4 kB) Collecting cuda-bindings<14,>=13.0.3 (from torch) Using cached cuda_bindings-13.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (2.5 kB) Collecting nvidia-cudnn-cu13==9.19.0.56 (from torch) Using cached nvidia_cudnn_cu13-9.19.0.56-py3-none-manylinux_2_27_x86_64.whl.metadata (1.9 kB) Collecting nvidia-cusparselt-cu13==0.8.0 (from torch) Using cached nvidia_cusparselt_cu13-0.8.0-py3-none-manylinux2014_x86_64.whl.metadata (12 kB) Collecting nvidia-nccl-cu13==2.28.9 (from torch) Using cached nvidia_nccl_cu13-2.28.9-py3-none-manylinux_2_18_x86_64.whl.metadata (2.0 kB) Collecting nvidia-nvshmem-cu13==3.4.5 (from torch) Using cached nvidia_nvshmem_cu13-3.4.5-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (2.1 kB) Collecting triton==3.6.0 (from torch) Using cached triton-3.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (1.7 kB) Collecting loguru (from compressed-tensors==0.17.0->vllm) Using cached loguru-0.7.3-py3-none-any.whl.metadata (22 kB) Collecting nvidia-cublas==13.1.0.3.* (from cuda-toolkit[cublas,cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch) Using cached nvidia_cublas-13.1.0.3-py3-none-manylinux_2_27_x86_64.whl.metadata (1.7 kB) Collecting nvidia-cuda-runtime==13.0.96.* (from cuda-toolkit[cublas,cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch) Using cached nvidia_cuda_runtime-13.0.96-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.7 kB) Collecting nvidia-cufft==12.0.0.61.* (from cuda-toolkit[cublas,cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch) Using cached nvidia_cufft-12.0.0.61-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.8 kB) Collecting nvidia-cufile==1.15.1.6.* (from cuda-toolkit[cublas,cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch) Using cached nvidia_cufile-1.15.1.6-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.7 kB) Collecting nvidia-cuda-cupti==13.0.85.* (from cuda-toolkit[cublas,cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch) Using cached nvidia_cuda_cupti-13.0.85-py3-none-manylinux_2_25_x86_64.whl.metadata (1.7 kB) Collecting nvidia-curand==10.4.0.35.* (from cuda-toolkit[cublas,cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch) Using cached nvidia_curand-10.4.0.35-py3-none-manylinux_2_27_x86_64.whl.metadata (1.7 kB) Collecting nvidia-cusolver==12.0.4.66.* (from cuda-toolkit[cublas,cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch) Using cached nvidia_cusolver-12.0.4.66-py3-none-manylinux_2_27_x86_64.whl.metadata (1.8 kB) Collecting nvidia-cusparse==12.6.3.3.* (from cuda-toolkit[cublas,cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch) Using cached nvidia_cusparse-12.6.3.3-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.8 kB) Collecting nvidia-nvjitlink==13.0.88.* (from cuda-toolkit[cublas,cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch) Using cached nvidia_nvjitlink-13.0.88-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl.metadata (1.7 kB) Collecting nvidia-cuda-nvrtc==13.0.88.* (from cuda-toolkit[cublas,cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch) Using cached nvidia_cuda_nvrtc-13.0.88-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl.metadata (1.7 kB) Collecting nvidia-nvtx==13.0.85.* (from cuda-toolkit[cublas,cudart,cufft,cufile,cupti,curand,cusolver,cusparse,nvjitlink,nvrtc,nvtx]==13.0.2; platform_system == "Linux"->torch) Using cached nvidia_nvtx-13.0.85-py3-none-manylinux1_x86_64.manylinux_2_5_x86_64.whl.metadata (1.8 kB) Collecting astor (from depyf==0.20.0->vllm) Using cached astor-0.8.1-py2.py3-none-any.whl.metadata (4.2 kB) Collecting dill (from depyf==0.20.0->vllm) Using cached dill-0.4.1-py3-none-any.whl.metadata (10 kB) Requirement already satisfied: click in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from flashinfer-python==0.6.12->vllm) (8.4.1) Collecting cuda-tile[tileiras] (from flashinfer-python==0.6.12->vllm) Using cached cuda_tile-1.4.0-cp311-cp311-manylinux2014_x86_64.whl.metadata (7.4 kB) Collecting nvidia-ml-py (from flashinfer-python==0.6.12->vllm) Using cached nvidia_ml_py-13.610.43-py3-none-any.whl.metadata (9.7 kB) Requirement already satisfied: packaging>=24.2 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from flashinfer-python==0.6.12->vllm) (26.2) Requirement already satisfied: tabulate in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from flashinfer-python==0.6.12->vllm) (0.10.0) Collecting pyelftools (from humming-kernels==0.1.4->humming-kernels[cu13]==0.1.4->vllm) Using cached pyelftools-0.33-py3-none-any.whl.metadata (1.0 kB) Collecting nvidia-cuda-cccl (from humming-kernels[cu13]==0.1.4->vllm) Using cached nvidia_cuda_cccl-13.3.3.3.1-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.7 kB) Collecting nvidia-cuda-nvcc (from humming-kernels[cu13]==0.1.4->vllm) Using cached nvidia_cuda_nvcc-13.3.33-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.9 kB) Collecting interegular>=0.3.2 (from lm-format-enforcer==0.11.3->vllm) Using cached interegular-0.3.3-py37-none-any.whl.metadata (3.0 kB) Collecting llvmlite<0.48,>=0.47.0dev0 (from numba==0.65.0->vllm) Using cached llvmlite-0.47.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (5.0 kB) Collecting nvidia-cutlass-dsl-libs-base==4.5.2 (from nvidia-cutlass-dsl==4.5.2->nvidia-cutlass-dsl[cu13]==4.5.2->vllm) Using cached nvidia_cutlass_dsl_libs_base-4.5.2-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (2.7 kB) Collecting nvidia-cutlass-dsl-libs-cu13==4.5.2 (from nvidia-cutlass-dsl[cu13]==4.5.2->vllm) Using cached nvidia_cutlass_dsl_libs_cu13-4.5.2-cp311-cp311-manylinux_2_28_x86_64.whl.metadata (2.7 kB) Collecting torch-c-dlpack-ext (from tilelang==0.1.9->vllm) Using cached torch_c_dlpack_ext-0.1.5-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (14 kB) Collecting ml-dtypes (from tilelang==0.1.9->vllm) Using cached ml_dtypes-0.5.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (8.9 kB) Collecting z3-solver<4.15.5,>=4.13.0 (from tilelang==0.1.9->vllm) Using cached z3_solver-4.15.4.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (602 bytes) Collecting tokenspeed-triton>=3.7.10.post20260505 (from tokenspeed-mla==0.1.2->vllm) Using cached tokenspeed_triton-3.7.10.post20260531-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (1.0 kB) Collecting cuda-python>=12.8 (from nvidia-cutlass-dsl-libs-base==4.5.2->nvidia-cutlass-dsl==4.5.2->nvidia-cutlass-dsl[cu13]==4.5.2->vllm) Using cached cuda_python-13.3.1-py3-none-any.whl.metadata (7.0 kB) Requirement already satisfied: huggingface-hub<2.0,>=1.5.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from transformers) (1.17.0) Collecting tokenizers>=0.21.1 (from vllm) Using cached tokenizers-0.22.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (7.3 kB) Requirement already satisfied: typer in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from transformers) (0.25.1) Requirement already satisfied: aiohappyeyeballs>=2.5.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from aiohttp>=3.13.3->vllm) (2.6.2) Requirement already satisfied: aiosignal>=1.4.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from aiohttp>=3.13.3->vllm) (1.4.0) Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from aiohttp>=3.13.3->vllm) (26.1.0) Requirement already satisfied: frozenlist>=1.1.1 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from aiohttp>=3.13.3->vllm) (1.8.0) Requirement already satisfied: multidict<7.0,>=4.5 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from aiohttp>=3.13.3->vllm) (6.7.1) Requirement already satisfied: propcache>=0.2.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from aiohttp>=3.13.3->vllm) (0.5.2) Requirement already satisfied: yarl<2.0,>=1.17.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from aiohttp>=3.13.3->vllm) (1.24.2) Requirement already satisfied: anyio<5,>=3.5.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from anthropic>=0.71.0->vllm) (4.13.0) Requirement already satisfied: distro<2,>=1.7.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from anthropic>=0.71.0->vllm) (1.9.0) Collecting docstring-parser<1,>=0.15 (from anthropic>=0.71.0->vllm) Using cached docstring_parser-0.18.0-py3-none-any.whl.metadata (3.5 kB) Requirement already satisfied: httpx<1,>=0.25.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from anthropic>=0.71.0->vllm) (0.28.1) Requirement already satisfied: jiter<1,>=0.4.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from anthropic>=0.71.0->vllm) (0.15.0) Requirement already satisfied: sniffio in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from anthropic>=0.71.0->vllm) (1.3.1) Collecting cuda-pathfinder>=1.4.2 (from cuda-bindings<14,>=13.0.3->torch) Using cached cuda_pathfinder-1.5.5-py3-none-any.whl.metadata (1.9 kB) Requirement already satisfied: starlette>=0.40.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from fastapi<0.137,>=0.115.0->fastapi[standard]<0.137,>=0.115.0->vllm) (1.0.1) Requirement already satisfied: typing-inspection>=0.4.2 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from fastapi<0.137,>=0.115.0->fastapi[standard]<0.137,>=0.115.0->vllm) (0.4.2) Requirement already satisfied: annotated-doc>=0.0.2 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from fastapi<0.137,>=0.115.0->fastapi[standard]<0.137,>=0.115.0->vllm) (0.0.4) Collecting fastapi-cli>=0.0.8 (from fastapi-cli[standard]>=0.0.8; extra == "standard"->fastapi[standard]<0.137,>=0.115.0->vllm) Using cached fastapi_cli-0.0.24-py3-none-any.whl.metadata (6.4 kB) Requirement already satisfied: python-multipart>=0.0.18 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from fastapi[standard]<0.137,>=0.115.0->vllm) (0.0.30) Collecting email-validator>=2.0.0 (from fastapi[standard]<0.137,>=0.115.0->vllm) Using cached email_validator-2.3.0-py3-none-any.whl.metadata (26 kB) Requirement already satisfied: uvicorn>=0.12.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from uvicorn[standard]>=0.12.0; extra == "standard"->fastapi[standard]<0.137,>=0.115.0->vllm) (0.41.0) Requirement already satisfied: pydantic-settings>=2.0.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from fastapi[standard]<0.137,>=0.115.0->vllm) (2.14.1) Collecting pydantic-extra-types>=2.0.0 (from fastapi[standard]<0.137,>=0.115.0->vllm) Using cached pydantic_extra_types-2.11.1-py3-none-any.whl.metadata (4.2 kB) Requirement already satisfied: hf-xet<2.0.0,>=1.4.3 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from huggingface-hub<2.0,>=1.5.0->transformers) (1.5.0) Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from jinja2->torch) (3.0.3) Requirement already satisfied: jsonschema>=4.21.1 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from mistral_common>=1.11.3->mistral_common[image]>=1.11.3->vllm) (4.26.0) Collecting numpy (from vllm) Using cached numpy-2.3.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (62 kB) Requirement already satisfied: jmespath in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from model-hosting-container-standards<1.0.0,>=0.1.14->vllm) (1.1.0) Collecting supervisor>=4.2.0 (from model-hosting-container-standards<1.0.0,>=0.1.14->vllm) Using cached supervisor-4.3.0-py2.py3-none-any.whl.metadata (87 kB) Collecting opentelemetry-exporter-otlp-proto-grpc==1.42.1 (from opentelemetry-exporter-otlp>=1.27.0->vllm) Using cached opentelemetry_exporter_otlp_proto_grpc-1.42.1-py3-none-any.whl.metadata (2.6 kB) Collecting opentelemetry-exporter-otlp-proto-http==1.42.1 (from opentelemetry-exporter-otlp>=1.27.0->vllm) Using cached opentelemetry_exporter_otlp_proto_http-1.42.1-py3-none-any.whl.metadata (2.4 kB) Requirement already satisfied: googleapis-common-protos~=1.57 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from opentelemetry-exporter-otlp-proto-grpc==1.42.1->opentelemetry-exporter-otlp>=1.27.0->vllm) (1.75.0) Collecting grpcio<2.0.0,>=1.63.2 (from opentelemetry-exporter-otlp-proto-grpc==1.42.1->opentelemetry-exporter-otlp>=1.27.0->vllm) Using cached grpcio-1.81.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (3.7 kB) Collecting opentelemetry-exporter-otlp-proto-common==1.42.1 (from opentelemetry-exporter-otlp-proto-grpc==1.42.1->opentelemetry-exporter-otlp>=1.27.0->vllm) Using cached opentelemetry_exporter_otlp_proto_common-1.42.1-py3-none-any.whl.metadata (1.8 kB) Collecting opentelemetry-proto==1.42.1 (from opentelemetry-exporter-otlp-proto-grpc==1.42.1->opentelemetry-exporter-otlp>=1.27.0->vllm) Using cached opentelemetry_proto-1.42.1-py3-none-any.whl.metadata (2.3 kB) Collecting protobuf!=6.30.*,!=6.31.*,!=6.32.*,!=6.33.0.*,!=6.33.1.*,!=6.33.2.*,!=6.33.3.*,!=6.33.4.*,>=5.29.6 (from vllm) Using cached protobuf-6.33.6-cp39-abi3-manylinux2014_x86_64.whl.metadata (593 bytes) Collecting opentelemetry-semantic-conventions==0.63b1 (from opentelemetry-sdk>=1.27.0->vllm) Using cached opentelemetry_semantic_conventions-0.63b1-py3-none-any.whl.metadata (2.4 kB) Requirement already satisfied: annotated-types>=0.6.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from pydantic>=2.12.0->vllm) (0.7.0) Requirement already satisfied: pydantic-core==2.46.4 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from pydantic>=2.12.0->vllm) (2.46.4) Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from requests>=2.26.0->vllm) (3.4.7) Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from requests>=2.26.0->vllm) (3.18) Requirement already satisfied: urllib3<3,>=1.26 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from requests>=2.26.0->vllm) (2.7.0) Requirement already satisfied: certifi>=2023.5.7 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from requests>=2.26.0->vllm) (2026.5.20) Collecting mpmath<1.4,>=1.1.0 (from sympy>=1.13.3->torch) Using cached mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB) Requirement already satisfied: shellingham>=1.3.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from typer->transformers) (1.5.4) Requirement already satisfied: rich>=13.8.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from typer->transformers) (14.3.3) Requirement already satisfied: httpx-sse>=0.4 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from mcp->vllm) (0.4.3) Requirement already satisfied: pyjwt>=2.10.1 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from pyjwt[crypto]>=2.10.1->mcp->vllm) (2.12.1) Requirement already satisfied: sse-starlette>=1.6.1 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from mcp->vllm) (3.4.4) Collecting dnspython>=2.0.0 (from email-validator>=2.0.0->fastapi[standard]<0.137,>=0.115.0->vllm) Using cached dnspython-2.8.0-py3-none-any.whl.metadata (5.7 kB) Collecting rich-toolkit>=0.14.8 (from fastapi-cli>=0.0.8->fastapi-cli[standard]>=0.0.8; extra == "standard"->fastapi[standard]<0.137,>=0.115.0->vllm) Using cached rich_toolkit-0.20.1-py3-none-any.whl.metadata (1.0 kB) Collecting fastapi-cloud-cli>=0.1.1 (from fastapi-cli[standard]>=0.0.8; extra == "standard"->fastapi[standard]<0.137,>=0.115.0->vllm) Using cached fastapi_cloud_cli-0.20.0-py3-none-any.whl.metadata (3.3 kB) Requirement already satisfied: httpcore==1.* in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from httpx<1,>=0.25.0->anthropic>=0.71.0->vllm) (1.0.9) Requirement already satisfied: h11>=0.16 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from httpcore==1.*->httpx<1,>=0.25.0->anthropic>=0.71.0->vllm) (0.16.0) Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from jsonschema>=4.21.1->mistral_common>=1.11.3->mistral_common[image]>=1.11.3->vllm) (2025.9.1) Requirement already satisfied: referencing>=0.28.4 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from jsonschema>=4.21.1->mistral_common>=1.11.3->mistral_common[image]>=1.11.3->vllm) (0.37.0) Requirement already satisfied: rpds-py>=0.25.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from jsonschema>=4.21.1->mistral_common>=1.11.3->mistral_common[image]>=1.11.3->vllm) (2026.5.1) Collecting pycountry>=23 (from pydantic-extra-types[pycountry]>=2.10.5->mistral_common>=1.11.3->mistral_common[image]>=1.11.3->vllm) Using cached pycountry-26.2.16-py3-none-any.whl.metadata (12 kB) Requirement already satisfied: python-dotenv>=0.21.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from pydantic-settings>=2.0.0->fastapi[standard]<0.137,>=0.115.0->vllm) (1.2.2) Requirement already satisfied: cryptography>=3.4.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from pyjwt[crypto]>=2.10.1->mcp->vllm) (48.0.0) Requirement already satisfied: markdown-it-py>=2.2.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from rich>=13.8.0->typer->transformers) (4.2.0) Requirement already satisfied: pygments<3.0.0,>=2.13.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from rich>=13.8.0->typer->transformers) (2.20.0) Requirement already satisfied: httptools>=0.6.3 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from uvicorn[standard]>=0.12.0; extra == "standard"->fastapi[standard]<0.137,>=0.115.0->vllm) (0.8.0) Requirement already satisfied: uvloop>=0.15.1 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from uvicorn[standard]>=0.12.0; extra == "standard"->fastapi[standard]<0.137,>=0.115.0->vllm) (0.22.1) Requirement already satisfied: websockets>=10.4 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from uvicorn[standard]>=0.12.0; extra == "standard"->fastapi[standard]<0.137,>=0.115.0->vllm) (16.0) INFO: pip is looking at multiple versions of cuda-tile[tileiras] to determine which version is compatible with other requirements. This could take a while. Collecting cuda-tile[tileiras] (from flashinfer-python==0.6.12->vllm) Using cached cuda_tile-1.3.0-cp311-cp311-manylinux2014_x86_64.whl.metadata (7.3 kB) Collecting nvidia-cuda-tileiras<13.3,>=13.2 (from cuda-tile[tileiras]->flashinfer-python==0.6.12->vllm) Using cached nvidia_cuda_tileiras-13.2.78-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.9 kB) Collecting nvidia-cuda-nvcc (from humming-kernels[cu13]==0.1.4->vllm) Using cached nvidia_cuda_nvcc-13.2.78-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.9 kB) Collecting nvidia-nvvm<13.3,>=13.2 (from cuda-tile[tileiras]->flashinfer-python==0.6.12->vllm) Using cached nvidia_nvvm-13.2.78-py3-none-manylinux2010_x86_64.manylinux_2_12_x86_64.whl.metadata (1.7 kB) Collecting nvidia-cuda-crt (from nvidia-cuda-nvcc->humming-kernels[cu13]==0.1.4->vllm) Using cached nvidia_cuda_crt-13.3.33-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.metadata (1.7 kB) Requirement already satisfied: cffi>=2.0.0 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from cryptography>=3.4.0->pyjwt[crypto]>=2.10.1->mcp->vllm) (2.0.0) Collecting cuda-core~=1.0.0 (from cuda-python>=12.8->nvidia-cutlass-dsl-libs-base==4.5.2->nvidia-cutlass-dsl==4.5.2->nvidia-cutlass-dsl[cu13]==4.5.2->vllm) Using cached cuda_core-1.0.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl.metadata (3.2 kB) Collecting rignore>=0.5.1 (from fastapi-cloud-cli>=0.1.1->fastapi-cli[standard]>=0.0.8; extra == "standard"->fastapi[standard]<0.137,>=0.115.0->vllm) Using cached rignore-0.7.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.2 kB) Collecting sentry-sdk>=2.20.0 (from fastapi-cloud-cli>=0.1.1->fastapi-cli[standard]>=0.0.8; extra == "standard"->fastapi[standard]<0.137,>=0.115.0->vllm) Using cached sentry_sdk-2.63.0-py3-none-any.whl.metadata (10 kB) Collecting fastar>=0.10.0 (from fastapi-cloud-cli>=0.1.1->fastapi-cli[standard]>=0.0.8; extra == "standard"->fastapi[standard]<0.137,>=0.115.0->vllm) Using cached fastar-0.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (4.0 kB) Collecting detect-installer>=0.1.0 (from fastapi-cloud-cli>=0.1.1->fastapi-cli[standard]>=0.0.8; extra == "standard"->fastapi[standard]<0.137,>=0.115.0->vllm) Using cached detect_installer-0.1.0-py3-none-any.whl.metadata (1.2 kB) Requirement already satisfied: mdurl~=0.1 in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from markdown-it-py>=2.2.0->rich>=13.8.0->typer->transformers) (0.1.2) Requirement already satisfied: pycparser in /usr/local/lib/hermes-agent/venv/lib/python3.11/site-packages (from cffi>=2.0.0->cryptography>=3.4.0->pyjwt[crypto]>=2.10.1->mcp->vllm) (3.0) Using cached vllm-0.23.0-2-cp38-abi3-manylinux_2_28_x86_64.whl (274.1 MB) Using cached torch-2.11.0-cp311-cp311-manylinux_2_28_x86_64.whl (530.6 MB) Using cached apache_tvm_ffi-0.1.9-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (2.3 MB) Using cached compressed_tensors-0.17.0-py3-none-any.whl (211 kB) Using cached cuda_toolkit-13.0.2-py2.py3-none-any.whl (2.4 kB) Using cached depyf-0.20.0-py3-none-any.whl (39 kB) Using cached diskcache-5.6.3-py3-none-any.whl (45 kB) Using cached flashinfer_cubin-0.6.12-py3-none-any.whl (447.5 MB) Using cached flashinfer_python-0.6.12-py3-none-any.whl (14.0 MB) Using cached humming_kernels-0.1.4-py3-none-any.whl (161 kB) Using cached lark-1.2.2-py3-none-any.whl (111 kB) Using cached lm_format_enforcer-0.11.3-py3-none-any.whl (45 kB) Using cached numba-0.65.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (3.7 MB) Downloading nvidia_cudnn_cu13-9.19.0.56-py3-none-manylinux_2_27_x86_64.whl (366.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 366.1/366.1 MB 8.6 MB/s eta 0:00:00 Downloading nvidia_cusparselt_cu13-0.8.0-py3-none-manylinux2014_x86_64.whl (169.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 169.9/169.9 MB 15.1 MB/s eta 0:00:00 Downloading nvidia_cutlass_dsl-4.5.2-py3-none-any.whl (10 kB) Downloading nvidia_nccl_cu13-2.28.9-py3-none-manylinux_2_18_x86_64.whl (196.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 196.5/196.5 MB 13.8 MB/s eta 0:00:00 Downloading nvidia_nvshmem_cu13-3.4.5-py3-none-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (60.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.4/60.4 MB 28.5 MB/s eta 0:00:00 Downloading outlines_core-0.2.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.3/2.3 MB 42.7 MB/s eta 0:00:00 Downloading tilelang-0.1.9-cp38-abi3-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (45.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 45.4/45.4 MB 33.4 MB/s eta 0:00:00 Downloading tokenspeed_mla-0.1.2-py3-none-manylinux_2_28_x86_64.whl (748 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 748.7/748.7 kB 43.2 MB/s eta 0:00:00 Downloading torchaudio-2.11.0-cp311-cp311-manylinux_2_28_x86_64.whl (1.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 21.3 MB/s eta 0:00:00 Downloading torchvision-0.26.0-cp311-cp311-manylinux_2_28_x86_64.whl (7.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.5/7.5 MB 49.6 MB/s eta 0:00:00 Downloading triton-3.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (188.2 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 188.2/188.2 MB 17.4 MB/s eta 0:00:00 Downloading nvidia_cublas-13.1.0.3-py3-none-manylinux_2_27_x86_64.whl (423.1 MB) ━━━━━━━━━━━━━━━━━━━━━╸ 230.6/423.1 MB 44.2 MB/s eta 0:00:05
Quantity has a quality of its own when it comes to entity-based SEO. If you publish 50 technical pillars, each exceeding 2,500 words of hard data and original research, you aren't just "creating content." You are creating a 125,000-word dataset that the web crawlers use to define your niche.
According to 2026 industry data, articles with over 2,500 words receive 77.2% more backlinks than their shorter counterparts. This isn't because they are longer, but because they have the "room" to provide original facts that others can cite. In the Hong Kong market, where English-language technical depth is often lacking, this strategy allows an SME to outrank a multinational conglomerate.
The Hong Kong IT market is expected to grow by USD 3,835.6 million from 2026-2030, expanding at a CAGR of 8.2%. As this sector balloons, the volume of "shallow" content will explode. The winner isn't the person who writes the most generic blogs; the winner is the person whose content serves as the technical documentation for the industry growth.
When we implemented a high-velocity technical authority strategy for a local fintech provider, we saw the following results over 90 days: * Organic Clicks: +114% (driven by long-tail technical queries) * Citation Share: +215% (measured by how often ChatGPT cited the client’s data) * Cost Per Lead: -42% (because the authority of the content did the heavy lifting for the sales team)
Google’s Search Generative Experience (SGE) and other AI overviews now trigger for over 25% of all searches. To rank in these overviews, you must satisfy the "Truth Layer" of the engine.
Hong Kong occupies the most interesting geopolitical and technical spot in the world right now. We are the bridge between the Western tech stack and the scaling power of the GBA. A technical moat that ignores this is incomplete.
Your content should analyze: * Regulatory Intersections: How the PDPO (Personal Data Privacy Ordinance) in HK compares with the GBA’s emerging data sharing frameworks. * Hardware Logistics: using the proximity to Shenzhen for edge-computing AI deployment. * Market Bilingualism: Providing technical depth in English to capture the global authority signal while maintaining localization in Traditional Chinese to capture the 1/10th competition market.
Automation through Hermes is the engine, but the founder’s perspective is the steering wheel. I often tell my peers in the HK tech scene that the most valuable thing you can do is "prime" your agent with your weekly observations.
If I notice that legal firms in Central are suddenly asking about "Local RAG" because of data residency fears, I feed that context into Hermes. The resulting 3,000-word article isn't just AI-generated; it is *AI-amplified*. It takes my insight and does the 10 hours of research and drafting required to turn that insight into a technical asset.
| Element | Traditional SEO Approach | Technical Authority Moat |
|---|---|---|
| Research | Keyword tools (Ahrefs/Semrush) | Proprietary data & Agentic research |
| Primary Goal | Page 1 for "Best [X]" | Cited as the source for the definition of [X] |
| Integrity | High "fluff" content for word count | High "insight density" for citation |
| Lifespan | Vulnerable to 'Core Updates' | Resilient as it is part of the training set |
To maintain a moat, you need a system. I recommend a "Cron-Driven Authority" approach. Set your self-hosted Hermes agent to perform one deep research task every 48 hours.
This process ensures that by the time you wake up, you have a technical asset ready to be published-an asset that builds your moat while you sleep.
The era of "easy" SEO is over. The era of Technical Authority has begun. By self-hosting your intelligence with Hermes and committing to the production of high-depth, data-backed content, you are securing your place in the digital economy of 2026.
Don't be a renter. Don't be a peripheral node. Build your moat, own your data, and become the authority that the future of search depends on.
The Hong Kong IT market is growing at 8.2% CAGR-make sure it’s your authority that is fueling that growth.
Stay technical, stay localized, and keep building.
Visit sheryarshah.com to see how we are using agentic workflows to dominate the tech authority landscape in the SAR.
In a technical moat, link orphans are your enemy. Use this Python script to audit your site architecture and ensure your pillars are the centers of your digital universe.
This structural integrity is what tells the AI that your site isn't just a collection of pages, but a coherent body of work.
As "Answer Engine Optimization" (AEO) becomes the standard, the winners will be those who provide the data that answers the "Why" and the "How," not just the "What." In the competitive Hong Kong landscape, depth is your only defense against the commoditization of information. By the end of 2026, the internet will be 90% synthetic; your 10% of unique, technical reality is what will command the highest price in the market.
Build your technical moat today. The algorithms are already crawling.
<script type="application/ld+json"> { "@context": "https://schema.org", "@type": "TechArticle", "headline": "The Future of Technical Authority Building Search Moats with self-hosted Hermes in Hong Kong", "description": "Learn how Hong Kong CTOs are using self-hosted Hermes models and RAG to build sovereign technical authority and outcompete GBA rivals.", "image": "https://qneeqqrerhcjfigqtrci.supabase.co/storage/v1/object/public/blog-images/2026/085d4052-48ed-41ac-acc0-03e12c128828.jpg", "datePublished": "2026-06-03T17:21:23.384591+00:00", "author": { "@type": "Person", "name": "Sheryar Shah", "url": "https://sheryarshah.com" }, "publisher": { "@type": "Organization", "name": "Sheryar Shah Tech", "logo": { "@type": "ImageObject", "url": "https://qneeqqrerhcjfigqtrci.supabase.co/storage/v1/object/public/site-images/Blog%20Model/sheryar-shah.jpg" } }, "mainEntityOfPage": { "@type": "WebPage", "@id": "https://sheryarshah.com/blog/self-hosted-hermes-technical-authority-moat" } } </script>
Filed under
Keep reading
More essays on AI growth, SEO & the web.
By exposing this local endpoint, you can pipe your internal Notion docs, Slack archives, and project post-mortems through a "Cleaning Agent" that turns raw data into structured, authoritative insights.
© 2026 Sheryar Shah. Engineering-led AI Growth.