Update documentation

This commit is contained in:
Yiorgis Gozadinos 2025-09-17 12:51:43 +03:00
parent 3e30059a42
commit ad80b52759
No known key found for this signature in database
5 changed files with 89 additions and 1 deletions

View file

@ -90,4 +90,5 @@ Full documentation at: https://ggozad.github.io/haiku.rag/
- [Configuration](https://ggozad.github.io/haiku.rag/configuration/) - Environment variables
- [CLI](https://ggozad.github.io/haiku.rag/cli/) - Command reference
- [Python API](https://ggozad.github.io/haiku.rag/python/) - Complete API docs
- [Agents](https://ggozad.github.io/haiku.rag/agents/) - QA agent and multi-agent research
- [Benchmarks](https://ggozad.github.io/haiku.rag/benchmarks/) - Performance Benchmarks

83
docs/agents.md Normal file
View file

@ -0,0 +1,83 @@
## Agents
Two agentic flows are provided by haiku.rag:
- Simple QA Agent — a focused question answering agent
- Research MultiAgent — a multistep, analyzable research workflow
### Simple QA Agent
The simple QA agent answers a single question using the knowledge base. It retrieves relevant chunks, optionally expands context around them, and asks the model to answer strictly based on that context.
Key points:
- Uses a single `search_documents` tool to fetch relevant chunks
- Can be run with or without inline citations in the prompt
- Returns a plain string answer
Python usage:
```python
from haiku.rag.client import HaikuRAG
from haiku.rag.qa.agent import QuestionAnswerAgent
client = HaikuRAG(path_to_db)
# Choose a provider and model (see Configuration for env defaults)
agent = QuestionAnswerAgent(
client=client,
provider="openai", # or "ollama", "vllm", etc.
model="gpt-4o-mini",
use_citations=False, # set True to bias prompt towards citing sources
)
answer = await agent.answer("What is climate change?")
print(answer)
```
### Research MultiAgent
The research workflow coordinates specialized agents to plan, search, analyze, and synthesize a comprehensive answer. It is designed for deeper questions that benefit from iterative investigation and structured reporting.
Components:
- Orchestrator: Plans, coordinates, and loops until confidence is sufficient
- Search Specialist: Performs targeted RAG searches and answers subquestions
- Analysis & Evaluation: Extracts insights, identifies gaps, proposes new questions
- Synthesis: Produces a final structured research report
Primary models:
- `ResearchPlan` — produced by the orchestrator when planning
- `main_question: str`
- `sub_questions: list[str]` (standalone, selfcontained queries)
- `SearchAnswer` — produced by the search specialist for each subquestion
- `query: str` — the executed subquestion
- `answer: str` — the agents answer grounded in retrieved context
- `context: list[str]` — minimal verbatim snippets used for the answer
- `sources: list[str]` — document URIs aligned with `context`
- `EvaluationResult` — insights, new standalone questions, sufficiency & confidence
- `ResearchReport` — the final synthesized report
Python usage:
```python
from haiku.rag.client import HaikuRAG
from haiku.rag.research import ResearchOrchestrator
client = HaikuRAG(path_to_db)
orchestrator = ResearchOrchestrator(provider="openai", model="gpt-4o-mini")
report = await orchestrator.conduct_research(
question="What are the main drivers and recent trends of global temperature anomalies since 1990?",
client=client,
max_iterations=2,
confidence_threshold=0.8,
verbose=False,
)
print(report.title)
print(report.executive_summary)
```

View file

@ -55,6 +55,7 @@ haiku-rag migrate old_database.sqlite # Migrate from SQLite
- [Server](server.md) - File monitoring and server mode
- [MCP](mcp.md) - Model Context Protocol integration
- [Python](python.md) - Python API reference
- [Agents](agents.md) - QA agent and multi-agent research
## License

View file

@ -204,3 +204,5 @@ print(answer)
The QA agent will search your documents for relevant information and use the configured LLM to generate a comprehensive answer. With `cite=True`, responses include citations showing which documents were used as sources.
The QA provider and model can be configured via environment variables (see [Configuration](configuration.md)).
See also: [Agents](agents.md) for details on the QA agent and the multiagent research workflow.

View file

@ -61,8 +61,9 @@ nav:
- Configuration: configuration.md
- CLI: cli.md
- Server: server.md
- MCP: mcp.md
- Agents: agents.md
- Python: python.md
- MCP: mcp.md
- Benchmarks: benchmarks.md
markdown_extensions:
- admonition