Repository navigation
Commit 8c9ad4c
authored
Public-web research by role: Exa and Firecrawl beside Parallel (#790)
* Describe public-web research by role, and add Exa and Firecrawl
Research guidance and the Research Desk skill were written for Parallel's two tools by name. A
catalogue entry now says which of its tools search and which fetch (`research`), the guidance is
built from whichever providers a Bot holds, and a skill can declare `@research/search` and
`@research/fetch` to match any provider it was granted. Exa and Firecrawl join Parallel, each free
and with an API key.
Exa and Firecrawl list the tools that only read (`readTools`), and anything else they advertise is
a write: Firecrawl publishes tool families such as firecrawl_monitor_* that no write list could
name. A deployment key can travel in a vendor's own header, as Exa reads x-api-key.
* Offer research roles when writing a skill
The Skills page gains a "Public-web research" group for the two roles, instead of listing them as
not connected, and list_skill_tools tells the authoring assistant about them. The admin page says a
deployment key is sent with every call, since it is no longer always a bearer token.
* Document public-web research across providers
docs/parallel-research.md becomes docs/web-research.md, covering Parallel, Exa and Firecrawl, the
research roles, and how to add a provider.
* Search for facts that change when a Bot holds a search tool
Every Bot was told "this is not an instruction to go looking" and not to hunt the open web, which
was written for Bots whose only way to look was their browser. So General Assistant, holding Exa,
charted the top five economies from memory, and asked whether it could search, said yes. The
provenance guidance now leaves finding sources to a search tool, the research guidance tells a Bot
to search before answering about current figures, rankings, prices or recent events, a search or
two at most, and the browser guidance says opening a page is not a web search.
* Name research calls for what they did, not for the provider
The transcript drew mcp__exa__web_search_exa as "Web search exa", telling the person which vendor
the deployment buys search from. Research calls now read "Search the web" and "Read web pages"
whichever provider made them, and the Bot is told not to name the provider unless asked. The
provider tool table moves to shared/research.ts so the app can recognise these tools; a test keeps
its keys in step with the catalogue. The Bot's access page still groups them under the provider.
* Fold a reply's tool calls into one line (#791)
* Fold a reply's tool calls into one line
Adjacent connector calls and browser steps used to draw a line each above the answer. They now
fold into one row that says what was done ("Searched the web and read 2 pages"), with an icon per
kind of step, the running step's name while it works, and a count of blocked or failed steps.
Opened, each step shows its query, page or connector, and opens to its inputs and output.
The browser grouping this replaces folded only browser steps; groupToolSteps folds both. A single
connector call keeps its own line, and a Team Bot consent request, a tool the app draws itself, and
any pending approval stay outside the fold.
* Draw a tool group's icons at a readable size
The stack's icons were 11px in 20px circles and the step icons 13px, too small to tell a search
from a page at a glance. Stack icons are now 15px in 24px circles and step icons 15px.1 parent d7cc57e commit 8c9ad4c
35 files changed
Lines changed: 1412 additions & 285 deletions
File tree
- app
- src
- components
- channels
- skills
- lib
- plugins
- skills
- routes/_authed/admin/plugins
- tests
- docs
- examples/fintech
- server
- src/plugins
- plugin-store
- tests
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
35 | 72 | | |
36 | 73 | | |
37 | 74 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
226 | 226 | | |
227 | 227 | | |
228 | 228 | | |
229 | | - | |
| 229 | + | |
230 | 230 | | |
231 | 231 | | |
232 | 232 | | |
| |||
445 | 445 | | |
446 | 446 | | |
447 | 447 | | |
448 | | - | |
| 448 | + | |
449 | 449 | | |
450 | 450 | | |
451 | 451 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | 1 | | |
3 | | - | |
4 | 2 | | |
5 | 3 | | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | 4 | | |
13 | 5 | | |
14 | 6 | | |
| |||
20 | 12 | | |
21 | 13 | | |
22 | 14 | | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
41 | 18 | | |
42 | 19 | | |
43 | 20 | | |
| |||
83 | 60 | | |
84 | 61 | | |
85 | 62 | | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
62 | 62 | | |
63 | 63 | | |
64 | 64 | | |
65 | | - | |
66 | | - | |
| 65 | + | |
| 66 | + | |
67 | 67 | | |
68 | | - | |
| 68 | + | |
69 | 69 | | |
70 | 70 | | |
71 | 71 | | |
| |||
1525 | 1525 | | |
1526 | 1526 | | |
1527 | 1527 | | |
1528 | | - | |
| 1528 | + | |
1529 | 1529 | | |
1530 | 1530 | | |
1531 | 1531 | | |
| |||
1668 | 1668 | | |
1669 | 1669 | | |
1670 | 1670 | | |
1671 | | - | |
| 1671 | + | |
1672 | 1672 | | |
1673 | 1673 | | |
1674 | 1674 | | |
1675 | 1675 | | |
1676 | | - | |
| 1676 | + | |
1677 | 1677 | | |
1678 | 1678 | | |
1679 | 1679 | | |
| |||
0 commit comments