Skip to content

<>…</>

A JSX fragment (<>…</>) returns its children directly. Use it when a component needs to contribute several authored values without inventing a wrapper primitive.

import { Agent, AmlRuntime, System } from "@aml-jsx/sdk"
import { DeterministicAgentProvider } from "@aml-jsx/sdk/testing"
function ReviewInstructions() {
return (
<>
<System>Be concise and evidence-first.</System>
Review the authorization change.
</>
)
}
const runtime = new AmlRuntime({ agentProvider: new DeterministicAgentProvider() })
const result = await runtime.evaluate(
<Agent>
<ReviewInstructions />
</Agent>
)

The automatic JSX transform imports Fragment from @aml-jsx/sdk/jsx-runtime; application code normally does not import it by hand.

  • Children are resolved and concatenated in authored order.
  • <>…</> inserts no separators or prompt text of its own.
  • It creates no Agent, Sandbox, Workspace, capability, trace, or cleanup boundary.
  • It does not start siblings concurrently. Use <Parallel> for independent text-producing branches, or Promise.all() around component-local evaluate() calls when JavaScript needs each result.
  • Descriptor placement still follows the eventual containing boundary. A <System /> or <Tool /> inside <>…</> still belongs to its nearest <Agent />.

An explicit <Fragment>…</Fragment> form is also exported, but shorthand fragments are the conventional authoring form. See AST and evaluation for renderable values and node construction.