> ## Documentation Index
> Fetch the complete documentation index at: https://solo-09d10f60.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Paper writer provider and AI model config settings

> Configure the provider Enoch can use to write research artifacts, from the deterministic template to an optional Synthetic.new/GLM-5.1 writer.

When a research run has a paper-positive row and evidence context, the Enoch control plane can write and package generated paper artifacts. You control which provider performs that write through the `paper_writer_provider` field. The `deterministic` mode produces a fixed bounded template with no external dependencies, while `synthetic.new` connects to a hosted OpenAI-compatible API using the configured model. Treat provider-backed writing as an automated packaging/finalization path, not a publication guarantee or a substitute for independent validation. If claim extraction is unavailable, the writer must preserve existing ledgers or write a blocked empty ledger that cannot pass strict claim/evidence audit.

## Providers

### `deterministic`

The default provider. It produces template-based output without calling an external LLM. Use it for local testing and predictable behavior.

### `synthetic.new`

Optional provider-backed writing path. Enoch sends paper context to the Synthetic.new API endpoint using the OpenAI-compatible chat-completion interface, using GLM-5.1 (`hf:zai-org/GLM-5.1`) as the default model in `config.example.json`. The response becomes the paper body. If the provider request fails and `paper_writer_fallback_enabled` is `true`, Enoch falls back to the `deterministic` template rather than failing the paper-write step.

## Fields

* `paper_writer_provider`
* `paper_writer_base_url`
* `paper_writer_model`
* `paper_writer_api_key`
* `paper_writer_timeout_sec`
* `paper_writer_temperature`
* `paper_writer_max_tokens`
* `paper_writer_fallback_enabled`

If `paper_writer_api_key` is empty, provider code can look for `SYNTHETIC_API_KEY`. Do not commit API keys.

## Fallback behavior

When fallback is enabled, provider failure can fall back to deterministic output. That is operationally useful, but the resulting artifact still needs explicit packaging/provenance and strict claim/evidence audit status before it is release-ready.

## Publication rule

Paper-positive artifacts are intended to be auto-pushed as written after deterministic gates pass: evidence bundle, claim ledger, manifest, packaging/provenance lint, strict claim/evidence audit, corpus import ledger, and generated public indexes/manifests. Do not add a normal human editorial approval or taste-review stage between writer output and corpus push. If output is blocked, block on the concrete failed gate.

<ParamField path="paper_writer_timeout_sec" type="number" default="180">
  Maximum seconds to wait for a response from the provider before treating the request as failed. Minimum value is `10`. Increase this for very long papers or slow network links.
</ParamField>

<ParamField path="paper_writer_temperature" type="number" default="0.2">
  Sampling temperature passed to the model. Range `0.0`–`2.0`. Lower values produce more deterministic output; the default `0.2` is appropriate for structured research writing.
</ParamField>

<ParamField path="paper_writer_max_tokens" type="number" default="12000">
  Maximum number of output tokens the model may generate per paper-write request. Minimum value is `512`. Increase this if your papers are truncated.
</ParamField>

<ParamField path="paper_writer_fallback_enabled" type="boolean" default="true">
  When `true` and `paper_writer_provider` is `synthetic.new`, a failed provider request causes Enoch to fall back to the `deterministic` template instead of raising an error. Set to `false` if you want provider failures to surface explicitly.
</ParamField>

## Synthetic.new config

Add the following fields to your control VM's config file to test provider-backed paper writing with Synthetic.new and GLM-5.1. Confirm corpus packaging/provenance scans and strict claim/evidence audit status before treating any output as release-ready:

```json theme={null}
{
  "paper_writer_provider": "synthetic.new",
  "paper_writer_base_url": "https://api.synthetic.new/openai/v1",
  "paper_writer_model": "hf:zai-org/GLM-5.1",
  "paper_writer_api_key": "your-provider-key",
  "paper_writer_fallback_enabled": true,
  "paper_evidence_sync_enabled": true
}
```

<Note>
  Do not publish generated paper artifacts until corpus packaging/provenance lint and strict claim/evidence audit status are explicit. Once those deterministic gates pass, the artifact is pushed as written. A packaging/provenance pass is not a deep claim audit.
</Note>
