Search Agentik

CtrlK

Docs

Talk to the OS. Do not tour it.

One tool carries the conversation. The OS stays complete and precise. The member gets an answer, not a list of lookups.

01 Before and after

The host used to explore before it spoke.

Twenty tools with equal weight told the host to look everywhere first. Each call was a round trip, and the roster alone filled the context. The member waited through a search to get one sentence.

Before
  1. list_os to find the OS
  2. list_agents to read the full roster (about 110 KB on Growth OS)
  3. list_instances, then open_instance
  4. recall with no query, then list_objects
  5. ask_director, which opens a blocked job
  6. approve, before a single word of advice
Now
  1. talk({ osId, message, project? })
  2. The server resolves the project, stores a fact if the member said remember, and ranks memory
  3. The host answers from a pack of about 2 KB
  4. approve only when the pack says gate

Faster because it is one round trip instead of five or six. Cheaper because the host reads a few KB instead of the full roster. Calmer because the server tells the host, at connect time, to call talk and nothing else.

02 Talk

One call returns everything a reply needs.

project
The active project: slug, name, created or switched
memory
At most five fragments ranked against the message. Never the whole store
objects
The eight most recent object titles on that project
agents
Director plus eight compact roles. agentCount says how many exist
next
answer, remembered, project, or gate. The host follows it
hostInstruction
One line: answer in the member's language, one reply, no tour
job
Null in a normal turn. A blocked Director job only on a gate

The server reads the sentence first. Intent is detected without a model call, in English and French. Anything else is a plain turn.

Plain message
Qu'est-ce qu'on fait en premier ? next: answer
Remember
Souviens-toi que Client 1 refuse la pub payante. next: remembered
New project
Crée un projet pour Client 2 next: project
Switch
Passe sur le projet client-1 next: project
List
Liste mes projets next: project
Gate
Publie ce brouillon next: gate

The same rule reaches the host once, in the MCP initialize result:

Server instructions

Agentik OS: talk to an operating system through ONE tool, talk({ osId, message, project? }).
For every normal member message call talk once, then answer from the returned pack in the member's language. One reply.
Do not call list_os, list_agents, list_instances, open_instance, recall or list_objects to warm up. talk already returns the director, a compact roster, the relevant memory and recent objects for the active project.
Projects: one OS can hold several isolated projects (client-1, client-2). Pass project when the member names a client. Without project, talk continues on the project used last.
Follow pack.next: answer = just reply; remembered = confirm in one line; project = name the active project; gate = explain, then call approve only after the member says yes.
Use ask_director, ask_team or run_os only when the member asks for formal, gated work.

talk

talk({ osId: "growth-os", message: "Open one mission from product facts I already have: [facts]. Do not mobilize all 48. Stop before outreach." })

CLI

agentik talk growth-os "What should we do first?" --project client-1

03 Projects

Growth OS for Client 1 is not Growth OS for Client 2.

A project is a cloud instance with a name. Each one has its own memory, objects, connections, overlay, and audit. Nothing crosses between projects. Same member, same seat, same OS.

Name a project
Pass project on talk. Unknown names are created on the spot.
Say nothing
talk continues on the project you used last.
Switch
use_project, or say it. A missing name keeps you where you are.
Limits
5 projects per OS on $19, 15 on $99, 40 on $199. A lifetime unlock has no cloud project.

Talk on a project

talk({ osId: "growth-os", project: "client-1", message: "Open one mission from product facts I already have: [facts]. Do not mobilize all 48. Stop before outreach." })

list_projects

list_projects({ osId: "growth-os" })

create_project

create_project({ osId: "growth-os", name: "Client 1" })

use_project

use_project({ osId: "growth-os", project: "client-1" })

04 Memory

Relevant, not exhaustive. Scoped, not shared.

Memory used to match one exact substring or return everything. Now each fragment is scored against the message: shared words, word stems, accents folded, and a small bonus for recent facts. The top five travel with the reply.

Storage follows the project. Fragments stay sealed per workspace. Quotas count per project, so a busy client does not starve a quiet one. Existing instances keep working: they read as the Default project until you name another.

05 Future OS

Every new OS inherits the conversation for free.

talk reads the compiled roster, the Director, and the package facts of whatever OS is named. It carries no code per OS. Compile a new package, grant the capability, and talk, projects, and ranked memory work on day one. Formal jobs, gates, and approve stay exactly as How to talk describes.

Tool reference: API. Connection and OAuth: MCP.