Synonode Docs

Working with Synonode

Agents

Synonode can start helpers with their own fresh context: to search wide, to read a lot without filling the conversation, or to do parts of the work in parallel.

Why agents

Everything Synonode reads stays in the conversation and takes up the model's context. A wide search can read dozens of files to find the three that matter. An agent does that reading in its own fresh context and brings back only what was found, so the main conversation stays short, fast and focused. When Synonode has searched or read several web pages, or searched and read several files, itself in one request, it is reminded once that agents could take the rest, and that the helper is free when one runs. The choice stays its own: a page or a file or two more it simply reads itself.

The three kinds

AgentWhat it does
ExploreRead-only. Searches the code or files and reports what it found and where. It can't change anything. Asked to be quick, medium or very thorough.
PlanRead-only, like Explore. Studies the code a change will touch and comes back with a step-by-step plan, the files that matter most and the trade-offs. Used while planning, before anything is built.
General-purposeCan read, write and run commands, like Synonode itself. Gets the project's instructions and state before it starts. Used for a self-contained part of the work.

/agents lists them, with any you added in .synonode/agents/. An agent file whose frontmatter says model: small (or model: haiku) runs on the helper model when one runs.

When Synonode uses them

  • A question whose answer is spread across many files: where is the price calculated?
  • Several independent pieces of work, run at the same time.
  • Research, where each agent reads sources on one part of the question.
  • After many searches in one turn, Synonode is reminded that an agent would keep the conversation lighter.

It doesn't use one for something it can do in a step or two: an agent starts from nothing and has to be told everything.

Seeing them work

An agent shows in the chat as a step of its own, with what it was asked and, when it finishes, what it found. You can ask for one directly: use an agent to find every place we send an email.

On a local model, agents share the model with the main conversation, so agents on the same model take turns rather than running truly at once. They still keep the conversation's context clean. With a helper model, Explore agents run on it instead, and agents sent together start together: the helper's work at the same time as the main model's, each model taking its own in turn.

On the main model or the helper

An agent runs either on the main model or on the helper model. They are not the same thing: every agent keeps its reading out of your conversation, but only one on the helper also saves time, because it works beside the main model.

  • By default, Explore agents (and custom ones marked model: small) go to the helper when one runs. General-purpose and Plan agents stay on the main model.
  • Synonode can choose for each agent, and is told to prefer the helper for quick, straightforward tasks: a quick lookup, on the web or in the code, can go to the helper; long research and code changes stay on the main model, whose context is far bigger. Ask for "helper work" and it sends the agent to the helper.
  • The chat says where it ran, under the agent once it is done (helper model or main model), and so does the Overview while it works. When no helper is running, an agent meant for it runs on the main model and says so.

In the background

Synonode can send any agent to the background and go on with the work: the agent's report comes back to Synonode when it finishes, as a background command's does. Where the agent works depends on your computer, the first of:

  • The helper model, for an Explore agent (or a custom one marked model: small) when a helper runs: the two models work at once.
  • A spare slot of your model, for any agent, when llama-server runs with -np 2 or more (and without --kv-unified): the conversation keeps its slot and the agent works beside it, so neither has to read the other's context again. Each slot gets its share of -c, so raise it to match.
  • Between your replies otherwise: each step of the agent waits while Synonode answers you, so a message you send waits for one step at most.

The runner's window says which of these you have, under Helper model.

The helper's memory for a conversation is small, so Synonode gives each of its agents one small, focused question and sends several of them for a bigger search. If an agent on the helper still fills it, so that a step would be cut off, the main model does that step and the rest of the agent's work; the chat then says helper, then main model. An agent in the background, working beside the conversation, stays on the helper.

The Overview's Background tasks shows every running agent: where it runs (the helper, a slot of the model, or the model between replies), how full its context is, how fast it writes (unless Model speed is off) and how many steps it has taken. A background agent has a stop button there.