Status: Issue #32 contract and stub. This document defines the local endpoint shape that Noetica can call through NEURONPEDIA_BASE_URL=http://localhost:<port> without changing Noetica code.
This is not the real activation-injection implementation. It does not load model weights, load SAE artifacts, register sourcesets, or intercept a model forward pass.
Client references:
SocioProphet/Noetica:lib/providers/neuronpedia.tsSocioProphet/Noetica:app/api/steer/route.tsSocioProphet/Noetica:docs/adapter-contracts.md
Noetica endpoint behavior:
- hosted base URL
https://www.neuronpedia.orgresolves to/api/steer - local base URL
http://localhost:<port>resolves to/steer
Agent Machine satisfies the local form in this contract.
POST /steer
Content-Type: application/json
Minimal request shape:
{
"prompt": "Write one short sentence about Paris.",
"model_id": "gpt2-small",
"steering": {
"feature_id": "10200",
"layer": "6-res-jb",
"strength": 5,
"preset": "optional"
}
}Required fields:
prompt: non-empty stringmodel_id: non-empty stringsteering.feature_id: non-empty stringsteering.layer: non-empty stringsteering.strength: number
Optional fields:
steering.preset: string
Response shape compatible with Noetica SteeringResult:
{
"status": "not_configured",
"baseline": "Write one short sentence about Paris.",
"steered": "Write one short sentence about Paris.",
"diff_summary": "Agent Machine local steering endpoint is not configured for activation.",
"feature_id": "10200",
"layer": "6-res-jb",
"strength": 5
}Allowed statuses:
applied: real activation steering was applied. This is not returned by the Issue #32 stub.not_configured: sourceset/backend/model/SAE artifacts are unavailable.noop: request shape was accepted but no runtime intervention was applied.
The stub server provides:
GET /health
GET /ready
Both return a secret-free JSON readiness payload indicating that the endpoint is stubbed and activation is not implemented.
Render a response from a request JSON file:
agent-machine steer stub-response /tmp/steer-request.json --prettyServe the local contract stub:
agent-machine steer serve-stub --host 127.0.0.1 --port 8080 --status not_configuredNoetica can then be pointed at the stub:
NEURONPEDIA_BASE_URL=http://localhost:8080No credentials are required for the stub unless Noetica itself enforces NEURONPEDIA_API_KEY before dispatch. The endpoint does not inspect or store credentials.
The Issue #32 endpoint is implemented as a native Agent Machine CLI stub using Python's standard library HTTP server.
It is not:
- an AgentPod workload
- a production inference provider
- a model loader
- an SAE artifact loader
- an activation-injection path
Future work:
- Issue #33 registers sourcesets such as
gpt2-small.res-jb. - Issue #34 implements controlled activation/injection behind policy and grant gates.
Invalid payloads return HTTP 400 with:
{
"error": "invalid_steer_request",
"message": "..."
}Unavailable sourcesets must return a valid SteeringResult with status: not_configured, not crash.
This contract exists so Noetica and Agent Machine do not drift. It allows Noetica to validate local endpoint routing, UI rendering, and evidence-chain behavior before real local SAE steering is available.