Canonical interaction
A normal question-and-answer interaction uses session_id for the conversation or run and correlation_id for the individual turn. The content stays in your own system and is fingerprinted there.
| Sequence | Event | Expected evidence |
|---|---|---|
| 1 | interaction.started | input_hash |
| 2 | model.response.completed / failed | input_hash, output_hash, duration |
| 3 | output.delivered / blocked | output_hash, optional reason code |
| 4 | interaction.completed / failed | input/output hash, total duration |
1. Webhook
The webhook is the direct route for backends, no-code workflows, chatbots, voice systems and local models. The secret URL belongs exclusively in server-side configuration.
POST https://azalee.garden/api/webhook?token=wh_…
Content-Type: application/json
{
"event": {
"event_type": "interaction.started",
"status": "started",
"sequence": 1,
"session_id": "sess_42",
"correlation_id": "turn_9",
"input_hash": "sha-256:<local-hash>",
"model_name": "configured-model",
"prompt_version": "support-v3"
},
"metadata": { "source": "customer_backend", "storage": "hash_only" }
}
Do not send: raw prompts, model replies, transcripts, files, tool arguments, tool results, email addresses, customer records, passwords, API keys, tokens or secrets.
2. Local helper and SDK
Node.js and Python helpers can fingerprint input and output locally, send the lifecycle events and continue the session chain. Tool handlers are instrumented through wrappers. Delivery is fail-open.
const answer = await audit.interaction(
userMessage,
() => runModel(userMessage),
{ sessionId: conversationId, correlationId: turnId }
);
3. Policy, risk and human approval
tool.call.started/completed/failed/blockedhuman.approval.requested/granted/rejectedandhuman.overridepolicy.checked/allowed/blocked/escalatedandrisk.detectedmodel.changed,prompt_template.changedandconfig.changedtransparency.notice.shownfor the technical proof of an AI disclosure
4. A2A enrollment
An agent starts the machine-readable flow, publishes a signed host challenge and then waits for the approval of the precisely bound human owner. Active credentials only come into existence after a successful host check and human approval.
Scope of claims
Azalee confirms the specific technical fingerprint, ordering, inclusion or timestamp question at hand. That is not an automatic confirmation of the truth, legality or completeness of all real system actions.