Manifest and Environment
llmAssistant uses manifest-driven startup with provider key loading from process environment and workspace secrets fallback. Container dependency installation is owned by ploinky, so the agent manifest stays focused on runtime entrypoints and required environment.
Manifest
Main runtime file: llmAssistant/manifest.json.
{
"agent": "sh /code/scripts/startAgent.sh",
"container": "docker.io/assistos/ploinky-node:24-bookworm-tools",
"lite-sandbox": true,
"profiles": {
"default": {
"env": {
"SOUL_GATEWAY_API_KEY": { "required": false },
"SOUL_GATEWAY_BASE_URL": { "required": false }
}
},
"embedded": {
"env": {
"SOUL_GATEWAY_API_KEY": "workspace-scoped generated key unless explicitly supplied",
"SOUL_GATEWAY_BASE_URL": "empty by default; generated Soul Gateway keys resolve through the Ploinky router"
}
}
}
}
Environment Variables
| Variable Group | Usage |
|---|---|
SOUL_GATEWAY_API_KEY, SOUL_GATEWAY_BASE_URL |
Soul Gateway credentials and endpoint selection for LLM runtime behavior. Explorer deployments use a workspace-generated Soul Gateway API key, and Achilles resolves the Ploinky router service URL when PLOINKY_ENV_SOURCE_SOUL_GATEWAY_API_KEY=generated. Remote production gateways are configured as providers inside the local gateway, not as replacement agent credentials. |
ASSISTOS_FS_ROOT, WORKSPACE_ROOT, PLOINKY_WORKSPACE_ROOT |
Workspace root context used by startup and runtime path assumptions. |
LLMAgentClient_DEBUG, LLMAgentClient_VERBOSE_DELAY |
Optional debug and verbose timing controls for LLM client traces. |
Bootstrap Behavior
The startup script resolves workspace root, reads keys from env first, then falls back to .ploinky/.secrets. This keeps deployment configuration externalized and avoids static credentials in repository code. System packages and Node dependency installation are handled by ploinky before the agent command starts, so the agent bootstrap only performs llmAssistant-specific runtime initialization.
Test Validation
Code changes should be validated through the llmAssistant test suite under llmAssistant/tests, together with documentation and specification updates.