Streaming tool calls: accumulate arguments without executing halfway
How to accumulate arguments delivered as streaming deltas and why a tool must never run before the provider sends its terminal event.
maximofn.com exposes a read-only public API with the index of its content (blog articles, projects and tips). It requires no authentication and is designed for AI agents, crawlers and developers who want to discover the site's content in a machine-readable way.
GET /api/v1/content.json — full content index (es / en / pt-br). Versioned route: pin this one.GET /api/content.json — unversioned alias, always follows the latest.
Routes under /api/{version}/ keep their shape: existing fields
are never removed or retyped, only new ones are added. A breaking change ships as a
new version and the previous one keeps working. So for a stable integration, point at
/api/v1/content.json rather than the unversioned alias.
Deprecation policy: when a new version ships, the previous one keeps being
served unchanged for at least 12 months. During that period its responses
carry Deprecation and Sunset headers with the retirement date, and
the versions.deprecation field in the JSON announces the successor. After that
date the retired route answers 410 Gone with a JSON body pointing at the current
version.
/openapi.json) — machine-readable documentation./.well-known/ai-plugin.json — manifest for AI agents./llms.txt — navigation guide for LLMs./mcp — MCP (Model Context Protocol) server with the tools list_content, search_content and content_stats.GET requests).application/json), with URLs in es / en / pt-br.{
"site": "https://www.maximofn.com",
"name": "MaximoFN",
"languages": ["es", "en", "pt-br"],
"counts": { "posts": 78, "projects": 11, "tips": 13, "total": 102 },
"content": [
{
"type": "post",
"title": "QLoRA Explained: NF4 Quantization...",
"description": "...",
"url": "https://www.maximofn.com/qlora",
"url_en": "https://www.maximofn.com/en/qlora",
"url_pt": "https://www.maximofn.com/pt-br/qlora",
"image": "https://images.maximofn.com/QLoRA_thumbnail_ES.webp"
}
]
} No authentication required: a single GET request returns the whole index.
# curl
curl https://www.maximofn.com/api/content.json # Python
import httpx
data = httpx.get("https://www.maximofn.com/api/content.json").json()
posts = [c for c in data["content"] if c["type"] == "post"]
print(len(posts), "posts") // JavaScript
const res = await fetch("https://www.maximofn.com/api/content.json");
const data = await res.json();
console.log(data.counts); The content is owned by MaximoFN; its use is allowed for discovery and indexing.
How to accumulate arguments delivered as streaming deltas and why a tool must never run before the provider sends its terminal event.
How to turn tool calls from different LLM providers into one common interface without losing the identifiers that correl...
A practical guide to designing tools an LLM can discover, adapting them to any LLM provider, executing them safely, and ...
Let's talk.
maximofn@gmail.com
Machine Learning and AI specialist. I develop solutions with generative AI, intelligent agents and custom models.
AI agents, powered by LLMs, promise to transform applications. But are they simple executors today or future intelligent collaborators? To reach their...
Learn to create an IA system to execute efficiently on a device
Hugging Face spaces allow us to run models with very simple demos, but what if the demo breaks? Or if the user deletes it? That's why I've created docker containers with some interesting spaces, to be able to use them locally, whatever happens. In fact, if you click on any project view button, it may take you to a space that doesn't work.
Let's talk.
maximofn@gmail.com
Machine Learning and AI specialist. I develop solutions with generative AI, intelligent agents and custom models.
Dataset with jokes in English
Use: Fine-tuning text generation models for humor
Dataset with translations from English to Spanish
Use: Training English-Spanish translation models
Dataset with Netflix movies and series
Use: Netflix catalog analysis and recommendation systems