byan-orchestrate
暂无简介
- License 许可
- MIT
- 最近更新
- 2026-09-14
- Stars
- ★ 8
- Forks
- 0
02 资源文件 12
- 参考文档references/advanced.md15.4 KB
- 参考文档references/analysis.md10.5 KB
- 参考文档references/core_concepts.md8.3 KB
- 参考文档references/time_evolution.md13.5 KB
- 参考文档references/visualization.md8.8 KB
- 脚本scripts/_common.py11.8 KB
- 脚本scripts/convergence_sweep.py12.1 KB
- 脚本scripts/qobj_model_validator.py10.7 KB
- 脚本scripts/result_audit.py12.2 KB
- 脚本scripts/solver_config_planner.py10.9 KB
- 脚本scripts/steady_state_spectrum_planner.py7.8 KB
- 脚本scripts/two_level_simulation.py12.9 KB
03 SKILL.md 正文
BYAN Advanced Orchestrator
You compose three existing building blocks into one multi-role flow :
| Block | Role |
|---|---|
byan_dispatch MCP tool |
Per-task strategy (main-thread / agent-subagent-worktree / mcp-worker) from the score + model tier by NATURE (haiku for exploration, else inherit the session model) + complexity score |
byan-hermes-dispatch skill |
Specialist lookup (architect, dev, analyst, …) from a routing table |
party-mode-native workflow |
Parallel spawn via Agent tool + worktree + coordination JSON |
Your job : minimize total tokens while keeping the deliverable correct. That means picking the cheapest model that can do each role, parallelizing where safe, and never spawning a subagent when inline is enough.
Protocol
1. Decompose the user task into roles
Output a role list of the form :
[
{ "role": "analyst", "goal": "understand market/users", "parallelizable_with": ["architect"] },
{ "role": "architect", "goal": "pick tech stack + shape", "parallelizable_with": ["analyst"] },
{ "role": "dev", "goal": "implement feature X", "parallelizable_with": [] },
{ "role": "quinn", "goal": "validate with tests", "parallelizable_with": [] }
]
Ask the user to validate the role list before spawning (show it as a table). Do NOT auto-execute a 4-agent team without a yes.
2. Pick model per role (token optimization)
Use this a priori mapping — override only if the task clearly needs more :
| Role category | Default model | Rationale |
|---|---|---|
| analyst, pm, sm, ux-designer, tech-writer, brainstorming-coach, storyteller | sonnet | Text structuring, not deep reasoning |
| dev, quick-flow-solo-dev | sonnet | Code generation, mid complexity |
| architect, quinn, tea, creative-problem-solver | opus | Deep reasoning, trade-offs |
| carmack, rachid, patnote | haiku | Narrow mechanical tasks |
Then call byan_dispatch with each role's goal (and nature when known). Use its score for the STRATEGY only (score < 15 → inline, no subagent ; 15-39 → subagent/worker ; ≥ 40 → keep the heavy role in the main thread) and its nature-based model as the tier signal. The score sets WHERE the role runs, not WHICH model — keep protected roles (verify/analysis/implement) off haiku regardless of size, and avoid pinning a role up to opus on size alone. The per-role table above is the a-priori floor; byan_dispatch's nature model refines it.
3. Compute the execution plan
For each role, combine the model and the dispatch strategy to produce :
{
"role": "dev",
"model": "sonnet",
"strategy": "agent-subagent-worktree",
"score": 28,
"parallelizable_with": ["quinn"],
"estimated_tokens": 8000
}
estimated_tokens : rough = model_boot_tokens + goal.length / 4 * 3. model_boot_tokens ≈ 5000 (Haiku), 7000 (Sonnet), 10000 (Opus).
Sum over all roles = session budget estimate. Show this to the user before spawning.
4. Spawn
Group roles by parallelizable_with graph. For each parallel cluster :
- If cluster has N > 1 roles AND all use
agent-subagent-worktreestrategy → use the party-mode-native workflow :coordination.initSession(roles, …), then dispatch all Agent tool calls in a single message. - If cluster has N = 1 OR strategy =
main-thread→ execute inline in the current turn.
On a 2+ role spawn, open the shared board for visibility (the kanban family is built for exactly this) : after coordination.initSession, call byan_kanban_create({ sessionId: <the party-mode session id> }), then once per role byan_kanban_add({ sessionId, card: { id: <role>, title: <role> } }). The card id is the ROLE NAME — unique per role, and the key the move step references; do NOT reuse the session id (the cards share one board, ids must differ). A multi-agent run without a board is invisible to the user.
- If strategy =
mcp-worker→ spawn an Agent tool call WITHOUT worktree (faster boot, single-turn) ; set the Agent's model to the role's nature-basedmodel(haiku for exploration, omit otherwise to inherit the session model).
For each Agent tool call, the prompt must start with :
You are acting as the <role> BMAD agent. Load your persona from
.claude/agents/bmad-<role>.md (read it first, then respond in
character). Task: <goal>. Deliverables: <list>. Report back as JSON
with status/summary/files_changed per the party-mode-native contract.
5. Aggregate and report
After all subagents return (or inline roles finish), read each agent-<role>.json via coordination.readAgentReport (report contract : { status: ok|partial|failed, summary, files_changed, next_steps }). Then, for EACH returned role (post all of them — an ok post writes an empty blockers array, which resets that role's streak ; skipping ok roles breaks the streak math) :
- Post its standup :
byan_standup_post({ sessionId, agent: <role>, did: <report.summary>, blockers: <report.status is 'failed' or 'partial' ? [report.summary] : []>, next: <(report.next_steps || []).join('; ')> }). The report contract has NOblockersfield — synthesize it from a non-okstatus (anokrole posts[]). - Move its card :
byan_kanban_move({ sessionId, cardId: <role>, toColumn: <report ok ? 'review' : 'blocked'>, blocker_reason: <report ok ? omit : report.summary> }).cardIdis the role name set at add time. Usereview, notdone, on success — the human gate owns completion;doneis the user's call, not the orchestrator self-certifying.
Then surface stuck roles : byan_standup_blocked({ sessionId, minStreak: 1 }) — minStreak: 1 because the aggregate posts exactly one stand-up per role, so a single blocked/failed/partial report should flag (a 2-in-a-row streak is unreachable in a single pass). If it returns flagged roles, raise them in the report. Finally write summary.md via coordination.writeSummary and report to the user :
| Role | Model | Strategy | Tokens spent | Outcome |
|---|---|---|---|---|
| analyst | sonnet | worktree | 7200 | ok |
| architect | opus | worktree | 11500 | ok |
| dev | sonnet | worktree | 9800 | ok |
| quinn | opus | main-thread | 6400 | ok |
Total tokens : 34900. Deliverable : <link to aggregated output>.
Invariants
- Never spawn without showing the plan first. The user must see role × model × strategy before a single Agent tool call fires.
- Never default to opus. Opus is opt-in via high complexity score or explicit role mapping. Default = sonnet, upgrade only with justification in the plan.
- Never parallel-spawn roles that write to the same paths. If file scopes overlap, serialize them even if
parallelizable_withsuggests otherwise. - Never ship a plan without
estimated_tokensper role. Budget visibility is the whole point. - Open the board on every 2+ role spawn.
byan_kanban_create+ a card per role ; a multi-agent run without a board hides the work from the user. - Post every role's standup at aggregate,
okincluded. Posting only failed roles breaks the blocked-streak reset and re-hides a stuck agent — the exact silence this wiring removes.
04 同仓库更多 Skills
byan
BYAN local project skill. Use when working in the BYAN repo, invoking BYAN agents/workflows/commands, enforcing BYAN Strict Mode, or needing the portable BYAN filesystem map.
byan-yanstaller
Yanstaller - Multi-Platform BYAN Installer Agent Role: Installation Expert + Platform Detection Specialist + Zero-Config Automation. Invoke when user mentions : AUTO, DETECT, HELP, EXIT.
byan-tea-tea
tea agent
byan-suitability
Advisory model-suitability ledger — record adversarial verdicts, read learned ratings, human decides downgrades
byan-strict
Enforcement mode that prevents scope downgrade and forces the agent to self-verify its work against the originally locked request before delivering. Invoke when the user asks for a production deliverable, a complete app, a filled contract from a template, or uses any activation keyword (`prod`, `production`, `client`, `contrat`, `template officiel`, `livrable`, `deliverable`, `mise en production`, `release`). Enforces scope-lock, N>=3 self-verify passes, and a 95% confidence floor on hard claims.
byan-skeptic
Scientific Claim Challenger and Epistemic Guard