馃寛 ~khtdr/

home / Software / agents

The idea

In most agent frameworks an agent is a class you subclass and a pipeline is a function you deploy. Rewording a prompt means a commit, a review, and a release.

Here an agent is a row. Tools are still code. Everything else is data. Changing an agent is a save. The old version stays behind, and every run records which version produced it, what each step cost, and what each sub-agent said.

That is the trade. You give up compile-time types on the agent definition. You get something you can edit, version, replay, and A/B test without opening a repo.

npm install -g @upship/agents
agent serve

That serves the UI at localhost:2137. The package is @upship/agents on npm. You need an OpenRouter key first, and the quickest way to get an agent is to let the CLI build one by asking you questions. Both are in Getting started.

The graph composer: a four-way conditional router drawn on a canvas, with a node inspector open on the right
A conditional router on the canvas. Drag from one handle to another to connect two steps. Click a node or an edge to edit it. The same picture shows the pipeline while it runs.

Start here

Getting started

One key, one install, and an agent you built by answering questions. About five minutes.

Features

The full list, plus a tour of the screens. Pipelines, gates, debate, memory, cost tracking, versions.

Tools

What ships, how to call an HTTP API without writing code, and how to add a tool of your own.

Running code

An agent can write a script and run it. Here is exactly how far the sandbox goes, and where it stops.

CLI, API, embedding

The browser is one client. There is also a CLI, an HTTP API, and a runtime you can import.

Operating it

Ports, hosts, where the files live, moving to Postgres, and the things that go wrong.

How it compares

Against Flue and against Sapiom, including the parts where they win.

What you can build with it

Research briefs

Search once. Send the results to an analyst and a fact-checker at the same time. Merge the two into one brief.

Support triage

A classifier reads the request and the pipeline picks one handler. The branches nobody took cost nothing.

Deploy approvals

A pipeline stops to ask a person which environments to ship to, then picks up where it left off. Hours later is fine.

Draft and critique

A writer and a critic trade drafts until the critic signs off. Every draft and every critique is kept.

Incremental jobs

A daily digest that remembers where it stopped. Two overlapping runs will not process the same thing twice.

Number crunching

Hand it a spreadsheet and let it write the Python. Files the script leaves behind come back attached to the run.

Talking to your own API

Point a step at an internal service. The key stays in the encrypted store and the model never sees it.

Prompt A/B tests

Replay a past run against a different version or a different tool, then compare the two outputs side by side.