Files
Agent-System-Dev/AGENT-EXECUTION.md
T

116 lines
4.7 KiB
Markdown

# Project Agent Execution
Project-local execution routing configuration. This document is the single
authority for which Agent CLI profiles may implement, repair, test, or review
bounded units. Human-readable notes may appear outside the machine block; the
parser accepts exactly one `agent-execution` fenced block.
U3's execution controller and U4's project wiring are integrated. This file is
the execution-routing authority for implementation, repair, test, and review.
Normal implementation, repair, and test routes stay Cursor, Antigravity
(`agy`), and PI. Each of those profiles may be attempted up to
`max_attempts_per_profile`, which is exactly 3 whenever `emergency_profile`
is configured. Only after those candidates safely exhaust their attempts does
the enabled emergency `codex` profile run once. Codex remains out of the three
normal role lists and may also appear in review. `fallback_to_host` is
`never`: the controller does not emit `host-fallback-authorized` and does not
increment host fallback authorizations. Safe exhaustion without an emergency
candidate ends `unavailable` or `blocked`, and that result does not authorize
the host to write the unit. The legacy value `all-unavailable` remains
parseable and likewise grants no host write authority. Cursor uses
`cursor-agent-stable`. `model: auto` lets a CLI use its configured default
model; any other value is passed to that CLI as its model selector. The
`integration` block declares the host-exempt paths and the transport, admission,
and cleanup entry points.
```agent-execution
schema: agent-execution/v1
execution:
fresh_process_per_unit: true
permission: run-everything
fallback_to_host: never
max_parallel: 3
timeout_seconds: 7200
idle_timeout_seconds: 600
summary_bytes: 16384
raw_output_bytes: 10485760
max_attempts_per_profile: 3
emergency_profile: codex
roles:
implementation: [cursor, antigravity, pi]
repair: [cursor, antigravity, pi]
test: [pi, antigravity, cursor]
review: [pi, antigravity, cursor, codex]
profiles:
cursor:
adapter: cursor
executable: cursor-agent-stable
model: auto
enabled: true
antigravity:
adapter: antigravity
executable: agy
model: auto
enabled: true
pi:
adapter: pi
executable: pi
model: minimax-cn/MiniMax-M3
enabled: true
codex:
adapter: codex
executable: codex
model: auto
enabled: true
integration:
exempt_paths: [".task/**", "docs/superpowers/specs/**", "docs/superpowers/plans/**"]
transport:
command: scripts/agent-exec apply
admission:
command: scripts/agent-exec admit
cleanup:
command: make task-finish
```
## Model preferences (project choice)
Generic rules for bounded packets, context budgeting, phase handoff and
requested-versus-effective model identity live in the shared
[standards/agent-execution.md](deps/development-guidelines/standards/agent-execution.md)
and [workflows/handoff.md](deps/development-guidelines/workflows/handoff.md);
project procedure is in
[policy/delivery.md](policy/delivery.md#有界单元包上下文与阶段交接). This
section records only this project's choices.
- Planning, design and implementation plans: Codex or Claude when available,
in the host or a fresh CLI session. This is a preference, not a routing role.
- Bounded implementation, repair and test units: the existing normal
candidates in the configured role order above. Requested models:
- PI: `minimax-cn/MiniMax-M3`, passed as `--model provider/id`. PI
actual events have reported `minimax-cn` / `MiniMax-M3` and the local
offline catalog lists that profile; each run still records the effective
model from that run's events.
- Cursor: `auto` (Cursor Auto).
- agy: Gemini 3.8 Flash is requested, but its exact selectable model ID and
effective identity are `NOT_VERIFIED` (the `agy` models query needs a
login that was not available). The profile therefore stays `model: auto`
until an observed model ID exists; do not claim Gemini 3.8 Flash is active.
- Assigning a different candidate or model to a unit needs a concrete,
task-specific reason recorded in the task record, and stays within the
existing roles and candidate lists. It is not a silent permission or routing
change. Role lists, attempt limits, timeouts, output limits, the single
Codex emergency attempt, stage isolation and `fallback_to_host: never` are
unchanged by these preferences.
- A requested model is prompt/config intent. Only the model reported in a
run's actual event envelope counts as effective; when the CLI does not report
it, record `not-observable`. Unknown context capacity, a missing agy login
or missing automatic compaction are recorded facts, not global fail-closed
conditions.