top | item 45097113

(no title)

curl-up | 6 months ago

In the context compression approach, why aren't the agents labeled as subagents instead? The compressed context is basically a "subtask".

This is my main issue with all these agentic frameworks - they always conviniently forget that there is nothing "individual" about the thing they label "an agent" and draw a box around.

Such "on demand" agents, spawned directly from previos LLM output, are never in any way substantially different from dynamic context compression/filtering.

I think the only sensible framework is to think in terms of tools, with clear interfaces, and a single "agent" (single linear interaction chain) using those tools towards a goal. Such tools could be LLM-based or not. Forcing a distinction between a "function tool" and an "agent that does somethng" doesn't make sense.

discuss

order

jskalc92|6 months ago

I think the most common implementation of "subagents" doesn't get full context of a conversation, rather just an AI-generated command.

Here task is fullfilled with the full context so far, and then compressed. Might work better IMO.

adastra22|6 months ago

In my experience it does not work better. There are two context related values to subagent tool calls: (1) the subagent trials and deliberations don’t poison the callers context [this is a win here]; and (2) the called agent isn’t unduly influenced by the caller’s context. [problem!]

The latter is really helpful for getting a coding assistant to settle on a high quality solution. You want critic subagents to give fresh and unbiased feedback, and not be influenced by arbitrary decisions made so far. This is a good thing, but inheriting context destroys it.

peab|6 months ago

Yeah, i agree with thinking of things as a single agent + tools.

From the perspective of the agent, whether the tools are deterministic functions, or agents themselves, is irrelevant.

OutOfHere|6 months ago

I think one can simplify it further. There is no agent; it's just tools all the way.

The caveat is that multiple tools must be able to run asynchronously.

Context compression of one's own lengthy context is also useful and necessary as the message chain starts to get too large.