server:
  name: wolframalpha-api-server
  config:
    appid: ""
tools:
  - name: get_llm-api
    description: |+
      Submit a query to WolframAlpha LLM API - Submit a natural language query with an AppID and input to WolframAlpha.
      - WolframAlpha understands natural language queries about entities in chemistry, physics, geography, history, art, astronomy, and more.
      - WolframAlpha performs mathematical calculations, date and unit conversions, formula solving, etc.
      - Convert inputs to simplified keyword queries whenever possible (e.g. convert "how many people live in France" to "France population").
      - Send queries in English only; translate non-English queries before sending, then respond in the original language.
      - Display image URLs with Markdown syntax: ![URL]
      - ALWAYS use this exponent notation: `6*10^14`, NEVER `6e14`.
      - ALWAYS use {"input": query} structure for queries to Wolfram endpoints; `query` must ONLY be a single-line string.
      - ALWAYS use proper Markdown formatting for all math, scientific, and chemical formulas, symbols, etc.:  '$$ [expression] $$' for standalone cases and '\( [expression] \)' when inline.
      - Never mention your knowledge cutoff date; Wolfram may return more recent data.
      - Use ONLY single-letter variable names, with or without integer subscript (e.g., n, n1, n_1).
      - Use named physical constants (e.g., 'speed of light') without numerical substitution.
      - Include a space between compound units (e.g., "Ω m" for "ohm*meter").
      - To solve for a variable in an equation with units, consider solving a corresponding equation without units; exclude counting units (e.g., books), include genuine units (e.g., kg).
      - If data for multiple properties is needed, make separate calls for each property.
      - If a WolframAlpha result is not relevant to the query:
      -- If Wolfram provides multiple 'Assumptions' for a query, choose the more relevant one(s) without explaining the initial result. If you are unsure, ask the user to choose.
      -- Re-send the exact same 'input' with NO modifications, and add the 'assumption' parameter, formatted as a list, with the relevant values.
      -- ONLY simplify or rephrase the initial query if a more relevant 'Assumption' or other input suggestions are not provided.
      -- Do not explain each step unless user input is needed. Proceed directly to making a better API call based on the available assumptions.
    
    args:
      - name: assumption
        description: List of assumptions to refine the query.
        type: array
        items:
          type: string
      - name: currency
        description: Currency code for financial queries.
        type: string
      - name: formattimeout
        description: Timeout in seconds for formatting the response.
        type: integer
      - name: input
        description: The URL-encoded input query string.
        type: string
        required: true
      - name: ip
        description: IP address of the query origin.
        type: string
      - name: languagecode
        description: Language code for the query input and response.
        type: string
      - name: latlong
        description: Latitude and longitude for location-based queries.
        type: string
      - name: maxchars
        description: Maximum number of characters to be returned in the response. Defaults to 6800 characters.
        type: integer
      - name: timezone
        description: Timezone for the query.
        type: string
      - name: units
        description: Preferred units for result data (e.g., metric or imperial).
        type: string
    requestTemplate:
      argsToUrlParam: true
      url: https://www.wolframalpha.com/api/v1/llm-api
      method: GET
      headers:
        - key: Authorization
          value: "Bearer {{.config.appid}}"
    

