Follow along directly: a minimal summarization Agent.

This example installs no npm/pip packages and depends on no Plugin, MCP, or WebUI. It uses only AGENTS.md to constrain main, making it suitable for validating the shortest path from Program to WebChat.

Example files

examples/minimal-summary-agent
minimal-summary-agent/
├── README.en.md       # English follow-along instructions
├── AGENTS.en.md       # Copy a temporary copy to /oasn/AGENTS.md
├── avatar.png         # Example 1:1 PNG avatar for the Agent Card
├── MOM.en.md          # Upload to the Agent Card on the website
└── test-cases.en.md   # English minimum WebChat test set

Path inside the offline package: examples/minimal-summary-agent/. Read that directory's complete README.en.md before following the workflow below. It explains why the English source AGENTS.en.md must be copied to the canonical remote filename /oasn/AGENTS.md.

From an empty draft to a testable Program

  1. Create the Agent and version draft

    Sign in to the website, open My OpenAgents, and click Create. Use the strict N.N.N version format, for example 0.1.0.

  2. Connect a local Agent

    In the version workspace, click Build With Local Agent, copy the complete trusted prompt, and give it unchanged to a supported local development Agent. The prompt is already bound to the current Agent and Version; do not remove or replace either ID.

  3. Obtain an active, verified Workspace

    Use CLI 0.7.3 for verified installation and doctor, then run workspace sources and explicitly choose an existing Workspace, a restorable source version, or --fresh. Create the Workspace and wait for active. If no existing key is usable, obtain approval before creating one. Then run workspace connect; continue with SSH/SCP only when it reports ssh_binding_status=bound and ssh_verified=true.

  4. Safely synchronize AGENTS.en.md to /oasn/AGENTS.md

    Treat AGENTS.en.md as a read-only source and create a temporary copy named AGENTS.md. With separate synchronization authorization, use the complete SSH/SCP information from this successful workspace connect result. Upload first to /oasn/.oasn-staging/<run-id>/, and apply it as /oasn/AGENTS.md only after both SHA-256 values match.

  5. Run three kinds of request in WebChat

    Open the WebChat URL returned for the active Workspace and execute the normal-text, real-text-attachment, missing-input, and unsupported-input cases in test-cases.en.md. Record actual responses and never mark an unexecuted item as passed.

  6. Complete the Agent Card

    Upload the example directory's 1:1 avatar.png, enter the name, description, and category, and upload MOM.en.md. The MOM contains the three required level-two headings: Use when, Inputs, and Outputs. For a production Agent, replace the avatar with one you have the right to use and that does not impersonate an official platform identity.

  7. Complete models, resources, and pricing

    Select a platform model for LLM and choose one available CPU and one available Memory specification under Resources. This example needs no additional Plugin, MCP, or A2A integration. Enter an integer cost-plus gross margin from 0 to 100 and a non-negative Minimum Starting Balance denominated in Credits, then save the draft.

  8. Publish, go online, and perform formal acceptance

    Wait for succeeded + visible. The version remains Offline by default, so click Go Online. Open the user_agent_url in the publish result; if it is not displayed, search the website's public Agents list for the exact name “Minimal Summary Assistant” and verify the result. Click Use in ChatGPT, or select Claude/WorkBuddy from the menu, and install it through the dialog. In the actual client, search for/select “Minimal Summary Assistant,” verify its description and developer identity, and rerun the representative request. If the public page, current Agent, or installation entry point cannot be found, record BLOCKED/NOT TESTED; development WebChat cannot replace formal acceptance.

Three required test requests

CaseSubmissionExpected behavior
Normal text “Condense the following into three points: an OpenAgent version is developed first, then tested, and must still be put online after publishing.” Returns a concise summary with one to three points and introduces no fact absent from the input.
Text attachment Upload a small UTF-8 text or Markdown file and request: “Summarize the file and identify its key facts.” Explicitly summarizes the current attachment, scans no other files, and produces a result consistent with the attachment.
Missing input “Please summarize this,” without providing text or an attachment. Asks the user to provide text or an attachment; does not invent a summary or claim to have read a file.

Why this example is a sufficient starting point

The example is not a production promise.

It includes no WebUI, MCP, A2A, external network access, persistent database, or complex file generation. After adding a capability, update Models and CPU/Memory as needed, implement the corresponding extension in the Workspace, and add a separate real test for every capability.