The NucliaDB Agentic API package exposes NucliaDB-oriented agentic capabilities for Hyperforge, including ASK/search flows and MCP integrations.
From the workspace root:
uv syncStart the service:
uv run nucliadb-agentic-apiUseful endpoints:
/health/ready/health/alive/metrics
Runtime configuration is provided through environment variables consumed by Pydantic settings. Common settings include:
HTTP_HOSTandHTTP_PORTMEMORY_READER_NUCLIADB,MEMORY_WRITER_NUCLIADB, andMEMORY_SEARCH_NUCLIADBMEMORY_APIKEY_NUCLIADBVALKEY_URLIDP_REGIONAL_GRPCLOAD_MODULES
Run the package tests from the workspace root:
make testEnhance the RAG experience by offering RAO features directly in a KB.
The same way we store search configs in the KB, we could store agentic configs, and when calling the /ask endpoint we can refer to a given agentic config.
The corresponding RAO workflow will be:
- a Rephrase (optionally)
- a SmartAgent
- a Summarize
Possible sources for the SmartAgent:
- The current KB (possibly several times with different filters)
- Sync service (using connections defined in the current KB)
- Perplexity
- MCP
Out of scope
- Other KBs
- SQL
- Snowflake (?)
- Sitefinity (?)
{
"rephrase": { // optional
"ask_to": <filter_expression>, //optional
"prompt": <string>, // optional
"model": <model>, // optional
},
"smart_agent": {
"mode": <reactive | plan_execute>,
"extra_prompt": <string>, // optional
"models": { // optional
"context_validation": <model>, // optional
"planner": <model>, // optional
"executor": <model>, // optional
},
"sources": [<source list>]
},
"summarize": { // optional
"user_prompt": <string>, // optional
"system_prompt": <string>, // optional
"conversational": <boolean>,
"model": <model>, // optional
// and citations must be forced to chunk-level
}
}And sources can be:
{
"type": "nucliadb",
"description": <string>,
"filter_expression": <filter_expression>, //optional
}
{
"type": "sync",
"description": <string>,
"connection": <connection_id>
}
{
"type": "google",
"description": <string>
}
{
"type": "perplexity",
"description": <string>
}
{
"type": "mcp",
"description": <string>,
<...the MCP driver params>
}