scout-ai 1.1.8 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.vimproject +45 -65
- data/README.md +91 -61
- data/VERSION +1 -1
- data/bin/scout-ai +2 -2
- data/doc/Agent.md +245 -167
- data/doc/Chat.md +372 -172
- data/doc/LLM.md +274 -380
- data/lib/scout/llm/agent/chat.rb +7 -1
- data/lib/scout/llm/agent/delegate.rb +86 -0
- data/lib/scout/llm/agent.rb +113 -32
- data/lib/scout/llm/ask.rb +16 -29
- data/lib/scout/llm/backends/anthropic.rb +78 -117
- data/lib/scout/llm/backends/default.rb +558 -0
- data/lib/scout/llm/backends/ollama.rb +93 -94
- data/lib/scout/llm/backends/openai.rb +82 -103
- data/lib/scout/llm/backends/openwebui.rb +54 -114
- data/lib/scout/llm/backends/responses.rb +15 -329
- data/lib/scout/llm/backends/vllm.rb +27 -0
- data/lib/scout/llm/chat/annotation.rb +35 -0
- data/lib/scout/llm/chat/parse.rb +12 -8
- data/lib/scout/llm/chat/process/clear.rb +4 -3
- data/lib/scout/llm/chat/process/meta.rb +43 -0
- data/lib/scout/llm/chat/process/tools.rb +47 -7
- data/lib/scout/llm/chat/process.rb +1 -0
- data/lib/scout/llm/chat.rb +3 -3
- data/lib/scout/llm/embed.rb +3 -0
- data/lib/scout/llm/rag.rb +9 -0
- data/lib/scout/llm/tools/call.rb +57 -17
- data/lib/scout/llm/tools/knowledge_base.rb +11 -5
- data/lib/scout/llm/tools/workflow.rb +9 -7
- data/lib/scout/llm/tools.rb +22 -125
- data/lib/scout-ai.rb +2 -0
- data/scout-ai.gemspec +6 -3
- data/scout_commands/agent/ask +12 -38
- data/scout_commands/llm/ask +10 -3
- data/test/scout/llm/agent/test_chat.rb +1 -1
- data/test/scout/llm/backends/test_anthropic.rb +2 -2
- data/test/scout/llm/backends/test_ollama.rb +7 -7
- data/test/scout/llm/backends/test_openai.rb +8 -8
- data/test/scout/llm/backends/test_openwebui.rb +0 -1
- data/test/scout/llm/backends/test_responses.rb +1 -2
- data/test/scout/llm/test_agent.rb +20 -2
- data/test/scout/llm/test_rag.rb +25 -0
- data/test/test_helper.rb +10 -0
- metadata +5 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a95a3c664d483df9e6c5d968822ac358e74215770e7387186f5de12ac72cedeb
|
|
4
|
+
data.tar.gz: 55e9c02ef0d7794ba797c4fe9c1fdc023c0b08d32178386d53eabcdcb317a0b9
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5252115360b664c8353c05f417b62992bc2970fd04cf1c77281c6eb0ebb185d58ce8b4f3909729b00b7d8b205bf09eb2ccf6ee530044393cf5139b0b44e54f16
|
|
7
|
+
data.tar.gz: 59358958fdae5ed1aac9edcffde28ffc21bd348ffd589d467be59a005b4dd2c2e942981399f412c710eec630e748a9a2438273cb2a569aa09c17388bc2e25927
|
data/.vimproject
CHANGED
|
@@ -1,28 +1,6 @@
|
|
|
1
1
|
scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.txt *.conf" {
|
|
2
|
-
Rakefile
|
|
3
2
|
README.md
|
|
4
|
-
LICENSE.txt
|
|
5
|
-
bin=bin filter="*"{
|
|
6
|
-
scout-ai
|
|
7
|
-
}
|
|
8
3
|
chats=chats filter="*"{
|
|
9
|
-
agent_doc
|
|
10
|
-
|
|
11
|
-
tool_oeu
|
|
12
|
-
|
|
13
|
-
multi_agent.rb
|
|
14
|
-
|
|
15
|
-
network
|
|
16
|
-
|
|
17
|
-
intro
|
|
18
|
-
|
|
19
|
-
dev
|
|
20
|
-
|
|
21
|
-
inline_task
|
|
22
|
-
|
|
23
|
-
inline_task.rb
|
|
24
|
-
|
|
25
|
-
course
|
|
26
4
|
system=system{
|
|
27
5
|
scout-ai
|
|
28
6
|
}
|
|
@@ -32,26 +10,6 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
|
|
|
32
10
|
model
|
|
33
11
|
model.analysis
|
|
34
12
|
}
|
|
35
|
-
develop=develop{
|
|
36
|
-
causalLM
|
|
37
|
-
chat
|
|
38
|
-
digest
|
|
39
|
-
finetuning
|
|
40
|
-
json_format
|
|
41
|
-
model
|
|
42
|
-
rf
|
|
43
|
-
training=training{
|
|
44
|
-
basics
|
|
45
|
-
data.tmp
|
|
46
|
-
intro
|
|
47
|
-
python
|
|
48
|
-
data=data{
|
|
49
|
-
main
|
|
50
|
-
next_token
|
|
51
|
-
test.rb
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
13
|
refactor=refactor{
|
|
56
14
|
chat
|
|
57
15
|
}
|
|
@@ -75,12 +33,21 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
|
|
|
75
33
|
cmd
|
|
76
34
|
web
|
|
77
35
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
36
|
+
|
|
37
|
+
develop=develop{
|
|
38
|
+
training=training{
|
|
39
|
+
data=data{
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
scout-ai
|
|
44
|
+
agent
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
log_reponse
|
|
48
|
+
test_log_resonse
|
|
49
|
+
|
|
50
|
+
test_prompt.rb
|
|
84
51
|
}
|
|
85
52
|
lib=lib {
|
|
86
53
|
scout-ai.rb
|
|
@@ -92,13 +59,6 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
|
|
|
92
59
|
}
|
|
93
60
|
llm=llm{
|
|
94
61
|
utils.rb
|
|
95
|
-
tools.rb
|
|
96
|
-
tools=tools{
|
|
97
|
-
mcp.rb
|
|
98
|
-
workflow.rb
|
|
99
|
-
knowledge_base.rb
|
|
100
|
-
call.rb
|
|
101
|
-
}
|
|
102
62
|
chat.rb
|
|
103
63
|
chat=chat{
|
|
104
64
|
annotation.rb
|
|
@@ -109,16 +69,29 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
|
|
|
109
69
|
files.rb
|
|
110
70
|
clear.rb
|
|
111
71
|
options.rb
|
|
72
|
+
meta.rb
|
|
112
73
|
}
|
|
113
74
|
}
|
|
75
|
+
tools.rb
|
|
76
|
+
tools=tools{
|
|
77
|
+
mcp.rb
|
|
78
|
+
workflow.rb
|
|
79
|
+
knowledge_base.rb
|
|
80
|
+
call.rb
|
|
81
|
+
}
|
|
114
82
|
|
|
115
83
|
backends=backends{
|
|
116
|
-
|
|
84
|
+
default.rb
|
|
85
|
+
|
|
117
86
|
responses.rb
|
|
118
|
-
|
|
87
|
+
openai.rb
|
|
119
88
|
ollama.rb
|
|
120
|
-
|
|
89
|
+
anthropic.rb
|
|
90
|
+
vllm.rb
|
|
91
|
+
|
|
121
92
|
openwebui.rb
|
|
93
|
+
|
|
94
|
+
bedrock.rb
|
|
122
95
|
huggingface.rb
|
|
123
96
|
relay.rb
|
|
124
97
|
}
|
|
@@ -183,6 +156,18 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
|
|
|
183
156
|
}
|
|
184
157
|
}
|
|
185
158
|
}
|
|
159
|
+
share=share{
|
|
160
|
+
server=server files="*"{
|
|
161
|
+
chat.html
|
|
162
|
+
chat.js
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
doc=doc filter="*"{
|
|
166
|
+
Agent.md
|
|
167
|
+
Chat.md
|
|
168
|
+
LLM.md
|
|
169
|
+
Model.md
|
|
170
|
+
}
|
|
186
171
|
test=test {
|
|
187
172
|
data=data filter="*"{
|
|
188
173
|
person=person{
|
|
@@ -194,7 +179,8 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
|
|
|
194
179
|
}
|
|
195
180
|
test_helper.rb
|
|
196
181
|
}
|
|
197
|
-
|
|
182
|
+
bin=bin filter="*"{
|
|
183
|
+
scout-ai
|
|
198
184
|
}
|
|
199
185
|
scout_commands=scout_commands filter="*"{
|
|
200
186
|
documenter
|
|
@@ -209,10 +195,4 @@ scout-ai=$PWD filter="*.rb *.rake Rakefile *.rdoc *.R *.sh *.js *.haml *.sass *.
|
|
|
209
195
|
kb
|
|
210
196
|
}
|
|
211
197
|
}
|
|
212
|
-
share=share{
|
|
213
|
-
server=server files="*"{
|
|
214
|
-
chat.html
|
|
215
|
-
chat.js
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
198
|
}
|
data/README.md
CHANGED
|
@@ -22,8 +22,8 @@ Scout originates from the Rbbt ecosystem (bioinformatics workflows). Numerous en
|
|
|
22
22
|
|
|
23
23
|
The sections below summarize the main components (LLM, Chat, Agent, Model), quick starts, and the command‑line interface. For full APIs, see the doc/ directory.
|
|
24
24
|
|
|
25
|
-
- doc/LLM.md — multi‑backend LLM orchestration, tool calling,
|
|
26
|
-
- doc/Chat.md —
|
|
25
|
+
- doc/LLM.md — multi‑backend LLM orchestration, tool calling, endpoints, CLI
|
|
26
|
+
- doc/Chat.md — chat files: roles/options, compilation pipeline, persistence
|
|
27
27
|
- doc/Agent.md — stateful agents wired to Workflows and KnowledgeBases
|
|
28
28
|
- doc/Model.md — model wrappers (ScoutModel, Python/Torch/Hugging Face)
|
|
29
29
|
|
|
@@ -37,9 +37,10 @@ Scout is a Ruby framework. Add scout-ai (and the other packages you need) to you
|
|
|
37
37
|
- Python 3 (installed and visible in PATH)
|
|
38
38
|
- pycall gem (Ruby ↔ Python bridge)
|
|
39
39
|
- Python packages: torch, transformers, numpy, pandas (as needed)
|
|
40
|
-
- For OpenAI
|
|
40
|
+
- For OpenAI/Anthropic/etc backends: set API keys in environment or config (see `doc/LLM.md`)
|
|
41
41
|
|
|
42
42
|
Typical Gemfile fragment:
|
|
43
|
+
|
|
43
44
|
```ruby
|
|
44
45
|
gem 'scout-essentials', git: 'https://github.com/mikisvaz/scout-essentials'
|
|
45
46
|
gem 'scout-gear', git: 'https://github.com/mikisvaz/scout-gear'
|
|
@@ -47,26 +48,64 @@ gem 'scout-rig', git: 'https://github.com/mikisvaz/scout-rig'
|
|
|
47
48
|
gem 'scout-ai', git: 'https://github.com/mikisvaz/scout-ai'
|
|
48
49
|
```
|
|
49
50
|
|
|
50
|
-
|
|
51
|
+
### Endpoints (recommended)
|
|
52
|
+
|
|
53
|
+
Backends and endpoints can be configured via:
|
|
54
|
+
|
|
55
|
+
- per-endpoint YAML files (recommended): `~/.scout/etc/AI/<endpoint>`
|
|
56
|
+
- environment variables per backend (see `doc/LLM.md`)
|
|
57
|
+
|
|
58
|
+
Most teams create a few named endpoints (e.g. `nano`, `deep`, `ollama`) and then reference them with:
|
|
59
|
+
|
|
60
|
+
- Ruby: `endpoint: :nano`
|
|
61
|
+
- CLI: `-e nano`
|
|
51
62
|
|
|
52
63
|
|
|
53
64
|
## Quick starts
|
|
54
65
|
|
|
66
|
+
### Configure an endpoint (once)
|
|
67
|
+
|
|
68
|
+
Create `~/.scout/etc/AI/nano`:
|
|
69
|
+
|
|
70
|
+
```yaml
|
|
71
|
+
backend: responses
|
|
72
|
+
model: gpt-5-nano
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Or a higher-effort endpoint `~/.scout/etc/AI/deep`:
|
|
76
|
+
|
|
77
|
+
```yaml
|
|
78
|
+
backend: responses
|
|
79
|
+
model: gpt-5
|
|
80
|
+
reasoning_effort: high
|
|
81
|
+
text_verbosity: high
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
Keys beyond `backend/url/model` are passed through to the backend.
|
|
85
|
+
|
|
55
86
|
### Ask a model
|
|
56
87
|
|
|
88
|
+
Ruby:
|
|
89
|
+
|
|
57
90
|
```ruby
|
|
58
91
|
require 'scout-ai'
|
|
59
|
-
answer = LLM.ask "What is the capital of France?",
|
|
92
|
+
answer = LLM.ask "What is the capital of France?", endpoint: :nano
|
|
60
93
|
puts answer
|
|
61
94
|
```
|
|
62
95
|
|
|
96
|
+
CLI:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
scout-ai llm ask -e nano "What is the capital of France?"
|
|
100
|
+
```
|
|
101
|
+
|
|
63
102
|
Chat builder:
|
|
64
103
|
|
|
65
104
|
```ruby
|
|
66
105
|
chat = Chat.setup []
|
|
67
106
|
chat.system "You are a terse assistant"
|
|
68
107
|
chat.user "List three colors"
|
|
69
|
-
puts chat.ask
|
|
108
|
+
puts chat.ask(endpoint: :nano)
|
|
70
109
|
```
|
|
71
110
|
|
|
72
111
|
### Tool calling with a Workflow
|
|
@@ -83,11 +122,13 @@ m = Module.new do
|
|
|
83
122
|
input :name, :string
|
|
84
123
|
input :age, :integer
|
|
85
124
|
input :gender, :select, nil, select_options: %w(male female)
|
|
86
|
-
task :person => :yaml do
|
|
125
|
+
task :person => :yaml do
|
|
126
|
+
inputs.to_hash
|
|
127
|
+
end
|
|
87
128
|
end
|
|
88
129
|
|
|
89
130
|
puts LLM.workflow_ask(m, "Register Eduard Smith, a 25 yo male, using a tool call",
|
|
90
|
-
|
|
131
|
+
endpoint: :nano)
|
|
91
132
|
```
|
|
92
133
|
|
|
93
134
|
### Stateful agent with a KnowledgeBase
|
|
@@ -102,15 +143,17 @@ TmpFile.with_dir do |dir|
|
|
|
102
143
|
undirected: true, source: "=>Alias", target: "=>Alias"
|
|
103
144
|
kb.register :parents, datafile_test(:person).parents
|
|
104
145
|
|
|
105
|
-
agent = LLM::Agent.new
|
|
106
|
-
|
|
146
|
+
agent = LLM::Agent.new(knowledge_base: kb, endpoint: :nano)
|
|
147
|
+
agent.start
|
|
148
|
+
agent.user "Who is Miki's brother in law?"
|
|
149
|
+
puts agent.chat
|
|
107
150
|
end
|
|
108
151
|
```
|
|
109
152
|
|
|
110
153
|
### Structured iteration
|
|
111
154
|
|
|
112
155
|
```ruby
|
|
113
|
-
agent = LLM::Agent.new
|
|
156
|
+
agent = LLM::Agent.new(endpoint: :nano)
|
|
114
157
|
agent.iterate("List three steps to bake bread") { |step| puts "- #{step}" }
|
|
115
158
|
|
|
116
159
|
agent.iterate_dictionary("Give capital cities for FR, ES, IT") do |country, capital|
|
|
@@ -148,33 +191,28 @@ end
|
|
|
148
191
|
|
|
149
192
|
A compact, multi‑backend layer to ask LLMs, wire function‑calling tools, parse/print chats, and compute embeddings.
|
|
150
193
|
|
|
151
|
-
- ask(question, options={}, &block) —
|
|
152
|
-
- Backends:
|
|
153
|
-
- Tools: export Workflow tasks
|
|
154
|
-
-
|
|
155
|
-
-
|
|
156
|
-
- Configuration: endpoint defaults in Scout.etc.AI/endpoint.yaml are merged into options automatically
|
|
194
|
+
- `LLM.ask(question, options={}, &block)` — compile `question` via `LLM.chat`, merge endpoint/model/format options, call backend
|
|
195
|
+
- Backends: Responses, OpenAI, Anthropic, Ollama, vLLM, OpenWebUI, AWS Bedrock, Relay
|
|
196
|
+
- Tools: export Workflow tasks and KnowledgeBase databases as function tools
|
|
197
|
+
- Chat compilation pipeline: imports, clear/skip, tasks/jobs, files/directories
|
|
198
|
+
- Endpoint configuration: `~/.scout/etc/AI/<endpoint>`
|
|
157
199
|
|
|
158
200
|
### Chat (doc/Chat.md)
|
|
159
201
|
|
|
160
|
-
|
|
202
|
+
Chat is both:
|
|
161
203
|
|
|
162
|
-
-
|
|
163
|
-
-
|
|
164
|
-
- association declarations (KnowledgeBase)
|
|
165
|
-
- option, endpoint, model, format (including JSON schema requests)
|
|
166
|
-
- ask, chat, json/json_format, print/save/write/write_answer, branch/shed
|
|
204
|
+
- a builder over an Array of `{role:, content:}` messages
|
|
205
|
+
- a stable on-disk “chat file” format used by the CLI
|
|
167
206
|
|
|
168
|
-
|
|
207
|
+
See `doc/Chat.md` for the full list of special roles (options, tools, imports, files, tasks, MCP, KB).
|
|
169
208
|
|
|
170
209
|
### Agent (doc/Agent.md)
|
|
171
210
|
|
|
172
|
-
|
|
211
|
+
An Agent is a stateful wrapper around Chat and LLM:
|
|
173
212
|
|
|
174
|
-
-
|
|
175
|
-
-
|
|
176
|
-
-
|
|
177
|
-
- load_from_path(dir) — bootstrap from a directory containing workflow.rb, knowledge_base, start_chat
|
|
213
|
+
- maintains a current conversation (`start_chat`, `start`, `current_chat`)
|
|
214
|
+
- auto-exports Workflow tasks and KnowledgeBase databases as tools
|
|
215
|
+
- provides `chat/json/json_format/iterate` helpers
|
|
178
216
|
|
|
179
217
|
### Model (doc/Model.md)
|
|
180
218
|
|
|
@@ -188,11 +226,6 @@ A composable framework to wrap models with a consistent API:
|
|
|
188
226
|
- CausalModel — chat/causal generation (supports apply_chat_template)
|
|
189
227
|
- NextTokenModel — simple next‑token fine‑tuning loop
|
|
190
228
|
|
|
191
|
-
Pattern:
|
|
192
|
-
- Keep feature extraction separate from evaluation
|
|
193
|
-
- Use eval_list to batch large tables
|
|
194
|
-
- Persist directory state and behavior to reuse
|
|
195
|
-
|
|
196
229
|
|
|
197
230
|
## Example: ExTRI2 workflow (models in practice)
|
|
198
231
|
|
|
@@ -203,47 +236,50 @@ The ExTRI2 Workflow (Rbbt‑Workflows) uses HuggingfaceModel to score TRI senten
|
|
|
203
236
|
- Adds fields “Valid score” and “Valid” to the TSV
|
|
204
237
|
- Runs a second SequenceClassification model to produce “MoR” and “MoR scores”
|
|
205
238
|
|
|
206
|
-
See
|
|
239
|
+
See workflow.rb in that repository for the full implementation. http://github.com/Rbbt-Workflows/ExTRI2
|
|
207
240
|
|
|
208
241
|
|
|
209
242
|
## Command‑Line Interface
|
|
210
243
|
|
|
211
|
-
The bin/scout dispatcher locates scripts under scout_commands across installed packages and workflows using the Path subsystem.
|
|
244
|
+
The bin/scout dispatcher locates scripts under scout_commands across installed packages and workflows using the Path subsystem.
|
|
245
|
+
|
|
246
|
+
You can run it as:
|
|
212
247
|
|
|
213
|
-
-
|
|
214
|
-
-
|
|
215
|
-
- Other packages or workflows can define their own scripts under share/scout_commands, and bin/scout will find them
|
|
248
|
+
- `scout ...` (the standard Scout CLI), or
|
|
249
|
+
- `scout-ai ...` (a thin wrapper that loads Scout with `scout-ai` available)
|
|
216
250
|
|
|
217
251
|
### scout llm …
|
|
218
252
|
|
|
219
253
|
Ask an LLM, manage chat files, run a minimal web UI, or process queued requests. Scripts live under scout_commands/llm.
|
|
220
254
|
|
|
221
255
|
- Ask
|
|
222
|
-
- scout llm ask [options] [question]
|
|
256
|
+
- `scout llm ask [options] [question]`
|
|
257
|
+
- `scout-ai llm ask [options] [question]`
|
|
223
258
|
- -t|--template <file_or_key> — load a prompt template; substitutes “???” or appends
|
|
224
259
|
- -c|--chat <chat_file> — load/extend a conversation (appends the reply)
|
|
225
260
|
- -i|--inline <file> — answer “# ask: …” directives inline in a source file
|
|
226
261
|
- -f|--file <file> — prepend file content or substitute where “...” appears
|
|
227
|
-
- -m|--model, -e|--endpoint, -b|--backend — select backend/model; merged with
|
|
262
|
+
- -m|--model, -e|--endpoint, -b|--backend — select backend/model; merged with endpoint configs
|
|
228
263
|
- -d|--dry_run — expand and print the conversation (no ask)
|
|
229
264
|
|
|
230
265
|
- Relay processor (for the Relay backend)
|
|
231
|
-
- scout llm process [directory] — watches a queue directory and answers ask JSONs
|
|
266
|
+
- `scout llm process [directory]` — watches a queue directory and answers ask JSONs
|
|
232
267
|
|
|
233
268
|
- Web UI server
|
|
234
|
-
- scout llm server — static chat UI over ./chats with a small JSON API
|
|
269
|
+
- `scout llm server` — static chat UI over ./chats with a small JSON API
|
|
235
270
|
|
|
236
271
|
- Templates
|
|
237
|
-
- scout llm template — list installed prompt templates (Scout.questions)
|
|
272
|
+
- `scout llm template` — list installed prompt templates (Scout.questions)
|
|
238
273
|
|
|
239
|
-
Run
|
|
274
|
+
Run `scout llm` alone to see available subcommands.
|
|
240
275
|
|
|
241
276
|
### scout agent …
|
|
242
277
|
|
|
243
278
|
Stateful agents with Workflow and KnowledgeBase tooled up. Scripts live under scout_commands/agent.
|
|
244
279
|
|
|
245
280
|
- Ask via an Agent
|
|
246
|
-
- scout agent ask [options] [agent_name] [question]
|
|
281
|
+
- `scout agent ask [options] [agent_name] [question]`
|
|
282
|
+
- `scout-ai agent ask [options] [agent_name] [question]`
|
|
247
283
|
- -l|--log <level> — set log severity
|
|
248
284
|
- -t|--template <file_or_key>
|
|
249
285
|
- -c|--chat <chat_file>
|
|
@@ -253,31 +289,25 @@ Stateful agents with Workflow and KnowledgeBase tooled up. Scripts live under sc
|
|
|
253
289
|
- agent_name resolves via Scout.workflows[agent_name] (a workflow) or Scout.chats[agent_name] (an agent directory with workflow.rb/knowledge_base/start_chat)
|
|
254
290
|
|
|
255
291
|
- KnowledgeBase passthrough
|
|
256
|
-
- scout agent kb <agent_name> <kb subcommand
|
|
257
|
-
- Loads the agent’s knowledge base and forwards to “scout kb …” (see scout-gear doc/KnowledgeBase.md for kb CLI)
|
|
292
|
+
- `scout agent kb <agent_name> <kb subcommand...>`
|
|
258
293
|
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
Note: Workflows also have extensive CLI commands (scout workflow …) for job execution, provenance, orchestration, and queue processing. When you integrate models inside tasks, you drive them through the workflow CLI (see scout-gear doc/Workflow.md).
|
|
294
|
+
Note: Workflows also have extensive CLI commands (`scout workflow …`) for job execution, provenance, orchestration, and queue processing.
|
|
262
295
|
|
|
263
296
|
|
|
264
297
|
## Configuration, persistence and reproducibility
|
|
265
298
|
|
|
266
|
-
- Endpoint presets: place YAML under
|
|
299
|
+
- Endpoint presets: place YAML under `~/.scout/etc/AI/<endpoint>` to preconfigure url/model/backend and backend-specific knobs
|
|
267
300
|
- Tool calling: Workflow tasks are exported as JSON schemas per backend; results are serialized back to the model as tool replies
|
|
268
|
-
- Caching: LLM.ask persists responses (by default) using Persist.persist
|
|
269
|
-
-
|
|
270
|
-
- Chats: save printable conversations with Chat#save; reuse with “scout llm ask -c <file>”
|
|
271
|
-
|
|
272
|
-
For Python models, ensure scout-rig (ScoutPython) is installed and Python packages are present. See doc/Python.md in scout-rig for details.
|
|
301
|
+
- Caching: `LLM.ask` persists responses (by default) using `Persist.persist`; disable with `persist: false`
|
|
302
|
+
- Chats: save printable conversations with Chat#save; reuse with `scout-ai llm ask -c <file>`
|
|
273
303
|
|
|
274
304
|
|
|
275
305
|
## Where to go next
|
|
276
306
|
|
|
277
307
|
- Explore the API docs shipped in this repository:
|
|
278
|
-
- doc/LLM.md — orchestration, backends, tools, CLI
|
|
279
|
-
- doc/Chat.md —
|
|
280
|
-
- doc/Agent.md — stateful agents, Workflow/KB wiring, iterate helpers
|
|
308
|
+
- doc/LLM.md — orchestration, endpoints, backends, tools, CLI
|
|
309
|
+
- doc/Chat.md — chat files: roles/options and compilation behavior
|
|
310
|
+
- doc/Agent.md — stateful agents, Workflow/KB wiring, delegation, iterate helpers
|
|
281
311
|
- doc/Model.md — model wrappers; ScoutModel, Python/Torch/Hugging Face
|
|
282
312
|
|
|
283
313
|
- Browse real‑world workflows (including ExTRI2) in Rbbt‑Workflows:
|
|
@@ -293,4 +323,4 @@ For Python models, ensure scout-rig (ScoutPython) is installed and Python packag
|
|
|
293
323
|
|
|
294
324
|
## License and contributions
|
|
295
325
|
|
|
296
|
-
Issues and PRs are welcome across the Scout repositories. Please open tickets in the relevant package (e.g., scout-ai for LLM/Agent/Model topics).
|
|
326
|
+
Issues and PRs are welcome across the Scout repositories. Please open tickets in the relevant package (e.g., scout-ai for LLM/Agent/Model topics).
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.2.0
|