# Intelligent Agents and Environments — Artificial Intelligence

Source: https://www.skillbyai.com/en/artificial-intelligence/i-agent

> Perceive, decide, act, repeat.

## The agent view of AI

A useful way to frame AI is the **agent**: anything that **perceives** its environment through sensors and **acts** on it through actuators, choosing actions to maximise a **performance measure**. Environments differ: fully or partially **observable**, **deterministic** or **stochastic**, single or multi-agent, static or dynamic, discrete or continuous. Agent designs range from **simple reflex** agents (condition-action rules) to **goal-based**, **utility-based** and **learning** agents. The rest of AI is largely about building the decision-making part.

## A reflex agent in a two-room vacuum world, run

I ran this with plain Python 3 (standard library only), with fixed random seeds where randomness is used. A simple rule (suck if dirty, otherwise move to the other room) cleans both rooms in three steps, then keeps moving back and forth because a reflex agent has no memory or goal to tell it to stop. Its score is 17 (10 per clean, minus 1 per move).

```python
# A simple reflex agent in a two-room vacuum world
def agent(percept):
    room, dirty = percept
    if dirty: return "suck"
    return "right" if room == "A" else "left"
world = {"A": True, "B": True}; room = "A"; score = 0
for step in range(5):
    action = agent((room, world[room]))
    if action == "suck": world[room] = False; score += 10
    else: room = "B" if action == "right" else "A"; score -= 1
    print(f"step {step}: action {action:<5} -> now in {room}, dirty rooms {[r for r in world if world[r]]}")
print("performance score:", score)
```

Output:

```
step 0: action suck  -> now in A, dirty rooms ['B']
step 1: action right -> now in B, dirty rooms ['B']
step 2: action suck  -> now in B, dirty rooms []
step 3: action left  -> now in A, dirty rooms []
step 4: action right -> now in B, dirty rooms []
performance score: 17
```

## Define the performance measure first

Decide what "doing well" means (clean floor, low energy, short time) before designing the agent; it changes the right behaviour.

**Quiz:** What does a simple reflex agent base its action on?

- [x] Only the current percept, using condition-action rules
- [ ] A full model of the future
- [ ] A learned value function
- [ ] A conversation history

*Answer:* Only the current percept, using condition-action rules. No memory, no planning.
