# Awareness

> Maintain a queryable snapshot of the agent's own tools, capabilities, permissions, and current context — refreshed whenever things change at runtime.

- **Category**: Agentic AI
- **Subcategory**: Cognition & Introspection
- **Canonical URL**: https://designpattern.fyi/patterns/awareness/

---

## Description
**Intent**: An agent that can't query what it can do right now will hallucinate capabilities it doesn't have and forget ones it does — especially when the tool palette, permissions, or role changes mid-session.

**Context**: The agent runs across multiple sessions. Its available tools, permissions, and roles change at runtime. Without an explicit awareness store, capability is buried implicitly in prompt text and stale the moment anything changes.

**Solution**: Persist explicit state about: available tools (with descriptions), the environment (host, user, permissions), the current task, and the agent's own identity. Refresh on capability changes. Inject relevant slices of awareness into each turn's context.



## Use Cases
- The agent regularly hallucinates tools it doesn't have or forgets tools it does.
- Tool palette, environment, or permissions change at runtime and the agent must reflect the current state.
- Downstream behavior depends on the agent reasoning explicitly about what it can and can't do.






## Trade-offs


### Advantages

- Reduces hallucinated tool calls

- Grounds the agent in its own current context rather than stale prompt text




### Considerations & Drawbacks

- Awareness state is a maintenance burden — stale awareness is worse than none

- Excess awareness bloats context tokens unnecessarily







---
**Reference**: [Original Source](https://www.agentpatternscatalog.org/patterns/awareness/)

