API Calls — Design

Design for allowing the LLM to make external API calls as part of task execution. Not yet implemented.

Two Call Types

Types — Python (registered callable) and HTTP/REST (OpenAPI-described service)

HTTP/REST Detail

LLM Flow — iteration sequence; 3 LLM calls first use, 1 call when schema cached

Spec Discovery — how the OpenAPI spec URL is found (explicit → infer from /docs → guess common paths → fail)

Schema Cache — HEAD/ETag freshness check; cached as YAML in service stub note

Registration — CONTENTS entry + stub note; first integration target is httpbin

Email Transport

Email as Tool Transport — an email address as a tool: deterministic responders vs specialist sub-agents; reply correlation as the blocking prerequisite; why the walled garden does not remove the injection risk, and why no endpoint may accept code as a payload

Key Decisions

• Credentials via ~/.netrc by hostname — no credentials in schema or LLM context

• Pagination deferred — add later; LLM will specify how many results it needs

• Schema stored as YAML for human readability

• LLM can flag a stale/wrong cached schema, triggering re-generation

• Email transport is a third call type, not a replacement for the other two — use it only where async decoupling is the feature rather than the tax

created 2026-03-22  ·  updated 2026-07-09  ·  version 2