> ## Documentation Index
> Fetch the complete documentation index at: https://docs.memorylake.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Draft Actor Fact Instruction

> Write a candidate fact instruction for an actor in a workspace with a model

```
POST /openapi/memorylake/api/v3/workspaces/{workspaceId}/actors/{actorId}/settings/fact-instruction/draft
```

Uses a model to write a candidate `fact_instruction` for an actor in a workspace and returns it. The draft is not saved: review and edit it, then save it with [Update Actor Memory Settings](/features/memorylake/api-reference/memory-settings/update-actor-memory-settings). The current instruction stays in effect until you do.

Drafting is a single synchronous call to a model. It usually returns within about 15 seconds and takes longer for a memory that holds many facts, so give your client a generous timeout. Each call gives a slightly different draft. If drafting fails, the request returns `500` with `INTERNAL_ERROR`; trying again usually works.

A deleted actor cannot be drafted for: the request returns `404` with `ACTOR_INACTIVE`. This endpoint takes a person's actor ID. For an agent, use [Draft Agent Fact Instruction](/features/memorylake/api-reference/memory-settings/draft-agent-fact-instruction).

### Path Parameters

<ParamField path="workspaceId" type="string" required>
  Workspace ID
</ParamField>

<ParamField path="actorId" type="string" required>
  Actor ID
</ParamField>

### Request Body

The body is optional. Without one, the draft is written from the built-in default for actors.

<ParamField body="guidance" type="string">
  What the draft should say, in any language, at most 2,000 characters.
</ParamField>

<ParamField body="language" type="string" default="English">
  Language to write the draft in, including its section headings, at most 64 characters. Give an English language name such as `English`, `Simplified Chinese`, `Traditional Chinese` or `Japanese`, not a locale code such as `zh-CN`.
</ParamField>

<ParamField body="use_existing_facts" type="boolean" default="false">
  Set to `true` to let the draft read the facts already stored about the actor in this workspace, so it describes what is actually being recorded. If there are none, the draft is written from the default.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST 'https://app.memorylake.ai/openapi/memorylake/api/v3/workspaces/ws-8001856949ad4f6a5b6226f415ffa877/actors/actor-3f9c2a7e5b1d4c8e9a6f0b2d7e4c1a95/settings/fact-instruction/draft' \
    -H 'Authorization: Bearer sk_xxxxxx' \
    -H 'Content-Type: application/json' \
    -d '{
      "guidance": "Keep their role and how they like to work; leave out project details",
      "use_existing_facts": true
    }'
  ```
</RequestExample>

### Response

<ResponseField name="data" type="object">
  <Expandable title="Drafted instruction">
    <ResponseField name="fact_instruction" type="string">The drafted instruction, in Markdown. It is not saved until you send it with Update Actor Memory Settings.</ResponseField>
  </Expandable>
</ResponseField>

<ResponseExample>
  ```json Success (200) theme={null}
  {
    "success": true,
    "data": {
      "fact_instruction": "The personal profile of the one person this memory belongs to.\n\n## Include\nRole and responsibilities\nPreferences for how they want work done\nTools and working habits\n\n## Exclude\nThe state or details of any project\nAnything about the assistant"
    }
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.