feat: add agent skills and use_agent to /strands command#48
feat: add agent skills and use_agent to /strands command#48agent-of-mkmeral wants to merge 2 commits intostrands-agents:mainfrom
Conversation
|
I don't want to set up separate workflows. it should be under the same strands command so it works in all repos where we have strands command already |
Integrates new capabilities directly into the existing /strands command instead of a separate /strands-beta workflow, so all repos with /strands get the new features automatically. Changes to existing files: - process-input.cjs: Add adversarial-test and release-digest modes - agent_runner.py: Add use_agent tool + AgentSkills plugin loading - action.yml: Checkout and copy agent-skills to working directory New files: - agent-skills/task-adversarial-tester/SKILL.md - agent-skills/task-release-digest/SKILL.md New /strands commands: - /strands adversarial-test — Break PRs with edge case tests - /strands release-digest — Generate release digests with sub-agents Existing commands unchanged. Skills load gracefully — if agent-skills/ directory doesn't exist or AgentSkills plugin isn't available, the agent works exactly as before.
7e65ade to
d2cc8ed
Compare
|
Reworked per your feedback — everything is now integrated into the existing What changedBefore (6 new files, 0 modifications):
After (3 modifications, 2 new files):
How it worksAny repo with
If the |
|
no, so i want like a separate agent with it's own runner, sowe can add more tools, plugins to it. but our changes should have no impact to the normal agent. that said, i want it to use the same pipeline overall, so don't recreate everything. like make agent creation configurable or something. so |
Reworked per @mkmeral's feedback — the beta agent is a separate agent with its own runner, but goes through the same pipeline. Design: - agent_runner.py: UNCHANGED from main (zero impact on normal agent) - beta_agent_runner.py: NEW — imports shared infra from agent_runner.py, adds AgentSkills plugin + use_agent tool - process-input.cjs: Routes /strands beta <command> through same pipeline with agent_type='beta' flag - action.yml: Reads agent_type, conditionally runs the right runner and only copies agent-skills for beta How it works: - /strands <command> → standard agent (exactly as before) - /strands beta <command> → beta agent (skills + use_agent + extensible) - Same pipeline: parse → run → finalize - Beta-only modes (adversarial-test, release-digest) auto-promote to beta
|
Reworked per your feedback @mkmeral — the beta agent now has its own runner, but uses the same pipeline. What changed in this commit
The flowSame pipeline (parse → run → finalize). Different agent. Diff vs main5 files changed, 511 insertions, 10 deletions. Zero modifications to |
Summary
Adds a beta agent with its own runner to the
/strandscommand. The beta agent has extended capabilities (skills, sub-agents) while the standard agent remains completely unchanged.Design: Same pipeline, different agent
Both go through the same pipeline: parse → run → finalize. The only difference is which runner executes.
Changes to Existing Files
agent_runner.pyprocess-input.cjs/strands beta ..., setagent_typeflag, route modesaction.ymlagent_type, conditionally run the right runner + skills setupNew Files
beta_agent_runner.pyagent_runner.py, adds AgentSkills plugin +use_agenttoolagent-skills/task-adversarial-tester/SKILL.mdagent-skills/task-release-digest/SKILL.mdNew Commands
/strands beta/strands beta adversarial-test/strands beta release-digest/strands beta implement/strands beta reviewExisting commands (
/strands,/strands implement,/strands review,/strands refine,/strands release-notes) are completely unchanged.How the beta agent differs from standard
agent_runner.pybeta_agent_runner.pyuse_agentArchitecture
beta_agent_runner.pyimports shared infrastructure fromagent_runner.py:_get_all_tools()— base tools (beta adds on top)_setup_langfuse_telemetry()— telemetry setup_get_trace_attributes()— trace attributes_send_eval_trigger()— eval triggersSTRANDS_MODEL_ID, etc.)This means the beta agent automatically inherits any improvements to the shared infra without duplication.
Closes the intent from #43. cc @mkmeral