Skip to content

Commit 87bb1be

Browse files
committed
docs(tools): add ChatBot example and clarify Telegram-only tools
Replace the confusing CLI chatbot example (which mixed whitelist and blacklist and referenced Telegram-only send_message) with a clear ChatBot config example suitable for ~/.odek/config.json and odek serve. Explain why each tool is included and note that send_message/clarify are only auto-injected by odek telegram.
1 parent 61b8a58 commit 87bb1be

1 file changed

Lines changed: 47 additions & 17 deletions

File tree

docs/TOOL_SELECTION.md

Lines changed: 47 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -64,31 +64,58 @@ across layers.
6464

6565
## Examples
6666

67-
### Chatbot with web search and voice
67+
### ChatBot
68+
69+
A minimal chatbot that can answer questions, search the web, and process voice
70+
or image input, but cannot touch files or run shell commands.
71+
72+
```json
73+
// ~/.odek/config.json
74+
{
75+
"model": "deepseek-v4-flash",
76+
"tools": {
77+
"enabled": ["web_search", "transcribe", "vision", "memory"]
78+
}
79+
}
80+
```
81+
82+
Run interactively:
83+
84+
```bash
85+
odek run "what's new in Go?"
86+
```
87+
88+
Or serve it via the Web UI:
89+
90+
```bash
91+
odek serve
92+
```
93+
94+
Why these tools:
95+
96+
- `web_search` — answers current-events questions via SearXNG (requires
97+
`web_search.base_url` in config)
98+
- `transcribe` — converts voice messages to text
99+
- `vision` — describes images
100+
- `memory` — remembers facts across conversations
101+
102+
Everything else is excluded, including `shell`, `write_file`, `patch`,
103+
`delegate_tasks`, and all file tools.
104+
105+
### Chatbot with web search and voice (CLI override)
106+
107+
You can override the config for a single run:
68108

69109
```bash
70-
# CLI only
71110
odek run \
72111
--tool web_search \
73112
--tool transcribe \
74113
--tool vision \
75-
--tool send_message \
76-
--no-tool shell \
77-
--no-tool write_file \
78-
--no-tool patch \
79-
--no-tool delegate_tasks \
114+
--tool memory \
80115
"what's the weather in Tokyo?"
81116
```
82117

83-
Or set it once in `~/.odek/config.json`:
84-
85-
```json
86-
{
87-
"tools": {
88-
"enabled": ["web_search", "transcribe", "vision", "send_message"]
89-
}
90-
}
91-
```
118+
Because `--tool` sets a whitelist, only those four tools are registered.
92119

93120
### Read-only research assistant
94121

@@ -182,7 +209,7 @@ Use these exact names in config, env vars, and CLI flags:
182209
| Network | `browser`, `web_search` |
183210
| Memory | `memory` |
184211
| Skills | `skill_load`, `skill_list`, `skill_save`, `skill_patch`, `skill_delete` |
185-
| Telegram | `send_message`, `clarify` |
212+
| Telegram-only | `send_message`, `clarify` (auto-injected by `odek telegram`; ignored by other modes) |
186213
| MCP | `<server>__<tool_name>` |
187214

188215
Unknown names are silently ignored, so typos do not crash startup.
@@ -195,6 +222,9 @@ Some odek modes preserve tools they need to function:
195222
and ask clarifications, even if you disable them.
196223
- Other modes respect the filter exactly as configured.
197224

225+
`send_message` and `clarify` are only meaningful in `odek telegram`; in other
226+
modes they are not registered, so including them in a whitelist has no effect.
227+
198228
## Choosing between whitelist and blacklist
199229

200230
- Use **`enabled`** when you know exactly which tools the deployment needs.

0 commit comments

Comments
 (0)