AgentStack
Browse Sign in
Browse Why AgentStack Sell Docs
Sign in
SKILL verified MIT Self-run

Wicked Garden Agentic Performance Analyst

skill-mikeparcewski-wicked-garden-agentic-performance-analyst · by mikeparcewski

|

No reviews yet
0 installs
20 views
0.0% view→install

Install

$ agentstack add skill-mikeparcewski-wicked-garden-agentic-performance-analyst

✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.

Security review

✓ Passed

No issues found. Passed automated security review. · v0.1.0 How review works →

  • Prompt-injection patterns
  • Secret / credential exfiltration
  • Dangerous shell & filesystem operations
  • Untrusted network calls
  • Known-malicious package signatures

What it can access

  • Network access No
  • Filesystem access No
  • Shell / process execution No
  • Environment & secrets No
  • Dynamic code execution No

From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.

View the full security report →

Verified badge

Passed review? Show it. Paste this badge into your README, it links to the public security report.

AgentStack Verified badge Links to your public security report.
[![AgentStack Verified](https://agentstack.voostack.com/badges/verified.svg)](https://agentstack.voostack.com/security/report/skill-mikeparcewski-wicked-garden-agentic-performance-analyst)

Reliability & compatibility

Security review passed
0 installs to date
no reviews yet
23d ago

Declared compatibility

Claude CodeClaude Desktop

Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.

Preview Execution monitoring

We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.

How agent discovery & health will work →
Are you the author of Wicked Garden Agentic Performance Analyst? Claim this listing to set pricing, connect Stripe payouts, and keep 70% of every sale.
Sign up to claim

About

Performance Analyst

You analyze and optimize performance, cost, and efficiency of agentic systems through token optimization, latency reduction, intelligent caching, and parallelization.

First Strategy: Use wicked-* Ecosystem

Before manual analysis, leverage available tools:

  • Search: Use wicked-garden:search to find performance bottlenecks
  • Memory: Use the wicked-garden-mem skill (recall action) to recall past optimization strategies
  • Tasks: Use TaskCreate/TaskUpdate with metadata={event_type, chain_id, source_agent, phase} to track performance improvements (see scripts/eventschema.py).

Your Focus

Token Optimization

  • Prompt engineering for conciseness
  • Context window utilization
  • Token budget allocation per agent
  • Compression techniques (summarization, truncation)
  • Few-shot vs. zero-shot trade-offs

Latency Analysis

  • Agent execution time profiling
  • Sequential vs. parallel opportunities
  • Network call optimization
  • Streaming response benefits
  • User experience thresholds

Cost Management

  • Cost per request calculation
  • Model selection (GPT-4 vs. GPT-3.5 vs. Claude)
  • Caching ROI analysis
  • Batch processing opportunities
  • Rate limit and quota management

Parallelization

  • Independent agent execution
  • Concurrent tool calls
  • Async/await patterns
  • Race conditions and deadlocks
  • Resource contention

Caching Strategies

  • Prompt caching (system prompt, frequent context)
  • Response caching (deterministic queries)
  • Intermediate result caching
  • Cache invalidation strategies
  • Cache hit rate optimization

Context Window Management

  • Context pruning strategies
  • Sliding window techniques
  • Importance-based retention
  • Summary injection
  • Context overflow handling

NOT Your Focus

  • Safety and guardrails (that's the wicked-garden-agentic-safety-reviewer skill)
  • System architecture (that's the wicked-garden-agentic-architect skill)
  • Framework selection (that's the skills/agentic/frameworks/ knowledge skill)
  • Code quality patterns (that's the skills/agentic/agentic-patterns/ knowledge skill)

Performance Analysis Process

1. Baseline Measurement

Establish the agent landscape baseline. The analyzer prints JSON to stdout — redirect it to a file (there are no --metrics/--output flags):

# Map agents, dependencies, and communication patterns
sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/agentic/analyze_agents.py" \
  --path /path/to/codebase > performance-baseline.json

Derive execution-pattern findings by reading the dependency graph and communication patterns in the output, plus code inspection (grep for sequential awaits, tool-call sites, prompt construction).

Key Metrics to Track:

  • Total token usage (prompt + completion)
  • Latency (p50, p95, p99)
  • Cost per request
  • Cache hit rate
  • Agent execution time
  • Tool call duration

2. Token Analysis

Identify Token Hotspots
# Search for large prompts
grep -r "system_prompt\|system_message" --include="*.py" /path/to/codebase

# Find repeated context patterns
grep -r "context.*=" --include="*.py" /path/to/codebase
Token Budget Allocation

Calculate token usage per agent:

Total Context Window: 200k tokens (Claude Opus 4.6)

Recommended Allocation:
- System Prompt: 2,000 tokens (1%)
- Agent Instructions: 3,000 tokens (1.5%)
- User Input: 10,000 tokens (5%)
- Retrieved Context (RAG): 50,000 tokens (25%)
- Conversation History: 30,000 tokens (15%)
- Tool Results: 20,000 tokens (10%)
- Reserved for Output: 16,000 tokens (8%)
- Buffer: 69,000 tokens (34.5%)
Token Optimization Checklist
  • [ ] System Prompts: Cacheable, reused across requests
  • [ ] Few-Shot Examples: Minimal but effective
  • [ ] Tool Descriptions: Concise, not verbose
  • [ ] Context: Pruned to relevant information only
  • [ ] History: Summarized after N turns
  • [ ] Output: Bounded by max_tokens parameter

3. Latency Analysis

Identify Sequential Bottlenecks
# Look for sequential agent calls
grep -r "await.*agent\|agent\.run\|agent\.execute" \
  --include="*.py" /path/to/codebase -A 5

Sequential Pattern (SLOW):

# BAD: Sequential execution
result1 = await agent1.run(input)
result2 = await agent2.run(input)
result3 = await agent3.run(input)
# Total time: T1 + T2 + T3

Parallel Pattern (FAST):

# GOOD: Parallel execution
results = await asyncio.gather(
    agent1.run(input),
    agent2.run(input),
    agent3.run(input),
)
# Total time: max(T1, T2, T3)
Latency Budget

Define acceptable latencies:

| Operation | Target | Acceptable | Critical | |-----------|--------|------------|----------| | Simple query | 10s | | Complex reasoning | 30s | | Multi-agent workflow | 60s | | Background task | 600s |

Optimization Opportunities
  • [ ] Streaming: Enable for user-facing agents
  • [ ] Parallel: Independent agents run concurrently
  • [ ] Caching: Cache frequent queries
  • [ ] Batching: Group small requests
  • [ ] Timeouts: Set aggressive timeouts for fast-fail

4. Cost Analysis

Cost Calculation
# Example cost calculation (anthropic claude-sonnet-4.5)
INPUT_COST_PER_1M = 3.00   # USD per 1M tokens
OUTPUT_COST_PER_1M = 15.00  # USD per 1M tokens

def calculate_cost(prompt_tokens: int, completion_tokens: int) -> float:
    """Calculate cost per request."""
    prompt_cost = (prompt_tokens / 1_000_000) * INPUT_COST_PER_1M
    completion_cost = (completion_tokens / 1_000_000) * OUTPUT_COST_PER_1M
    return prompt_cost + completion_cost

# Example request
cost = calculate_cost(10_000, 1_000)
# prompt: 10k tokens * $3/1M = $0.03
# completion: 1k tokens * $15/1M = $0.015
# total: $0.045 per request
Cost Optimization Strategies

| Strategy | Savings | Complexity | Trade-off | |----------|---------|------------|-----------| | Prompt caching | 50-90% | Low | None | | Model downgrade | 50-80% | Low | Quality | | Response caching | 80-99% | Medium | Freshness | | Shorter prompts | 10-30% | Medium | Completeness | | Smaller max_tokens | 5-20% | Low | Truncation risk | | Batching requests | 10-20% | High | Latency |

ROI Analysis Template
## Optimization: {strategy name}

**Current State**:
- Cost per request: ${amount}
- Requests per day: {count}
- Monthly cost: ${amount}

**Proposed State**:
- Cost per request: ${amount}
- Savings per request: ${amount} ({percent}%)
- Monthly savings: ${amount}

**Implementation**:
- Effort: {LOW/MEDIUM/HIGH}
- Risk: {LOW/MEDIUM/HIGH}
- Timeline: {duration}

**Trade-offs**:
- {trade-off description}

**Recommendation**: {IMPLEMENT/DEFER/REJECT}

5. Parallelization Assessment

Identify Independent Operations

Use the agent analyzer's dependency graph to find parallelizable paths (no --analysis flag — the parallelization read is yours to derive):

sh "${CLAUDE_PLUGIN_ROOT}/scripts/_python.sh" "${CLAUDE_PLUGIN_ROOT}/scripts/agentic/analyze_agents.py" \
  --path /path/to/codebase > parallel-opportunities.json

Agents with no shared dependencies and no data flow between them in the dependency graph are candidates for concurrent execution.

Parallelization Checklist
  • [ ] Independent Agents: No shared mutable state
  • [ ] Tool Calls: Multiple tools called concurrently
  • [ ] RAG Retrieval: Query multiple sources in parallel
  • [ ] Validation: Run validators concurrently
  • [ ] Multi-Provider: Query multiple LLMs for consensus
Parallelization Patterns

Pattern 1: Scatter-Gather

# Parallel execution with aggregation
async def scatter_gather(query: str):
    tasks = [
        agent1.run(query),
        agent2.run(query),
        agent3.run(query),
    ]
    results = await asyncio.gather(*tasks)
    return aggregate(results)

Pattern 2: Pipeline with Parallel Stages

# Stage 1: Parallel
stage1_results = await asyncio.gather(
    preprocess_a(input),
    preprocess_b(input),
)

# Stage 2: Sequential (depends on stage 1)
stage2_result = await process(stage1_results)

# Stage 3: Parallel
final_results = await asyncio.gather(
    postprocess_a(stage2_result),
    postprocess_b(stage2_result),
)

Pattern 3: Race Condition

# Return first successful result
result = await asyncio.wait_for(
    asyncio.wait([agent1.run(query), agent2.run(query)],
                 return_when=asyncio.FIRST_COMPLETED),
    timeout=5.0
)

6. Caching Strategy Assessment

Cache Opportunity Analysis
# Find repeated prompt patterns
grep -r "def.*prompt\|system_prompt\|PROMPT" \
  --include="*.py" /path/to/codebase
Caching Layers

L1: Prompt Cache (System Prompt)

  • What: System instructions, few-shot examples
  • TTL: Hours to days
  • Savings: 50-90% on prompt tokens
  • Best for: Stable system prompts

L2: Response Cache (Deterministic Queries)

  • What: Exact query matches
  • TTL: Minutes to hours
  • Savings: 100% on both prompt and completion
  • Best for: FAQ, documentation lookup

L3: Semantic Cache (Similar Queries)

  • What: Semantically similar queries
  • TTL: Minutes to hours
  • Savings: 100% on both prompt and completion
  • Best for: Repetitive user queries with variations

L4: Intermediate Result Cache

  • What: Tool results, RAG retrieval, preprocessed data
  • TTL: Minutes to hours
  • Savings: Reduces tool call latency and cost
  • Best for: Expensive operations
Caching Implementation Checklist
  • [ ] System prompts are cached (prompt caching feature)
  • [ ] Frequently asked queries are cached
  • [ ] Expensive tool results are cached
  • [ ] Cache invalidation strategy exists
  • [ ] Cache hit rate is monitored
Cache Invalidation Strategy
# Time-based expiration
cache.set(key, value, ttl=3600)  # 1 hour

# Event-based invalidation
@on_data_update
def invalidate_cache():
    cache.delete_pattern("rag:*")

# Version-based invalidation
cache_key = f"response:{query_hash}:v{schema_version}"

7. Context Window Management

Context Overflow Strategies

Strategy 1: Sliding Window

MAX_CONTEXT_TOKENS = 100_000

def sliding_window(history: list[Message]) -> list[Message]:
    """Keep most recent messages within token budget."""
    total_tokens = 0
    kept_messages = []

    for msg in reversed(history):
        msg_tokens = count_tokens(msg)
        if total_tokens + msg_tokens > MAX_CONTEXT_TOKENS:
            break
        kept_messages.insert(0, msg)
        total_tokens += msg_tokens

    return kept_messages

Strategy 2: Importance-Based Pruning

def importance_pruning(history: list[Message]) -> list[Message]:
    """Keep important messages, prune filler."""
    # Always keep: system prompt, user queries, final answers
    # Prune: intermediate reasoning, verbose tool outputs
    important = []
    for msg in history:
        if is_important(msg):
            important.append(msg)
        elif should_summarize(msg):
            important.append(summarize(msg))
    return important

Strategy 3: Summarization

def summarize_history(history: list[Message], max_tokens: int) -> list[Message]:
    """Summarize old history, keep recent verbatim."""
    if count_tokens(history)  B[Agent1]
    A --> C[Agent2]
    A --> D[Agent3]
    B --> E[Aggregator]
    C --> E
    D --> E
    E --> F[Output]

Recommendation: {agents} can run in parallel, reducing latency from {sequentialtime}ms to {paralleltime}ms ({improvement}x speedup)

Cost Analysis

Current Cost: ${cost}/request

Breakdown:

  • Prompt tokens: ${cost} ({percent}%)
  • Completion tokens: ${cost} ({percent}%)
  • Tool costs: ${cost} ({percent}%)

Monthly Projection:

  • Requests/day: {count}
  • Monthly cost: ${amount}

Cost Optimization Opportunities:

| Strategy | Savings/Request | Monthly Savings | Effort | Trade-off | |----------|-----------------|-----------------|--------|-----------| | Prompt caching | ${amount} ({percent}%) | ${amount} | LOW | None | | Response caching | ${amount} ({percent}%) | ${amount} | MEDIUM | Freshness | | Shorter prompts | ${amount} ({percent}%) | ${amount} | MEDIUM | Completeness | | Model downgrade | ${amount} ({percent}%) | ${amount} | LOW | Quality |

Top Recommendation: {strategy}

  • Impact: Save ${amount}/month ({percent}% reduction)
  • Effort: {effort_level}
  • Risk: {risk_level}
  • Implementation: {steps}

Caching Assessment

Current Cache Usage: {status}

Cache Hit Rate: {rate}% (target: 60%+)

Caching Layers:

| Layer | Status | Hit Rate | Savings | TTL | |-------|--------|----------|---------|-----| | Prompt Cache | {ENABLED/MISSING} | {rate}% | {amount} | {duration} | | Response Cache | {ENABLED/MISSING} | {rate}% | {amount} | {duration} | | Semantic Cache | {ENABLED/MISSING} | {rate}% | {amount} | {duration} | | Tool Result Cache | {ENABLED/MISSING} | {rate}% | {amount} | {duration} |

Findings:

  • Missing: Prompt caching not enabled
  • Impact: Wasting {percent}% on repeated system prompts
  • Fix: Enable prompt caching in API configuration
  • Savings: ${amount}/month
  • Low Hit Rate: Response cache at {rate}%
  • Impact: Cache underutilized
  • Fix: Increase TTL from {current} to {recommended}
  • Savings: ${amount}/month

Recommendations:

  1. Enable prompt caching for system prompts
  2. Implement semantic caching for similar queries
  3. Cache expensive tool results for {duration}

Context Window Management

Context Usage: {tokens}/{max_tokens} ({percent}%)

Strategy: {SLIDINGWINDOW/IMPORTANCEBASED/SUMMARIZATION/NONE}

Findings:

  • Issue: No overflow strategy defined
  • Risk: Context overflow errors on long conversations
  • Fix: Implement sliding window with {size} token limit
  • Issue: Old context not summarized
  • Impact: {percent}% of context is stale
  • Fix: Summarize messages older than {duration}

Recommendations:

  1. Implement {strategy} for context management
  2. Set hard limit at {percent}% of max context window
  3. Prioritize: system prompt > recent messages > summaries

Implementation Priorities

Quick Wins (Low effort, high impact):

  1. {optimization} - {savings} for {effort}
  2. {optimization} - {savings} for {effort}

Medium-term (Medium effort, medium-high impact):

  1. {optimization} - {savings} for {effort}
  2. {optimization} - {savings} for {effort}

Long-term (High effort, high impact):

  1. {optimization} - {savings} for {effort}

Next Steps

  1. Immediate: {action}
  2. This Week: {action}
  3. This Month: {action}
  4. Ongoing: Monitor performance metrics, iterate

Cross-Skill Coordination

Defer to:

  • wicked-garden-agentic-architect: For orchestration pattern changes
  • wicked-garden-agentic-safety-reviewer: For validation efficiency
  • frameworks knowledge skill (skills/agentic/frameworks/): For framework-native optimization features

Collaborate with:

  • The architect skill on parallel execution patterns
  • The safety-reviewer skill on efficient guardrails

## Integration with agentic Knowledge Modules

- Use `skills/agentic/context-engineering/` for context optimization techniques
- Use `skills/agentic/agentic-patterns/` for efficient orchestration patterns
- Use `skills/agentic/frameworks/` for framework-specific optimizations

## Integration with Peer Skills

### Architect (wicked-garden-agentic-architect)
- Coordinate on orchestration patterns for parallelization
- Review topology for performance bottlenecks

### Safety Reviewer (wicked-garden-agentic-safety-reviewer)
- Balance safety checks with performance impact
- Optimize validation without compromising security

### Frameworks knowledge module (skills/agentic/frameworks/)
- Look up framework-specific optimization features
- Compare performance characteristics of diffe

…

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [mikeparcewski](https://github.com/mikeparcewski)
- **Source:** [mikeparcewski/wicked-garden](https://github.com/mikeparcewski/wicked-garden)
- **License:** MIT
- **Homepage:** https://wg.wickedagile.com/

Install and usage instructions live in the source repository linked above.

Reviews

No reviews yet, be the first.

Versions

  • v0.1.0 Imported from the upstream source.