eve 0.83.0 → 0.83.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +33 -0
- package/dist/src/channel/types.d.ts +3 -2
- package/dist/src/chunks/{use-eve-agent-Ci5dr0aR.js → use-eve-agent-DnbG9c7c.js} +33 -9
- package/dist/src/chunks/{use-eve-agent-3-WRmJkd.js → use-eve-agent-ZY7NQ2VW.js} +33 -9
- package/dist/src/cli/run.js +1 -1
- package/dist/src/client/message-response.d.ts +18 -0
- package/dist/src/client/message-response.js +1 -1
- package/dist/src/client/session.js +1 -1
- package/dist/src/compiled/.vendor-stamp.json +2 -2
- package/dist/src/compiled/@ai-sdk/mcp/index.js +1 -1
- package/dist/src/compiled/@eve/catalog/index.js +1 -1
- package/dist/src/context/build-dynamic-tools.js +1 -1
- package/dist/src/context/dynamic-skill-lifecycle.d.ts +2 -2
- package/dist/src/context/dynamic-skill-lifecycle.js +1 -1
- package/dist/src/context/dynamic-tool-lifecycle.js +1 -1
- package/dist/src/context/prewarm.d.ts +27 -0
- package/dist/src/context/prewarm.js +1 -0
- package/dist/src/context/providers/sandbox.d.ts +7 -0
- package/dist/src/context/providers/sandbox.js +1 -1
- package/dist/src/context/run-step.js +1 -1
- package/dist/src/discover/lib.d.ts +4 -3
- package/dist/src/discover/lib.js +1 -1
- package/dist/src/discover/named-source-directory.d.ts +3 -2
- package/dist/src/evals/assertions/run.js +1 -1
- package/dist/src/evals/cli/eval.d.ts +2 -0
- package/dist/src/evals/cli/eval.js +2 -2
- package/dist/src/evals/define-eval-config.d.ts +5 -4
- package/dist/src/evals/define-eval-config.js +1 -1
- package/dist/src/evals/index.d.ts +1 -1
- package/dist/src/evals/runner/artifacts.js +2 -2
- package/dist/src/evals/runner/attempt-label.d.ts +2 -0
- package/dist/src/evals/runner/attempt-label.js +1 -0
- package/dist/src/evals/runner/derive-run-facts.d.ts +13 -0
- package/dist/src/evals/runner/derive-run-facts.js +1 -1
- package/dist/src/evals/runner/reporters/braintrust.js +1 -1
- package/dist/src/evals/runner/reporters/console.js +1 -1
- package/dist/src/evals/runner/reporters/datadog.js +1 -1
- package/dist/src/evals/runner/reporters/junit.js +2 -2
- package/dist/src/evals/runner/reporters/types.d.ts +2 -0
- package/dist/src/evals/runner/run-evals.d.ts +5 -0
- package/dist/src/evals/runner/run-evals.js +1 -1
- package/dist/src/evals/session-manager.js +1 -1
- package/dist/src/evals/session.d.ts +4 -1
- package/dist/src/evals/session.js +2 -2
- package/dist/src/evals/types.d.ts +37 -1
- package/dist/src/eve-channel/request.js +1 -1
- package/dist/src/execution/catalog/connection-entry.js +1 -1
- package/dist/src/execution/connections/callback-route.d.ts +3 -2
- package/dist/src/execution/connections/callback-route.js +1 -1
- package/dist/src/execution/dynamic-workflow/tool.js +1 -1
- package/dist/src/execution/node-step.d.ts +1 -0
- package/dist/src/execution/node-step.js +1 -1
- package/dist/src/execution/sandbox/bindings/vercel.js +1 -1
- package/dist/src/execution/sandbox/ensure.d.ts +8 -0
- package/dist/src/execution/sandbox/ensure.js +1 -1
- package/dist/src/execution/sandbox/multiplexed-command.d.ts +9 -3
- package/dist/src/execution/sandbox/multiplexed-command.js +1 -1
- package/dist/src/execution/sandbox/read-file.js +1 -1
- package/dist/src/execution/session/handoff-steps.d.ts +1 -0
- package/dist/src/execution/session/handoff-steps.js +1 -1
- package/dist/src/execution/session/handoff.js +1 -1
- package/dist/src/execution/session/handover-tracing.d.ts +3 -0
- package/dist/src/execution/session/handover-tracing.js +1 -0
- package/dist/src/execution/session/prewarm-step.d.ts +13 -0
- package/dist/src/execution/session/prewarm-step.js +1 -0
- package/dist/src/execution/session/program.d.ts +4 -1
- package/dist/src/execution/session/program.js +1 -1
- package/dist/src/execution/session/state-cursor.d.ts +11 -0
- package/dist/src/execution/session/state-cursor.js +1 -1
- package/dist/src/execution/session/turn-step-types.d.ts +2 -0
- package/dist/src/execution/session/turn-step.js +1 -1
- package/dist/src/execution/session/turn.d.ts +1 -0
- package/dist/src/execution/session/turn.js +1 -1
- package/dist/src/execution/session-event-stream.d.ts +6 -0
- package/dist/src/execution/session-event-stream.js +1 -1
- package/dist/src/execution/session-inbox/inbox.d.ts +8 -0
- package/dist/src/execution/session-inbox/inbox.js +1 -1
- package/dist/src/execution/tools/agent-router-workflow.js +1 -1
- package/dist/src/execution/workflow-runtime.js +1 -1
- package/dist/src/extensions/git/extension/lib/gh-tool.d.ts +11 -2
- package/dist/src/extensions/git/extension/lib/gh-tool.js +1 -1
- package/dist/src/harness/attachment-staging.d.ts +3 -0
- package/dist/src/harness/attachment-staging.js +1 -1
- package/dist/src/harness/compaction/step.d.ts +7 -1
- package/dist/src/harness/compaction/step.js +1 -1
- package/dist/src/harness/hitl/approvals.d.ts +2 -0
- package/dist/src/harness/hitl/approvals.js +1 -1
- package/dist/src/harness/hitl/delivery.d.ts +1 -0
- package/dist/src/harness/hitl/delivery.js +1 -1
- package/dist/src/harness/hitl/intake.js +1 -1
- package/dist/src/harness/model-call/call.d.ts +2 -0
- package/dist/src/harness/model-call/call.js +1 -1
- package/dist/src/harness/model-call/request.d.ts +2 -1
- package/dist/src/harness/token-estimate.js +1 -1
- package/dist/src/harness/types.d.ts +6 -0
- package/dist/src/internal/application/stamped-package-version.js +1 -1
- package/dist/src/internal/attachments/media-metadata.d.ts +0 -2
- package/dist/src/internal/attachments/media-metadata.js +1 -1
- package/dist/src/internal/attachments/read-media-metadata.d.ts +7 -0
- package/dist/src/internal/attachments/read-media-metadata.js +2 -0
- package/dist/src/internal/authored-asset-import-plugin.d.ts +7 -0
- package/dist/src/internal/authored-asset-import-plugin.js +1 -1
- package/dist/src/internal/authored-module-build-options.js +1 -1
- package/dist/src/internal/authored-module-graph.js +1 -1
- package/dist/src/internal/authored-module-loader.d.ts +0 -1
- package/dist/src/internal/authored-module-loader.js +1 -1
- package/dist/src/internal/authored-package-boundary.d.ts +3 -0
- package/dist/src/internal/authored-package-boundary.js +1 -1
- package/dist/src/internal/input-text.d.ts +2 -1
- package/dist/src/internal/nitro/host/create-application-nitro.js +1 -1
- package/dist/src/internal/workflow-bundle/builder.js +2 -2
- package/dist/src/internal/workflow-bundle/dynamic-tool-transform.js +1 -1
- package/dist/src/public/channels/slack/slackChannel.js +1 -1
- package/dist/src/runtime/connections/authorization-complete-page.d.ts +14 -2
- package/dist/src/runtime/connections/authorization-complete-page.js +5 -5
- package/dist/src/runtime/subagents/workflow.js +1 -1
- package/dist/src/sandbox/state.d.ts +17 -0
- package/dist/src/setup/scaffold/create/project.js +1 -1
- package/dist/src/svelte/index.js +1 -1
- package/dist/src/svelte/use-eve-agent.js +1 -1
- package/dist/src/tools/definition.js +1 -1
- package/dist/src/tools/durable-callbacks.d.ts +5 -1
- package/dist/src/tools/durable-callbacks.js +1 -1
- package/dist/src/tools/dynamic.d.ts +3 -3
- package/dist/src/tools/provided/ask-question-workflow.js +1 -1
- package/dist/src/tools/provided/sleep-workflow.js +1 -1
- package/dist/src/vue/index.js +1 -1
- package/dist/src/vue/use-eve-agent.js +1 -1
- package/docs/channels/custom.mdx +4 -0
- package/docs/channels/slack.mdx +2 -0
- package/docs/concepts/built-in-tools.md +1 -1
- package/docs/connections/mcp.mdx +1 -1
- package/docs/evals/overview.mdx +1 -1
- package/docs/evals/reporters.mdx +4 -4
- package/docs/evals/running.mdx +19 -1
- package/docs/guides/dynamic-capabilities.md +2 -2
- package/docs/guides/frontend/overview.mdx +7 -3
- package/docs/guides/instrumentation/otel.mdx +23 -0
- package/docs/meta.json +1 -0
- package/docs/reference/agent-files.md +1 -1
- package/docs/reference/cli.md +17 -15
- package/docs/sandbox/custom-providers.mdx +10 -10
- package/docs/sandbox/index.mdx +6 -4
- package/docs/tools/human-in-the-loop.md +3 -1
- package/docs/tools/overview.mdx +1 -1
- package/docs/use-cases.mdx +250 -0
- package/package.json +1 -1
|
@@ -254,6 +254,8 @@ The run picks back up exactly where it parked. Because the pause is durable, not
|
|
|
254
254
|
|
|
255
255
|
When a subagent requests input, eve emits the same `input.requested` event on its parent session. Answering through that parent session routes the response directly to the blocked child without invoking the parent model.
|
|
256
256
|
|
|
257
|
+
A message from the parent agent to a subagent never answers the subagent's tool approval or session-limit request, even when its text matches an option such as `approve` or `continue`. Only a person's structured answer, routed through the parent session, settles these requests. The subagent still receives the parent's message as an ordinary message. It steers the turn past a pending approval, which resolves as `ignored`, and waits behind a session-limit request until a person answers it.
|
|
258
|
+
|
|
257
259
|
Approval is consent only. An approved tool call runs with the requesting user's identity, connections, and credentials, including its policy recheck. The approver's access is never lent to the call. Subsequent tool calls in the turn also stay with the original owner.
|
|
258
260
|
|
|
259
261
|
A `defineTool` tool can still act on the approver's behalf when it chooses to. While an approved `defineTool` call runs, `ctx.approval.responder` is the principal who approved it, and `ctx.approval.responder.getToken(provider)` resolves that person's token for an inline provider, as `ctx.getToken(provider)` does for the requester. `ctx.session.auth.current` stays the requester. `ctx.approval` is absent for calls that needed no approval, and workflow tools don't receive it. `ctx.approval.responder.getToken(provider)` never starts a sign-in: when the approver has no token, it throws a `ConnectionAuthorizationFailedError` with `reason: "approver_authorization_required"`.
|
|
@@ -287,7 +289,7 @@ The message answers that request when it matches one of its options, or when the
|
|
|
287
289
|
|
|
288
290
|
An approval for a tool call made in the same step as a workflow tool call, such as `ask_question`, is not requested until the workflow tool call finishes, because the approved call can't run before then. The person answers the question first, then sees the approval.
|
|
289
291
|
|
|
290
|
-
Channels that show only text show one request at a time, in this order, and post the next once the current one is answered, so a reply answers the request the person sees. Twilio, GitHub, Linear, and Chat SDK channels work this way. Chat SDK can't tell whether an adapter shows buttons, so every Chat SDK channel shows requests one at a time, including Linq, Photon, and adapters with buttons. Native channels with buttons, such as Slack, show every open request so a person can press any of them, and a typed reply still answers the first.
|
|
292
|
+
Channels that show only text show one request at a time, in this order, and post the next once the current one is answered, so a reply answers the request the person sees. Twilio, GitHub, Linear, and Chat SDK channels work this way. Chat SDK can't tell whether an adapter shows buttons, so every Chat SDK channel shows requests one at a time, including Linq, Photon, and adapters with buttons. Native channels with buttons, such as Slack, show every open request so a person can press any of them, and a typed reply still answers the first. A Slack app that sets `onInputResponse` or `approvalChannel` takes answers only through its controls; see [Restrict who can invoke the agent](/docs/channels/slack#restrict-who-can-invoke-the-agent).
|
|
291
293
|
|
|
292
294
|
See [Sessions, runs & streaming](/docs/concepts/sessions-runs-and-streaming) for the full event and resume contract that this builds on.
|
|
293
295
|
|
package/docs/tools/overview.mdx
CHANGED
|
@@ -123,7 +123,7 @@ eve does not append the sentence for a function, because whether the call ends t
|
|
|
123
123
|
|
|
124
124
|
The turn ends only when every tool call in the model's step can end the turn and succeeds, and every `endsTurn` function returns `true`. Otherwise the model receives the results and continues as usual. Text the model writes before the call is narration, so channels do not post it as the reply. While [tasks](/docs/tools/tasks) are still working, the turn waits for them and then calls the model again.
|
|
125
125
|
|
|
126
|
-
eve ignores `endsTurn` in delegated sessions, which must return a reply to their caller, and on turns that request structured output; the model does not see the appended sentence there, and eve does not call an `endsTurn` function. `defineWorkflowTool` rejects `endsTurn` at build time. Dynamic tool entries accept `endsTurn
|
|
126
|
+
eve ignores `endsTurn` in delegated sessions, which must return a reply to their caller, and on turns that request structured output; the model does not see the appended sentence there, and eve does not call an `endsTurn` function. `defineWorkflowTool` rejects `endsTurn` at build time. Dynamic tool entries accept `endsTurn` too, including a function. eve replays the function from a durable descriptor, as it does `execute`. To end a turn without taking any other action, add the opt-in [`no_reply`](/docs/concepts/built-in-tools#no_reply) tool.
|
|
127
127
|
|
|
128
128
|
### Label tool activity
|
|
129
129
|
|
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Use Cases"
|
|
3
|
+
description: "The two most common use cases for eve are business agents that work for your own company and agents you ship to customers as a product."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
eve gives you everything you need for production agents. The two most common use cases for eve are business agents that work for your own company and agents you ship to customers as a product.
|
|
7
|
+
|
|
8
|
+
<UseCaseSummaries>
|
|
9
|
+
<UseCaseSummary
|
|
10
|
+
audience="For your team"
|
|
11
|
+
title="Business agents"
|
|
12
|
+
href="#business-agents"
|
|
13
|
+
channels={["slack", "teams", "github", "linear", "web"]}
|
|
14
|
+
>
|
|
15
|
+
Automate a company function, like analytics, a software factory, marketing, or finance.
|
|
16
|
+
</UseCaseSummary>
|
|
17
|
+
<UseCaseSummary
|
|
18
|
+
audience="For your customers"
|
|
19
|
+
title="Agent as a Service (AaaS)"
|
|
20
|
+
href="#agent-as-a-service-aaas"
|
|
21
|
+
channels={["imessage", "whatsapp", "telegram", "discord", "web"]}
|
|
22
|
+
>
|
|
23
|
+
Build multi-tenant agentic applications that scale as you grow.
|
|
24
|
+
</UseCaseSummary>
|
|
25
|
+
</UseCaseSummaries>
|
|
26
|
+
|
|
27
|
+
## Business agents
|
|
28
|
+
|
|
29
|
+
A business agent takes on work for teams inside your company. The most common are software factories that plan, build, and review code alongside engineers, and company brains that answer employees' questions from internal data. Employees reach the agent in Slack, Microsoft Teams, or GitHub, and it acts on the company's own systems and data.
|
|
30
|
+
|
|
31
|
+
<TemplateCards>
|
|
32
|
+
<TemplateCard title="Software factory" template="eve-software-factory-template">
|
|
33
|
+
Agents plan features, open pull requests, review code, and respond to incidents alongside an
|
|
34
|
+
engineering team.
|
|
35
|
+
</TemplateCard>
|
|
36
|
+
<TemplateCard title="Company brain" template="eve-company-brain-template">
|
|
37
|
+
One agent holds the company's skills, tools, and approved connections, reachable where employees
|
|
38
|
+
work, with each employee's own identity and connections.
|
|
39
|
+
</TemplateCard>
|
|
40
|
+
<TemplateCard
|
|
41
|
+
title="Marketing team"
|
|
42
|
+
template="marketing-team-eve-template"
|
|
43
|
+
label="Marketing team"
|
|
44
|
+
>
|
|
45
|
+
A lead agent routes work to specialists for positioning, long-form content, social, SEO, and
|
|
46
|
+
email, then publishes through Notion, Typefully, and Resend.
|
|
47
|
+
</TemplateCard>
|
|
48
|
+
</TemplateCards>
|
|
49
|
+
|
|
50
|
+
### How eve supports business agents
|
|
51
|
+
|
|
52
|
+
An eve agent lives in [your repository](/docs/concepts/project-structure), so it is reviewed, deployed, and governed like the rest of your stack.
|
|
53
|
+
|
|
54
|
+
<Capabilities>
|
|
55
|
+
<Capability
|
|
56
|
+
icon="channels"
|
|
57
|
+
title="Meet employees where they work"
|
|
58
|
+
href="/docs/channels/overview"
|
|
59
|
+
link="Channels"
|
|
60
|
+
>
|
|
61
|
+
One agent serves Slack, Microsoft Teams, GitHub, Linear, and your own web apps, with a session
|
|
62
|
+
for every conversation.
|
|
63
|
+
</Capability>
|
|
64
|
+
<Capability
|
|
65
|
+
icon="observability"
|
|
66
|
+
title="Govern and audit every run"
|
|
67
|
+
href="/docs/observability/instrumentation"
|
|
68
|
+
link="Observability"
|
|
69
|
+
>
|
|
70
|
+
OpenTelemetry traces and Agent Runs record every session, model call, and tool call, so you can
|
|
71
|
+
see what an agent did and why.
|
|
72
|
+
</Capability>
|
|
73
|
+
<Capability
|
|
74
|
+
icon="identity"
|
|
75
|
+
title="Use your identity provider"
|
|
76
|
+
href="/docs/guides/auth-and-route-protection"
|
|
77
|
+
link="Identity and access"
|
|
78
|
+
>
|
|
79
|
+
Verify callers with any OIDC issuer, JWTs, or your own authenticator. Each connection then acts
|
|
80
|
+
as the agent itself or on behalf of the signed-in user.
|
|
81
|
+
</Capability>
|
|
82
|
+
<Capability
|
|
83
|
+
icon="models"
|
|
84
|
+
title="Switch models without a code rewrite"
|
|
85
|
+
href="/docs/agent-config"
|
|
86
|
+
link="Models"
|
|
87
|
+
>
|
|
88
|
+
Changing models is a one-line edit in agent.ts, and requests can fall back to another provider
|
|
89
|
+
on failure.
|
|
90
|
+
</Capability>
|
|
91
|
+
<Capability
|
|
92
|
+
icon="connections"
|
|
93
|
+
title="Connect to approved services"
|
|
94
|
+
href="/docs/connections"
|
|
95
|
+
link="Connections"
|
|
96
|
+
>
|
|
97
|
+
Expose the MCP and OpenAPI services your IT team approves. Credentials stay in the runtime, and
|
|
98
|
+
the model never sees them.
|
|
99
|
+
</Capability>
|
|
100
|
+
<Capability
|
|
101
|
+
icon="evals"
|
|
102
|
+
title="Evaluate agent responses"
|
|
103
|
+
href="/docs/evals/overview"
|
|
104
|
+
link="Evals"
|
|
105
|
+
>
|
|
106
|
+
Evals are automated tests that run the agent through real turns and score the result with code
|
|
107
|
+
checks or a model judge, so you catch regressions when a prompt, tool, or model changes.
|
|
108
|
+
</Capability>
|
|
109
|
+
<Capability
|
|
110
|
+
icon="tools"
|
|
111
|
+
title="Put deterministic steps in the loop"
|
|
112
|
+
href="/docs/tools/workflows"
|
|
113
|
+
link="Workflow tools"
|
|
114
|
+
>
|
|
115
|
+
Tools are typed TypeScript functions the model chooses when to call. When a process must run the
|
|
116
|
+
same way every time, use a workflow tool instead. Its code fixes the order of steps, calls
|
|
117
|
+
subagents exactly where you say, and waits durably for approvals or webhooks between steps.
|
|
118
|
+
</Capability>
|
|
119
|
+
<Capability
|
|
120
|
+
icon="sandbox"
|
|
121
|
+
title="Run commands in sandboxed compute"
|
|
122
|
+
href="/docs/sandbox"
|
|
123
|
+
link="Sandbox"
|
|
124
|
+
>
|
|
125
|
+
Each session gets an isolated filesystem and shell for scripts, repositories, and generated
|
|
126
|
+
files.
|
|
127
|
+
</Capability>
|
|
128
|
+
<Capability
|
|
129
|
+
icon="approval"
|
|
130
|
+
title="Keep a human in the loop"
|
|
131
|
+
href="/docs/human-in-the-loop"
|
|
132
|
+
link="Human-in-the-loop"
|
|
133
|
+
>
|
|
134
|
+
Sessions pause while an approval is pending and resume durably when it resolves. A decision
|
|
135
|
+
model can auto-approve routine tool calls.
|
|
136
|
+
</Capability>
|
|
137
|
+
</Capabilities>
|
|
138
|
+
|
|
139
|
+
## Agent as a Service (AaaS)
|
|
140
|
+
|
|
141
|
+
In AaaS, the agent is the product. One multi-tenant deployment serves many customers, and each of them trusts it with their work over long stretches of time. It has to serve every user durably and keep each tenant's data and identity separate from the next.
|
|
142
|
+
|
|
143
|
+
<TemplateCards>
|
|
144
|
+
<TemplateCard title="Web chat" template="eve-chat-template">
|
|
145
|
+
A Next.js chat app with sign-in, persisted conversations, and long-term memory for each user.
|
|
146
|
+
</TemplateCard>
|
|
147
|
+
<TemplateCard title="iMessage agent" template="openinstinct-eve-template" label="iMessage">
|
|
148
|
+
A multi-tenant iMessage service with user accounts, scoped memory, an encrypted vault, and cloud
|
|
149
|
+
browser automation.
|
|
150
|
+
</TemplateCard>
|
|
151
|
+
<TemplateCard title="Voice agent" template="eve-voice-template">
|
|
152
|
+
Users talk to the agent in the browser while it runs tools, asks for approvals, and keeps
|
|
153
|
+
durable state.
|
|
154
|
+
</TemplateCard>
|
|
155
|
+
</TemplateCards>
|
|
156
|
+
|
|
157
|
+
### How eve supports AaaS
|
|
158
|
+
|
|
159
|
+
Each end user gets their own [sessions](/docs/concepts/sessions-runs-and-streaming) and connections, running on the same agent project you deploy once.
|
|
160
|
+
|
|
161
|
+
<Capabilities>
|
|
162
|
+
<Capability
|
|
163
|
+
icon="tenancy"
|
|
164
|
+
title="Isolate every tenant"
|
|
165
|
+
href="/docs/patterns/multi-tenant-auth"
|
|
166
|
+
link="Multi-tenancy"
|
|
167
|
+
>
|
|
168
|
+
Bind memory, connection credentials, and approval policy to the authenticated tenant and user,
|
|
169
|
+
so one customer's data and access never reach another.
|
|
170
|
+
</Capability>
|
|
171
|
+
<Capability
|
|
172
|
+
icon="dynamic"
|
|
173
|
+
title="Customize the agent per tenant"
|
|
174
|
+
href="/docs/guides/dynamic-capabilities"
|
|
175
|
+
link="Dynamic capabilities"
|
|
176
|
+
>
|
|
177
|
+
Resolve the model, tools, connections, skills, and instructions at runtime from the caller,
|
|
178
|
+
their tenant, or a feature flag, all from one deployment.
|
|
179
|
+
</Capability>
|
|
180
|
+
<Capability
|
|
181
|
+
icon="schedules"
|
|
182
|
+
title="Run work on fixed and dynamic schedules"
|
|
183
|
+
href="/docs/schedules"
|
|
184
|
+
link="Schedules"
|
|
185
|
+
>
|
|
186
|
+
Fixed cron schedules power digests and monitors with no user present. Experimental dynamic
|
|
187
|
+
schedules let users and agents create their own recurring or one-time runs at runtime.
|
|
188
|
+
</Capability>
|
|
189
|
+
<Capability
|
|
190
|
+
icon="observability"
|
|
191
|
+
title="Trace latency and every tool call"
|
|
192
|
+
href="/docs/observability/agent-runs"
|
|
193
|
+
link="Observability"
|
|
194
|
+
>
|
|
195
|
+
Traces and Agent Runs show per-turn latency and the tool calls behind each response.
|
|
196
|
+
</Capability>
|
|
197
|
+
<Capability
|
|
198
|
+
icon="models"
|
|
199
|
+
title="Route each request to the right model"
|
|
200
|
+
href="/docs/guides/decide"
|
|
201
|
+
link="Model selection"
|
|
202
|
+
>
|
|
203
|
+
Pick models per user, tenant, or feature, or let a decision model choose from your allowlist
|
|
204
|
+
automatically, to balance cost, latency, and quality.
|
|
205
|
+
</Capability>
|
|
206
|
+
<Capability
|
|
207
|
+
icon="durability"
|
|
208
|
+
title="Keep long-running sessions durable"
|
|
209
|
+
href="/docs/concepts/execution-model-and-durability"
|
|
210
|
+
link="Durable sessions"
|
|
211
|
+
>
|
|
212
|
+
Each user's session checkpoints every step, parks while it waits, and resumes on the next
|
|
213
|
+
message, even days later.
|
|
214
|
+
</Capability>
|
|
215
|
+
<Capability
|
|
216
|
+
icon="memory"
|
|
217
|
+
title="Keep long-term memory for each user"
|
|
218
|
+
href="/docs/memory"
|
|
219
|
+
link="Memory"
|
|
220
|
+
>
|
|
221
|
+
Each user gets their own long-term memory of preferences and facts. It carries across sessions,
|
|
222
|
+
stays isolated from other users, and lives in the provider you choose.
|
|
223
|
+
</Capability>
|
|
224
|
+
<Capability
|
|
225
|
+
icon="identity"
|
|
226
|
+
title="Act on behalf of each user"
|
|
227
|
+
href="/docs/connections"
|
|
228
|
+
link="User-scoped connections"
|
|
229
|
+
>
|
|
230
|
+
Connections authenticate to services like GitHub and Linear with each user's own grant, so tools
|
|
231
|
+
call them without managing tokens.
|
|
232
|
+
</Capability>
|
|
233
|
+
<Capability
|
|
234
|
+
icon="sandbox"
|
|
235
|
+
title="Run untrusted input in isolation"
|
|
236
|
+
href="/docs/sandbox"
|
|
237
|
+
link="Sandbox and subagents"
|
|
238
|
+
>
|
|
239
|
+
Each session processes user data in its own sandbox. Subagents take work that needs its own
|
|
240
|
+
prompt, tools, or sandbox.
|
|
241
|
+
</Capability>
|
|
242
|
+
</Capabilities>
|
|
243
|
+
|
|
244
|
+
## Start building
|
|
245
|
+
|
|
246
|
+
Create an agent and open the terminal UI.
|
|
247
|
+
|
|
248
|
+
```bash
|
|
249
|
+
npx eve@latest init my-agent
|
|
250
|
+
```
|