본문으로 바로가기
리옵트 핸드북
리옵트 핸드북
엔터프라이즈 Eve 에이전트 개발

기초 아키텍처

Ch1. Eve 멘탈 모델Ch2. 소스 코드 지도Ch3. 프로젝트 레이아웃과 DiscoveryCh4. Compiler와 Runtime Graph

에이전트 품질 설계

Ch5. agent.ts, 모델, 컴팩션Ch6. Context, Skills, Dynamic CapabilitiesCh7. Tools, Approval, ConnectionsCh8. Sandbox 보안 런타임

운영 런타임

Ch9. Channels, Auth, StreamingCh10. Subagents, Workflows, Remote AgentsCh11. Schedules, State, HooksCh12. Evals와 품질 게이트

프로덕션 운영

Ch13. Observability와 DeploymentCh14. Enterprise PatternsCh15. Migration과 Governance

부록

공식 문서 대조표검증 리포트업데이트 내역
핸드북›엔터프라이즈 Eve 에이전트›Ch5. agent.ts, 모델, 컴팩션
한국어English

Ch5. agent.ts, 모델, 컴팩션

defineAgent 설정을 모델 라우팅, 출력 스키마, 컴팩션, experimental flag 관점에서 운영 기준으로 해석한다.

핵심 요약

  • agent.ts는 모델 선택 파일이 아니라 runtime policy와 output contract를 정의하는 운영 표면입니다.
  • outputSchema, compaction, modelOptions는 장기 세션의 품질과 비용을 좌우합니다.
  • experimental flag와 hosted packaging 옵션은 기능 토글이라, 릴리스 게이트와 소유자를 분명히 정해 둡니다.

agent/agent.ts는 Eve 에이전트의 런타임 config입니다. 기본 사용자는 여기서 모델만 고릅니다. 엔터프라이즈 운영자는 여기서 모델 라우팅, 출력 계약, 장기 세션 메모리 정책, experimental 기능 허용 여부를 결정합니다.

기본 형태

agent/agent.ts
import { defineAgent } from "eve";

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

root agent.ts가 없으면 Eve는 기본 모델을 씁니다. 다만 프로덕션에서는 명시적으로 작성하는 편이 낫습니다. 모델은 품질, 비용, 데이터 처리 경로, provider tool 지원, context window를 가르는 핵심 운영 변수입니다.

공식 agent.ts 문서가 명확히 하는 규칙은 두 가지입니다.

규칙운영 해석
root agent.ts는 런타임 config가 필요 없으면 생략 가능아주 작은 agent는 framework default로 시작해도 되지만, 프로덕션에서는 model/config를 코드 리뷰 대상으로 고정해 두는 편이 안전합니다.
agent.ts를 작성하면 model은 필수빈 defineAgent({})로 정책을 암묵화하지 말고 Gateway model id 또는 AI SDK LanguageModel을 명시합니다.

공식 getting-started 기준 scaffold default는 anthropic/claude-sonnet-4.6이고, 공식 예제의 고성능 작업은 anthropic/claude-opus-4.8을 자주 사용합니다. 이 책의 모델 표기는 특정 모델 추천이 아니라 라우팅 방식과 운영 기준을 설명하기 위한 예입니다.

모델 라우팅 전략

Eve는 두 형태의 model definition을 지원합니다.

형태예장점주의
Gateway model id string"anthropic/claude-opus-4.8"AI Gateway 라우팅, 중앙 관리, Vercel OIDC 흐름Gateway 정책과 모델 catalog 기준 확인
provider LanguageModel objectanthropic("claude-opus-4.8")provider 옵션 직접 제어provider package/key/terms 직접 관리

엔터프라이즈 기본값은 Gateway routed model입니다. 팀 단위로 모델 사용량, fallback, BYOK, 정책을 한곳에 모으기 쉽기 때문입니다. 다만 self-hosted거나 특정 provider option이 필요하면 direct model도 합리적입니다.

모델 선택 매트릭스

에이전트 유형추천 모델 기준
고객-facing support낮은 지연, 안정적 instruction following, 안전성
내부 리서치긴 context, tool reasoning, citation discipline
코드/파일 작업tool calling 안정성, large context, sandbox 사용 패턴
백오피스 자동화deterministic structured output, approval 흐름
평가 judge저비용/일관성, agent-under-test와 분리

기준은 “가장 똑똑한 모델”이 아니라 “해당 tool surface에서 실패 비용이 낮은 모델”입니다.

modelOptions는 provider tuning 계층이다

modelOptions는 provider로 전달되는 옵션 override입니다. temperature, reasoning effort, provider-specific metadata 등이 여기에 들어갈 수 있습니다.

운영 규칙:

  • reasoning-heavy agent와 transactional agent를 분리한다.
  • 모델 옵션 변경은 prompt 변경과 같은 release gate를 탄다.
  • eval result에 모델 id와 옵션을 함께 남긴다.
  • provider-specific option은 portability risk로 문서화한다.

outputSchema: task-mode 계약

outputSchema는 interactive conversation의 모든 응답을 강제하는 장치가 아닙니다. Eve 문서 기준으로는 agent/subagent/schedule/remote job 같은 task-mode run에서 structured output을 강제하는 설정입니다. client가 per-turn으로 outputSchema를 보내기도 합니다.

사용하기 좋은 곳:

시나리오이유
subagent 결과 취합parent가 machine-readable result를 받아야 함
scheduled reportdownstream job이 JSON을 읽음
remote agent delegationdeployment 간 계약 필요
eval targetexact schema assertion 가능

예:

agent/subagents/risk-reviewer/agent.ts
import { defineAgent } from "eve";
import { z } from "zod";

export default defineAgent({
  description: "Review a proposed operation and return risk level and required approvals.",
  model: "anthropic/claude-opus-4.8",
  outputSchema: z.object({
    risk: z.enum(["low", "medium", "high"]),
    requiredApprovals: z.array(z.string()),
    rationale: z.string(),
  }),
});

Compaction은 장기 세션 운영 정책이다

Eve의 default harness는 context window에 가까워지면 과거 turns를 요약합니다. 기본 threshold는 90%이고, agent.ts에서 낮출 수 있습니다.

agent/agent.ts
export default defineAgent({
  model: "anthropic/claude-opus-4.8",
  compaction: {
    thresholdPercent: 0.75,
  },
});

컴팩션은 비용 절감 기능이면서 동시에 risk surface입니다. summary가 잘못되면 장기 세션의 사실 기반이 통째로 흔들립니다.

Compaction 정책 설계

워크로드권장 정책
짧은 FAQ/지원기본값 유지 또는 compaction 거의 안 탐
장기 리서치threshold 낮춤, 중요 artifact는 file/state에 저장
코딩/파일 작업read-before-write evidence가 요약으로 사라질 수 있음을 고려
regulated decision중요한 근거를 external store 또는 structured state에 저장
다중 subagent 작업parent message에 child 결과를 명시적으로 요약/구조화

Eve는 framework tool state 일부를 컴팩션 후 재주입합니다. 하지만 domain-specific memory까지 자동으로 보장하지는 않습니다. defineState, external DB, artifact files를 함께 써야 합니다.

Experimental flags

공식 agent.ts 문서는 experimental.codeMode를 언제든 사라지거나 바뀔 수 있는 opt-in flag로 설명합니다. ExperimentalWorkflow는 Dynamic Workflows 문서가 다루는 별도 도구입니다. 둘 다 쓸모는 크지만 안정성 계약은 약합니다.

기능의미프로덕션 기준
codeMode모델이 JavaScript로 tools를 호출하는 broader mode제한된 internal agent에서만
ExperimentalWorkflowsubagent orchestration만 model-authored JS로 수행subagent-only coordination에 제한

실무 기준:

  • feature flag로 제한한다.
  • eval을 일반 tool-call agent보다 더 촘촘히 둔다.
  • code-generated orchestration 결과를 trace로 저장한다.
  • 외부 side effect tool은 workflow/code mode에서 직접 닿지 않게 설계한다.

Hosted build packaging

build.externalDependencies는 hosted output packaging을 제어합니다. 특정 package를 bundle하지 않고 runtime dependency로 남깁니다.

주의할 점:

  • dependency를 external로 둔다고 권한 검토가 끝나는 것은 아니다.
  • third-party SDK의 network/data behavior는 별도 보안 리뷰 대상이다.
  • Vercel/self-host 환경에서 같은 package가 설치되는지 확인해야 한다.

agent.ts 리뷰 체크리스트

항목질문
model모델 id와 provider path가 승인됐는가?
modelOptionsdeterministic/creative behavior가 의도와 맞는가?
outputSchematask-mode 계약이 필요한 곳에만 있는가?
compaction장기 세션에서 사실 손실을 견딜 수 있는가?
experimentalcodeMode/Workflow 사용 범위가 제한됐는가?
buildexternal dependency가 배포 환경과 보안 리뷰에 반영됐는가?

agent.ts는 작아 보여도 운영상 가장 무게 있는 config 파일입니다. 모델 변경은 UI 문구 수정이 아니라 서비스 behavior 변경으로 다뤄야 합니다.

관련 문서

AI Gateway 제어면

Vercel 엔터프라이즈 AI 플랫폼 · AI Gateway를 모델 라우팅, 비용, 정책, 자격 증명 관리를 중앙화하는 제어면으로 운영하는 방법을 정리합니다.

에이전트 설계 원칙

AI 에이전트 오케스트레이션 패턴 · 멀티에이전트 시스템에서 각 agent의 단일 책임, 입출력 계약, 도구 권한, 모델 선택 기준을 분리해 실패를 격리하고 운영 가능한 경계를 설계하는 방법을 정리합니다.

Ch2. 소스 코드 지도

packages/eve/src를 구현 책임별로 해부하고 엔터프라이즈 설계자가 읽어야 할 핵심 파일을 정리한다.

플랫폼 아키텍처

Vercel 엔터프라이즈 AI 플랫폼 · Vercel 위에서 엔터프라이즈 AI 제품의 제어면과 실행면을 어떻게 분리할지 정리합니다.

Ch6. 비용·지연시간 최적화

LLMOps·AgentOps 프로덕션 · 품질을 유지하면서 원가와 응답시간을 동시에 관리하는 운영 기법

Ch4. Compiler와 Runtime Graph

Eve가 source manifest를 compiled manifest와 runtime agent graph로 바꾸는 과정을 분석한다.

Ch6. Context, Skills, Dynamic Capabilities

Eve의 컨텍스트 제어 원칙과 skills, dynamic tools, dynamic instructions를 활용한 고급 에이전트 설계를 정리한다.

On this page

기본 형태모델 라우팅 전략모델 선택 매트릭스modelOptions는 provider tuning 계층이다outputSchema: task-mode 계약Compaction은 장기 세션 운영 정책이다Compaction 정책 설계Experimental flagsHosted build packagingagent.ts 리뷰 체크리스트