DeepSeek V4.1 Flash 1017 Uncensored is now available on XField. It is DeepSeek's October 17 release with the refusal behavior removed: the newest model we serve, the one we point people to first, and the one our coding agent guides use.
The short version: it holds a million tokens of context, it thinks before it answers, and it keeps going through long sessions full of tool calls without stopping to lecture you.
Specs
| Spec | Value |
|---|---|
| Model id | deepseek-v4.1-flash-1017-uncensored |
| Context | 1M tokens |
| Max output | 64K tokens |
| Input / output | Text and images in, text out |
| Reasoning | On by default, at high effort |
| Effort levels | low, high, xhigh, max |
| Tool calls | Yes, on all three protocols |
| APIs | OpenAI Chat Completions, OpenAI Responses, Anthropic Messages |
What it is good at
Coding agents
This is the model to put behind Claude Code, Codex, or OpenCode. Agent work means reading a lot of files, calling tools, and carrying state across dozens of turns. The 1M context leaves room for a real codebase plus the conversation, and the model follows tool schemas reliably. It also does not refuse to write an exploit proof of concept for your own test environment, or to explain what a suspicious script does.
Long agent runs
Long runs re-send the same prefix on every turn: the system prompt, the tool definitions, the files already read. Prompt caching is automatic, so that repeated prefix is served from cache and billed as cached input, which keeps long sessions cheap. Keep the stable parts at the start of the request and you get the benefit without doing anything else. Cached tokens show up in usage.prompt_tokens_details.cached_tokens.
Reasoning on demand
Thinking is on by default at high. That is the right setting for most agent turns. Drop to low for quick edits and lookups where latency matters more than depth. Go up to xhigh or max when the task is a hard bug, a tricky refactor, or a plan you want checked twice. If you do not want reasoning at all, set effort to none.
Try it
Set the effort per request. On Chat Completions, use reasoning_effort. The reasoning text comes back as message.reasoning (or delta.reasoning when streaming), separate from the answer.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://xfield.cloud.brutal.ai/api/v1",
api_key=os.environ["XFIELD_API_KEY"],
)
response = client.chat.completions.create(
model="deepseek-v4.1-flash-1017-uncensored",
reasoning_effort="xhigh",
messages=[
{"role": "system", "content": "You are a senior engineer reviewing code."},
{"role": "user", "content": "Find the race condition in this worker pool and fix it: ..."},
],
)
message = response.choices[0].message
print(getattr(message, "reasoning", None)) # the model's thinking
print(message.content) # the answerOn the Anthropic Messages API, set output_config.effort instead, and you get the reasoning back as thinking blocks. That is what Claude Code uses when you point it at https://xfield.cloud.brutal.ai/api.
Getting access
XField is invite-only. Request access, and once you are in, create a key in Settings › API keys. The model id is all you need to change in an existing client. See /models for the full list and how this model compares with the others.