Conversation
Overview
Work's conversation is driven by the Agent Loop. After the user sends a message, the Agent enters an autonomous reasoning-execution loop: analyze the requirement → call a tool → obtain the result → continue reasoning, until the task is complete or an exit condition is met. The entire process is presented on the interface in real time via streaming events.
Message Types
The conversation message flow includes the following types:
| Message Type | Rendering | Description |
|---|---|---|
| User Message | Right-aligned bubble | Text and attachments sent by the user |
| Assistant Text | Left-aligned Markdown rendering | The Agent's text reply, with support for code highlighting, math formulas, and tables |
| Tool Call | ToolCallGroup collapsible panel | Tool name + input parameters + execution status + output result |
| Thinking Process | Thinking collapsible block | The Agent's reasoning process (native thinking models such as Claude) |
| Task Management | TaskPanel task panel | Structured task list (To Do / In Progress / Done) |
| Subagent Activity | SubagentToolRow | Subagent execution process, with special markers |
| Question Interaction | QuestionWizard | Structured questions the Agent poses to the user |
Tool Call Display
When the Agent calls a tool, the interface displays the ToolCallGroup component:

| Display Element | Description |
|---|---|
| Tool Name | The identifier of the tool being called (such as Bash, Read File) |
| Input Parameters | The parameters received by the tool (collapsible for viewing) |
| Execution Status | loading (spinning icon) / success (green check) / error (red cross) |
| Output Result | The content returned by the tool (long content is collapsible) |
Multiple tool calls are grouped and displayed in execution order. Tools executed concurrently are shown in the same group.
Streaming Output
The Agent's replies are pushed to the interface in real time via streaming events:
| Event Type | Description |
|---|---|
text_delta |
Text fragment, appended character by character to the message area |
thinking |
Thinking process fragment (supports Anthropic native thinking) |
tool_use_start |
Tool call starts, displays the tool name and parameters |
tool_result |
Tool execution result, updates the status icon |
error |
Error message |
done |
This round is complete |
Users can see the Agent's real-time reasoning and operations during streaming output, providing a transparent execution experience.
Session Management
Creating a New Session
Click the "New Conversation" button in the top-left corner or use the keyboard shortcut to create a new session. A new session starts from the welcome page, or you can enter a message directly to start the conversation.
Session List Operations
| Operation | Description |
|---|---|
| Search | Filter session titles by keyword |
| Pin | Pin important sessions to the top of the list |
| Folder Grouping | Organize sessions into custom folders |
| Delete | Remove a session (unrecoverable) |
| Rename | Modify the session title |
Session Snapshots and Recovery
The APP supports session snapshot persistence to prevent conversation loss caused by accidental interruptions:
| Snapshot Strategy | Description |
|---|---|
every_tool_round (default) |
Save after each tool call |
every_round |
Save after each round of LLM interaction |
manual |
Save only when triggered manually |
Snapshots are stored as JSON files (atomic writes, .tmp + rename to prevent corruption) and can be used to recover an interrupted session via resumeSessionId.
Local Conversations and Remote Conversations
In multi-node scenarios, conversations in the session list display different source icons:
| Icon | Meaning |
|---|---|
| Conversations initiated or executed by a local APP node | |
| Conversations executed by a remote node | |
| Conversations from IM channels (Telegram, WeChat, etc.) |
This helps users quickly distinguish the execution source of a conversation.
Agent Loop Complex Task Capability
The Agent Loop enables Work to handle complex tasks that require multiple steps:
Example scenario: The user requests "Analyze the project directory structure and generate architecture documentation"
Round 1: Agent calls List Directory to browse the project structure
Round 2: Agent calls Glob Files to search for key configuration files
Round 3: Agent calls Read File to read the content of core files
Round 4: Agent calls Search Files to find module dependencies
Round 5: Agent synthesizes the analysis and generates the Markdown architecture documentation
Round 6: Agent calls Write File to save the document to the specified path
Throughout the process, the Agent autonomously decides which tools to call and in what order to execute them, without the user needing to provide step-by-step guidance. The default maximum is 25 loop rounds, and a circuit breaker mechanism ensures automatic stopping in case of anomalies.
For technical details, refer to Agent Loop Engine.
Tips: How to Communicate with the Agent More Effectively
| Tip | Example | Effect |
|---|---|---|
| Be clear about the goal | "Help me refactor the formatDate function in utils.ts to use date-fns" | The Agent accurately locates the target and approach |
| Request step by step | "First list all .tsx files, then tell me which ones use class components" | The Agent executes step by step, with more controllable results |
| Specify the tool | "Please use Bash to run npm test" |
The Agent directly uses the specified tool |
| Ask for confirmation | "Tell me your plan first, and execute only after I confirm" | Prevents the Agent from modifying files directly |
| Provide context | "This is a React + TypeScript project built with Vite" | The Agent gives more relevant suggestions |
How to Abort a Task in Progress
When the Agent is performing an operation you did not intend:
- Click the Stop button at the bottom of the message flow (or press
Esc) - The Agent will stop after the current tool execution is complete
- Operations that have already been executed (such as files already created) will not be automatically undone
- You can continue the conversation to instruct the Agent to undo the previous operations
Note: A Bash command in progress will be terminated (SIGTERM is sent), but the effects of commands that have already completed cannot be automatically undone.
What to Do When a Tool Call Fails
| Failure Reason | Solution |
|---|---|
| Insufficient permissions | The Agent will explain the required permission; you can allow it in the popup, or adjust the tool's security level |
| File does not exist | Check whether the path is correct; you can have the Agent first use Glob / List Directory to confirm the file location |
| Command execution error | The Agent usually analyzes the error and retries automatically. If it keeps failing, manually provide more context |
| Network timeout | Network tools such as Web Fetch may fail due to network issues; just retry later |
Related Documents
- Multimodal Input and Output — File input and preview capabilities
- Subagent — Task decomposition and delegation
- Agent Loop Engine — The underlying loop mechanism
- 5-Layer Context Compression — Long conversation context management
