@rse/ase 0.0.49 → 0.0.51

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.
@@ -1,16 +1,19 @@
1
1
  ---
2
2
  name: ase-meta-search
3
- description: Use the `ase-meta-search` agent to find answers to your questions!
3
+ description: Query the Web
4
4
  tools:
5
5
  - "mcp__perplexity__perplexity_search"
6
6
  - "mcp__brave__brave_web_search"
7
7
  - "WebSearch"
8
- - "WebFetch"
9
8
  model: sonnet
10
9
  effort: low
10
+ tools:
11
+ - "mcp__search-perplexity__perplexity_search"
12
+ - "mcp__search-brave__brave_web_search"
13
+ - "mcp__search-exa__web_search_exa"
14
+ - "WebSearch"
11
15
  ---
12
16
 
13
- Just perform the given *query*
14
- and give back the *plain responses*
15
- without any modifications.
17
+ Just perform the given *query* `$ARGUMENTS` and
18
+ give back the *plain responses* without any modifications.
16
19
 
@@ -34,11 +34,13 @@ Skill Output
34
34
 
35
35
  - *IMPORTANT*: For *Diagrams*: whenever the response needs a
36
36
  diagram (structural, control-flow, state, sequence, class,
37
- entity-relationship, or metrics), you *MUST* invoke the
38
- `ase-meta-diagram` skill via the `Skill` tool and follow its rules.
39
- All hand-drawn ASCII frames, raw Mermaid source as a
40
- substitute for a rendered block, and missing stdout
41
- reproduction are defects defined by that skill.
37
+ entity-relationship, or metrics), you *MUST* build a Mermaid
38
+ specification and dispatch its rendering to the `ase-meta-diagram`
39
+ sub-agent via the `Agent` tool (`subagent_type: "ase:ase-meta-diagram"`),
40
+ then reproduce its returned fenced code block verbatim in the
41
+ response text. All hand-drawn ASCII frames, raw Mermaid source as a
42
+ substitute for a rendered block, and missing reproduction of the
43
+ rendered block are defects defined by that agent.
42
44
 
43
45
  - *IMPORTANT*: For Markdown *Tables*:
44
46
 
@@ -6,7 +6,7 @@
6
6
  "homepage": "http://github.com/rse/ase",
7
7
  "repository": { "url": "git+https://github.com/rse/ase.git", "type": "git" },
8
8
  "bugs": { "url": "http://github.com/rse/ase/issues" },
9
- "version": "0.0.49",
9
+ "version": "0.0.51",
10
10
  "license": "GPL-3.0-only",
11
11
  "author": {
12
12
  "name": "Dr. Ralf S. Engelschall",
@@ -304,11 +304,12 @@ interface quality, quality attributes, and architecture governance.
304
304
 
305
305
  - For <rendered-diagram-as-fenced-code-block/>, build a Mermaid
306
306
  specification <mermaid-spec/> for a `flowchart TB` of the
307
- high-level component or layer structure and invoke the
308
- `ase-meta-diagram` skill by calling the tool `Skill(skill:
309
- "ase:ase-meta-diagram", args: <mermaid-spec/>)` to render it.
310
- Show layers / slices / major components and their dependency
311
- direction.
307
+ high-level component or layer structure and dispatch the rendering
308
+ to the `ase-meta-diagram` sub-agent by calling the tool
309
+ `Agent(name: "ase:ase-meta-diagram", description: "Diagram Rendering",
310
+ subagent_type: "ase:ase-meta-diagram", prompt: <mermaid-spec/>)`,
311
+ using its returned fenced code block verbatim. Show layers /
312
+ slices / major components and their dependency direction.
312
313
 
313
314
  - Mark detected *anomalies* directly in the Mermaid source.
314
315
  Because `!` and `?` are Mermaid special characters, *always
@@ -9,6 +9,7 @@ disable-model-invocation: false
9
9
  effort: high
10
10
  allowed-tools:
11
11
  - "Skill"
12
+ - "Agent"
12
13
  ---
13
14
 
14
15
  @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
@@ -222,14 +223,17 @@ permitted way to persist artifacts is via `task_save(...)`.
222
223
  it with an optional diagram <optional-diagram/> by building
223
224
  a Mermaid specification <mermaid-spec/> (e.g. `flowchart
224
225
  TB`, `stateDiagram-v2`, `sequenceDiagram`, `classDiagram`,
225
- or `erDiagram`, depending on intent) and invoking the
226
- `ase-meta-diagram` skill by calling the tool `Skill(skill:
227
- "ase:ase-meta-diagram", args: <mermaid-spec/>)`. For
228
- *current vs. proposed* comparisons, render each side as
229
- a *separate* `ase-meta-diagram` invocation and stack the
230
- rendered blocks *vertically* (labels `**Before:**` /
231
- `**After:**`); never side-by-side. Omit <optional-diagram/>
232
- entirely for simple or purely local situations.
226
+ or `erDiagram`, depending on intent) and dispatching the
227
+ rendering to the `ase-meta-diagram` sub-agent by calling
228
+ the tool `Agent(name: "ase:ase-meta-diagram", description:
229
+ "Diagram Rendering", subagent_type: "ase:ase-meta-diagram",
230
+ prompt: <mermaid-spec/>)`, reproducing its returned fenced
231
+ code block verbatim. For *current vs. proposed* comparisons,
232
+ render each side as a *separate* `ase-meta-diagram`
233
+ invocation and stack the rendered blocks *vertically*
234
+ (labels `**Before:**` / `**After:**`); never side-by-side.
235
+ Omit <optional-diagram/> entirely for simple or purely local
236
+ situations.
233
237
 
234
238
  6. Indicate end of reporting by showing the following <template/>:
235
239
 
@@ -75,10 +75,12 @@ code and *explain* it in a *brief*, *standardized*, and *concise* way.
75
75
  Build a Mermaid specification <mermaid-spec/>, choosing the Mermaid
76
76
  diagram type per intent: `classDiagram` for class/method structure,
77
77
  `sequenceDiagram` for actor/message flow, or `flowchart TB` for
78
- boxes-and-lines component layouts. Then invoke the
79
- `ase-meta-diagram` skill by calling the tool `Skill(skill:
80
- "ase:ase-meta-diagram", args: <mermaid-spec/>)` to render the
81
- diagram. Do *not* hand-draw.
78
+ boxes-and-lines component layouts. Then dispatch the rendering to
79
+ the `ase-meta-diagram` sub-agent by calling the tool `Agent(name:
80
+ "ase:ase-meta-diagram", description: "Diagram Rendering", subagent_type:
81
+ "ase:ase-meta-diagram", prompt: <mermaid-spec/>)` and reproduce its
82
+ returned fenced code block verbatim in the response text. Do *not*
83
+ hand-draw.
82
84
 
83
85
  Keep your explanation *brief* and *concise*.
84
86
  Output the result with the following <template/>:
@@ -12,6 +12,7 @@ allowed-tools:
12
12
  - "Bash(uniq)"
13
13
  - "Bash(head)"
14
14
  - "Skill"
15
+ - "Agent"
15
16
  ---
16
17
 
17
18
  @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
@@ -93,10 +94,12 @@ Give *insights* into the project through the source code of $ARGUMENTS.
93
94
  Find all modules (or OOP classes) and build a Mermaid specification
94
95
  <mermaid-spec/> for a `flowchart TB` diagram with all modules as
95
96
  boxes and the imports between modules as the directed edges. Then
96
- invoke the `ase-meta-diagram` skill by calling the tool
97
- `Skill(skill: "ase:ase-meta-diagram", args: <mermaid-spec/>)`
98
- to render the diagram. Do not display any further explanation except
99
- for this diagram.
97
+ dispatch the rendering to the `ase-meta-diagram` sub-agent by
98
+ calling the tool `Agent(name: "ase:ase-meta-diagram", description:
99
+ "Diagram Rendering", subagent_type: "ase:ase-meta-diagram", prompt:
100
+ <mermaid-spec/>)` and reproduce its returned fenced code block
101
+ verbatim in the response text. Do not display any further
102
+ explanation except for this diagram.
100
103
  </step>
101
104
  </flow>
102
105
 
@@ -56,9 +56,9 @@ related to a set of code quality aspects.
56
56
 
57
57
  ```text
58
58
  Agent(
59
- name: "ase-code-lint",
59
+ name: "ase:ase-code-lint",
60
60
  description: "Lint Investigation",
61
- subagent_type: "ase-code-lint",
61
+ subagent_type: "ase:ase-code-lint",
62
62
  mode: "plan",
63
63
  prompt: <getopt-arguments/>
64
64
  )
@@ -9,6 +9,7 @@ disable-model-invocation: false
9
9
  effort: high
10
10
  allowed-tools:
11
11
  - "Skill"
12
+ - "Agent"
12
13
  ---
13
14
 
14
15
  @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
@@ -213,13 +214,16 @@ permitted way to persist artifacts is via `task_save(...)`.
213
214
  by building a Mermaid specification <mermaid-spec/>
214
215
  (e.g. `flowchart TB`, `stateDiagram-v2`, `sequenceDiagram`,
215
216
  `classDiagram`, or `erDiagram`, depending on intent) and
216
- invoking the `ase-meta-diagram` skill by calling the tool
217
- `Skill(skill: "ase:ase-meta-diagram", args: <mermaid-spec/>)`.
218
- For *current vs. proposed* comparisons, render each side as
219
- a *separate* `ase-meta-diagram` invocation and stack the
220
- rendered blocks *vertically* (labels `**Before:**` /
221
- `**After:**`); never side-by-side. Omit <optional-diagram/>
222
- entirely for simple or purely local situations.
217
+ dispatching the rendering to the `ase-meta-diagram`
218
+ sub-agent by calling the tool `Agent(name: "ase:ase-meta-diagram",
219
+ description: "Diagram Rendering", subagent_type:
220
+ "ase:ase-meta-diagram", prompt: <mermaid-spec/>)`, reproducing
221
+ its returned fenced code block verbatim. For *current
222
+ vs. proposed* comparisons, render each side as a *separate*
223
+ `ase-meta-diagram` invocation and stack the rendered blocks
224
+ *vertically* (labels `**Before:**` / `**After:**`); never
225
+ side-by-side. Omit <optional-diagram/> entirely for simple
226
+ or purely local situations.
223
227
 
224
228
  6. Indicate end of reporting by showing the following <template/>:
225
229
 
@@ -9,6 +9,7 @@ disable-model-invocation: false
9
9
  effort: high
10
10
  allowed-tools:
11
11
  - "Skill"
12
+ - "Agent"
12
13
  ---
13
14
 
14
15
  @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
@@ -152,10 +153,13 @@ permitted way to persist artifacts is via `task_save(...)`.
152
153
  visualize it with an optional diagram <optional-diagram/> by
153
154
  building a Mermaid specification <mermaid-spec/> (e.g. `flowchart
154
155
  TB`, `stateDiagram-v2`, `sequenceDiagram`, `classDiagram`, or
155
- `erDiagram`, depending on intent) and invoking the
156
- `ase-meta-diagram` skill by calling the tool `Skill(skill:
157
- "ase:ase-meta-diagram", args: <mermaid-spec/>)`. Omit
158
- <optional-diagram/> entirely for simple or purely local situations.
156
+ `erDiagram`, depending on intent) and dispatching the rendering
157
+ to the `ase-meta-diagram` sub-agent by calling the tool
158
+ `Agent(name: "ase:ase-meta-diagram", description: "Diagram
159
+ Rendering", subagent_type: "ase:ase-meta-diagram", prompt:
160
+ <mermaid-spec/>)`, reproducing its returned fenced code block
161
+ verbatim. Omit <optional-diagram/> entirely for simple or
162
+ purely local situations.
159
163
 
160
164
  2. **Investigate Code Base**:
161
165
 
@@ -259,13 +263,16 @@ permitted way to persist artifacts is via `task_save(...)`.
259
263
  by building a Mermaid specification <mermaid-spec/>
260
264
  (e.g. `flowchart TB`, `stateDiagram-v2`, `sequenceDiagram`,
261
265
  `classDiagram`, or `erDiagram`, depending on intent) and
262
- invoking the `ase-meta-diagram` skill by calling the tool
263
- `Skill(skill: "ase:ase-meta-diagram", args: <mermaid-spec/>)`.
264
- For *current vs. proposed* comparisons, render each side as
265
- a *separate* `ase-meta-diagram` invocation and stack the
266
- rendered blocks *vertically* (labels `**Before:**` /
267
- `**After:**`); never side-by-side. Omit <optional-diagram/>
268
- entirely for simple or purely local situations.
266
+ dispatching the rendering to the `ase-meta-diagram`
267
+ sub-agent by calling the tool `Agent(name: "ase:ase-meta-diagram",
268
+ description: "Diagram Rendering", subagent_type:
269
+ "ase:ase-meta-diagram", prompt: <mermaid-spec/>)`, reproducing
270
+ its returned fenced code block verbatim. For *current
271
+ vs. proposed* comparisons, render each side as a *separate*
272
+ `ase-meta-diagram` invocation and stack the rendered blocks
273
+ *vertically* (labels `**Before:**` / `**After:**`); never
274
+ side-by-side. Omit <optional-diagram/> entirely for simple
275
+ or purely local situations.
269
276
 
270
277
  6. Indicate end of reporting by showing the following <template/>:
271
278
 
@@ -57,9 +57,9 @@ documents.
57
57
 
58
58
  ```text
59
59
  Agent(
60
- name: "ase-docs-proofread",
60
+ name: "ase:ase-docs-proofread",
61
61
  description: "Proofread Investigation",
62
- subagent_type: "ase-docs-proofread",
62
+ subagent_type: "ase:ase-docs-proofread",
63
63
  mode: "plan",
64
64
  prompt: <getopt-arguments/>
65
65
  )
@@ -2,64 +2,48 @@
2
2
  name: ase-meta-chat
3
3
  argument-hint: "<llm> <query>"
4
4
  description: >
5
- Query foreign LLM for Chat.
5
+ Query foreign LLM for chat.
6
6
  Use this skill if a foreign LLM like OpenAI ChatGPT, Google Gemini,
7
7
  DeepSeek or xAI Grok should be queried with a single chat message.
8
8
  user-invocable: true
9
9
  disable-model-invocation: false
10
- context: fork
11
10
  effort: low
12
11
  allowed-tools:
13
- - "mcp__chat-openai-chatgpt"
14
- - "mcp__chat-google-gemini"
15
- - "mcp__chat-deepseek"
16
- - "mcp__chat-xai-grok"
17
- - "Task"
18
12
  - "Agent"
19
13
  ---
20
14
 
21
15
  @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
22
16
  @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md
23
17
 
24
- Query Foreign LLMs for Chat
25
- ===========================
18
+ Query Foreign LLM for Chat
19
+ ==========================
26
20
 
27
21
  <skill name="ase-meta-chat">
28
- Query Foreign LLMs for Chat
22
+ Query Foreign LLM for Chat
29
23
  </skill>
30
24
 
25
+ <role>
31
26
  Your role is to act as a proxy to query a foreign LLM for a single chat message.
27
+ </role>
32
28
 
33
29
  <objective>
34
30
  Query foreign LLM for: <query>$ARGUMENTS</query>
35
31
  </objective>
36
32
 
37
- <flow>
38
-
39
- 1. <step id="STEP 1: Select LLMs">
40
- Use the *first word* of the following <query/> for selecting the
41
- foreign LLMs to query, and their corresponding MCP servers, from the
42
- following list:
43
-
44
- - **OpenAI ChatGPT**: via MCP server `chat-openai-chatgpt`
45
- - **Google Gemini**: via MCP server `chat-google-gemini`
46
- - **DeepSeek**: via MCP server `chat-deepseek`
47
- - **xAI Grok**: via MCP server `chat-xai-grok`
48
- </step>
49
-
50
- 2. <step id="STEP 2: Spawn Agents">
51
- Spawn a *sub-task* with the companion `ase-meta-chat` *agent* (and
52
- not this *skill*, but the agent of the same name) for the selected
53
- foreign LLMs, and pass the *second and all remaining* words of the
54
- following <query/> as the query for the selected LLM.
55
- </step>
56
-
57
- 3. <step id="STEP 3: Return Responses">
58
- Return the *plain response* of the `ase-meta-chat` agent 1:1 and
59
- *without any modifications*. Especially, do *NOT* add or remove any
60
- text from the agent response on your own and do not interpret the
61
- result in any way.
62
- </step>
63
-
64
- </flow>
33
+ 1. You *MUST* *NOT* output anything in this step.
34
+ Just call the underlying agent with the following tool:
35
+
36
+ ```text
37
+ Agent(
38
+ name: "ase:ase-meta-chat",
39
+ description: "Query Foreign LLM for Chat",
40
+ subagent_type: "ase:ase-meta-chat",
41
+ prompt: <query/>
42
+ )
43
+ ```
44
+
45
+ 2. Output the *plain response* of the `ase:ase-meta-chat` agent
46
+ *verbatim* and *without any modifications*. Especially, do *NOT* add or
47
+ remove any text from the agent response on your own and do not interpret
48
+ the result in any way.
65
49
 
@@ -21,7 +21,9 @@ Query Multiple AIs for Quorum Answer
21
21
  Query Multiple AIs for Quorum Answer
22
22
  </skill>
23
23
 
24
+ <role>
24
25
  Your role is an *expert-level assistant*.
26
+ </role>
25
27
 
26
28
  <objective>
27
29
  Find a *quorum answer* on an arbitrary question,
@@ -29,11 +31,12 @@ by querying *multiple* AIs for an *optimal consensus*.
29
31
  </objective>
30
32
 
31
33
  <flow>
32
- 1. <step id="STEP 1: Determine Own Answer">
33
- Determine your own answer.
34
- For yourself (Anthropic Claude), first answer the following <query/> in advance:
35
34
 
36
- <query>
35
+ 1. <step id="STEP 1: Preview Own Answer">
36
+
37
+ Prepare the LLM query by setting <query/> to the following <template/>:
38
+
39
+ <template>
37
40
  $ARGUMENTS.
38
41
  Please respond with facts and very concise and brief only,
39
42
  usually with just 1 to 7 corresponding bullet points and with short sentences.
@@ -41,40 +44,62 @@ by querying *multiple* AIs for an *optimal consensus*.
41
44
  Beside bullet points, do not provide any additional explanations.
42
45
  Emphasize keywords or cruxes in your response with Markdown formatting.
43
46
  Format code parts with Markdown formatting.
44
- </query>
45
- </step>
47
+ </template>
46
48
 
47
- 2. <step id="STEP 2: Preview Own Answer">
48
- Show your own answer as a sneak preview.
49
- For this, use the following output <template/>:
49
+ For yourself (Anthropic Claude), first answer this <query/> in
50
+ advance yourself by showing your own answer to the query as a sneak
51
+ preview. For this, output the following <template/>:
50
52
 
51
53
  <template>
52
54
  **Anthropic Claude** (sneak preview in advance):
53
55
  - [...]
54
56
  - [...]
55
57
  </template>
58
+
56
59
  </step>
57
60
 
58
- 3. <step id="STEP 3: Query Foreign AIs">
59
- For each of the following foreign AIs and their potentially
60
- available, given, corresponding MCP servers, use a *sub-task* and
61
- the `ase-meta-chat` *agent* to perform the above same <query/> zero
62
- or more times and in *parallel* again:
61
+ 2. <step id="STEP 2: Query Foreign AIs">
62
+
63
+ <define name="agent">
64
+ Call the `Agent` tool:
65
+
66
+ ```text
67
+ Agent(
68
+ name: "ase:ase-meta-chat",
69
+ description: "Query Foreign LLM: <arg1/>",
70
+ subagent_type: "ase:ase-meta-chat",
71
+ prompt: "<arg2/> <query/>"
72
+ )
73
+ ```
74
+
75
+ </define>
76
+
77
+ <expand name="agent" arg1="OpenAI ChatGPT" arg2="chatgpt"></expand>
78
+ <expand name="agent" arg1="Google Gemini" arg2="gemini"></expand>
79
+ <expand name="agent" arg1="DeepSeek" arg2="deepseek"></expand>
80
+ <expand name="agent" arg1="xAI Grok" arg2="grok"></expand>
81
+ <expand name="agent" arg1="Z.AI GLM" arg2="glm"></expand>
82
+ <expand name="agent" arg1="Alibaba Qwen" arg2="qwen"></expand>
63
83
 
64
- - OpenAI ChatGPT: `chat-openai-chatgpt`
65
- - Google Gemini: `chat-google-gemini`
66
- - DeepSeek: `chat-deepseek`
67
- - xAI Grok: `chat-xai-grok`
84
+ You *MUST* *NOT* output anything in this step.
68
85
 
69
- Silently skip those AIs where the corresponding MCP server is not available.
70
86
  </step>
71
87
 
72
- 4. <step id="STEP 4: Summarize Responses">
73
- Summarize all responses, of both yourself and all available MCP servers,
74
- with just 1 to 7 corresponding bullet points and with short sentences.
88
+ 3. <step id="STEP 3: Summarize Responses">
89
+
90
+ Agents which returned a response with an `ERROR:` prefix are
91
+ silently skipped and are treatd as not available.
92
+
93
+ Summarize all responses, of both yourself and all available agents
94
+ with just 1 to 7 corresponding bullet points and with short
95
+ sentences.
96
+
97
+ You *MUST* *NOT* output anything in this step.
98
+
75
99
  </step>
76
100
 
77
- 5. <step id="STEP 5: Determine Consensus Rating">
101
+ 4. <step id="STEP 4: Determine Consensus Rating">
102
+
78
103
  Determine, on a Likert scale of 0..<n/>, the amount of the overall
79
104
  consensus <c/> of all the responses. The <n/> is the *total number of
80
105
  responders* (yourself plus all available foreign AIs above).
@@ -85,11 +110,16 @@ by querying *multiple* AIs for an *optimal consensus*.
85
110
  formatted as `(disagreement: <ai/>, <ai/>, [...])` where <ai/> is a
86
111
  name of an AI which disagreed with the consensus. Else, if all AIs
87
112
  agree, set <disagreement></disagreement>.
113
+
114
+ You *MUST* *NOT* output anything in this step.
115
+
88
116
  </step>
89
117
 
90
- 6. <step id="STEP 6: Show Results">
91
- Finally show the summary, the consensus and the complete and unmodified responses
92
- of yourself and each of the MCP servers, based on the following output <template/>:
118
+ 5. <step id="STEP 5: Show Results">
119
+
120
+ Finally show the summary, the consensus and the complete and
121
+ unmodified responses of yourself and each of the MCP servers, based
122
+ on the following output <template/>:
93
123
 
94
124
  <template>
95
125
  **QUESTION**:
@@ -123,6 +153,9 @@ by querying *multiple* AIs for an *optimal consensus*.
123
153
  </template>
124
154
 
125
155
  In this output, remove the sections of those AIs which were not available.
156
+ You *MUST* *NOT* output any further explanations yourself.
157
+
126
158
  </step>
159
+
127
160
  </flow>
128
161
 
@@ -8,11 +8,11 @@ user-invocable: true
8
8
  disable-model-invocation: false
9
9
  effort: low
10
10
  allowed-tools:
11
- - "mcp__perplexity__perplexity_search"
12
- - "mcp__brave__brave_web_search"
11
+ - "mcp__search-perplexity__perplexity_search"
12
+ - "mcp__search-brave__brave_web_search"
13
+ - "mcp__search-exa__web_search_exa"
13
14
  - "WebSearch"
14
- - "WebFetch"
15
- - "Task"
15
+ - "Agent"
16
16
  ---
17
17
 
18
18
  @${CLAUDE_SKILL_DIR}/../../meta/ase-control.md
@@ -25,7 +25,9 @@ Search the Internet/Web
25
25
  Search the Internet/Web
26
26
  </skill>
27
27
 
28
+ <role>
28
29
  Your role is an expert-level *web specialist*.
30
+ </role>
29
31
 
30
32
  <objective>
31
33
  Your objective is to *search* the *Internet*/*Web* for the following query:
@@ -33,20 +35,54 @@ Your objective is to *search* the *Internet*/*Web* for the following query:
33
35
  </objective>
34
36
 
35
37
  <flow>
36
- 1. <step id="STEP 1: QUERY SERVICES">
37
- If the MCP tool `mcp__perplexity__perplexity_search` is available, send <query/> to it
38
- via a first *sub-task* and our companion `ase-meta-search` *agent*.
39
38
 
40
- If the MCP tool `mcp__brave__brave_web_search` is available, send <query/> to it
41
- via a second *sub-task* and our companion `ase-meta-search` *agent*.
39
+ 1. <step id="STEP 1: Query Search Services">
40
+
41
+ <define name="agent">
42
+ ```text
43
+ Agent(
44
+ name: "ase:ase-meta-search",
45
+ description: "Query Web Search Service",
46
+ subagent_type: "ase:ase-meta-search",
47
+ prompt: <content/>
48
+ )
49
+ ```
50
+ </define>
51
+
52
+ If the MCP tool `perplexity_search` from the MCP server `search-perplexity` is available:
53
+ <expand name="agent">
54
+ Call the MCP tool `perplexity_search(query: "<query/>")`
55
+ from the MCP server `search-perplexity`.
56
+ </expand>
57
+
58
+ If the MCP tool `brave_web_search` from the MCP server `search-brave` is available:
59
+ <expand name="agent">
60
+ Call the MCP tool `brave_web_search(query: "<query/>")`
61
+ from the MCP server `search-brave`.
62
+ </expand>
63
+
64
+ If the MCP tool `web_search_exa` from the MCP server `search-exa` is available:
65
+ <expand name="agent">
66
+ Call the MCP tool `web_search_exa(query: "<query/>")`
67
+ from the MCP server `search-exa`.
68
+ </expand>
69
+
70
+ <expand name="agent">
71
+ Call the tool `WebSearch(query: "<query/>")`.
72
+ </expand>
42
73
 
43
- Send <query/> to the built-in tool `WebSearch`
44
- via a third *sub-task* and our companion `ase-meta-search` *agent*.
45
74
  </step>
46
75
 
47
- 2. <step id="STEP 2: CONSOLIDATE ANSWERS">
48
- Consolidate all responses from the `ase-meta-search` *agents*
49
- into a single response and output it without giving any further explanations.
76
+ 2. <step id="STEP 2: Consolidate Search Answers">
77
+
78
+ Consolidate all responses from the `ase:ase-meta-search` agents
79
+ calls above into a single response and output it without giving any
80
+ further explanations.
81
+
82
+ For the consolidation, do *NOT* remove any orginal information,
83
+ just *MERGE* all overlapping information.
84
+
50
85
  </step>
86
+
51
87
  </flow>
52
88