e-volv
Contents

Agent SDKs

Not released yet. Both packages are built and conformance-tested, and neither is on npm or PyPI yet, so their install commands find nothing today. Until they are, send traces with OpenTelemetry as the quickstart shows; runs look the same either way.

Two thin packages for agents that are not on OpenTelemetry. Both are built on the e-volv logs SDKs, so a service that already logs through e-volv gets agent runs on the same trace with nothing new to configure. Every span they emit carries the attributes the rollup reads.

PackageGives you
@e-volv/agents (Node.js)init, traceAgent, traceChat, traceTool, withSession, withPrompt, instrumentOpenAI, instrumentAnthropic, traceMcp, aiMiddleware (Vercel AI SDK)
evolv-agents (Python)init, agent, chat, tool, session, prompt, instrument_openai, instrument_anthropic, trace_mcp

Content capture

Prompts, completions, tool arguments and results are recorded only when init is given content: true (Node.js) or content=True (Python). Without it a run carries tokens, cost and structure, and cannot be replayed.

Node.js, once published

typescript
import {
  init,
  instrumentOpenAI,
  traceAgent,
  traceTool,
  withSession,
} from '@e-volv/agents';

init({
  key: process.env.EVOLVE_AGENTS_KEY,
  url: 'https://api.e-volv.io/api/public/v1/logs',
  service: 'support-bot',
});

const openai = instrumentOpenAI(new OpenAI());

await withSession({ sessionId, userId }, () =>
  traceAgent('triage', async () => {
    const res = await openai.chat.completions.create({
      model: 'gpt-5-mini',
      messages,
    });
    await traceTool('read_ticket', () => tickets.read(id));
    return res.choices[0].message.content;
  })
);

withPrompt and prompt stamp the prompt name and version on every span inside them, so each version on the prompts page shows the cost and score of the runs that used it.