ao-spawn-minimax-worker
Spawn an Agent-Orchestrator (AO) worker that uses the minimax CLI with the M3 model (via the minimax Anthropic-compatible API). Use when: the task should be dispatched to a worker that uses minimax M3 specifically, when the user says 'use minimax', 'use the M3 model', 'use the minimax worker', 'ao spawn minimax', or 'minimax CLI for AO'. This skill verifies the env (MINIMAX_MODEL, MINIMAX_API_KEY, ANTHROPIC_BASE_URL) end-to-end, then runs `ao spawn --agent minimax`. Verified 2026-06-13 against session ao-6355 / PR #678.
- License 许可
- MIT
- 最近更新
- 2026-11-11
- Stars
- ★ 6
- Forks
- 0
01 前言 Front Matter
- name
- ao-spawn-minimax-worker
- context
- Verified end-to-end on 2026-06-13 with session ao-6355 and PR https://github.com/jleechanorg/agent-orchestrator-ts/pull/678. The agent-minimax plugin (packages/plugins/agent-minimax/src/index.ts) wraps the `claude` CLI with ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic and propagates MINIMAX_MODEL from the tmux env. modelByCli.minimax.model=MiniMax-M3 in ~/agent-orchestrator.yaml makes this the default. The skill is intentionally a thin pointer — the canonical implementation is the AO plugin source + the user's `~/agent-orchestrator.yaml`.
- description
- Spawn an Agent-Orchestrator (AO) worker that uses the minimax CLI with the M3 model (via the minimax Anthropic-compatible API). Use when: the task should be dispatched to a worker that uses minimax M3 specifically, when the user says 'use minimax', 'use the M3 model', 'use the minimax worker', 'ao spawn minimax', or 'minimax CLI for AO'. This skill verifies the env (MINIMAX_MODEL, MINIMAX_API_KEY, ANTHROPIC_BASE_URL) end-to-end, then runs `ao spawn --agent minimax`. Verified 2026-06-13 against session ao-6355 / PR #678.
- when_to_use
- Use when the user asks to spawn an AO worker on minimax M3, or any time `ao spawn` is needed and the model choice is minimax. Do NOT use for: direct `claude` CLI runs (use shell directly), or for AO workers that should use a different model (use the default `ao spawn` with no `--agent` flag). NOT for fixing 401 errors (use `minimax-401-diagnostic` instead).
- allowed-tools
- [ "Bash", "Read", "Write", "Edit" ]
03 SKILL.md 正文
ao-spawn-minimax-worker
What it does
Spawns an AO worker that uses the minimax CLI (an Anthropic-compatible adapter) with the M3 model. Verifies env, then dispatches.
When NOT to use this skill
- The user wants a direct
claudeCLI run (use the shell — no AO) - The user wants a different model (just
ao spawn "<task>"with no--agentflag) - The user is debugging a 401 from the minimax API → use
minimax-401-diagnosticinstead - The user wants a non-AO worker (e.g.,
claude -p,codex,opencode) → use those CLIs directly
Pre-flight checks (do these BEFORE spawning)
# 0. CRITICAL — Check that AO will actually source bashrc.
# An explicit envSource: [] in agent-orchestrator.yaml overrides the default
# of ["~/.bashrc"] and silently disables bashrc sourcing, which means
# MINIMAX_API_KEY never reaches the plugin (bd-g884 regression / 2026-06-13).
# Refuse to spawn if this is wrong; do not work around it.
# Regex is indented-anchored (`^\s*envSource:`) so it matches whether the
# key sits at column 0 or nested under `defaults:` / a project block.
if grep -E '^\s*envSource:\s*\[\s*\]\s*$' ~/agent-orchestrator.yaml >/dev/null 2>&1; then
echo "BLOCKER: ~/agent-orchestrator.yaml has 'envSource: []' — AO will NOT"
echo " source bashrc, so MINIMAX_API_KEY will be missing. Fix the"
echo " config first (replace with [\"~/.bashrc\"] or delete the line"
echo " to restore the default). Aborting spawn."
exit 1
fi
# 1. Confirm minimax model is set in bashrc
grep "^export MINIMAX_MODEL" ~/.bashrc
# 2. Confirm API key resolves in the current shell (sanity check only — the
# real check is (0) above, because the spawn happens in a different process)
[ -n "$MINIMAX_API_KEY" ] && echo "OK: MINIMAX_API_KEY set in current shell" || echo "WARN: MINIMAX_API_KEY missing in current shell (bashrc may still provide it)"
# 3. Confirm endpoint reachable
curl -s -o /dev/null -w "minimax endpoint: HTTP %{http_code}\n" -m 5 https://api.minimax.io/anthropic
# 4. Resolve MINIMAX_ANTHROPIC_BASE_URL — fall back to the canonical value if
# the calling shell didn't inherit it from bashrc. This unblocks shells
# that source a minimal env (CI runners, fresh tmux, etc.) where the
# extra var is missing even though the standard MiniMax env is valid.
: "${MINIMAX_ANTHROPIC_BASE_URL:=https://api.minimax.io/anthropic}"
export MINIMAX_ANTHROPIC_BASE_URL
echo "MINIMAX_ANTHROPIC_BASE_URL=$MINIMAX_ANTHROPIC_BASE_URL"
# 5. Quick live test of M3 model — uses $MINIMAX_API_KEY from the calling shell.
# If (0) is OK but (5) returns 401, the issue is NOT envSource; see
# minimax-401-diagnostic skill instead.
curl -s -m 30 -X POST "${MINIMAX_ANTHROPIC_BASE_URL}/v1/messages" \
-H "Content-Type: application/json" \
-H "x-api-key: $MINIMAX_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{"model":"MiniMax-M3","max_tokens":20,"messages":[{"role":"user","content":"Reply with: PONG_M3_OK"}]}' \
| python3 -c "import json,sys; d=json.loads(sys.stdin.read()); print('model:', d.get('model','?')); print('text:', d.get('content',[{}])[0].get('text','?').strip())"
Expected:
- Pre-flight (0) must pass — the line must be absent,
["~/.bashrc"], or any non-empty array (matches at any indent) MINIMAX_MODEL=MiniMax-M3(the user's bashrc already has this — see SOUL.md)- HTTP 301 (the API root redirects; that's normal)
- (4)
MINIMAX_ANTHROPIC_BASE_URLresolves tohttps://api.minimax.io/anthropic(either from bashrc or the default fallback) - Direct API call returns
model: MiniMax-M3andtext: PONG_M3_OK
Spawn
# From a project root that has an agent-orchestrator.yaml with modelByCli.minimax configured
ao spawn --agent minimax "<task description>"
# Example: smoke test the minimax worker
ao spawn --agent minimax "Reply with: PONG_M3_FROM_MINIMAX_WORKER. Do nothing else."
# Example: actual coding task
ao spawn --agent minimax "Fix the bug in src/foo.ts where bar() returns null"
AO will:
- Create a worktree (or use existing project worktree)
- Launch a tmux session named
953501c04ccc-ao-XXXX - Inject the
agent-minimaxplugin env:ANTHROPIC_BASE_URL,ANTHROPIC_MODEL=MiniMax-M3,ANTHROPIC_API_KEY,ANTHROPIC_AUTH_TOKEN - Run
claude --dangerously-skip-permissionsin the worktree - Auto-create a PR once the worker makes commits
Verify the worker actually uses M3
# After ~10s, check the tmux env (proves the plugin injected M3)
tmux show-environment -t 953501c04ccc-ao-XXXX 2>&1 | grep -E "ANTHROPIC_BASE_URL|ANTHROPIC_MODEL|MINIMAX_API_KEY"
# Expected: ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic
# ANTHROPIC_MODEL=MiniMax-M3
# (ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN present but redacted)
# Read the worker's screen
tmux capture-pane -t 953501c04ccc-ao-XXXX -p | tail -30
# Expected: a response from MiniMax-M3, with "ctx ##-------- XX%" in the footer
Common pitfalls (caught in production 2026-06-13)
Drift: claudem() shell function is hardcoded to M2.5
~/.bashrc has claudem() { ... ANTHROPIC_MODEL="MiniMax-M2.5" ... claude --model MiniMax-M2.5 ... }. If you call claudem directly (outside of AO), you get M2.5, not M3.
For AO workers this doesn't matter — AO uses the plugin, not claudem. But if you're verifying with the shell, use raw claude --model MiniMax-M3 ... instead of claudem.
Drift: launchd plists hardcode M2.7
launchd/ai.agento.lifecycle-all.plist.template and ai.agento.health.plist.template both set <key>MINIMAX_MODEL</key><string>MiniMax-M2.7</string>. The lifecycle worker spawned from these will use M2.7, NOT M3.
Workaround: spawn via ao spawn --agent minimax from a shell, which uses process.env.MINIMAX_MODEL (= MiniMax-M3 from bashrc).
Proper fix (not done in this turn): update the two plist templates to use MiniMax-M3 or read from a sed-substituted var.
Drift: autonomous-harness CLI defaults hardcode M2.7
autonomous-harness/src/{cli,harness-state,orchestrator}.ts all default minimax/MiniMax-M2.7. Anyone running the autonomous-harness without overriding --generator-model will get M2.7.
401 errors
If the worker shows /login · API Error: 401 in its tmux pane, the API key is redacted. Use minimax-401-diagnostic.
Verification (proven by this skill)
| Step | Result | Date |
|---|---|---|
| Direct M3 API call | model: MiniMax-M3, text: PONG_M3_OK |
2026-06-13 |
ao spawn --agent minimax |
Session ao-6355 created |
2026-06-13 |
| Plugin env in tmux | ANTHROPIC_BASE_URL=https://api.minimax.io/anthropic, ANTHROPIC_MODEL=MiniMax-M3, key resolved |
2026-06-13 |
| Worker model identity | Cogitated for 7s → PONG_M3_FROM_MINIMAX_WORKER |
2026-06-13 |
| PR auto-created | https://github.com/jleechanorg/agent-orchestrator-ts/pull/678 | 2026-06-13 |
Canonical sources
- Plugin source:
~/project_agento/agent-orchestrator/packages/plugins/agent-minimax/src/index.ts - User config:
~/agent-orchestrator.yaml(lines ~119-128:modelByCli.minimax.model: MiniMax-M3) - Companion skill (401):
~/.claude/skills/minimax-401-diagnostic/SKILL.md - AGENTS.md (fork):
~/project_agento/agent-orchestrator/AGENTS.md(Provider Agent Plugins section) - This skill (pointer):
~/.hermes_prod/skills/ao-spawn-minimax-worker/SKILL.md(and~/.hermes/skills/...)
Pitfalls (anti-pattern guards)
- Don't use
claudemto verify M3 — it has M2.5 hardcoded; use rawclaude --model MiniMax-M3or just check tmux env - Don't trust the autonomous-harness defaults (M2.7); pass
--generator-model minimax/MiniMax-M3explicitly - Don't modify
~/Library/LaunchAgents/ai.agento.lifecycle-all.plistto fix the M2.7 → M3 drift; update the.templatefile and re-runsetup-launchd.shinstead - Don't spawn without verifying env first — if
MINIMAX_API_KEYis missing, the worker will hit 401 and the babysit loop will be wasted
04 同仓库更多 Skills
instinct
Use when the user invokes /instinct or /in, or asks to "message Instinct", "ask Instinct", "tell Instinct", "check Instinct", or read replies from the configured peer assistant. iMessage first, WhatsApp Web as fallback.
hr
Compatibility alias for history-resume; produce the same fresh-state, provenance-aware resume briefing.
history-resume
Resume briefing for the current repository branch or worktree using fresh state and admitted history sources.
grok
Alias for the canonical grokbot browser conversation workflow; /grok talks to the Grok bot the same way /dot talks to Dot.
codexa-bench
Compare `codexa` and normal `codex` on a fair split of comparable work by default; use `--strict` for duplicate runs of the exact same task.
frontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.