Skip to content

feat: autonomous release digest agents with use_agent sub-agents#43

Open
agent-of-mkmeral wants to merge 6 commits intostrands-agents:mainfrom
mkmeral:feat/autonomous-agents
Open

feat: autonomous release digest agents with use_agent sub-agents#43
agent-of-mkmeral wants to merge 6 commits intostrands-agents:mainfrom
mkmeral:feat/autonomous-agents

Conversation

@agent-of-mkmeral
Copy link
Copy Markdown

@agent-of-mkmeral agent-of-mkmeral commented Mar 20, 2026

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 /strands commands.

What's Included

File Purpose
agent-sops/task-release-digest.sop.md Release digest SOP (uses use_agent for per-package sub-agents)
agent-sops/task-adversarial-tester.sop.md Adversarial testing SOP (used as sub-agent system prompt)
scripts/python/agent_runner.py Model upgrade: Opus 4.5 → 4.6, thinking mode: enabled+budget → adaptive
scripts/javascript/process-input.cjs New commands: adversarial-test, release-digest

Key Design Decisions

  • Model: Opus 4.6 with adaptive thinking and 128K max tokens
  • SOPs as docs/config: The SOPs and command additions are documentation for future use — no automated workflow is included in this PR
  • Autonomous workflow was removed per @Unshure and @mkmeral's feedback — use_agent shouldn't be added to every agent without quality testing first

Commands

  • /strands adversarial-test — Run adversarial testing on a PR
  • /strands release-digest — Trigger a release digest manually

cc @mkmeral — per your request from agent-of-mkmeral/strands-coder#33

Related: mkmeral/devtools#1

strands-agent and others added 4 commits March 19, 2026 21:58
…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
mkmeral
mkmeral previously approved these changes Mar 20, 2026
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
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Strands configuration constants — matches strands-coder settings
matches strands-coder settings

is nto relevent; this should be standalone

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch — removed the "matches strands-coder settings" reference in de739b5. This runner is standalone and shouldn't reference strands-coder.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR mention:

A single orchestrator agent runs weekly (Wednesday 10am UTC)

Where is this?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where are example runs of these sops?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

  1. Remove the SOPs from this PR and ship them separately once we have real example runs, or
  2. 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants