Skip to main content
The Quickstart gave the agent every tool in the workspace. This time you’ll pick the tools yourself, keep the behavior in a profile other agents can share, and give the agent an identity you can trace its calls back to.

1. Create a role

An agent gets its tools from a role and nowhere else. This one reads the web and keeps notes:
Every workspace also comes with an Administrator role that grants tool:*. That’s fine while you’re poking around, but too much for an agent you leave running.

2. Create a profile

A profile is everything about how the agent behaves: the models it may use, the instructions it always carries, and the roles its tools come from.
Leave hooks out and you get the six default approvals.

3. Create the agent

The agent is the part that sticks around. It owns the threads and the memory:
identity is required, and you can’t change it later. Use a stable value from your own system: user_123 for a person, svc:research for your product. See Identities.

4. Start a thread

Check it worked

Ask what the agent can call. This is the same answer Matrices enforces at run time:
That should be the web.* and memory.* tools and nothing else. Now read the thread’s log:
Each tool call shows up as a tool_intent followed by its tool_result. The answer is an assistant_message. See Thread events.

Where next

Narrow the permissions

Conditional allows, denies, and how they stack.

Connect a service

Give it credentials the model never sees.