2025 · Team · Internal
OmniTrader
LLM-backed trading agents that score market and social signals before execution, behind a NestJS control plane.
Mission
A trading product where configurable LLM-backed agents score market and social signals (Twitter and Telegram feeds over gRPC) before anything executes. The interesting part is not the trade; it is deciding, with an audit trail, whether to trade at all.
For whom: a Primus Cloud Solutions product. Constraints: every agent run must be attributable and costed, metrics must be first-class, and the Python agents and TypeScript services must share one contract.
Manifest
| Layer | Choice | Version | Why |
|---|---|---|---|
| agents | Python agent service | — | Configurable LLM-backed agents scoring market and social signals. |
| services | NestJS central service | — | Auth, realtime eventing, cost accounting, REST and gRPC. |
| services | gRPC + protobuf | — | One contract across Python and TypeScript. |
| data | PostgreSQL + Prisma + Kysely | — | Runs, scores, and costs with typed queries. |
| infra | Prometheus + RabbitMQ + Docker | — | Metrics first, durable queues, one compose to run it. |
Decisions
A Python agent service, a NestJS central service. Python where the models and signal libraries live; NestJS for auth, realtime eventing, cost accounting, and the REST and gRPC APIs.
gRPC between them. One protobuf contract, generated on both sides.
Prometheus metrics from day one. Agent latency, token spend, and signal counts are dashboards, not log greps.
Cost accounting per agent run. Every model call is attributed to an agent, a strategy, and a user.
Impact
- Signal feeds
- Twitter, Telegram
Still boarding: the agent service, control plane, and metrics are in place; execution is gated until the signal scoring proves itself on paper. Team of four.
What broke
Not in production long enough to have a proper incident. The first thing I would fix: agent cost accounting is computed from the model response after the fact, so a runaway strategy can spend a whole budget in one loop before the cap applies. Pre-flight budget reservation per run is the next change.
Ship log
- Started at Primus Cloud Solutions
- Now: boarding, execution gated