AI agents and automation Plan the rollout
Goal, context, tools, action, and agent log
An AI agent is not a “black box,” but a system of five interrelated components: goal, context, tools, action, and logic. Without clear separation among these, agents lose predictability, safety, and controllability.
What is the AGTAL model?
AGTAL (Agent Goal-Context-Tools-Action-Log) — a foundational architectural model describing the AI agent’s action lifecycle. Each component handles a specific stage: from task understanding to result logging. The model is AI-model-agnostic—it works with LLMs, rule-based systems, and hybrids alike.
Interaction Diagram
flowchart TD
A[Goal: What needs to be achieved] --> B[Context: Data and constraints]
B --> C[Tools: APIs, functions, libraries]
C --> D[Action: Selecting and invoking a tool]
D --> E[Log: Recording decisions and results]
E -->|analysis| A
style A fill:#e6f7ff
style E fill:#fff7e6
Example: Agent-Analyst in CRM
Goal: “Find customers with high churn risk.”
Context: Data for the last 30 days: login frequency, time since last access, number of complaints, tariff plan. Churn threshold: fewer than 2 logins per week + ≥2 complaints.
Tools: `get_users_last_activity()`, `count_support_tickets()`, `score_churn_risk()`.
Action: Call `score_churn_risk(users, params)` with threshold filtering.
Log: timestamp, input parameters, result (list of user_id + score), decision (“send retention offer”).
Agent Loop Pseudocode
function run_agent(goal: Goal, context: Context): ActionResult {
// 1. Goal is already set (e.g., from UI or trigger)
// 2. Context is gathered from sources (CRM, API, DB)
const enrichedContext = enrichContext(context, goal);
// 3. Tools are selected based on the goal’s semantics
const tools = selectTools(goal, enrichedContext);
// 4. Action — LLM or rule engine generates the call
const action = planAction(goal, enrichedContext, tools);
const result = execute(action);
// 5. Log — recorded for auditing and training
logAction({ goal, context, tools, action, result });
return result;
}
Common mistakes
- Goal without metrics: “Improve service” is immeasurable. Need: “Reduce response time to requests by 20% within one week.”
- Context truncated: Agent doesn’t see that the client already received a response 2 hours ago → duplication.
- Tools without validation: Calling `update_user_status()` without checking permissions → access error.
- Unstructured log: just “done” → impossible to restore the solution chain.
What to check before running the agent
| Component | Question |
|---|---|
| Purpose | Can success be measured? Is there a stopping threshold? |
| Context | Are all sources connected? Is there a fallback if data is missing? |
| Tools | Is there retry logic? Permission checks? Versioning? |
| Action | Can it be canceled? Is there human-in-the-loop for critical operations? |
| Log | Are inputs/outputs, timestamps, and user IDs preserved? Is there anonymization? |
Next step
After implementing the AGTAL model—proceed to “AI agent is not magic”to understand how to turn this frame into a stable system. Next— “How to Assemble an Agent with Tool-Calling” — Practical implementation guide.