인간 앱.장벽 없음.애플리케이션 컨트랙트를 한 번만 작성하세요. 인간은 브라우저로, AI 에이전트는 도구로 조작합니다. 에이전트는 매 실행마다 진화합니다.
하나의 defineAPI() 정의로 자동 생성: HTTP JSON API (Hono), MCP 도구 (Claude Desktop), A2A 스킬 (Google Agent-to-Agent), OpenAPI 3.1 스펙.
import { defineAPI } from "@zauso-ai/capstan-core";
import { z } from "zod";
// One contract — humans use it via HTTP, agents via MCP/A2A
export const GET = defineAPI({
input: z.object({
status: z.enum(["open", "closed"]).optional(),
}),
output: z.object({
tickets: z.array(z.object({
id: z.string(),
title: z.string(),
status: z.string(),
})),
}),
description: "List support tickets",
capability: "read",
resource: "ticket",
async handler({ input }) {
return { tickets: await db.tickets.list(input) };
},
});agents/triage.tsimport { createSmartAgent } from "@zauso-ai/capstan-ai";
import { defineSkill } from "@zauso-ai/capstan-ai";
// Smart agent with 12 production features
const agent = createSmartAgent({
model: "claude-sonnet-4-20250514",
tools: [listTickets, assignTicket, resolveTicket],
skills: [triageSkill],
maxTurns: 20,
timeout: { total: 120_000, perTool: 30_000 },
budget: { maxTokens: 100_000 },
compression: { strategy: "sliding-window" },
});
// Skills give agents strategic guidance
const triageSkill = defineSkill({
name: "triage",
when: "ticket needs priority assessment",
strategy: "Check severity, customer tier, SLA deadline",
});defineAPI()는 인간을 위한 HTTP와 에이전트를 위한 MCP/A2A 도구를 동시에 제공. 같은 컨트랙트, 제로 글루 코드.
createSmartAgent()에 12가지 프로덕션 기능: 압축, 폴백, 검증, 타임아웃, 워치독, 예산.
defineSkill()로 에이전트에 높은 수준의 전략을 부여. 단순한 도구가 아닌 복잡한 문제를 위한 전략적 가이드.
에이전트는 매 실행에서 학습. 경험 → 전략 → 스킬. 시간이 지날수록 더 똑똑해짐.
React SSR, 파일 라우팅, Drizzle ORM, 선택적 하이드레이션. 인간 앱에 필요한 모든 것.
JWT, OAuth, DPoP, SPIFFE/mTLS, 속도 제한, CSRF. 인간과 에이전트 인증 내장.
capstan verify --json. 8단계 검증 캐스케이드. AI 에이전트 자기 수정.
하나의 정의로 HTTP, MCP, A2A, OpenAPI 동시 사용. 에이전트가 앱을 자동 발견.
| 기능 | Next.js | LangChain | Capstan |
|---|---|---|---|
| 웹과 에이전트 사이의 장벽 | 🧱 | 🧱 | + |
| Multi-protocol (HTTP + MCP + A2A) | – | – | + |
| 스마트 에이전트 런타임 | – | + | + |
| 스킬 레이어 + 진화 | – | – | + |
| React SSR | + | – | + |
| File-based routing | + | – | + |
| 내장 인증 (JWT + OAuth + API 키) | – | – | + |
| 내장 데이터베이스 레이어 | – | – | + |
| AI TDD verifier | – | – | + |
| OpenAPI auto-generation | – | – | + |
| 장기 메모리 | – | ~ | + |
| 정책 엔진 + 승인 워크플로우 | – | – | + |
+ 내장 ~ 부분 – 없음 🧱 완전한 장벽 | 전체 비교
bunx create-capstan-app my-agentimport { createSmartAgent } from "@zauso-ai/capstan-ai";
const agent = createSmartAgent({
model: "claude-sonnet-4-20250514",
tools: [listTickets, assignTicket],
skills: [triageSkill],
});bunx capstan dev
# MCP server auto-available for Claude Desktopbunx create-capstan-app my-appcd my-app && bunx capstan dev앱이 실행 중이며 모든 에이전트 엔드포인트가 준비되었습니다:
# Agent manifest
curl http://localhost:3000/.well-known/capstan.json
# OpenAPI spec
curl http://localhost:3000/openapi.json
# MCP server (for Claude Desktop / Cursor)
bunx capstan mcp@zauso-ai/capstan-ai 완전한 스마트 에이전트 런타임을 제공합니다. createSmartAgent()로 프로덕션 에이전트, defineSkill()로 전략적 가이드, 매 실행에서 학습하는 자기 진화.
import { createSmartAgent, defineSkill } from "@zauso-ai/capstan-ai";
// Production-ready agent with 12 built-in features
const agent = createSmartAgent({
model: "claude-sonnet-4-20250514",
tools: [searchDocs, createTicket, sendEmail],
skills: [customerSupport, escalation],
maxTurns: 30,
timeout: { total: 120_000, perTool: 30_000 },
budget: { maxTokens: 200_000 },
compression: { strategy: "sliding-window" },
fallback: { model: "claude-haiku-4" },
validation: { validateToolArgs: true },
watchdog: { maxConsecutiveErrors: 3 },
});
// Skills evolve from experience
const customerSupport = defineSkill({
name: "customer-support",
when: "user has a support question",
strategy: "Search docs first, then check ticket history, escalate if unresolved",
});
// Agent learns and improves over time
// Experience -> Strategy -> Skill -> Evolution