Docs / Examples
Field service example
A field-service company hosts dispatch, inventory, and customer communication capabilities behind governed CHP boundaries.
Plain English
The business can expose scheduling as a capability without giving every caller direct access to its dispatch system.
Why it exists
This example keeps the protocol grounded in a concrete operational workflow before explaining abstractions.
Formal definition
Field service maps schedule_technician, query_inventory, and notify_customer into separate hosted capability contracts with policy and evidence.
Concrete example
Ground the concept before the schema.
Planning Agent invokes schedule_technician at ServiceOpsHost under manager_approval and receives Confirmed Appointment.
Finds an available qualified technician and reserves a service window.
Policy boundary
Approval requiredmanager_approval
A manager must approve technician scheduling before the host returns a confirmed appointment.
Invocation trace
- 01 Actor
Planning Agent
- 02 Capability
schedule_technician
- 03 Host
ServiceOpsHost
- 04 Policy
manager_approval
- 05 Context
job_context
- 06 Result
Confirmed Appointment
{ "id": "service-ops-host", "version": "0.1.0", "protocol_version": "0.1", "kind": "service", "capabilities": [{ "id": "schedule_technician", "version": "1.0.0", "description": "Finds an available qualified technician and reserves a service window.", "status": "experimental", "modes": ["sync"], "emits": ["execution_started", "execution_completed", "execution_denied"], "policy": { "risk_tier": "high", "auth_required": true, "approval_required": true, "allowed_actors": ["agent://planning-assistant"] }, "metadata": { "required_permissions": ["service:dispatch"], "lifecycle": "invokable" } }], "evidence": { "store": "local-append-only", "append_only": true }}Relationships
Where this sits in the protocol.
Each concept should explain its neighbors so implementation teams can preserve the boundary across manifests, invocation, evidence, and tests.
schedule_technician composes with query_inventory.
notify_customer runs after a confirmed appointment.
Evidence connects the full service workflow by correlation ID.
Visual model
- 01InventoryHost checks required parts.
- 02ServiceOpsHost schedules the technician.
- 03CustomerCommsHost sends the notification.
Implementation notes
- Keep each host boundary separate.
- Use one correlation ID across the composed workflow.
- Test policy denial before connecting the workflow to an agent.
Common mistakes
- Making one giant workflow capability for every step.
- Hiding manager approval inside app glue.
- Losing evidence across host boundaries.
Related concepts