tool_use: add multiplechoice support to Agent

This implements the "dumb" approach - the tool itself just tells
the llm that it rendered the options to the user, and it's done.

If the user selects one of the options, we paste its response text
into the chat input textarea on the frontend.  The user is of
course free to ignore the question or the options presented.

This keeps no association between user response and the original
tool_use block that solicited it from the user. I.e. the user
response message doesn't include the original tool_use_id value
it it.  It looks as though the user typed it by hand.
8 files changed
tree: 291bbf09de69cec72c13f652f3d9be81f35451e4
  1. .github/
  2. .vscode/
  3. ant/
  4. bin/
  5. browser/
  6. claudetool/
  7. cmd/
  8. dockerimg/
  9. httprr/
  10. llm/
  11. loop/
  12. skabandclient/
  13. skribe/
  14. termui/
  15. webui/
  16. .clabot
  17. .gitignore
  18. CONTRIBUTING.md
  19. go.mod
  20. go.sum
  21. LICENSE
  22. README.md
README.md

Sketch

Sketch is an agentic coding tool focused on the Go programming language. Sketch runs in your terminal, has a web UI, understands your code, and helps you get work done. To keep your environment pristine, sketch starts a docker container and outputs its work onto a branch in your host git repository.

To get started:

go install sketch.dev/cmd/sketch@latest
sketch

Requirements

Currently sketch runs on macOS and linux. It uses docker/colima for containers.

macOS: brew install colima linux: apt install docker.io (or equivalent for your distro)

The sketch.dev service is used to provide access to an LLM service and give you a way to access the web UI from anywhere.

Feedback/discussion

We have a discord server to discuss sketch.

Join if you want! https://discord.gg/R82YagTASx

Development

Go Reference

See CONTRIBUTING.md

Open Source

Sketch is open source. It is right here in this repository! Have a look around and mod away.

If you want to run sketch entirely without the sketch.dev service, you can set the flag -skaband-addr="" and then provide an ANTHROPIC_API_KEY environment variable. (More LLM services coming soon!)