Skip to main content

Choose a skill, program, operation, or native agent

Start with the lifetime and proof requirement, not the implementation language. A 30-line Python report and a six-crate Rust agent can both be “generated code,” but they solve different problems and should not share a deployment path.

The canonical comparison​

ChoiceProducesLifetimeAddressable serviceExecution isolationReplay and signed receiptUse it when
Ordinary Bash, Python, or agent toolsSession output and filesCurrent workNoWhatever the harness or shell suppliesNo Prometheus receiptExploration, editing, debugging, or low-risk local work
Forge and installed language toolchainsSource, packages, binaries, components, or scaffoldsPersisted artifactOnly if the program implements oneBuild-time rules, not Prometheus execution policyBuild logs onlyYou need to author, compile, audit, or package a program
Prometheus Exec Tier POne bounded Python, Node, or Bash runDurable run recordPrivate local operation APIOS process sandbox plus baseline/Cedar authorityHost-attested receiptGenerated scripts need bounded authority and evidence
Prometheus Exec Tier WOne authorized component invocationDurable run recordPrivate local or embedded APITyped component capabilities and Wasmtime limitsVerified portable projectionA deterministic algorithm must run under explicit portable capabilities
Native-agent generatorRust workspace, HTTP service, React UI, CLI, and optional Docker deploymentIndependent process/serviceA2A, AG-UI, A2UI, and chat endpointsIts deployment environmentNot an execution receipt by defaultThe capability needs a model loop, UI, port, independent lifecycle, or other agents as callers
Skill creatorInstructions, schemas, scripts, references, and hooksLoaded by supported AI toolsNoHarness-dependentValidation records, not execution receiptsA repeatable procedure or domain method should guide future agents

Use ordinary tools when evidence is not the product​

Prometheus deliberately preserves creative Bash and Python use. Editing files, exploring an API, compiling a project, running a local formatter, and investigating a failure do not automatically become formal operations. Wrapping every shell command would add friction without improving the evidence that matters.

Promote a command to Prometheus Exec when at least one of these becomes true:

  • duplicate execution would be harmful;
  • the caller may disconnect and return later;
  • code should see only declared inputs, outputs, environment, and network authority;
  • artifacts must be retained by digest;
  • another person or machine must verify what ran; or
  • the outcome will be used as certification evidence.

Use the installed toolchains to create the program​

Cargo, Forge, Node/npm, Python, templates, and code-generation skills create artifacts. They can scaffold a CLI, render a Rust crate, compile a component, or produce a script. They do not add Prometheus request identity, durable event ordering, CAS retention, or signed receipts.

That split is intentional:

  1. Generate and inspect the program with the best authoring tool.
  2. Choose its deployment form.
  3. If it is a bounded eligible operation, submit it to Tier P or Tier W.
  4. If it is a persistent product or service, build and deploy it normally.

The program-generation guide shows the supported paths.

Use a native agent when the runtime itself is the product​

/create-native-agent emits a complete Rust service: model routing, skill selection, MCP client support, A2A/AG-UI/A2UI, a React interface, a management CLI, and optional Docker packaging. Its process can outlive the session and accept work from users or other agents.

Prometheus Exec has none of those responsibilities. It owns one bounded operation lifecycle. It is a worker boundary, not a conversational agent.

The adapter is explicit because the current native-agent template has a network-oriented MCP client while Prometheus Exec exposes same-process stdio MCP and a private Unix-socket REST API. Documentation must not imply that newly generated agents are automatically wired to Exec.

Two WebAssembly formats that must not be confused​

The native-agent generator's librefang-wasm target and Prometheus Exec Tier W are separate contracts:

PropertyNative-agent LibreFang targetPrometheus Exec Tier W
Build targetwasm32-unknown-unknown core moduleWebAssembly component, normally wasm32-wasip2
Required ABIalloc, execute, memory, and LibreFang host callsprometheus:component@0.1.0 WIT world
Host purposeLibreFang/bossfang Agent OS skillDeterministic evidence-producing operation
AuthorizationLibreFang skill.toml capability manifestSigned plugin generation or exact component hash pins
InterchangeableNoNo

To offer the same business behavior in both systems, build two adapters around shared domain logic. Do not rename or repackage one binary and claim compatibility.

Common combinations​

  • Skill + Tier P: the skill explains a domain transformation; generated Python performs one evidenced run.
  • Forge + Tier W: Forge scaffolds a Rust component; Cargo builds it; plugin distribution authorizes it; Tier W executes it.
  • Native agent + Exec: the native agent owns conversation and scheduling; an explicit adapter submits high-value bounded jobs and stores receipt references.
  • Toolchain only: a developer generates and installs a permanent CLI that is operated as normal software.
  • Exec only: a caller already has eligible code and needs constrained execution, replay, or verification.

Next: Closed-loop architecture.