AgentSkillsCN

detecting-agent-environment

提供用于检测执行环境的实用工具与模式——例如区分CI/CD环境与本地环境、判断网络访问权限、识别可用端口、设置超时时间等。当您需要根据智能体的运行环境调整脚本或工作流,或在编写需感知环境变化的辅助脚本时,此技能将为您提供精准支持。

SKILL.md
--- frontmatter
name: detecting-agent-environment
description: Utilities and patterns for detecting execution environment (CI/CD vs local, network access, available ports, timeouts). Use when you need to adapt scripts or workflows based on where the agent is running, or when creating helper scripts that need environment-aware behavior.

Agent Helper Scripts

Utilities for GitHub Copilot agents working on Y-Not Radio site.

Environment Detection

Use detect-environment.sh to adapt scripts to different environments:

bash
# Source the utility
source bin/agent-helpers/detect-environment.sh

# Print environment info
print_environment

# Check environment
if detect_ci; then
  echo "Running in CI/CD"
  # Use optimized workflow
fi

if ! detect_network; then
  echo "Network restricted - cannot pull packages"
  exit 1
fi

# Get appropriate timeout
TIMEOUT=$(get_timeout "service_ready")
timeout $TIMEOUT bash -c 'until service_ready; do sleep 5; done'

Creating New Helper Scripts

When creating helper scripts:

  1. Source environment detection

    bash
    source "$(dirname "$0")/detect-environment.sh"
    print_environment
    
  2. Use appropriate timeouts

    bash
    TIMEOUT=$(get_timeout "npm_install")
    timeout $TIMEOUT npm install
    
  3. Provide clear output

    bash
    echo "✅ Success message"
    echo "⚠️  Warning message"
    echo "❌ Error message"
    
  4. Exit with proper codes

    bash
    exit 0  # Success
    exit 1  # Failure
    
  5. Log to .agent-tmp/

    bash
    mkdir -p .agent-tmp
    command 2>&1 | tee .agent-tmp/command.log
    

Related Skills

Before creating scripts or PRs, see:

  • testing-pr-changes skill - Success criteria and testing workflows
  • agent-automation-infrastructure skill - Current automation state and pre-built images

Performance Baselines

Scripts should respect these baselines:

OperationExpectedWarningFailure
Container start< 60s60-120s> 120s
npm install< 120s120-300s> 300s
Service ready< 180s180-360s> 360s

If exceeding "Warning" thresholds, report performance issues in PR.