Repro
Worker session (HERMES_HOME=~/.hermes/profiles/polynomial-explorer, model devagentic-local/silo-mistral) shows:
Empty response from model — retrying (1/3)
Empty response from model — retrying (2/3)
Empty response from model — retrying (3/3)
Model returned no content after all retries.
Same symptom across all models tried: claude-cli, openai, silo-mistral.
But raw API works
curl -sS -X POST http://devbox:6071/v1/chat/completions -H "Authorization: Bearer <token>" -H "X-User-Id: polynomial-explorer" -d '{"model":"silo-mistral","messages":[{"role":"user","content":"say hi"}]}'
Returns valid completion with content populated and finish_reason=stop. Server healthy; hermes is misparsing or sending different request shape.
Suspected causes
- Hermes sends
tools/functions in body and devagentic-local treats unknown tool schemas as silent no-op.
- Hermes' OpenAI client expects choices[0].message.content typed non-null but
tool_calls: null alongside content trips strict parser.
- Streaming reader consumes body before parser.
- devagentic-local provider plugin overrides request in a way that strips content.
Side note: /v1/models auth
Auxiliary title generation: HTTP 401 invalid bearer token. Same bearer works for /v1/chat/completions but fails on /v1/models. Different route auth path.
Blocks
- polynomial-explorer worker spawn cannot complete a chat turn
- Any future fully-blackboxed vertical using devagentic-local provider
- Parent: devagentic#203
Acceptance
- hermes from a profile-bound session completes a chat turn against devagentic-local provider with any of the 17 published roles.
- /v1/models returns 200 with the same bearer that /v1/chat/completions accepts.
Repro
Worker session (HERMES_HOME=~/.hermes/profiles/polynomial-explorer, model devagentic-local/silo-mistral) shows:
Same symptom across all models tried: claude-cli, openai, silo-mistral.
But raw API works
curl -sS -X POST http://devbox:6071/v1/chat/completions -H "Authorization: Bearer <token>" -H "X-User-Id: polynomial-explorer" -d '{"model":"silo-mistral","messages":[{"role":"user","content":"say hi"}]}'Returns valid completion with content populated and finish_reason=stop. Server healthy; hermes is misparsing or sending different request shape.
Suspected causes
tools/functionsin body and devagentic-local treats unknown tool schemas as silent no-op.tool_calls: nullalongside content trips strict parser.Side note: /v1/models auth
Auxiliary title generation: HTTP 401 invalid bearer token. Same bearer works for /v1/chat/completions but fails on /v1/models. Different route auth path.
Blocks
Acceptance