# Agent Sync - Project Context ## Overview This is the **agent-sync** tool — a lightweight pipeline that exports agent metadata from LibreChat's MongoDB and registers it with the Agent Tracker API. It runs on the `optical-librechat` GCP server as a daily cron job. ## Architecture - **No running service** — these are standalone scripts triggered by cron - Pipeline: `export_shared_agents.js` (MongoDB export) -> `shared_agents.json` -> `register_agents.py` (API POST) - Orchestrated by `weekly_agent_sync.sh` ## Key Files - `export_shared_agents.js` — MongoDB aggregation pipeline run via `mongosh` inside the `chat-mongodb` Docker container. Queries `aclentries`, `agents`, `users`, `conversations`, `messages`, and `transactions` collections. - `register_agents.py` — Python script that maps exported fields to the Agent Tracker `AgentCollectorCreate` schema and POSTs them. Has retry logic, dry-run mode, and result logging. - `weekly_agent_sync.sh` — Bash wrapper for the full pipeline. Deployed to `/opt/agent-sync/` on the server. ## Server Details - **Server:** `optical-librechat` (GCP) - **Deploy path:** `/opt/agent-sync/` - **LibreChat source:** `/home/michael_clervi/LibreChat/` (Docker Compose, owned by michael_clervi) - **Cron:** `0 0 * * *` (daily midnight, root crontab) - **MongoDB container:** `chat-mongodb`, database `LibreChat` ## API Target - **Endpoint:** `https://ai-sandbox.oliver.solutions/agent_collector/agents` - **Auth:** Static API key via `X-API-Key` header - SSL verification is disabled (internal/dev API) ## Conventions - The JS export script uses MongoDB Extended JSON (relaxed mode) - The Python script prunes `None`/empty fields before POSTing - `shared_agents.json` and `registration_results.json` are generated output — not committed - Python dependencies are minimal: `requests` and `urllib3` only ## Dependencies - Agent Tracker API must accept any new fields added to the payload (Pydantic model: `AgentCollectorCreate`). Unknown fields are silently stripped. - The `system_prompt` field requires Agent Tracker to be updated to accept it. ## Deployment Files are copied manually to `/opt/agent-sync/` on the server. No restart needed — scripts execute on-demand via cron.