
Build, Evaluate, and Publish an OpenPond Agent
An Agent is more than a saved prompt. It is a packaged role with actions, tools, channels, lifecycle, and evaluation behavior. The reliable way to ship one is to make its source reviewable before it becomes available to other people or workflows.

1. Define the Agent in source
The TypeScript-first Agent SDK is the authoring package:
openpond-agent-sdk. It supports Agent source, actions, Skills, workflows,
integrations, volumes, schedules, validations, evals, and traces.
Start with one narrow job. Put durable instructions and reusable procedures in
source. Keep secrets in platform secret references, never in the Agent source
or a SKILL.md file.
2. Add the right reusable building blocks
Use a Skill for a focused reusable procedure. Use an Agent when the job needs a packaged identity or operational behavior. Add only the tools and connected-app authority the job requires; an Agent does not get general account access merely because it has been published.

3. Validate and evaluate before delivery
Inspect the source, run validation, and evaluate representative behavior. Treat the generated manifest as the runtime contract. A good evaluation is specific about the success condition and keeps held-out evidence separate from examples used to design the Agent.
4. Publish through a Profile
A Profile is the Git-backed boundary for instructions, Skills, Agents, and their published versions. The delivery sequence is deliberate: load source, review the diff, commit, push, materialize, run hosted checks, and publish an immutable version. This is why publication is not an unaudited upload.
Once published, a Workflow can invoke an immutable Agent action manually, on a schedule, or by webhook where that trigger is configured and authorized. Each trigger still respects the Agent's approvals, connected-app permissions, spend, and Sandbox boundaries.