-
Notifications
You must be signed in to change notification settings - Fork 0
Agent Orchestration
The first expansion stage remains a local, deterministic job pipeline. The existing SQLite database, config/module_registry.json, config/agent_registry.json, and JSONL logs are the correct core. An LLM does not decide which job receives write access.
LangGraph is a later optional adapter layer if multiple specialized models genuinely require saved state, dynamic routing, or parallel steps. Fixed workflows and dynamic agents are different tools; routers, subagents, and skills should be introduced only where their additional complexity is measurable.
input import
-> evidence fingerprint
-> deterministic extraction
-> optional analysis jobs
-> evidence-bound relationship candidates
-> human review gate
-> report/export
Every arrow is a persistent event with case ID, input hash, and producer. Agents never mutate the case database directly on behalf of one another.
-
VektorZerovalidates and normalizes local input. -
SignalForgeproduces outlier candidates from transparent comment features. -
GlyphWatchprocesses only explicitly selected local image evidence after model confirmation. -
SpectreNetproduces evidence-bound relationship candidates. -
CaseForgecreates review work; subsequent decisions follow configurable human gates. -
BlackArchiverenders approved local exports.
The machine-readable source of truth is config/agent_registry.json, exposed locally at GET /api/agents.
-
agent_jobs,agent_job_events, and the operator-initiatedjob_workerform the local job ledger. The olderprocessing_jobstable remains the human-readable processing timeline. - A local worker accepts only approved topics from the registry.
- A job can be
queued,running,completed,failed,cancelled, orneeds_review. - Idempotency key:
case_id + topic + input_hash + configuration_version.
This stage is implemented and covers most deterministic module chains.
- Serve models behind explicitly versioned local HTTP or process adapters.
- Give every adapter narrow input/output schemas and no direct database rights.
- Keep write authority in the local coordinator, which validates every response against its schema.
- Map model-service failure to
failedorneeds_review; alternative execution paths must be separately configured, visible adapters.
- Use only when a step genuinely needs dynamic tool selection or parallel specialists.
- Keep allowed tools, context, and human gates under one controlling graph.
- Give subgraphs only minimal case-scoped context; never pass vault keys, passphrases, or global database rights.
- Store checkpoint references locally and log them like other processing runs.
- The local runtime currently has no active external adapter. Automated runs, additional agent types, and connections are introduced through separate, versioned adapters.
- Every adapter explicitly defines permissions, topics, schemas, schedules, failure handling, and logging in its registry or dedicated configuration.
- Model responses should include evidence IDs and model revisions.
- Review, export, and model-download approvals follow the editable human gates in the registry.
- Enable new agents only after registry validation, unit tests, and a real local run.
The authoritative editable contract remains AGENT_COORDINATION.md.