Skip to content

[Proposal] Intent-based agent addressing in threads using a System One decision model #8015

Description

@brennanMKE

Motivation

In a thread with one or more agents, a human message only wakes an agent if it carries an explicit @mention. Natural follow-ups like "yes, go ahead" or "can you also check the tests?" are silently dropped, so every reply needs a fresh @.

This hits anyone working conversationally with agents in threads, and it gets worse with multiple agents. Some messages are meant for one specific agent, some for another, and some are human-to-human and shouldn't wake anyone. "Who is this message for?" is a judgment call, not something a mention-or-nothing rule can capture.

Proposed solution

Use a System One decision model to classify each human message in a thread that has agent participants:

  • Input: the new message, the last N thread messages, and the participating agents (name + short role description).
  • Decision: a choice over {agent_1, ..., agent_n, none}, with a confidence score.
  • Action: if the top choice is an agent and confidence exceeds a threshold, treat the message as if that agent were mentioned. Otherwise do nothing.

Candidate models:

  • Jev (TypeSafe AI): hosted, typed decisions, low latency and cost.
  • Laya (ConvAI Innovations): open weights, runs locally. Fits self-hosted relays.
  • [My Go implementation of Laya: https://github.com/brennanMKE/laya-go], which could run alongside the harness without a Python dependency.

Preferred placement is composer-side: the client classifies before sending, adds the agent's p tag, and shows "Will go to @agent" in the composer, which the user can remove. No relay or protocol change. The routing is visible and correctable, and it compiles to exactly what typing the mention produces today.

Invariants to preserve:

Alternatives considered

These heuristics are a good baseline and could ship first. The classifier is a layer on top for multi-agent threads. At typical System One latency (tens to a few hundred ms), it adds little to a turn that will take an LLM seconds to answer.

Additional context

Duplicates: none found for intent classification. Closest is #2270 (thread-follow via participation tracking). Also related: #5867, #5096, #6938.

  • Jev: TypeSafe AI's System One model, returns typed decisions with probabilities.
  • Laya: open-source non-autoregressive System 1 decision engine from ConvAI Innovations.
  • Go Laya implementation

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions