# agents This repository holds my agentic tasks and workflows — automation stacks built with tools like n8n, OpenHands, and OpenClaw. ## Projects ### [`n8n-Bale-file-fetch`](./n8n-Bale-file-fetch) An n8n workflow that acts as a file-retrieval agent for [Bale](https://bale.ai) (a Telegram-like Iranian messaging app). Type a natural-language request — e.g. *"grab the devops PDFs from this channel"* — and the workflow parses the intent with an LLM, fetches matching files from a Bale channel via its bot API, and saves them to disk. Built as a take-home task for a job interview, focused on demonstrating how to scope an LLM's role narrowly (intent parsing only) while keeping the rest of the pipeline — fetching, filtering, downloading — as plain, deterministic logic. See inside the folder for: - **SETUP.md** — how to stand it up (Bale bot/channel creation, n8n import, credentials, known gotchas) - **HOW_IT_WORKS.md** — architecture and data flow, step by step - **NODE_DESCRIPTIONS.md** — talking points for walking through the workflow live ### [`n8n-bale-publicchat-file-fetch`](./n8n-bale-publicchat-file-fetch) An n8n workflow that extends the file-retrieval concept to **public Bale bots you don't control**. The standard Bale Bot API only works within chats the bot owns — this project bypasses that limitation using client authentication (phone-number login via the unofficial [`aiobale`](https://github.com/) library), allowing access to any public bot's chat history. How it works: a natural-language request is parsed by an LLM to extract a keyword, which is then used to search the public bot's entire message history for matching files. Unlike the bot-API approach, this doesn't need to be admin of the target chat — it acts as a regular user session. Built as a proof-of-concept demonstrating that client auth can access chats where bot auth cannot, while being honest about the trade-offs (real user session vs. sanctioned bot integration). See inside the folder for: - **BALE-METRO-FILE-AGENT-DOCS.md** — full technical documentation covering architecture, the two route approaches, infrastructure quirks, and reproduction steps - **script/fetch_metro_smart.py** — the Python script that does the actual Bale client-auth + history search - **json/** — the n8n workflow export ### [`.freebuff`](./.freebuff) *(add a short description here once you're ready — leaving as a placeholder for now)* ## Notes Workflow exports and configs in this repo have credentials and IDs replaced with placeholders (e.g. `YOUR_BOT_ID`) before committing. Anyone running a workflow locally needs to drop their own values back in.