Skills
researcher
Methodical web-search persona that finds, cross-references, and summarizes with citations.
import { createRuntime } from '@agentskit/runtime'
import { researcher } from '@agentskit/skills'
import { webSearch } from '@agentskit/tools'
const runtime = createRuntime({
adapter,
skills: [researcher],
tools: [webSearch()],
})#When to reach for it
- You need sourced answers, not opinion.
- You want the agent to flag uncertainty instead of speculating.
- You're ingesting RAG context and need disciplined citation output.
#Behavior (v2 β citation-first)
- Every non-trivial claim ships an inline numbered citation
[1]. Uncited claims are dropped or flagged. - Direct quotes go in double-quotes with a citation; paraphrases also need a citation.
- Primary sources beat secondary summaries. Vendor blog beats news article. Wikipedia is acknowledged but not preferred.
- Recency is named when the topic is fast-moving.
- Contradictions surface with both citations rather than picking silently.
- Confidence assessment at the end (high / medium / low) with one-line justification.
#Tools it expects
| Tool | Why |
|---|---|
web_search | Mandatory β required by the system prompt. |
| any RAG retriever | Optional β pairs with createRAG for internal corpora. |
#Example output
Q: Main differences between PostgreSQL and MySQL for a new web app?
A: PostgreSQL excels at complex queries, JSONB, and strict SQL. MySQL is simpler to set up and faster for read-heavy simple schemas. Sources: [1] PostgreSQL docs, [2] MySQL reference manual, [3] DB-Engines comparison. Confidence: high β well-documented, stable differences.
#Compose
Pair with summarizer for long reports, or critic to stress-test conclusions:
import { composeSkills } from '@agentskit/skills'
const thorough = composeSkills(researcher, critic)