Show HN: 내부 도구용 오픈 소스 대화형 AI 에이전트
요약
Inferable는 인간 참여형(Human-in-the-loop) AI 워크플로를 생성하기 위한 관리형 내구 실행 런타임입니다. 어떤 LLM에서도 구조화된 출력을 생성할 수 있으며, Slack이나 이메일을 통한 인간의 승인 절차와 버전 관리 기능을 제공합니다.
핵심 포인트
- 인간 참여형(Human-in-the-loop) 워크플로를 통해 AI 실행 과정에 승인 및 개입 가능
- 롱 폴링(Long polling) 방식을 사용하여 방화벽이나 프라이빗 VPC 내부 인프라에서도 안전하게 실행 가능
- 워크플로 버전 관리 및 점진적 배포를 지원하여 하위 호환성 유지
- LLM의 구조화된 출력(Structured outputs) 자동 파싱 및 검증 기능 제공
- Node.js SDK 지원 및 향후 Go 언어 지원 예정
Inferable는 인간 참여형 (Human-in-the-loop) AI 워크플로 (Workflows)를 생성하기 위한 관리형 내구 실행 런타임 (Managed durable execution runtime)입니다. 어떤 LLM (Large Language Model)에서도 구조화된 출력 (Structured outputs)을 생성하고, Slack 또는 이메일을 통해 인간의 승인을 요청할 수 있으며, 하위 호환성을 위해 버전이 관리되는 장기 실행 워크플로를 제공합니다.
Inferable을 시작하려면 빠른 시작 가이드를 따르세요.
다음은 Inferable의 주요 기능 중 일부입니다.
워크플로는 방화벽이나 프라이빗 VPC (Virtual Private Cloud) 뒤에 있는 귀하의 자체 인프라에서 실행됩니다. 별도의 배포 단계가 필요하지 않습니다. 당사는 귀하의 인프라에 연결하기 위해 롱 폴링 (Long polling) 방식을 사용하므로, 인바운드 포트를 열 필요가 없습니다.
const workflow = inferable.workflows.create({
name: "simple",
inputSchema: z.object({
...
워크플로의 입력 스키마 (Input schema)나 로직을 변경해야 할 때, 워크플로의 새 버전을 생성할 수 있습니다. Inferable은 현재 실행 중인 워크플로에 대해 버전 친화성 (Version affinity)을 유지하므로, 새 버전을 점진적으로 배포할 수 있습니다. Workflows 섹션을 참조하세요.
workflow.version(1).define(async (ctx, input) => {
// ...
});
...
Inferable은 전체 컨텍스트 보존 (Context preservation)과 함께 인간의 승인 및 개입을 통합할 수 있게 해줍니다. Human-in-the-Loop 섹션을 참조하세요.
deleteUserWorkflow.version(1).define(async (ctx, input) => {
// ... 기존 워크플로 코드 ...
if (!ctx.approved) {
...
Inferable은 구조화된 출력을 자동으로 파싱 (Parse) 및 검증 (Validate)하며, 실패한 실행을 재시도합니다. Structured Outputs 섹션을 참조하세요.
workflow.version(1).define(async (ctx, input) => {
const { ticketType } = ctx.llm.structured({
input: `Ticket text: ${input.ticketText}`,
...
그 외 기능들...
- 알림 (Notifications): Slack 또는 이메일을 통해 사용자에게 알림을 전송합니다.
- 메모이제이션된 결과 (Memoized Results): 부수 효과 (Side-effects) 및 비용이 많이 드는 작업의 결과를 분산된 방식으로 캐싱합니다.
- 관찰 가능성 (Observability): 타임라인 뷰에서 확인하거나 귀하의 자체 관찰 도구에 연결할 수 있습니다.
- 에이전트 (Agents): 정의된 목표를 달성하기 위해 도구 (Tools)를 사용할 수 있는 에이전트를 생성합니다.
- 개발자 친화적인 SDK: Node.js를 지원하며, Go를 포함하여 더 많은 언어가 곧 지원될 예정입니다.
| 언어 | 시작하기 | 패키지 |
|---|---|---|
| Node.js / TypeScript | Quick start | NPM |
| Go | Quick start | Go |
이 저장소(repository)에는 Inferable 제어 평면(control-plane)과 다양한 언어용 SDK가 포함되어 있습니다.
핵심 서비스 (Core services):
/control-plane
- 핵심 Inferable 제어 평면(control plane) 서비스
/app
- 플레이그라운드(Playground) 프론트엔드 및 관리 콘솔
/cli
- 명령줄 인터페이스(Command-line interface) 도구 (alpha)
SDKs:
/sdk-node
- Node.js/TypeScript SDK
/sdk-go
- Go SDK
/sdk-dotnet
- .NET SDK (experimental)
Inferable은 완전히 오픈 소스이며, 데이터와 컴퓨팅에 대한 완전한 제어권을 갖기 위해 자체 인프라에 셀프 호스팅(self-hosted)할 수 있습니다. 이를 통해 다음과 같은 이점을 얻을 수 있습니다:
- 데이터 및 모델에 대한 완전한 제어
- 벤더 종속성(vendor lock-in) 없음
- 자체 인프라를 통한 보안 강화
- 특정 요구 사항에 맞춘 커스터마이징 옵션
자세한 내용은 셀프 호스팅 가이드를 참조하세요.
Inferable 저장소의 모든 프로젝트에 대한 기여(contributions)를 환영합니다. 풀 리퀘스트(pull requests)를 제출하기 전에 기여 가이드라인(contributing guidelines)을 읽어주시기 바랍니다.
이 저장소의 모든 코드는 MIT 라이선스(MIT License) 하에 배포됩니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN Claude Code Search의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기