My product
GhostOne: AI Employees That Have to Prove Their Work
How I designed, from A to Z, a team of agents that works inside a company's real tools, under human control.
Kamel DhakwaniCreator · Live, beta
A till cannot say "done" if it isn't done. I spent years designing software for points of sale, and that obvious fact stayed with me. When AI agents arrived, I saw the opposite: impressive demos that nobody would have trusted with a real invoice.
GhostOne was born from that gap. I created it from A to Z. This page explains how it works, with real scenarios you can run yourself.
The problem
AI projects in companies nearly always stop at the same place. You get an assistant that answers well, and the work is still done by hand, in emails, spreadsheets and business software.
The obstacle is not the model's intelligence. It is the questions a company asks as soon as a machine touches its systems. Who did this? With what authorisation? Did it really happen? An agent that cannot answer does not survive its first incident.
So GhostOne gives each company a team of agents with a name and a job, working inside its own software. The app, WhatsApp, email, voice and the API are only entry points. Behind them there is one engine, with the same rights and the same proof.
The rule that decides everything
The value is not in the model. Models improve every few months, and I treat them as an interchangeable engine. What lasts is the harness around them: rights, approvals, memory, processes and measurement.
It comes down to one sentence: code establishes the facts and keeps what it proves, the model understands the request and chooses among what it is allowed.
Code knows who is speaking, checks every call and writes the log. It never guesses a message's meaning from keywords. The model understands a request it has never seen, chooses the tool and writes the answer. It can do nothing that code does not allow.
It is best seen. In the diagram below, each column is an actor, and the bright dot follows the request.
Worked cases
Pick a request and follow it
Which product is lowest in stock this week?
Person · 1/7
A purchasing manager writes on WhatsApp, in her own words.
Notice what never changes. A question, a send and a payment follow the same path. Only the decision at the gate differs.
One gate for every action
Every tool call goes through the same gate, in the same order, whatever system sits behind it. There is one calculation, the same for every channel. Try a few combinations.
Your turn
Run an action through the gate
The action
Has the right?
Clearly requested?
- Right
- Act
- Consent
- Proof
- Log
Waiting for a person
A consent card explains the action. Nothing leaves without a yes. What is clearly requested runs. What is not waits for approval.
The system is closed by default. Anything missing is refused, and an unknown person is restricted. A refusal returns to the model as a clear result, with what it can do instead.
Saying is not proving
This is the detail I care about most. A model readily writes "done", because that is the likely end of the sentence. In GhostOne the word has to be earned: the tool's result decides what the agent may claim.
Saying or proving
The system answers. What should the agent say?
What the software answered
An agent without proof
All done!
GhostOne
Possibly created, to be checked.
An answer without an ID proves nothing. The doubt is stated.
The same rule applies to files. A spreadsheet produced with no rows is shown as "Empty: 0 rows", and the agent explains why rather than presenting it as ready.
What the model really receives
An agent only "knows" what it is sent on each round trip. The order of what is sent matters. The beginning does not change between messages, so the provider can read it from cache, faster and cheaper.
Under the hood
What goes to the model on every round trip
Tap a layer to open it.
A base of about 27 full definitions, depending on rights and what is connected.
Each piece has its reason, its moment and its maximum size. The total is held by a test: nothing is added without removing something.
I also learned what not to do. Four times I tried hiding tools from the agent to lighten this payload. Four times the result was the same: a tool you do not show is never called. The catalogue now names every permitted tool, and the agent chooses.
Connecting software without writing code for it
Code knows only acts: read, create, send, pay, delete, configure. It knows no client, no software and no trade. Software connected tomorrow follows the same gate with no specific development. A test refuses any client name in shared code.
Connections
Seven ways to connect software, one gate
MCP servers
The software presents its tools. Each is classified by act, and whatever is unsafe stays closed.
Example "Where does this store opening stand?"
Reads, writes with consentAn agent that learns, under control
The agent remembers where each person keeps documents, their preferences, what it was told. It shows this in "Memory", and each line can be erased in one gesture. What it learns never removes a company approval.
Loading everything on every message would make it slow and expensive. So it works like a real assistant. It keeps the day's agenda in mind, pulls the file when someone is mentioned, and goes to the archives when asked.
When the same request has succeeded three times in a month, the agent offers to run it on its own. The person describes the work in their own words, and the agent writes the steps, shows them and does a dry run.

If the process sends outside the company, writes to connected software or takes payment, a designated person must activate it. Each run opens a visible file.

The product is configured in plain words. The manager sees no server and no parameter, only questions: your team, what goes out alone, how to reach you, what it costs.

The test of reality
GhostOne is deployed in a franchise network, on its real tools and with its real teams. Around it, I connected applications for recruitment, project tracking, training and audits.
For me, "fixed" has to be earned. A behaviour counts only after passing several times with the real model, holding at a second client in another trade, and being retested in real use. No mechanism goes in without a case that justifies it.
What I take from it
- An instruction remains a request. A limit that matters must live in code.
- The model changes, the harness stays. That is where to invest.
- A clear refusal beats an invented success. Trust is lost with one false confirmation.
- What is not measured is not fixed. A feeling of progress is not enough.
A till rates the action, not the cashier. GhostOne rates the action, not the model.