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

# Edit your agent's memory

> Adds an entry to the caller's agent's notes or profile, or removes the entry whose whole text is text, applied by the agent through its own memory.

Use this tool when you need to:
- Have the agent remember something about the caller or their work
- Remove a wrong or stale entry from the agent's notes or profile

Examples:
- POST /agent/memory/edits {"target": "profile", "action": "add", "text": "Prefers answers of three sentences or fewer."}
- POST /agent/memory/edits {"target": "notes", "action": "remove", "text": "The staging deploy runs on Fridays."}

Hints:
- target (notes or profile) and action (add or remove) are required, 422 for any other value. text is one entry: 400 when blank, holding NUL, over 12000 characters, or not one entry (whitespace at either end, a carriage return, § on a line of its own between two lines, or, for an add, at its end).
- The agent wakes first if it is asleep, waiting first for an update under way to finish; the call answers 202 with the edit once the agent is awake, the edit pending.
- Read the outcome with getAgentMemoryEdit by the edit's id: completed, and the agent's next turn reads it, or failed with its memory's refusal (the entry would put the file past its limit, or no entry is the removed text) or the host's failure to apply or report it (the memory may then hold it: read getAgentMemory).
- Use sendAgentMessage instead to ask the agent something rather than change its memory.
- Any signed-in user, for their own agent; 404 agent_not_found until they have one. An agent host's grant is refused with 403 agent_host_route_not_allowed.
- Refused with 409 agent_host_illegal_transition while the agent is paused, pausing, resuming, being set up or deleted, or lost, and 504 agent_host_wake_failed when it did not wake in time; an edit whose wake did not report in stays pending until the next wake.



## OpenAPI

````yaml api-reference/openapi.json POST /agent/memory/edits
openapi: 3.1.0
info:
  title: Aether API
  version: 0.1.0
servers:
  - url: https://api.runaether.dev
security:
  - bearerAuth: []
paths:
  /agent/memory/edits:
    post:
      tags:
        - agent
      summary: Edit your agent's memory
      description: >-
        Adds an entry to the caller's agent's notes or profile, or removes the
        entry whose whole text is text, applied by the agent through its own
        memory.


        Use this tool when you need to:

        - Have the agent remember something about the caller or their work

        - Remove a wrong or stale entry from the agent's notes or profile


        Examples:

        - POST /agent/memory/edits {"target": "profile", "action": "add",
        "text": "Prefers answers of three sentences or fewer."}

        - POST /agent/memory/edits {"target": "notes", "action": "remove",
        "text": "The staging deploy runs on Fridays."}


        Hints:

        - target (notes or profile) and action (add or remove) are required, 422
        for any other value. text is one entry: 400 when blank, holding NUL,
        over 12000 characters, or not one entry (whitespace at either end, a
        carriage return, § on a line of its own between two lines, or, for an
        add, at its end).

        - The agent wakes first if it is asleep, waiting first for an update
        under way to finish; the call answers 202 with the edit once the agent
        is awake, the edit pending.

        - Read the outcome with getAgentMemoryEdit by the edit's id: completed,
        and the agent's next turn reads it, or failed with its memory's refusal
        (the entry would put the file past its limit, or no entry is the removed
        text) or the host's failure to apply or report it (the memory may then
        hold it: read getAgentMemory).

        - Use sendAgentMessage instead to ask the agent something rather than
        change its memory.

        - Any signed-in user, for their own agent; 404 agent_not_found until
        they have one. An agent host's grant is refused with 403
        agent_host_route_not_allowed.

        - Refused with 409 agent_host_illegal_transition while the agent is
        paused, pausing, resuming, being set up or deleted, or lost, and 504
        agent_host_wake_failed when it did not wake in time; an edit whose wake
        did not report in stays pending until the next wake.
      operationId: editAgentMemory
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditAgentMemoryRequest'
        required: true
      responses:
        '202':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentMemoryEdit'
          description: Accepted
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentErrorResponse'
          description: Bad Request
        '401':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentErrorResponse'
          description: Unauthorized
        '403':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OrgAuthorizationErrorResponse'
          description: Forbidden
        '404':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentErrorResponse'
          description: Not Found
        '409':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentErrorResponse'
          description: Conflict
        '422':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentErrorResponse'
          description: Unprocessable Entity
        '500':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentErrorResponse'
          description: Internal Server Error
        '504':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentErrorResponse'
          description: Gateway Timeout
components:
  schemas:
    EditAgentMemoryRequest:
      additionalProperties: false
      properties:
        action:
          description: 'add: a new entry; remove: the entry whose whole text is text.'
          enum:
            - add
            - remove
          type: string
        target:
          description: 'notes: your agent''s notes; profile: what it keeps about you.'
          enum:
            - notes
            - profile
          type: string
        text:
          description: >-
            One entry: not blank, at most 12000 characters, with no whitespace
            at either end, no carriage return, and no § on a line of its own
            between two lines; an added entry does not end with one either.
          type: string
      required:
        - target
        - action
        - text
      type: object
    AgentMemoryEdit:
      additionalProperties: false
      properties:
        action:
          description: 'add: a new entry; remove: the entry whose whole text is the edit''s.'
          enum:
            - add
            - remove
          type: string
        completed_at:
          description: When the edit was applied or refused; absent while pending.
          format: date-time
          type: string
        failure:
          description: >-
            Why the edit was refused: the entry would put the file past its
            limit, no entry is the removed text, or the host could not apply it.
            Present on a failed edit.
          type: string
        id:
          format: uuid
          type: string
        issued_at:
          format: date-time
          type: string
        state:
          description: >-
            pending: your agent has not applied it yet, or has not woken for it;
            completed: applied, and your agent's next turn reads it; failed:
            your agent's memory refused it, for failure.
          enum:
            - pending
            - completed
            - failed
          type: string
        target:
          description: 'notes: your agent''s notes; profile: what it keeps about you.'
          enum:
            - notes
            - profile
          type: string
        text:
          type: string
      required:
        - id
        - target
        - action
        - text
        - state
        - issued_at
      type: object
    AgentErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - account_deleting
            - aether_inference_unavailable
            - aether_inference_unserved
            - agent_connector_not_found
            - agent_credential_unreadable
            - agent_default_project_archived
            - agent_event_not_found
            - agent_host_account_deleting
            - agent_host_command_not_found
            - agent_host_creation_disabled
            - agent_host_exists
            - agent_host_illegal_transition
            - agent_host_not_allowlisted
            - agent_host_not_found
            - agent_host_not_ready
            - agent_host_other_provider_app
            - agent_host_project_not_eligible
            - agent_host_provisioning_failed
            - agent_host_state_changed
            - agent_host_wake_failed
            - agent_line_unavailable
            - agent_link_code_picked_up
            - agent_link_expired
            - agent_link_invalid_code
            - agent_link_needs_web_session
            - agent_link_no_verified_phone
            - agent_link_not_found
            - agent_link_other_account
            - agent_link_takes_a_code
            - agent_link_takes_no_code
            - agent_link_used
            - agent_memory_edit_not_found
            - agent_memory_not_reported
            - agent_message_not_found
            - agent_message_pending
            - agent_not_found
            - agent_profile_changed
            - agent_profile_harness_fixed
            - bad_gateway
            - bad_request
            - conflict
            - connection_account_held
            - connection_agent_only
            - connection_harness_mismatch
            - connection_is_default
            - connection_kind_not_runnable
            - connection_name_taken
            - connection_not_found
            - connection_not_held
            - connection_not_of_agent_family
            - connection_option_mismatch
            - connection_runs_agent
            - connection_runs_profiles
            - control_forbidden
            - creator_github_access_missing
            - default_skill_required
            - device_auth_not_found
            - fallback_is_own_connection
            - fallback_required_with_pin
            - fallback_requires_pin
            - forbidden
            - gateway_timeout
            - github_auth_check_unavailable
            - github_claim_unverified
            - github_identity_mismatch
            - github_reconnect_required
            - github_ref_not_found
            - gone
            - integration_auth_unexpected
            - integration_not_in_directory
            - integration_shape_changed
            - internal_error
            - line_exists
            - line_not_found
            - line_not_imessage
            - mcp_connection_github_not_connected
            - mcp_connection_oauth_not_accepted
            - mcp_connection_org_not_offered
            - mcp_connection_secret_invalid
            - mcp_connection_server_changed
            - mcp_connection_static_secret_not_accepted
            - mcp_credential_policy_not_applicable
            - mcp_credential_policy_org_unavailable
            - mcp_credential_policy_required
            - mcp_oauth_app_auth_method_unsupported
            - mcp_oauth_app_invalid
            - mcp_oauth_app_issuer_invalid
            - mcp_oauth_app_required
            - mcp_oauth_not_advertised
            - mcp_oauth_pkce_unsupported
            - mcp_oauth_registration_failed
            - mcp_repo_config_invalid
            - mcp_server_address_refused
            - mcp_server_aether_managed
            - mcp_server_api_key_not_applicable
            - mcp_server_args_invalid
            - mcp_server_auth_discovery_failed
            - mcp_server_auth_unsupported
            - mcp_server_directory_managed
            - mcp_server_directory_moved
            - mcp_server_display_name_invalid
            - mcp_server_env_invalid
            - mcp_server_headers_invalid
            - mcp_server_key_invalid
            - mcp_server_key_reserved
            - mcp_server_key_taken
            - mcp_server_kind_change_refused
            - mcp_server_not_from_directory
            - mcp_server_not_mcp
            - mcp_server_package_invalid
            - mcp_server_plugin_bundled
            - mcp_server_plugin_off
            - mcp_server_response_too_large
            - mcp_server_return_to_invalid
            - mcp_server_runtime_invalid
            - mcp_server_switched_off
            - mcp_server_unreachable
            - mcp_server_url_invalid
            - mcp_server_version_unpinned
            - method_not_allowed
            - model_not_on_aether_inference
            - no_default_connection
            - no_dispatch_target
            - not_acceptable
            - not_an_agent_host
            - not_found
            - not_implemented
            - org_role_insufficient
            - org_suspended
            - payment_required
            - plugin_moved
            - plugin_name_taken
            - plugin_request_invalid
            - plugin_server_key_reserved
            - plugin_server_key_taken
            - plugin_server_probe_failed
            - plugin_server_required
            - plugin_skill_invalid
            - plugin_source_address_refused
            - plugin_source_empty
            - plugin_source_invalid
            - plugin_source_not_found
            - plugin_source_not_public
            - plugin_source_too_large
            - plugin_source_unreachable
            - plugin_source_unsupported
            - plugin_switched_off
            - plugin_undeliverable
            - precondition_failed
            - project_archived
            - project_has_no_repository
            - project_repo_disconnected
            - project_repository_differs
            - push_file_too_large
            - push_rejected
            - push_secret_detected
            - rate_limited
            - repository_administration_not_granted
            - repository_already_connected
            - repository_create_forbidden
            - repository_create_rejected
            - repository_created_not_linked
            - repository_not_reachable
            - repository_owner_not_caller
            - request_canceled
            - request_timeout
            - request_too_large
            - save_in_progress
            - save_requires_task_creator
            - service_unavailable
            - skill_slug_reserved
            - task_already_saved
            - task_bound_at_creation
            - task_branch_diverged
            - task_branch_is_default
            - task_branch_mismatch
            - task_branch_missing
            - task_creator_deleted
            - task_executing
            - task_file_too_large
            - task_has_no_commits
            - task_has_no_files
            - task_history_has_merges
            - task_is_child
            - task_not_started
            - task_rebase_in_progress
            - unauthenticated
            - unsupported_media_type
            - validation_failed
            - whatsapp_not_enabled
            - working_tree_dirty
            - workspace_gone
            - workspace_outdated
          minLength: 1
          type: string
        error:
          minLength: 1
          type: string
        errors:
          items:
            $ref: '#/components/schemas/ErrorDetail'
          type: array
      required:
        - error
        - code
      type: object
    OrgAuthorizationErrorResponse:
      additionalProperties: false
      properties:
        code:
          enum:
            - org_membership_required
            - org_role_insufficient
            - org_suspended
            - account_deleting
            - agent_host_route_not_allowed
            - credential_kind_not_admitted
          type: string
        error:
          minLength: 1
          type: string
      required:
        - error
        - code
      type: object
    ErrorDetail:
      additionalProperties: false
      properties:
        location:
          description: >-
            Where the error occurred, e.g. 'body.items[3].tags' or
            'path.thing-id'
          type: string
        message:
          description: Error message text
          type: string
        value:
          description: The value at the given location
      type: object
  securitySchemes:
    bearerAuth:
      bearerFormat: JWT
      scheme: bearer
      type: http

````

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