Tool-Using Chat Turns

Gives chat agents a per-turn tool set, records tool activity, and turns selected tool outcomes into durable conversation cards.

Overview

Description

Tool-Using Chat Turns allow an agent to do more than generate prose. For each send, Dots resolves the tools available to that actor, mode, provider, and context, applies the effective tool policy, and passes only the permitted definitions to the provider. Tool activity is normalized into conversation messages with input, output, state, category, and timing so the transcript explains the work behind the answer.

The runtime also supports product-specific outcome cards without teaching the chat core about every module. An injected resolver can recognize completed tool calls and emit typed chip drafts, which dispatch stamps and persists alongside the turn. This supports reviewable outcomes such as captured knowledge or proposed changes while keeping tool execution, visual presentation, and conversation persistence connected through explicit contracts.

Selling Points

  • Agents can retrieve knowledge and act through tools inside the same conversation instead of forcing users to switch workflows.
  • Per-turn resolution offers only relevant tools, reducing accidental capability exposure and unnecessary model context.
  • Durable tool messages make completed actions inspectable after the live run, including failures and structured outputs.
  • Typed categories distinguish platform, MCP, agent-native, and external calls so downstream renderers and metrics remain consistent.
  • Outcome-card seams let modules turn important tool results into recognizable, reviewable objects without coupling chat to their internals.

User Story

A user asks an agent to find a past decision and prepare a follow-up. The turn exposes the permitted Dots retrieval tools, the agent searches and reads the relevant rows, and the transcript records each call. A module-owned resolver converts the resulting proposal into a durable chip. The user walks away with both the cited answer and a clear record of what the agent queried and produced.

Extension Surface

This feature is extensible. packages/chat/src/contracts/turn-seams.ts exports ResolveTurnToolsLike and ResolveToolCallChipsLike, allowing in-repo modules to supply definitions and map completed calls to chips. packages/chat/src/dispatch/tool-subset.ts applies policy-driven subsets. These structural seams are composable, but third parties do not register chat tools directly through this package.

Capabilities & Limits

  • It resolves a tool catalog independently for each turn and applies the effective allow/deny posture.
  • It records normalized tool calls and can surface live tool activity during streaming.
  • It converts selected tool outcomes into typed, durable conversation chips.
  • Limit: the chat package does not implement the tools themselves; execution and authorization remain with provider and composition layers.

Implementation Map

  • packages/chat/src/contracts/turn-seams.ts
  • packages/chat/src/dispatch/tool-subset.ts
  • packages/chat/src/dispatch/tool-classify.ts
  • packages/chat/src/dispatch/commit-turn.ts
  • packages/chat/src/types.ts

Properties

Property
Value
product
dots-platform
extensibility
extensible
module
Chat, Conversations
packages
chat
status
shipped
surface
ui
summary
Gives chat agents a per-turn tool set, records tool activity, and turns selected tool outcomes into durable conversation cards.

Connections

Tool-Using Chat Turns · Explore connections

  • documented bytoStart A Chat Conversation
  • complementstoStreaming Agent Responses
  • implementstoDS_Conversations — Conversations Foundational Dotabase (Sub-Phase 7.1)
  • implemented bytopackages/chat/src/dispatch/commit-turn.ts
  • implemented bytopackages/chat/src/dispatch/tool-subset.ts
  • implemented bytopackages/chat/src/types.ts
  • implemented bytopackages/chat/src/dispatch/tool-classify.ts
  • implemented bytopackages/chat/src/contracts/turn-seams.ts
  • requirestoReliable Chat Turn Dispatch
  • complementsfromConversation Insights
  • complementsfromChat Modes and Source Controls
  • complementsfromStreaming Agent Responses
  • complementsfromLocal Agent MCP Tool Bridge

Connected Records13

Complements
Documented by
Implemented by
packages/chat/src/contracts/turn-seams.ts
packages/chat/src/dispatch/commit-turn.ts
packages/chat/src/dispatch/tool-classify.ts
packages/chat/src/dispatch/tool-subset.ts
packages/chat/src/types.ts
Implements
DS_Conversations — Conversations Foundational Dotabase (Sub-Phase 7.1)
Requires
13 connections.

Documents