From 163bd0e8349b2cc9ef510c12910560117a0ea680 Mon Sep 17 00:00:00 2001 From: Abir Abbas Date: Thu, 20 Aug 2026 23:21:52 -0400 Subject: [PATCH] fix: default to deepseek/deepseek-v4-flash-0731 (drop invalid openrouter/ prefix) The aforge harness passes the model id to OpenRouter verbatim; OpenRouter rejects 'openrouter/...' as an invalid model ID (400), so every reasoner failed with turns=0. Use the bare slug the user intends. Co-Authored-By: Claude Opus 4.8 --- .env.example | 4 ++-- Dockerfile | 4 ++-- agentfield-package.yaml | 4 ++-- docker-compose.go.yml | 4 ++-- docker-compose.yml | 4 ++-- go/Dockerfile | 4 ++-- go/README.md | 2 +- go/agentfield-package.yaml | 4 ++-- go/docker-entrypoint.sh | 2 +- 9 files changed, 16 insertions(+), 16 deletions(-) diff --git a/.env.example b/.env.example index 1514622..c35338a 100644 --- a/.env.example +++ b/.env.example @@ -16,8 +16,8 @@ AGENTFIELD_AFORGE_COMMAND=exec # AFORGE_VERSION=v0.1.0 # Optional: Model overrides -HARNESS_MODEL=openrouter/moonshotai/kimi-k2.5 -AI_MODEL=openrouter/moonshotai/kimi-k2.5 +HARNESS_MODEL=deepseek/deepseek-v4-flash-0731 +AI_MODEL=deepseek/deepseek-v4-flash-0731 # Optional: Cloud credentials (read-only, for prove mode only) # AWS diff --git a/Dockerfile b/Dockerfile index fcd7bdc..799c573 100644 --- a/Dockerfile +++ b/Dockerfile @@ -63,8 +63,8 @@ ENV PYTHONDONTWRITEBYTECODE=1 \ AGENTFIELD_SERVER=http://agentfield:8080 \ HARNESS_PROVIDER=aforge \ AGENTFIELD_AFORGE_COMMAND=exec \ - HARNESS_MODEL=openrouter/moonshotai/kimi-k2.5 \ - AI_MODEL=openrouter/moonshotai/kimi-k2.5 \ + HARNESS_MODEL=deepseek/deepseek-v4-flash-0731 \ + AI_MODEL=deepseek/deepseek-v4-flash-0731 \ PORT=8005 \ HOME=/home/cloudsecurity \ PYTHONPATH=/app/src \ diff --git a/agentfield-package.yaml b/agentfield-package.yaml index 5d112f0..9b6bcf4 100644 --- a/agentfield-package.yaml +++ b/agentfield-package.yaml @@ -59,10 +59,10 @@ user_environment: description: Optional path to the AForge binary (defaults to aforge on PATH) - name: HARNESS_MODEL description: Model the harness uses - default: openrouter/moonshotai/kimi-k2.5 + default: deepseek/deepseek-v4-flash-0731 - name: AI_MODEL description: Model for direct AI calls - default: openrouter/moonshotai/kimi-k2.5 + default: deepseek/deepseek-v4-flash-0731 - name: AWS_ACCESS_KEY_ID description: AWS access key for read-only scanning type: secret diff --git a/docker-compose.go.yml b/docker-compose.go.yml index b040448..915cf38 100644 --- a/docker-compose.go.yml +++ b/docker-compose.go.yml @@ -44,8 +44,8 @@ services: - AGENT_CALLBACK_URL=http://cloudsecurity-go:8015 - HARNESS_PROVIDER=${HARNESS_PROVIDER:-aforge} - AGENTFIELD_AFORGE_COMMAND=${AGENTFIELD_AFORGE_COMMAND:-exec} - - HARNESS_MODEL=${HARNESS_MODEL:-openrouter/moonshotai/kimi-k2.5} - - AI_MODEL=${AI_MODEL:-openrouter/moonshotai/kimi-k2.5} + - HARNESS_MODEL=${HARNESS_MODEL:-deepseek/deepseek-v4-flash-0731} + - AI_MODEL=${AI_MODEL:-deepseek/deepseek-v4-flash-0731} - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} # XDG_DATA_HOME is set here and NOT in docker-compose.yml — a deliberate # packaging difference (divergence 6 in go/README.md). Both nodes read the diff --git a/docker-compose.yml b/docker-compose.yml index 4582ed9..e8f888a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -32,8 +32,8 @@ services: - AGENT_CALLBACK_URL=http://cloudsecurity-af:8005 - HARNESS_PROVIDER=${HARNESS_PROVIDER:-aforge} - AGENTFIELD_AFORGE_COMMAND=${AGENTFIELD_AFORGE_COMMAND:-exec} - - HARNESS_MODEL=${HARNESS_MODEL:-openrouter/moonshotai/kimi-k2.5} - - AI_MODEL=${AI_MODEL:-openrouter/moonshotai/kimi-k2.5} + - HARNESS_MODEL=${HARNESS_MODEL:-deepseek/deepseek-v4-flash-0731} + - AI_MODEL=${AI_MODEL:-deepseek/deepseek-v4-flash-0731} - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} - PYTHONUNBUFFERED=1 # Cloud provider credentials (read-only, for prove mode) diff --git a/go/Dockerfile b/go/Dockerfile index 703967c..dc6667b 100644 --- a/go/Dockerfile +++ b/go/Dockerfile @@ -82,8 +82,8 @@ ARG OPENCODE_VERSION=1.17.15 ENV AGENTFIELD_SERVER=http://agentfield:8080 \ HARNESS_PROVIDER=aforge \ AGENTFIELD_AFORGE_COMMAND=exec \ - HARNESS_MODEL=openrouter/moonshotai/kimi-k2.5 \ - AI_MODEL=openrouter/moonshotai/kimi-k2.5 \ + HARNESS_MODEL=deepseek/deepseek-v4-flash-0731 \ + AI_MODEL=deepseek/deepseek-v4-flash-0731 \ PORT=8015 \ NODE_ID=cloudsecurity \ HOME=/home/cloudsecurity \ diff --git a/go/README.md b/go/README.md index d5d83f5..985c91a 100644 --- a/go/README.md +++ b/go/README.md @@ -223,7 +223,7 @@ The node is configured entirely through the environment. Note: the code default model is `openrouter/minimax/minimax-m2.5`, while the Docker image / compose / manifest set -`HARNESS_MODEL=openrouter/moonshotai/kimi-k2.5`. The env var always wins; both +`HARNESS_MODEL=deepseek/deepseek-v4-flash-0731`. The env var always wins; both defaults are intentional (they mirror the Python node). ## Deliberate divergences from the Python node diff --git a/go/agentfield-package.yaml b/go/agentfield-package.yaml index 83b1718..8c1a432 100644 --- a/go/agentfield-package.yaml +++ b/go/agentfield-package.yaml @@ -55,10 +55,10 @@ user_environment: description: Optional path to the AForge binary (defaults to aforge on PATH) - name: HARNESS_MODEL description: Model the harness uses - default: openrouter/moonshotai/kimi-k2.5 + default: deepseek/deepseek-v4-flash-0731 - name: AI_MODEL description: Model for direct AI calls - default: openrouter/moonshotai/kimi-k2.5 + default: deepseek/deepseek-v4-flash-0731 - name: AWS_ACCESS_KEY_ID description: AWS access key for read-only scanning type: secret diff --git a/go/docker-entrypoint.sh b/go/docker-entrypoint.sh index 38d8936..6e02846 100755 --- a/go/docker-entrypoint.sh +++ b/go/docker-entrypoint.sh @@ -19,7 +19,7 @@ set -e # than the one the node passes to opencode with -m, which is exactly the # whitelist mismatch this script exists to prevent. The image bakes # HARNESS_MODEL, so without the first hop CLOUDSECURITY_MODEL could never win. -MODEL="${CLOUDSECURITY_MODEL:-${HARNESS_MODEL:-openrouter/moonshotai/kimi-k2.5}}" +MODEL="${CLOUDSECURITY_MODEL:-${HARNESS_MODEL:-deepseek/deepseek-v4-flash-0731}}" # opencode keys models under a provider by the slug *without* the provider # prefix, e.g. "openrouter/z-ai/glm-5.2" -> provider "openrouter", key "z-ai/glm-5.2".