diff --git a/.env.example b/.env.example index 91eb736..fe5beac 100644 --- a/.env.example +++ b/.env.example @@ -19,7 +19,7 @@ NODE_ID=pr-af PR_AF_PROVIDER=aforge # Read by the Go node's SDK adapter; the pinned Python SDK always runs `exec`. AGENTFIELD_AFORGE_COMMAND=exec -PR_AF_MODEL=openrouter/moonshotai/kimi-k2.5 +PR_AF_MODEL=deepseek/deepseek-v4-flash-0731 # Falls back to PR_AF_MODEL when unset # PR_AF_AI_MODEL= PR_AF_MAX_TURNS=50 diff --git a/Dockerfile b/Dockerfile index f497dcd..5b3aaa3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -67,7 +67,7 @@ ENV PYTHONDONTWRITEBYTECODE=1 \ AGENTFIELD_SERVER=http://agentfield:8080 \ PR_AF_PROVIDER=aforge \ AGENTFIELD_AFORGE_COMMAND=exec \ - PR_AF_MODEL=openrouter/moonshotai/kimi-k2.5 \ + PR_AF_MODEL=deepseek/deepseek-v4-flash-0731 \ PORT=8004 \ HOME=/home/praf \ PYTHONPATH=/app/src \ diff --git a/README.md b/README.md index 5876434..6e4343e 100644 --- a/README.md +++ b/README.md @@ -267,7 +267,7 @@ The key knobs (see `.env.example` for the full list): | `AGENTFIELD_AFORGE_COMMAND` | AForge headless command (default `exec`) — read by the Go node's SDK adapter; the pinned Python SDK always runs `exec` | | `PR_AF_AFORGE_BIN` | Path to an aforge-v2 binary (default `aforge`) | | `PR_AF_HARNESS_BIN` | Provider-agnostic executable override | -| `PR_AF_MODEL` | Harness model (default `openrouter/moonshotai/kimi-k2.5`) | +| `PR_AF_MODEL` | Harness model (default `deepseek/deepseek-v4-flash-0731`) | | `PR_AF_MAX_COST_USD` | Per-run cost ceiling in USD (default `2.0`) | | `PR_AF_MAX_DURATION_SECONDS`| Per-run wall-clock ceiling in seconds (default `3600`) | | `AGENTFIELD_HARNESS_IDLE_SECONDS` | Harness no-output watchdog window in seconds (default `360`) — harness CLIs in JSON mode emit events only at completion boundaries, so long single completions look silent | diff --git a/agentfield-package.yaml b/agentfield-package.yaml index d838577..695d556 100644 --- a/agentfield-package.yaml +++ b/agentfield-package.yaml @@ -58,7 +58,7 @@ user_environment: description: Optional path to the aforge-v2 binary (defaults to aforge on PATH) - name: PR_AF_MODEL description: Model the harness uses - default: openrouter/moonshotai/kimi-k2.5 + default: deepseek/deepseek-v4-flash-0731 - name: PR_AF_LABEL description: GitHub pull-request label that triggers a webhook review default: pr-af diff --git a/docker-compose.go.yml b/docker-compose.go.yml index 35baa56..9115547 100644 --- a/docker-compose.go.yml +++ b/docker-compose.go.yml @@ -42,7 +42,7 @@ services: - AGENT_CALLBACK_URL=http://pr-af-go:8007 - PR_AF_PROVIDER=${PR_AF_PROVIDER:-aforge} - AGENTFIELD_AFORGE_COMMAND=${AGENTFIELD_AFORGE_COMMAND:-exec} - - PR_AF_MODEL=${PR_AF_MODEL:-openrouter/moonshotai/kimi-k2.5} + - PR_AF_MODEL=${PR_AF_MODEL:-deepseek/deepseek-v4-flash-0731} # Optional generic executable override; leave unset for provider defaults. - PR_AF_HARNESS_BIN - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} diff --git a/docker-compose.yml b/docker-compose.yml index 3e4bd78..18c8b40 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -24,7 +24,7 @@ services: - AGENT_CALLBACK_URL=http://pr-af:8004 - PR_AF_PROVIDER=${PR_AF_PROVIDER:-aforge} - AGENTFIELD_AFORGE_COMMAND=${AGENTFIELD_AFORGE_COMMAND:-exec} - - PR_AF_MODEL=${PR_AF_MODEL:-openrouter/moonshotai/kimi-k2.5} + - PR_AF_MODEL=${PR_AF_MODEL:-deepseek/deepseek-v4-flash-0731} - OPENROUTER_API_KEY=${OPENROUTER_API_KEY} - GH_TOKEN=${GH_TOKEN:-} - XDG_DATA_HOME=/home/praf/.local/share diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh index 3e0f9c1..bc17b5d 100755 --- a/docker-entrypoint.sh +++ b/docker-entrypoint.sh @@ -10,7 +10,7 @@ set -e # Default matches the image ENV / benchmarked model. -MODEL="${PR_AF_MODEL:-openrouter/moonshotai/kimi-k2.5}" +MODEL="${PR_AF_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". diff --git a/go/Dockerfile b/go/Dockerfile index 4be6bf4..650ef7a 100644 --- a/go/Dockerfile +++ b/go/Dockerfile @@ -77,7 +77,7 @@ ARG OPENCODE_VERSION=1.17.15 ENV AGENTFIELD_SERVER=http://agentfield:8080 \ PR_AF_PROVIDER=aforge \ AGENTFIELD_AFORGE_COMMAND=exec \ - PR_AF_MODEL=openrouter/moonshotai/kimi-k2.5 \ + PR_AF_MODEL=deepseek/deepseek-v4-flash-0731 \ PORT=8007 \ NODE_ID=pr-af \ HOME=/home/praf \ diff --git a/go/README.md b/go/README.md index 3791626..c008053 100644 --- a/go/README.md +++ b/go/README.md @@ -157,7 +157,7 @@ The node is configured entirely through the environment. | `PORT` | Listen port (default `8007`) | | `PR_AF_PROVIDER` | Harness provider (default `aforge`; use `opencode` to roll back) | | `AGENTFIELD_AFORGE_COMMAND` | AForge headless command — `exec` (default) or `do` | -| `PR_AF_MODEL` | Harness model (default `openrouter/moonshotai/kimi-k2.5`) | +| `PR_AF_MODEL` | Harness model (default `deepseek/deepseek-v4-flash-0731`) | | `PR_AF_LABEL` | Pull-request label that triggers a webhook review (default `pr-af`) | | `PR_AF_MAX_CONCURRENT_REVIEWERS` | Optional webhook review concurrency cap (minimum `1`) | | `PR_AF_MAX_REVIEW_DEPTH` | Optional webhook sub-review depth cap (minimum `0`) | @@ -174,7 +174,7 @@ time from `https://agentfield.ai/downloads/aforge`, pinned by the installed and can be selected with `PR_AF_PROVIDER=opencode` without rebuilding. Note: the code default model is `minimax/minimax-m2.5`, while the Docker image / -compose / manifest set `PR_AF_MODEL=openrouter/moonshotai/kimi-k2.5`. The env +compose / manifest set `PR_AF_MODEL=deepseek/deepseek-v4-flash-0731`. The env var always wins; both defaults are intentional (they mirror the Python node). ## Deployment: `af install` diff --git a/go/agentfield-package.yaml b/go/agentfield-package.yaml index 8bd7cfa..6f8b9dc 100644 --- a/go/agentfield-package.yaml +++ b/go/agentfield-package.yaml @@ -53,7 +53,7 @@ user_environment: default: exec - name: PR_AF_MODEL description: harness model - default: openrouter/moonshotai/kimi-k2.5 + default: deepseek/deepseek-v4-flash-0731 - name: PR_AF_LABEL description: GitHub pull-request label that triggers a webhook review default: pr-af diff --git a/go/docker-entrypoint.sh b/go/docker-entrypoint.sh index 3e0f9c1..bc17b5d 100755 --- a/go/docker-entrypoint.sh +++ b/go/docker-entrypoint.sh @@ -10,7 +10,7 @@ set -e # Default matches the image ENV / benchmarked model. -MODEL="${PR_AF_MODEL:-openrouter/moonshotai/kimi-k2.5}" +MODEL="${PR_AF_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". diff --git a/go/internal/config/ai.go b/go/internal/config/ai.go index e84a804..f367606 100644 --- a/go/internal/config/ai.go +++ b/go/internal/config/ai.go @@ -15,7 +15,7 @@ import ( // AIIntegrationConfig ports config.py AIIntegrationConfig. Env precedence and // defaults per design §C.2. The HarnessModel/AIModel fallback is the CODE // default "minimax/minimax-m2.5" — deliberately different from the -// Docker/compose/manifest default (openrouter/moonshotai/kimi-k2.5); env always +// Docker/compose/manifest default (deepseek/deepseek-v4-flash-0731); env always // wins, and both facts ship intentionally (design §B.6). Do not "fix" it. type AIIntegrationConfig struct { Provider string `json:"provider"` diff --git a/go/test/functional/compose.functional.yml b/go/test/functional/compose.functional.yml index f191163..c3a0bdc 100644 --- a/go/test/functional/compose.functional.yml +++ b/go/test/functional/compose.functional.yml @@ -51,7 +51,7 @@ services: - AGENT_CALLBACK_URL=http://pr-af:8007 - PR_AF_PROVIDER=${PR_AF_PROVIDER:-aforge} - AGENTFIELD_AFORGE_COMMAND=${AGENTFIELD_AFORGE_COMMAND:-exec} - - PR_AF_MODEL=${PR_AF_MODEL:-openrouter/moonshotai/kimi-k2.5} + - PR_AF_MODEL=${PR_AF_MODEL:-deepseek/deepseek-v4-flash-0731} - OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-} - GH_TOKEN=${GH_TOKEN:-} ports: