Simon Willison
Simon Willison
Decisions: 1. Templates can have a `tools: [list of tools]` list with plugin specs (`llm_version`, `Datasette("...")` etc to use with that template 2. Running `llm -T llm_version --save X` will...
It's a bit weird that the YAML prototype has `--functions` as a _list_ of strings of Python code, as opposed to just one big block of code. I built it...
Anthropic use custom tool types for this: https://docs.anthropic.com/en/docs/agents-and-tools/computer-use#claude-4 ``` curl https://api.anthropic.com/v1/messages \ -H "content-type: application/json" \ -H "x-api-key: $ANTHROPIC_API_KEY" \ -H "anthropic-version: 2023-06-01" \ -H "anthropic-beta: computer-use-2025-01-24" \ -d '{...
Do other vendors have tools like this? This is _not_ the same as the tools where the thing is executed by the vendor themselves, e.g. #1067 or the new MCP...
OpenAI's codex model has `{"type": "local_shell"}` which is the same kind of pattern: https://platform.openai.com/docs/guides/tools-local-shell Also https://platform.openai.com/docs/guides/tools-computer-use ```bash from openai import OpenAI client = OpenAI() response = client.responses.create( model="computer-use-preview", tools=[{ "type":...
I have enough to design and implement this now. What should this concept be called in the code and documentation? Pre-baked tools perhaps? What should happen if you try to...
This is a bit weird though since usually it's the job of the model plugin to figure out whatever custom JSON shape is used by a tool for that platform....
I would like an obvious error if you try to execute a special tool against a model that doesn't support it. So maybe a method on model that we can...
I like this, I think this is the right design.
Need to consider how special tools get represented in log output. Also I think I'm going to store `{"special": {...}}` in the database since that's important context for understanding how...