Teresa Torres Details Custom AI Agent Setup on LinkedIn

T

Teresa Torres

LinkedIn Author

Author, Speaker, Product Discovery Coach @ ProductTalk.org

In a recent LinkedIn post, Teresa Torres provides a detailed walkthrough of how she has architected a system for creating custom AI agents. She breaks down the setup into four core components, emphasizing its flexibility and cross-device compatibility.

The Four Pillars of Teresa Torres’s AI Agent Framework

Torres begins by highlighting the foundational element: agent identity. This is managed through a markdown file that defines the agent’s role, its designated task folder, and the context of its operations. The instructions for the agent are kept simple, focusing on task completion. For instance, a sales-administration agent is instructed to assist with pre-meeting preparation and post-meeting follow-up, accessing tasks relevant to its schedule.

“Agent identity – a markdown file that tells the agent who it is, where it’s task folder lives, and provides context for the types of tasks it will do. It’s instructions are simply complete your tasks.”

The second key component is the scheduler. Torres utilizes MacOS’s built-in LaunchAgent, a system akin to cron but operating with user permissions. This allows her to run agents using her Claude Code Max or ChatGPT/Codex subscriptions. A shell script, run_agent.sh, is central to this, taking an agent identity as a parameter and invoking the agent via a headless Claude Code instance. Each agent has a defined schedule for waking up and checking its task list. Torres provides an example of her sales-admin agent, which is activated daily at 4:15 am, 11:30 am, and 4:00 pm to handle pre-meeting preparations and post-meeting follow-ups.

Task Management and Scripting for Agent Operations

The third component, tasks, involves each agent having a dedicated folder for markdown files representing individual tasks. These tasks can be assigned manually or by automated scripts. Torres explains that her sales-admin agent receives tasks generated by a script that monitors her calendar, creating tasks based on scheduled events.

“My sales-admin gets tasks assigned by a script that checks my calendar and creates tasks based on what is scheduled.”

Rounding out the framework are the scripts. Each agent possesses its own scripts folder containing utility programs. These scripts can either be run on demand by the agent or executed on a schedule. Torres illustrates this with her sales-admin agent, which includes a script to fetch the day’s meetings and subsequently generate pre- and post-meeting tasks. This calendar-fetching script, for example, is triggered each morning by the LaunchAgent.

Seamless Integration and Cross-Device Functionality

Torres emphasizes that these four components enable the creation of diverse agent types, each operating on its own schedule, managing its own task list, and utilizing its specific set of tools defined in its scripts folder. A significant benefit, as noted by Torres, is that this entire system is saved within Obsidian, not as native Claude Code skills or agents.

“Benefit of this is it just works across my all of my devices and I can seamlessly switch between Claude Code, Codex or any other coding CLI, as I need to—all it takes is updating my run_agent.sh headless call.”

This approach, according to Torres, ensures compatibility across all her devices and allows for effortless switching between different coding environments like Claude Code and Codex, requiring only an update to the run_agent.sh headless call. This detailed breakdown offers a practical blueprint for others looking to build similar custom AI agent systems.

📝 About This Content

This article is based on insights shared by Teresa Torres on LinkedIn.

📅 Originally posted on April 3, 2026 | View original post on LinkedIn →