SKILL PROCEDURE

eve

Vercel eve — a filesystem-first framework for durable backend AI agents. Use when creating, editing, debugging, or operating an eve agent project: authoring instructions, defining typed tools, on-demand skills, message channels (Slack/Discord/HTTP), scheduled cron jobs, subagents, sandboxes, human-in-the-loop prompts, model/runtime config, and spend guards. Covers project layout, agent.ts, defineAgent/defineTool, extensions, and the bundled docs. Published by HardGraph, a curated graph of provenance-backed knowledge for AI agents.

eveai-agentsagent-frameworkdurable-agentsverceltypescript
BEGINNER GUIDE

Understand eve before using it

CATEGORY

eve is catalogued under AI and agents.

START HERE WHEN

Your work repeatedly involves the concepts tagged above. Open the full procedure below when the current task matches them.

Compare related skills

SKILLCATEGORYSHARED CONCEPTSEXPLANATION
eveAI and agentsCurrent skillVercel eve — a filesystem-first framework for durable backend AI agents. Use when creating, editing, debugging, or operating an eve agent project: authoring instructions, defining typed tools, on-demand skills, message channels (Slack/Discord/HTTP), scheduled cron jobs, subagents, sandboxes, human-in-the-loop prompts, model/runtime config, and spend guards. Covers project layout, agent.ts, defineAgent/defineTool, extensions, and the bundled docs. Published by HardGraph, a curated graph of provenance-backed knowledge for AI agents.
MastraAI and agents
ai-agentstypescript
TypeScript framework for building AI agents, deterministic workflows, and RAG pipelines on a shared storage and observability layer. Use when choosing between an agent loop and a workflow graph, wiring memory or retrieval into an agent, picking a storage or vector backend, or deploying a Mastra app to a serverless target or standalone server.
AI SDKAI and agents
typescript
Vercel AI SDK — provider-agnostic TypeScript toolkit for building streaming AI applications and agents. Use when generating or streaming text with LLMs, wiring model providers (OpenAI, Anthropic, Google), implementing tool calling, producing structured output with Zod, building chat UIs with useChat, or composing multi-step agents with ToolLoopAgent. Published by HardGraph, a curated graph of provenance-backed knowledge for AI agents.
ComposioAI and agents
ai-agents
Composio — a tool-calling platform that sits between an LLM/agent framework and external apps, giving an agent connected tools, managed authentication, tool search, triggers, a sandboxed workbench, and an MCP bridge. Use when an agent needs to take real actions in 1000+ SaaS/developer apps (Gmail, GitHub, Slack, Notion, Linear, etc.) without hand-writing each integration, when you want OAuth/API-key auth handled per connected account, when you need the same tools reachable over Model Context Protocol, or when wiring tools into OpenAI, Anthropic, LangChain, Autogen, CrewAI, LlamaIndex, Mastra, or the Vercel AI SDK.

eve

What is HardGraph? HardGraph publishes curated, provenance-backed agent skills grounded in reproducible vendor documentation.

eve is a framework for durable backend AI agents whose authoring interface is the filesystem. An agent is a directory on disk; instructions, tools, skills, channels, subagents, and schedules are all ordinary files in conventional locations. eve compiles and runs that directory, so a project is easy to inspect, extend, and operate.

Project layout — the filesystem is the interface

my-agent/
└── agent/
    ├── agent.ts            # optional: model + runtime config (defineAgent)
    ├── instructions.md     # required: the always-on system prompt
    ├── tools/              # optional: typed functions the model can call
    │   └── get_weather.ts
    ├── skills/             # optional: procedures loaded on demand
    │   └── plan_a_trip.md
    ├── channels/           # optional: message channels (HTTP, Slack, Discord)
    │   └── slack.ts
    ├── subagents/          # optional: delegated sub-agents
    └── schedules/          # optional: recurring cron jobs
        └── weekly_recap.ts

Every capability lives in a predictable place; you rarely need to learn an imperative API — you author files and eve discovers them.

Quick start

npx eve@latest init my-agent      # scaffold a new agent
cd my-agent && npm run dev         # start the interactive terminal UI

Add eve to an existing project with npx eve@latest init ..

A minimal agent

agent/instructions.md:

You are a concise weather demo assistant.

agent/tools/get_weather.ts:

import { defineTool } from "eve/tools";
import { z } from "zod";

export default defineTool({
  description: "Return mock weather data for a city.",
  inputSchema: z.object({ city: z.string().min(1) }),
  async execute({ city }) {
    return { city, condition: "Sunny", temperatureF: 72 };
  },
});

agent/agent.ts:

import { defineAgent } from "eve";

export default defineAgent({
  model: "anthropic/claude-sonnet-5",
});

Core primitives

| Primitive | Where | What it does | | --- | --- | --- | | Agent | agent.ts (defineAgent) | Model, runtime, and connection config. | | Instructions | instructions.md | The always-on system prompt; required. | | Tools | tools/*.ts (defineTool) | Typed functions with a Zod inputSchema. | | Skills | skills/*.md | On-demand procedures the model loads when relevant. | | Channels | channels/*.ts | Inbound/outbound messaging — HTTP, Slack, Discord. | | Subagents | subagents/* | Delegated agents with scoped instructions/tools. | | Schedules | schedules/*.ts | Recurring cron jobs the agent runs itself. | | Sandbox | config | Code/tool execution isolation. | | Extensions | project | Distributable capability packages layered on an agent. |

Durable execution and human-in-the-loop

Agents are durable: long-running, resumable, and resilient to restarts. State is checkpointed so a turn can pause for a human decision (an approval, a clarification) and resume without losing context. Human-in-the-loop prompts are a first-class tool shape, not an afterthought — see docs/tools/human-in-the-loop.

Spend is guarded: set budgets and limits so a runaway agent stops before it overspends (docs/tutorial/guard-the-spend).

What surprises people

  • The filesystem is the API. Adding a capability usually means creating a file in the right directory, not calling a registration function. A tool placed in tools/ is discovered automatically.
  • instructions.md is required and always-on. It is the system prompt for every turn; skills, by contrast, are loaded on demand, so keep the always-on instructions lean and push conditional detail into skills.
  • The bundled docs are the version-accurate source of truth. eve ships its full documentation inside the installed package at node_modules/eve/docs/. When working in a real project, read those — they match the installed version exactly — rather than relying on memory.
  • Durable state persists across restarts. A channel turn or schedule that was paused mid-flight resumes from its checkpoint; do not assume a fresh process starts a fresh conversation.

What to verify rather than recall

API signatures (defineAgent, defineTool), the supported model identifiers, channel/schedule options, and the exact project-layout conventions change between releases. Confirm them against the mirrored corpus under references/vendor/ or, in a real install, node_modules/eve/docs/README.md — which is the index and recommended reading order — rather than asserting a remembered shape.

References

Hardgraph / curated knowledge for agents.

STATIC EXPORT · CANONICAL SOURCE