How to interact with your agent.
In the workspace
- Open your agent
- Type a message
- Watch it work
You'll see:
- The agent's thinking
- Tool calls as they happen
- Results as they come back
Example conversation
1You: Create a logo for "Morning Brew" coffee shop23Agent: I'd be happy to create a logo. A few questions:4 - What style? (minimal, vintage, modern)5 - Any specific colors?6 - Should I include a coffee cup icon?78You: Modern style, warm colors, yes include a cup910Agent: [Calling stable-diffusion...]11 12 Here's your logo! I created a modern design with 13 warm orange and brown tones featuring a stylized 14 coffee cup.15 16 Want me to create variations?Widgets
Sometimes agents need structured input.
They can generate small UI forms:
1Agent: I need some details:23 ┌─────────────────────────┐4 │ Company: [____________] │5 │ Style: [Modern ▼] │6 │ Colors: [____] [____] │7 │ │8 │ [Generate] │9 └─────────────────────────┘Fill it out and the agent continues.
From the terminal
After belt login, run agents and manage chats without opening the workspace:
1belt agent run myteam/my-agent "Hello"2belt agent run myteam/my-agent "Follow up" --chat chat_abc1233belt chat get chat_abc1234belt chat send chat_abc123 "What's the status?"5belt chat watch chat_abc123When a tool requires approval, list and act on pending invocations:
1belt chat pending2belt chat approve ti_abc123 --watch→ CLI setup · Agents API
Per-chat context
Agents that use call tools with {{context.X}} URL templates need context values when you start a chat. Declare fields in the agent config, then pass values at chat creation:
1{2 "agent_id": "agent_abc123",3 "context": {4 "project_id": "proj_456",5 "environment": "staging"6 }7}Context is set once per chat and cannot change, so every tool call in that conversation uses the same project or environment.
→ Context in Adding Tools · Create Chat REST API
Structured results
When an agent uses the finish tool (required for structured output), the final JSON is stored on the chat as output. Retrieve it with GET /chats/:id (see Get Chat) or agent.run() in the SDK.
Inspecting execution
The workspace shows tool calls and reasoning as the agent runs. For integrations and debugging:
| Surface | What you get |
|---|---|
| Live stream | belt chat watch <id> or Stream chat messages |
| Snapshot | GET /chats/:id — full message history and tool invocation status |
| Runtime overview | Observability — how tracing works across agents and app tasks |
Use streaming when you need live updates; use GET /chats/:id when you need a point-in-time snapshot after the run.
Terminal and API
- CLI —
belt agent run, thenbelt chat get,pending,approve, orrejectfor follow-ups and human-in-the-loop. See CLI Setup. - REST —
POST /agents/run,GET /chats/:id, andPOST /tools/:id/invokeor/reject. See Agents REST API.
Chat integrations
Connect your agent to external chat platforms. For Slack, configure your app's event subscription URL to the agent's channel webhook (POST /agents/{id}/channel/slack). See Messaging channel webhooks.
| Platform | Guide |
|---|---|
| Slack | Slack integration — channel webhooks supported |
| Discord | Discord integration |
| Telegram | Chat interface (workspace) |
| Message-based (workspace) |
Talk to your workspace from where you already are. For custom HTTP tools mid-conversation, see Agent webhooks.
Tips
- Be specific about what you want
- Provide context when relevant
- Ask for variations if the first result isn't right