
Last year, I modified my home doorbell to be answered by ChatGPT. But can this project be improved with an AI agent and turned into a true receptionist? What exactly are AI agents, and why are they taking over the artificial intelligence scene?
AI agents are autonomous entities that perceive their environment, process information, and take actions to achieve specific goals. These actions are executed using tools that the agent selects and combines at its own discretion. The autonomy of AI agents unlocks a world of possibilities—and risks—quickly making them the dominant force in AI, with new frameworks, companies, and emerging use cases.

To turn my doorbell into a receptionist, I wrote an AI agent in Python using OpenAI’s API, installed it on a Unihiker board, and connected a button and a servo motor. From the software side, I provided the AI agent with several tools: access to the meeting agenda, the system date, the hallway light sensor, notification sending, and the ability to unlock the door.
Now, the agent can choose which tools to use, execute them, and decide whether to grant entry.

Source Code
https://github.com/ronibandini/rinGPT/tree/main/2.0
Components
Unihiker M10
IO Extender
Led button
9G Clutch Servo
Bluetooth Speaker
Connections
Connect the servo to PO del IO Board
Connect the button to P23 of the Unihiker
Libraries & APIs
The project uses specific Unihiker libraries (which require no installation). Additional dependencies include:
pip install openai speech_recognition edge_tts art asyncio textwrap
APIs Required
OpenAI API Key for ChatGPT
Telegram Token for notifications
How it works
When the button is pressed, RinGPT plays a doorbell sound.It records audio using the Unihiker microphone.The recorded audio is converted into text using Speech Recognition.It identifies the visitor’s name with an OpenAI API call.It determines which tools to use with another OpenAI call.It executes the selected tools, compiles the results, and makes a final decision:Unlock the doorSend a Telegram notification Notifications

Available Tools
The AI agent has access to the following tools:
def agenda(nombre):
def getDayTime():
def getLightConditions():
Additional tools, like unlocking the door or sending Telegram notifications, are triggered by the system’s logic but are not yet assigned to the AI agent (though they could be in future versions).
The agenda currently uses hardcoded event names, but it can easily be modified to pull real data from Google Calendar. The light conditions tool is fairly arbitrary—it was included mainly to make use of the Unihiker’s light sensor.

LLM Usage
Not all OpenAI API calls are the same:
Function Calling is used to extract the visitor’s name.
JSON-formatted responses help structure other interactions.
Different API calls use different models and temperature settings.
There’s no global memory, but key data (e.g., visitor name) is temporarily stored and reused in later prompts.
For example, the visitor’s name is retained and sent again during the third LLM call.
Possible Improvements
Some tools are currently triggered by the system’s program flow rather than agent selection. Assigning them to the AI agent would increase flexibility.
Using an AI agent framework (e.g., LangChain or Auto-GPT) could reduce code size and improve maintainability.
Use the new OpenAI agents SDK
Improving the possible scenarios: what if the name is not provided? what if the visitor does not want to enter? etc
