Skip to content

Tools - External Integrations ​

examples/03-tools.halo policies

Define tools (APIs, databases), equip agents with equips Tools wrap external services for agents to call

Open in the playground →

halo
// ============================================================
// STEP 3: Tools - External Integrations
// Learn: Define tools (APIs, databases), equip agents with `equips`
// Tools wrap external services for agents to call
// ============================================================

// Define a translation tool
tool Translator : REST("api.deepl.com/v2", apiKey: Env.DEEPL_KEY)

policy NoProfanity : Block(Profanity)

// Equip agent with Translator tool to use in pipeline
agent Greeter [gemini-3-1-pro, temp: 0.7]
  equips Translator
  requires NoProfanity

pipeline MultiLangHello(name: String, lang: String) -> Result:
  name
    |> Greeter.prompt("Write a warm, one-sentence greeting for {{name}}.") as greeting
    // Call a tool method with named args: GET api.deepl.com/v2/translate?text=...&target_lang=...
    |> Translator.translate(text: context.data.greeting, target_lang: lang)
    |> System.Print()

curl -fsSL https://halolang.com/install.sh | sh