Skip to content

Design an agent by clicking, not by filling a form - #67

Merged
rajanbor merged 1 commit into
mainfrom
feat/agent-wizard
Sep 16, 2026
Merged

rajanbor merged 1 commit into
mainfrom
feat/agent-wizard

Conversation

@rajanbor

Copy link
Copy Markdown
Owner

Stacked on #66; GitHub retargets this to main as the stack merges.

Change

Making an agent was a column of text fields: type a name, type a role, type a path, pick from two dropdowns, press a button that explains it cannot save. Almost every choice there is a choice from a set this workbench already holds — so it should be a thing you click.

Five questions, one per step: purpose → project → model → sandbox → review. The next step unlocks as the current one is answered, any answered step is reachable again from its own chip, and a locked chip says which answer is missing.

Purpose is an object in the engine

domain::AgentPurpose carries a role, a suggested name, instructions, and the patterns, skills, servers and tools that belong with them — review changes, implement a change, run the tests, audit the interface, write the release notes, answer questions about the code. Choosing one fills the blueprint.

The review step then shows what the purpose filled, each line marked with what it is (instructions, patterns, skills, servers, tools), and what the agent would be allowed to do: the folder, the network from its sandbox, the shell, the model, and every permission the chosen skills and servers would ask of the sandbox — blocked ones included.

A test asserts no purpose names a pattern, skill, server or tool the library does not have, so the wizard stays a shortcut through the editor rather than a second source of truth.

Informed choices, not alphabetical ones

A purpose carries one line about what the work needs of a model, shown above the model cards. The cards show where each model runs, whether it is ready, and what it costs — per token, per month, or in electricity. Sandbox cards show isolation, network and the account the work would run as.

One bug worth naming

The draft is restored before it is saved back. Written the other way round — save effect declared after the load effect but running with the pre-restore value — the empty default overwrote the stored design the moment the panel reopened, and it came back blank. Reopening now also returns to the first unanswered step.

Validation

  • cargo test -p open-cube-core — 27 tests, one new: every purpose names only patterns, skills, servers and tools the library actually has, and none hands an agent empty instructions.
  • pnpm fallback, pnpm build clean.
  • In the browser: designed an agent end to end with clicks only (Run the testsDesign systemQwen2.5 7B Instructproduct-dev), arriving at a review that named it tests, showed the role as coming from the purpose, listed what was filled, and listed the folder, network, shell, model and derived permissions. Reopened the tab and the draft came back.

Security impact

None. Creating still reports that an agent is written by the daemon, which owns the account it would run as. The panel writes only its own draft to browser storage.

Closes #61.

Making an agent was a column of text fields: type a name, type a role, type a
path, pick from two dropdowns, press a button that explains it cannot save.
Almost every choice there is a choice from a set this workbench already holds,
so it should be a thing you click.

It is five questions now — purpose, project, model, sandbox, review — one per
step, each answered by a card, with the next unlocked as the current one is
answered and any answered step reachable again from its own chip. A locked step
says which answer is missing rather than nothing.

Purpose is an object in the engine. `domain::AgentPurpose` carries a role, a
suggested name, instructions and the patterns, skills, servers and tools that
belong with them — review, implement, verify, audit, write, explore. Choosing
one fills the blueprint, and the review step shows exactly what it filled, each
line marked with what it is, above what the agent would be allowed to do:
the folder, the network, the shell, the model, and every permission the chosen
skills and servers would ask of the sandbox. A test asserts no purpose names a
pattern, skill, server or tool the library does not have, so the wizard stays a
shortcut through the editor rather than a second source of truth.

A purpose also says in one line what the work needs of a model, and the model
cards show where each one runs, whether it is ready, and what it costs — per
token, per month, or in electricity. Choosing is then informed rather than
alphabetical.

The draft is restored before it is saved back. Written the other way round, the
empty default overwrote the stored design the moment the panel reopened, and
the panel came back blank.

Creating still reports that an agent is written by the daemon, which owns the
account it would run as.

Closes #61
Base automatically changed from feat/project-tab to main September 16, 2026 12:02
@rajanbor
rajanbor merged commit 430cff4 into main Sep 16, 2026
11 checks passed
@rajanbor
rajanbor deleted the feat/agent-wizard branch September 16, 2026 12:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Agent studio: design an agent by clicking, not by typing a form

1 participant