A function the model can ask your program to run, described to it as a name, a description, and an argument schema; the function itself never leaves your process. The model requests; your code executes—the division of authority the whole architecture rests on (Chapters 3 and 5).