feat: autonomous release digest agents with use_agent sub-agents#43
feat: autonomous release digest agents with use_agent sub-agents#43agent-of-mkmeral wants to merge 6 commits intostrands-agents:mainfrom
Conversation
…release digest orchestration - Add adversarial tester SOP for breaking code with evidence-based testing - Add release digest orchestrator SOP for weekly coordinated analysis - Add orchestrator module with security limits for agent-to-agent dispatch - Add template workflows for autonomous execution and control loop - Update input parser to support new agent types (adversarial-test, release-digest) - Update agent runner to integrate orchestrator tools - Update README with comprehensive documentation Security controls: - Max concurrent sub-agents (default: 3) - Max total agents per run (default: 5) - Per-agent timeout (default: 30min) - Cooldown between dispatches (default: 10s) - Rate limit checking before dispatch - Self-trigger prevention for agent accounts Resolves: agent-of-mkmeral/strands-coder#33
…ove hourly control loop Addresses feedback from issue strands-agents#33 comment: 1. Remove hourly control loop (strands-control.yml) - Not needed for our use case. The Wednesday 10am cron is directly in strands-autonomous.yml — no AGENT_SCHEDULES machinery required. 2. Update model to Opus 4.6 with adaptive thinking and 1M context - Model: global.anthropic.claude-opus-4-6-v1 - Max tokens: 128,000 (was 64,000) - Thinking: adaptive (was fixed 8k budget) - Removed STRANDS_BUDGET_TOKENS constant - Matches strands-coder settings 3. Separate sub-agent workflows for isolated testing - strands-adversarial-test.yml — adversarial testing agent - strands-release-notes-agent.yml — release notes generation - strands-docs-gap.yml — documentation gap analysis - Each can be triggered independently via workflow_dispatch - Orchestrator dispatches to dedicated workflows 4. Bug fix: _get_all_tools() had dead code after return statement - Orchestrator tools were never actually loaded - Fixed to return after appending all tools Files: 6 modified, 3 new, 1 deleted
Major architecture simplification: - Delete orchestrator.py (589 lines) — no more workflow dispatch - Delete 3 sub-agent workflows — all runs in-process now - Add use_agent from strands_tools to agent_runner.py - One agent per package (sdk-python, sdk-ts, tools, evals) - Sub-agents spawned via use_agent with own system prompts - No PAT_TOKEN needed, no self-trigger prevention needed - Update model to Opus 4.6 with adaptive thinking Files deleted: - scripts/python/orchestrator.py - workflows/strands-adversarial-test.yml - workflows/strands-release-notes-agent.yml - workflows/strands-docs-gap.yml Refs: agent-of-mkmeral/strands-coder#33
Addresses review feedback from @Unshure and @mkmeral: - Remove use_agent tool from agent_runner.py (not yet quality-tested for all agents) - Revert _get_all_tools() to direct return style - Remove strands-autonomous.yml workflow Keeps valid improvements: - Model upgrade: Opus 4.5 → Opus 4.6 - Thinking mode: enabled+budget → adaptive - SOPs and command additions remain (they're docs/config, not runtime)
| STRANDS_MODEL_ID = "global.anthropic.claude-opus-4-5-20251101-v1:0" | ||
| STRANDS_MAX_TOKENS = 64000 | ||
| STRANDS_BUDGET_TOKENS = 8000 | ||
| # Strands configuration constants — matches strands-coder settings |
There was a problem hiding this comment.
| # Strands configuration constants — matches strands-coder settings | |
| — matches strands-coder settings |
is nto relevent; this should be standalone
There was a problem hiding this comment.
Good catch — removed the "matches strands-coder settings" reference in de739b5. This runner is standalone and shouldn't reference strands-coder.
There was a problem hiding this comment.
The PR mention:
A single orchestrator agent runs weekly (Wednesday 10am UTC)
Where is this?
There was a problem hiding this comment.
Good catch — the strands-autonomous.yml workflow was removed in bca2160 per @Unshure and @mkmeral's earlier feedback (concern about adding use_agent to every agent without quality testing). The PR description is now stale on that point. The SOPs and command additions remain as docs/config for future use, but the automated weekly cron trigger is no longer part of this PR.
I'll update the PR description to reflect the current state.
There was a problem hiding this comment.
Where are example runs of these sops?
There was a problem hiding this comment.
No example runs yet — these SOPs were written ahead of the automated workflow, which was subsequently removed from this PR. The adversarial-tester SOP has been tested separately in strands-coder-private (see issues #41, #42), but there are no runs specifically using the /strands adversarial-test or /strands release-digest commands in this repo.
Happy to either:
- Remove the SOPs from this PR and ship them separately once we have real example runs, or
- Keep them as-is since they're just docs/config and not runtime code
Up to you and @mkmeral on preference.
Address @zastrowm's review feedback — this agent runner is standalone and shouldn't reference strands-coder.
Summary
Adds agent capabilities to strands-command: model upgrade (Opus 4.5 → 4.6 with adaptive thinking), new SOPs for adversarial testing and release digest, and new
/strandscommands.What's Included
agent-sops/task-release-digest.sop.mduse_agentfor per-package sub-agents)agent-sops/task-adversarial-tester.sop.mdscripts/python/agent_runner.pyscripts/javascript/process-input.cjsadversarial-test,release-digestKey Design Decisions
Autonomous workflow was removed per @Unshure and @mkmeral's feedback —use_agentshouldn't be added to every agent without quality testing firstCommands
/strands adversarial-test— Run adversarial testing on a PR/strands release-digest— Trigger a release digest manuallycc @mkmeral — per your request from agent-of-mkmeral/strands-coder#33
Related: mkmeral/devtools#1