@ashish-tradex/kortex
v0.14.1
Published
A system of ReAct agents — each reasons and acts (tool use) to complete a task, coordinated by a router. Same hosted-gateway family as wryt/nexel.
Downloads
4,261
Maintainers
Readme
kortex
A system of ReAct agents. Each agent reasons and acts — it thinks, calls tools, observes the results, and repeats until the task is done (ReAct: Synergizing Reasoning and Acting in Language Models, Yao et al. 2022). A router (the "cortex") sends each task to the best-fit agent.
Same hosted-gateway family as wryt and nexel — its own config (~/.kortex),
falls back to an existing ~/.nexel key for zero setup.
Install
npm i -g @ashish-tradex/kortexSetup
kortex login <your-gateway-key> # or reuse an existing ~/.nexel key automaticallyUse
kortex "write a blog post about why small teams ship faster" # routes to the best agent
kortex run blogger "write about the state of AI video in 2026" # run a specific agent
kortex agents # list agentsHow an agent works (ReAct)
task ─▶ [reason] ─▶ [act: call a tool] ─▶ [observe result] ─▶ [reason] ─▶ … ─▶ final answerThe engine (src/react.ts) drives this with native function-calling: while the
model returns tool calls, it runs them and feeds the results back; the first
turn with no tool call is the final answer.
Agents
kortex is a system of many root agents. Each is self-contained.
- blogger — plans a style-matched outline (validate/retry loop), writes the full draft (validate/retry loop), ends with alternate titles + tweet hooks.
Adding a root agent
Each root agent is one module under src/agents/ holding its Agent definition
and any agent-specific tools (see src/agents/blogger.ts for the shape). Then
register it in src/agents/index.ts:
import { <name> } from "./<name>.js";
register(<name>);The router picks between all registered agents by their description — no other
wiring needed.
Layout
src/
agent.ts # the Agent type + registry (register / getAgent / listAgents)
react.ts # the shared ReAct runtime
tools.ts # shared tools (web_search, read_url) + the Tool interface
orchestrator.ts # routes a task to the best-fit agent, runs it
library.ts # reference blogger-style loader (shared resource)
agents/
index.ts # registers every root agent
blogger.ts # a root agent: its Agent def + its own tools
blog-pipeline.ts # the blogger's plan/write loops