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

# How long a procedure’s runs take

> In milliseconds, over finished runs (failed and cancelled ones aside); `p50_ms` is the median, `p95_ms` the time 95 in 100 finish within. `replies`: the chat replies that read the procedure or ran its steps, from the person’s message to the reply’s first message (`first_message`) and to its end (`whole`, its tool calls and tasks included). `tasks`: the browser and computer tasks that followed it, start to end (`whole`) and the time they ran (`active`, waits for a person or a browser aside). Each `by_mode`: replies on the model (`ai`), on the procedure’s steps without AI (`steps`), or steps that handed on to the model (`steps_ai`); tasks on the model (`ai`), on its recorded browser steps (`replay`), or a replay that handed on (`replay_ai`). `revisions`: each revision’s median reply and task, oldest first.



## OpenAPI

````yaml /api-reference/openapi.json get /v1/agents/{agent_id}/procedures/{procedure_id}/latency
openapi: 3.1.0
info:
  title: Eager API
  version: 1.0.0
  description: >-
    Train AI agents like new hires: hand an agent your files and coach it, and
    it writes its own procedures and works in any software, even without an API.
    Talk to your agents one message at a time (POST
    /v1/agents/{agent_id}/responses): they answer from their files, procedures
    and your HTTP tools, and run tasks on their own cloud browser or your linked
    computers when an answer needs a website or a desktop app. Manage agents
    (versioned: save a draft, publish it), their procedures, browser and
    computers; follow conversations and tasks, answer approvals, and fetch
    history and recordings. Run tasks yourself on a session: a customer’s
    computer through an invite link, or a cloud browser. Test agents with evals:
    chat, browser and desktop test cases, run several times against your agents
    and judged on the answer. Every change is in the org’s audit log.
servers:
  - url: https://guidinghand.ai
    description: Production
  - url: https://dev.guidinghand.ai
    description: Development (Stripe test mode)
security:
  - bearerAuth: []
tags:
  - name: Agents
  - name: Agent files
  - name: Agent tools
  - name: Agent folders
  - name: Computers
    description: >-
      Computers your org links with the Eager app, and pools of them, for
      agents’ desktop tasks. Attach them to an agent in its
      `resources.computers`.
  - name: Phone numbers
    description: >-
      Bring your own Twilio numbers: connect the account, add its numbers, and
      pick the agent that answers each. Calls are answered by the agent's
      published version.
  - name: Sessions
  - name: Tasks
  - name: Webhooks
  - name: Audit log
  - name: Test cases
  - name: Test sets
  - name: Test runs
  - name: Start states
  - name: Runners
  - name: Responses
    description: >-
      Talk to an agent: each call is one turn of a conversation. The agent
      answers with its files, procedures and tools (and, with Run code, its own
      sandbox), asks for details with forms, and runs browser and desktop tasks
      when an answer needs a website or a desktop app.
  - name: Conversations
    description: >-
      The history of each conversation: messages, tool calls and the tasks the
      agent started, in order.
  - name: Uploads
    description: >-
      Files for conversations: attach them to a message, and download what the
      agent’s code made. Kept as long as their conversation.
  - name: Procedures
    description: >-
      An agent’s playbooks: when to use each and its steps. The agent finds and
      follows them; ones it writes from a first run are marked written_by:
      agent.
  - name: Categories
    description: The kinds of request an org’s procedures and test cases are sorted into.
  - name: Escalations
    description: >-
      What needs your team: an approval only the team can give or a question
      only it can answer, in a real conversation; a procedure run that failed;
      and one that worked another way, with the procedure rewritten to match (a
      proposed change). Test chats never escalate; evals do, without webhooks.
  - name: Schedules
    description: >-
      Run an agent’s procedure on a cron expression, in a time zone, with the
      inputs it needs. Each run is a conversation of its own with nobody in it
      (`channel` `schedule` in its variables): the procedure’s steps without AI
      run outright when it has them, else the model follows it to its end. Its
      record says how it ended, what the agent said last and what it cost; the
      team hears by webhook (`schedule.run_completed`, `schedule.run_failed`),
      email and Slack or Teams, as the schedule says.
paths:
  /v1/agents/{agent_id}/procedures/{procedure_id}/latency:
    parameters:
      - name: agent_id
        in: path
        required: true
        description: The agent’s id.
        schema:
          type: string
      - name: procedure_id
        in: path
        required: true
        schema:
          type: string
    get:
      tags:
        - Procedures
      summary: How long a procedure’s runs take
      description: >-
        In milliseconds, over finished runs (failed and cancelled ones aside);
        `p50_ms` is the median, `p95_ms` the time 95 in 100 finish within.
        `replies`: the chat replies that read the procedure or ran its steps,
        from the person’s message to the reply’s first message (`first_message`)
        and to its end (`whole`, its tool calls and tasks included). `tasks`:
        the browser and computer tasks that followed it, start to end (`whole`)
        and the time they ran (`active`, waits for a person or a browser aside).
        Each `by_mode`: replies on the model (`ai`), on the procedure’s steps
        without AI (`steps`), or steps that handed on to the model (`steps_ai`);
        tasks on the model (`ai`), on its recorded browser steps (`replay`), or
        a replay that handed on (`replay_ai`). `revisions`: each revision’s
        median reply and task, oldest first.
      operationId: getProcedureLatency
      responses:
        '200':
          description: Its latency.
          content:
            application/json:
              schema:
                type: object
                properties:
                  object:
                    type: string
                    enum:
                      - procedure_latency
                  procedure_id:
                    type: string
                  revisions:
                    type: array
                    items:
                      type: object
                      properties:
                        revision:
                          type: integer
                        saved_at:
                          type: string
                          format: date-time
                          nullable: true
                        current:
                          type: boolean
                        replies:
                          type: integer
                        reply_p50_ms:
                          type: integer
                          nullable: true
                        first_message_p50_ms:
                          type: integer
                          nullable: true
                        tasks:
                          type: integer
                        task_p50_ms:
                          type: integer
                          nullable: true
                  last_30_days:
                    type: object
                    properties:
                      replies:
                        type: object
                        properties:
                          count:
                            type: integer
                          first_message:
                            type: object
                            properties:
                              p50_ms:
                                type: integer
                                nullable: true
                              p95_ms:
                                type: integer
                                nullable: true
                          whole:
                            type: object
                            properties:
                              p50_ms:
                                type: integer
                                nullable: true
                              p95_ms:
                                type: integer
                                nullable: true
                          by_mode:
                            type: array
                            items:
                              type: object
                              properties:
                                mode:
                                  type: string
                                  enum:
                                    - ai
                                    - steps
                                    - steps_ai
                                count:
                                  type: integer
                                first_message:
                                  type: object
                                  properties:
                                    p50_ms:
                                      type: integer
                                      nullable: true
                                    p95_ms:
                                      type: integer
                                      nullable: true
                                whole:
                                  type: object
                                  properties:
                                    p50_ms:
                                      type: integer
                                      nullable: true
                                    p95_ms:
                                      type: integer
                                      nullable: true
                      tasks:
                        type: object
                        properties:
                          count:
                            type: integer
                          whole:
                            type: object
                            properties:
                              p50_ms:
                                type: integer
                                nullable: true
                              p95_ms:
                                type: integer
                                nullable: true
                          active:
                            type: object
                            properties:
                              p50_ms:
                                type: integer
                                nullable: true
                              p95_ms:
                                type: integer
                                nullable: true
                          by_mode:
                            type: array
                            items:
                              type: object
                              properties:
                                mode:
                                  type: string
                                  enum:
                                    - ai
                                    - replay
                                    - replay_ai
                                count:
                                  type: integer
                                whole:
                                  type: object
                                  properties:
                                    p50_ms:
                                      type: integer
                                      nullable: true
                                    p95_ms:
                                      type: integer
                                      nullable: true
                                active:
                                  type: object
                                  properties:
                                    p50_ms:
                                      type: integer
                                      nullable: true
                                    p95_ms:
                                      type: integer
                                      nullable: true
        '404':
          description: No such procedure.
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: An org API key (`gh_live_…`) from Settings → API keys in the console.

````

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