agentscope-ai / agentscope-ai/AgentTeams
model-switch openclaw.json `reasoning` undone by Manager reconcile / agents/manager sync
- Vorherrschende Sprache
- Go
- Sterne
- 5.6k
- Forks
- 692
- Ø Merge
- 5 T. 4 Std.
- Gemergte PRs (30 T.)
- 23
Beschreibung
### Bug Description
Environment (where reproduced):
- Install: AgentTeams embedded / Docker (local), `AGENTTEAMS_RUNTIME=k8s`
- Manager runtime: CoPaw
- Host workspace bind-mounted into Manager **and** Controller (`agents/manager`)
- OS: macOS (Docker Desktop)
What happened:
After `model-switch` (or a direct edit) sets `openclaw.json` model `reasoning: false`, within ~1–4 seconds the value flips back to `true`.
What I expected:
Hot-updates to manager `openclaw.json` (especially `--no-reasoning` / bridge SoT) should survive Controller Manager reconcile and MinIO Remote→Local sync.
## Root cause
Two writers conflict:
1. **Controller `DeployManagerConfig` → `PutManagerConfig`** regenerates `openclaw.json` from the Manager CR (default `reasoning: true` for custom models), merges only `groupAllowFrom` + plugins, then:
- `PutObject` to MinIO `agents/manager/openclaw.json`
- `writeManagerLocalConfig` overwrites the **shared live workspace** bind-mount
2. Controller also mirrors MinIO `agents/` onto `/root/agentteams-fs/agents/`, which is the same host dir as Manager’s workspace — a stale `agents/manager/openclaw.json` in MinIO will pull over the live file.
Related: CoPaw `--no-reasoning` no-op is #1126. This issue is persistence after a correct local write.
### Steps to Reproduce
1. Embedded install with Manager workspace on host (default `~/agentteams-manager`).
2. Set reasoning false on the active model in `openclaw.json` (via model-switch or jq).
3. Wait a few seconds (Manager reconcile).
4. Observe `reasoning` flip back to `true` on disk / in MinIO `agents/manager/openclaw.json`.
### AI Analysis
Tool used: Cursor
Analysis:
- `manager_config.go` `PutManagerConfig` did not preserve per-model `reasoning` and preferred OSS over the live workspace file.
- Manager `mc cp` to `agents/manager/` often 403s (no ACL); pushing only `manager/openclaw.json` is insufficient because Controller regenerates `agents/manager/`.
- Fix: load existing config from the shared local mount first; `mergeModelReasoning`; model-switch best-effort MinIO push.
### Relevant Logs
```shell
Shared mount (Manager workspace == Controller `agents/manager`):
# manager
/Users/.../agentteams-manager -> /root/manager-workspace
# controller
/Users/.../agentteams-manager -> /root/agentteams-fs/agents/manager
After writing `reasoning=false` locally and pushing `manager/openclaw.json`, 100ms poll of local vs two MinIO keys:
t0 local=false manager/=false agents/manager/=false
t=3.23 local=false manager/=false agents/manager/=true ← Controller PutObject
t=3.49 local=true manager/=false agents/manager/=true ← live workspace overwritten
Only field that changes in the flip (diff of openclaw.json):
- "reasoning": false
+ "reasoning": true
Manager cannot update the Controller SoT path (explains why skill-only MinIO push is not enough):
Pushed openclaw.json to agentteams/agentteams-storage/manager/openclaw.json
WARN: failed to push openclaw.json to agentteams/agentteams-storage/agents/manager/openclaw.json
# mc: Insufficient permissions to access this path .../agents/manager/openclaw.json
Flip still happens after killing Manager’s own `mc` sync loops — so the writer is Controller reconcile / shared-mount write, not Manager `start-manager-agent` MinIO→Local alone.
```
### Component
Controller (Manager config) / Manager Agent (model-switch)
### Version / Commit
v1.2.0-class embedded; found while validating #1126 / #1127
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Bewertung
Dieses Issue wurde noch nicht bewertet.