Micheal Cunningham.Software developer & AI engineerLet’s talk
← All articles

Applied AI

Put AI where the decision happens

Useful application AI has context, a defined action, and a reviewable result. The interface should make all three visible.

Begin with a specific action

When I think about AI in business software, I start with a task someone already performs. Summarize a conversation. Turn a rough note into a useful document section. Suggest the next step in a project. Help explain the information on the screen.

That gives the feature a purpose and gives the user a way to judge the result. A summary should accurately represent the conversation it was given. A suggested edit should improve the selected text while preserving its meaning. A proposed action should explain what will change.

My interest is in making that assistance part of the application experience. The person should be able to use it where the relevant record, document, and decision already live.

Make the context understandable

AI assistance depends on the information supplied to it. The application needs to decide which record, selection, related information, and instructions belong in a particular request.

I want that boundary to be visible enough for the user to understand. If an assistant is revising one paragraph, the interface can identify the selected text and the requested operation. If it is summarizing a ticket, it can show which conversation or notes are included.

Permission checks still belong to the application. A user asking for a summary does not create permission to read another tenant's records. Access to one customer record does not imply access to every document related to that customer.

The same principle applies to action tools. The backend should independently verify the actor, tenant, permission, and current record state for the action being attempted.

Let people inspect the proposed change

For document editing, I prefer an explicit proposal. Keep the original text available, show the suggested revision, and let the user accept or reject it.

That makes the interaction easier to evaluate. The user can see whether the suggestion changed a date, removed a qualification, or introduced a claim they did not make. An explanation of the edit can help, but the changed content is the evidence that matters.

The application also has to account for concurrent work. If the document changed while a suggestion was being prepared, applying that suggestion blindly could overwrite newer content. The edit needs to be checked against the version or selection it was based on.

A polished animation cannot compensate for losing a person's work. Review and conflict handling are part of the feature.

TRY THE VERSION BOUNDARY

Prepare a suggestion, edit the draft, then try to apply it.

Prepared text, no live model. This uses the same version check as this portfolio’s Document Studio. It demonstrates the guard added to this recreation, not a verified guard in the original Nexus editor.

Match authority to the action

I use advisory and assisted behavior as useful starting points. The system can suggest something, or help carry out a specific action within a defined workflow. The authority granted should be understandable and appropriate to the consequence.

Sending a customer email, changing a bill, deleting a record, or executing something on an endpoint has a different impact from drafting a paragraph. Each action needs its own permission and state requirements. Where approval is required, it should apply to the actual prepared action and its contents.

The execution path also needs an answer to retries. If a request times out after an action succeeds, repeating it should not silently send another message or perform the same charge twice. That behavior must be designed in the application, regardless of which model proposed the action.

Make the outcome visible

After an action, the interface should tell the user what actually happened. A draft was generated. An edit was accepted. An action is waiting for approval. Delivery failed. These are different outcomes and deserve different states.

I also want enough history to explain a consequential change: who requested it, what was proposed, who approved it when necessary, and what the system executed. That helps people operate the application and investigate a problem without inventing a story from incomplete signals.

My practical takeaway is to build one AI feature all the way through. Define its context, show its proposed result, check its authority, and handle its final outcome. That is where a compelling demonstration becomes useful application behavior.

KEEP READINGThe customer record should travel with the work ↗

Something you want to build?

Let’s work through it.

Work directly with me on the architecture, the application, and the details that make it useful.