Design for allowing the LLM to make external API calls as part of task execution. Not yet implemented.
• Types — Python (registered callable) and HTTP/REST (OpenAPI-described service)
• 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 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
• 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