How the Agent Reach Watch Command Performs Health Checks for Scheduled Monitoring
The agent-reach watch command performs lightweight, non-interactive health checks by loading the user configuration, executing full channel diagnostics via check_all(), and emitting a concise one-line status report ideal for cron-based scheduled monitoring.
The watch sub-command in the Panniantong/Agent-Reach repository provides a "cron-friendly" entry point for automated health monitoring. Unlike interactive CLI commands, this utility is designed to run silently in scheduled environments while providing immediate visibility into channel health and availability updates.
Architecture of the Watch Command Health Check
The implementation in agent_reach/cli.py (lines 1678-1741) defines the _cmd_watch function, which orchestrates a four-phase health verification process without requiring user interaction.
Loading User Configuration
First, the command initializes a Config() instance that reads settings from ~/.agent-reach/config.yaml. This ensures the watch command operates with the same parameters used during installation or manual doctor runs, maintaining consistency across different execution contexts.
Executing Full Channel Diagnostics
The core health validation occurs through check_all(config) imported from agent_reach.doctor. This function iterates over every channel retrieved via get_all_channels() and invokes the channel-specific check(config) method defined in agent_reach/channels/base.py. Each channel returns a dictionary containing status, name, message, tier, and backends fields, creating a comprehensive health snapshot.
Aggregating Health Results
After collecting channel responses, the watch command categorizes results into three severity levels:
- Hard failures: Channels reporting
statusofofforerrorreceive an[X]marker - Warnings: Channels with
statusofwarnreceive a[!]marker - Healthy: Channels with passing status contribute to the "ok" count
This aggregation produces a concise ratio of healthy versus total channels (e.g., "5/7 channels available").
Version Update Detection
The command performs a single HTTPS request to https://api.github.com/repos/Panniantong/Agent-Reach/releases/latest. When the returned tag name differs from the current __version__, the watch command stores the new version and release notes for inclusion in the output report.
Output Format and Monitoring Integration
When all channels pass and no updates exist, the command outputs a minimal one-line status:
Agent Reach: 全部正常 (X/Y 渠道可用,vZ 已是最新)
This terse format ensures monitoring tools and log aggregators capture a brief "all-clear" message without noise.
If issues exist or updates are available, the output expands to a structured report containing the current version and channel health ratio (ok/total), enumerated problem lines with severity markers, and new version information with truncated release notes.
Implementing Scheduled Monitoring with Cron
Because watch performs no installations or interactive prompts, it is safe to schedule via crontab.
Run manually:
agent-reach watch
Schedule daily execution:
0 2 * * * /home/you/.local/bin/agent-reach watch >> /home/you/agent-reach.log 2>&1
Programmatic usage:
from agent_reach.cli import _cmd_watch
if __name__ == "__main__":
_cmd_watch() # prints the same output as `agent-reach watch`
Summary
- The
agent-reach watchcommand inagent_reach/cli.pyprovides non-interactive health monitoring suitable for automation - Health checks execute via
check_all()inagent_reach/doctor.py, which validates every configured channel through theBaseChannel.check()contract - Results are aggregated into severity categories (error, warn, ok) and summarized as a channel availability ratio
- The command checks for newer releases via the GitHub API without impacting health check performance
- Output formats adapt to context: single-line for success states, multi-line diagnostic detail when failures occur
Frequently Asked Questions
Which source file contains the watch command implementation?
The _cmd_watch function is implemented in agent_reach/cli.py between lines 1678 and 1741. This module handles configuration loading, health check orchestration, update detection, and formatted output generation.
How does the watch command differ from the doctor command?
While both use check_all() from agent_reach/doctor.py to validate channels, the watch command is optimized for automation. It suppresses interactive prompts, emits machine-friendly one-line output when healthy, and includes version update checking, whereas the doctor command typically provides detailed, human-readable diagnostics and may offer repair options.
What specific channel data does the health check evaluate?
Each channel returns a status dictionary containing status (off/error/warn), name, message (descriptive failure text), tier (service level), and backends (infrastructure details). The watch command specifically monitors the status field to determine overall system health.
Can the watch command be used in containerized or CI/CD environments?
Yes. Because the command requires no TTY interaction and exits with appropriate status codes based on health check results, it integrates seamlessly into Docker health checks, Kubernetes liveness probes, or CI/CD pipeline validation steps by executing agent-reach watch as a validation stage.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →