Duyetbot Agent
Concepts

Subagents

Specialized patterns: researcher/codeReviewer/planner/git/github. Registry + filter tools/model/prompt.

TL;DR: createSubagent({name, tools, prompt}) -> Delegate via agents[] in query(). Predefined: researcher etc.

Table of Contents

Predefined

From subagent.ts

NameToolsModelRole
researcherresearch/web_search/fetch_urlhaikuGather/summarize
codeReviewerbash/gitsonnetReview/security
plannerplanhaikuDecompose tasks
gitOperatorgit/bashhaikuBranches/merges
githubAgentgithubhaikuIssues/PRs
export const predefinedSubagents = {
  researcher: createSubagent({
    name: 'researcher',
    description: 'Research and gather information from the web',
    tools: ['research', 'web_search', 'fetch_url'],
    model: 'haiku',
  }),
  // ...
};

Registry

const registry = createSubagentRegistry();
registry.registerAll(Object.values(predefinedSubagents));

Filter tools: filterToolsForSubagent(allTools, subagent)

Usage

In query query.ts

await query("Research X", {
  agents: [predefinedSubagents.researcher],
  tools: allTools  // Filtered auto
});

Options: createSubagentOptions(parentOpts, subagent, tools)

Delegation Flow

+---------------------+
| Main Query          |
+----------+----------+
           |
           v
+---------------------+
| Router              |
| classifies          |
+----------+----------+
           |
           v
+---------------------+
| Subagent            |
| selected            |
+----------+----------+
           |
           v
+---------------------+
| Filtered tools      |
| only                |
+----------+----------+
           |
           v
+---------------------+
| Specialized         |
| model/prompt        |
+----------+----------+
           |
           v
+---------------------+
| Stream back         |
+---------------------+

Quiz: researcher tools? A: research/web_search ✅

Try: getPredefinedSubagent('researcher') -> Delegate!

Related: Query ←

On this page