Skip to main content

How aiChat works

Combine prompts, skills, and tools to get helpful info

Written by Holly Conrad Smith

Every message you send kicks off a request that bundles your active skills, all available tools, and your conversation history — the LLM uses that to decide what to say and which tools to call. Skills and tools work together but do different jobs: tools give the AI capability, while skills give it judgment about when and why to use it.

How the AI works

  1. Your message

  2. API Request

    1. system All active skills concatenated into one cached block

    2. tools 39 tool definitions — name, description, schema

    3. messages Conversation history

  3. LLM Decides

    1. Skills tell it when and why to act

    2. Tool descriptions tell it how

      → Text response shown to you

      → Tool calls executed by the app

  4. Tool Execution

    1. Read tools → auto-executed

    2. Mutation tools → you approve/reject

    3. Results sent back to LLM · Loop continues until done

Tools vs Skills

Tool

Skill

What

A function the AI can call

Markdown instructions in the system prompt

Gives the AI

Capability — "here is a function and its parameters"

Judgment — "when to use it, why, and what to watch out for"

Defined in

Code (tools.ts) — wrappers around Giraffe SDK RPC functions. If a tool isn't available in the core set, the AI can call any Giraffe SDK function directly via invoke_rpc / get_state, and look up docs first via fetch_docs.

Markdown (.md files) — editable in Settings. Create your own or modify the built-in core skills.

Togglable

No — all tools are always sent

Yes — toggle off to remove from prompt and save tokens

Example

updateUsages({ usages: {...} })

"Only call updateUsages when user says 'assumptions'. For buildings, use updateSections."

Available tools

Tools are functions the AI can call. It reads the tool name and description to decide which one to use. Skills provide the behavioral guidance for when and why.

Did this answer your question?