Developer
AI agents
LangGraph agents, Redis queues, and processors.
AI execution is never synchronous HTTP between NestJS and FastAPI. The API enqueues jobs; the FastAPI worker consumes them and publishes results.
Registered agents
DB key (AgentDefinition) | Worker router | Mode | Processor |
|---|---|---|---|
requirements | requirements | Conversational | requirements_processor.py |
developer_intelligence | developer_intelligence | Conversational | (graph node) |
project_planner | planner | One-shot | planner_processor.py |
qa_intelligence | qa_intelligence | Conversational | qa_intelligence_processor.py |
change_impact | — (planned) | Conversational | Not in router yet |
LangGraph entry: app/core/graph/router.py — conditional route on agent_type in job payload.
Queue contract
Prop
Type
Backend publishes after REST handlers return 202 Accepted. NestJS reads results and updates ProjectAiChatMessage, RagnarockChatMessage, tasks, etc.
NestJS → agent triggers
| User action | API endpoint | Agent |
|---|---|---|
| Requirements chat turn | POST .../ai/requirements | requirements |
| File upload | POST .../ai/requirements/upload | requirements |
| Ragnarock message | POST .../ai/ragnarock/chat | Router picks agent |
| Architecture doc | POST .../ai/arch-doc/generate | developer_intelligence |
| Plan | POST .../ai/plan/generate | planner |
| QA suite | POST .../ai/qa/generate | qa_intelligence |
Vector memory
Optional pgvector database (:5433 in dev compose) stores embeddings for past SRS content and Q&A. Modules: app/memory/retrieval.py, vector_store.py.
LLM providers
Set in ragnarock-agent/.env:
- Gemini (default path in many deployments)
- Anthropic
- OpenAI
Factory: app/core/llm/factory.py reads LLM_PROVIDER.
Run locally
cd ragnarock-agent
cp .env.example .env
pip install -r requirements.txt
./run.sh # listens :8100
curl http://localhost:8100/healthDocker: docker/staging/Dockerfile.agent in backend repo.
Product docs
- Ragnarock AI — user-facing chat
- Documentation workspace — where SRS output lands
- Test Cases — QA agent output