cd /news/ai-agents/turning-long-ai-sessions-into-a-work… · home › topics › ai-agents › article
[ARTICLE · art-169462] src=dev.to ↗ pub= topic=ai-agents verified=true sentiment=↑ positive

Turning long AI sessions into a work map: dsh-topic-graph

A developer built dsh-topic-graph, a plugin for the dsh AI coding agent that splits long sessions into turns and uses a model to incrementally cluster them into named topics and stages, each tagged with token usage, tool calls, and agent time. The tool renders the results as a stage-to-topic tree, a turn-by-time timeline, and a semantic relation graph that surfaces revisits and subagent delegation. It is aimed at answering effort questions—which part of a session was most expensive, slowest, or most tool-heavy—rather than summarizing chat content.

by read5 min views1 publishedNov 14, 2026

Split a session into turns, let AI incrementally cluster them into topics and stages, and see at a glance where tokens, tools, and time went.

dsh-topic-graph If you use an AI coding agent for real work, you know the feeling: after a few hundred turns, you can no longer answer the simplest management questions about your own session:

A chat log is a linear list of messages. But the work is a network: you bounce between features, hit errors, go back, verify, and revisit. Once a session gets long, reconstructing that map from memory and search is a archaeology project.

dsh-topic-graph does that reconstruction for you. It listens to the session event stream, splits the session by turns, and asks the model to incrementally fold turns into topics and topics into stages — with names, summaries, and stats.

The whole plugin is built on a deliberately boring abstraction:

Concept What it is
Turn One user message → the assistant's completed reply. The unit of measurement and segmentation.
Topic One continuous line of work, e.g. "implement the login endpoint" or "debug the cache stampede".
Stage A group of adjacent topics that belongs together, e.g. "requirements → implementation → integration".

Every topic and stage is named and summarized by the model, and carries its token usage, tool calls, and agent time. That's the key difference from a plain "chat summary": it measures effort, not just content.

The main view is Topics · Workflow. On the left is a stage → topic tree; on the right is the selected stage's detail.

Drill into a turn and you get the token breakdown (input / output / cache read / cache write), step activity time, tool calls, total steps, and the model — plus the user prompt and assistant reply, with a one-click jump to the conversation.

Some turns are dense — a messy debugging session, a long investigation. One click turns the turn's model/tool trace into a human-readable, step-by-step explanation, with each step tagged by how many trace steps it covers. The result is cached and can be regenerated.

Switch to Topics · Graph and you get the timeline by default: the X axis is turns (time), the Y axis is stages (lanes), and each topic is drawn as a colored bar spanning its turn range.

Semantic relations between topics are drawn as faint dashed curves — subtle by default, highlighted on hover or click. You can read "where did we go back to something" without turning the view into a spider web.

The structure graph is the stage → topic tree, with a relation rail on the right that draws the relations between topics. Stages collapse, hover shows details, click opens the topic.

The timeline answers "what happened when". The structure graph answers "how does the work fit together". They're complementary, not alternatives.

The top bar shows session-level stats — tokens, step time, tools, turns, topics, stages, relations, and the AI segmentation cost — with the segmentation model selector and manual segmentation controls right there.

Each topic, stage, and turn gets three shares:

After one "project" in a single session, you can answer directly: which part was most expensive, which was slowest, and which was the most tool-heavy.

Beyond "what came before what", the plugin identifies semantic relations:

next — the chronological chain of adjacent root topics;belongTo — a topic belongs to a stage / a subtopic belongs to its parent / a subagent topic belongs to a branch;has_relation — model-judged semantic relations (depends on / continues / contrasts / fixes / verifies / delegates — parent topic → subagent branch delegation. Revisits are the pattern that matters most in long sessions: "we talk about A, move to B, then come back to A". After segmentation, the plugin runs a cheap, title-only relation pass specifically to surface these "we came back" loops.

In dsh, a subagent runs in its own session — easy to lose track of. The plugin segments subagent sessions too and draws them as branches under their parent topic. Multi-level delegation (a subagent spawning another subagent) is supported.

The result: the main agent's and the subagents' tokens and time can be compared on the same map, instead of each session being its own island.

The hard part of "draw a structure over hundreds of turns" isn't the model's intelligence — it's context length and stability. A few things the plugin does:

The result is that even a huge session can be imported incrementally, while you watch, instead of waiting for one big request that may fail.

The plugin adds a Topic Graph page under dsh Settings:

Option 1 (recommended): from the dsh-market plugin market

Search for dsh-topic-graph in dsh's plugin market and click Install. Plugin page:

👉 https://awesome-dsh-plugin.com/p/hagen666/dsh-topic-graph/

Option 2: npm

dsh plugin --profile web add dsh-topic-graph

Option 3: GitHub

dsh plugin --profile web add github:hagen666/dsh-topic-graph

Restart dsh and refresh the page — the Topics view appears right after Chat / Trajectory.

The premise is simple: sessions are written for the AI, but progress is read by humans.

Fold a few hundred turns into a map with stats, relations, and jump-to-turn, and questions that used to require memory — "where are we?", "why did this take so long?", "where was that conclusion?" — become a glance.

If you run long tasks with dsh, give it a try. Issues and ideas are very welcome.

── more in #ai-agents 4 stories · sorted by recency
── more on @dsh-topic-graph 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
→ Live at https://your-agent.zahid.host ✓
Get free account → Pricing
from €0/mo · no card required
LIVE [news/turning-long-ai-sess…] indexed:0 read:5min 2026-11-14 · —