Agent runtime — /api/zeq/agent/*
Genetic agents that evolve operator combinations across generations, gated by ZeqProof at the precision you choose. Mid-run skill synthesis and operator derivation fill in coverage gaps when the 1,500+-operator catalogue can't quite solve the problem.
Concept: Agents.
Source: shared/api-core/src/routes/zeqAgent.ts.
Endpoints
Lifecycle
| Method | Path | Cost | Auth |
|---|---|---|---|
POST | /api/zeq/agent/spawn | 75 ZEQ | Bearer |
POST | /api/zeq/agent/tick/:id | 5 ZEQ | Bearer |
POST | /api/zeq/agent/kill/:id | 0 | Bearer |
Read
| Method | Path | Cost | What |
|---|---|---|---|
GET | /api/zeq/agent/list | 0 | Your agents. |
GET | /api/zeq/agent/status/:id | 0 | One agent's state + last tick. |
GET | /api/zeq/agent/lineage/:id | 0 | Ancestry of an evolved agent. |
GET | /api/zeq/agent/context-hash | 0 | Hash of the agent knowledge base. |
GET | /orb/:userZid | 0 | Legacy alias — a user's Pulse agent. |
All reads require Authorization: Bearer … (viewer+ on the agent's chain).
Mesh
| Method | Path | Cost | What |
|---|---|---|---|
GET | /api/zeq/agent/mesh/:master_id | 0 | Read a mesh of agents under a master. |
POST | /api/zeq/agent/mesh/:master_id/publish | 0 | Publish a mesh result. |
LLM-backed
| Method | Path | Cost | Auth |
|---|---|---|---|
POST | /api/zeq/agent/page-chat | 25 ZEQ | Bearer or CORS guest |
POST | /api/zeq/agent/generate-html | 100 ZEQ | Bearer |
Skills & operators
| Method | Path | Cost | What |
|---|---|---|---|
GET | /api/zeq/agent/skills | 0 | List synthesised skills. |
GET | /api/zeq/agent/skills/:id | 0 | One synthesised skill. |
POST | /api/zeq/agent/skills/synthesise | 50 ZEQ | Synthesise a skill (open during wizard). |
GET | /api/zeq/agent/operators/custom | 0 | List derived operators. |
POST | /api/zeq/agent/operators/derive | 50 ZEQ | Derive a new operator. |
POST | /api/zeq/agent/operators/promote | 0 | Promote a derived operator (foundation). |
All paid endpoints call chargeForCompute() atomically before doing
work. If the wallet is short, the endpoint returns
HTTP 402 INSUFFICIENT_BALANCE and nothing is performed.
Cost rationale
| Tier | Cost | Why |
|---|---|---|
Reads (/list, /:id, /mesh) | 0 | Pure DB SELECTs. |
Lifecycle (kill, promote) | 0 | Bookkeeping only. |
| Tick | 5 | Same as a contract transition — that's what every tick writes. |
| Skill / operator | 50 | LLM call + storage + verification path. |
| Page-chat | 25 | Per-message LLM. |
| Spawn | 75 | State machine + first LLM call + ZID provision. |
| HTML generation | 100 | 5–20K LLM tokens, full page worth. |
Using BYOK (credential_id) doesn't reduce the framework charge — it
covers the entangled state write + audit envelope work. The LLM tokens hit your
provider's bill instead of the framework's pool.
Common request shape
All POST endpoints accept JSON. Auth is one of:
Authorization: Bearer zeq_ak_…— account key (preferred)- Cookie session (after
/api/zeq-auth/verify-v3) - For
/page-chat: CORS-open, supports unauthed guest mode (data-zid="guest")
Related
- Agents — concept page
- BYOK — bring your own LLM provider
- ZEQ economy — what every action costs
- Pulse — the Pulse routes to
/page-chat