AI Builder
일상 언어로 작성한 요구사항을 실행 가능한 메타데이터로 바꿔주는 Console 내장 채팅.
AI Builder
AI Builder는 고객이 ObjectOS를 확장하는 기본 방법입니다. Console을 열고 어시스턴트에게 일상 언어로 말을 걸면, 패키지, 객체, 필드, 액션, 플로우 등 메타데이터를 대신 만들어 줍니다. 모든 변경은 실제로 적용되기 전에 Human-in-the-Loop(HITL) 승인 목록에 대기열로 들어갑니다.
30초 만에 사용해 보기
You: I need to track customer support tickets.
Each ticket has a subject, description, priority (low/medium/high/urgent),
status (new/open/pending/resolved/closed), and assignee.
AI: I'll create that for you. Here's the plan:
• Create package `com.you.support` (v0.1.0)
• Create object `support_ticket` with 5 fields
• Add a kanban view grouped by status
• Add 3 permission sets: agent, manager, viewer
Approve? [Yes] [Modify] [Cancel]
You: [Yes]
AI: ✓ Package created
✓ Object created with 5 fields and 12 indexes
✓ Kanban view registered
✓ Permission sets created
Done. Try it: /support_ticket이제 동작하는 티켓 관리 앱이 생겼습니다. REST 엔드포인트, Console 뷰, 감사 로그 항목, 권한 체크포인트까지 전부 갖춰져 있습니다. 파일을 편집하지도, 재시작하지도 않았습니다.
AI가 할 수 있는 일
어시스턴트는 모두 네임스페이스로 구분되고 @objectstack/spec에 대해
검증되는 내장 메타데이터 도구 모음에 접근할 수 있습니다.
| 분류 | 도구 | 하는 일 |
|---|---|---|
| Packages | create_package | 매니페스트 + 버전을 포함한 새 컨테이너 |
list_packages | 기존 패키지 둘러보기 | |
get_package / get_active_package | 내용 확인 | |
set_active_package | 대화에서 작업할 패키지 선택 | |
| Objects | create_object | 초기 필드를 포함한 새 객체 |
list_objects | 활성 패키지의 객체 둘러보기 | |
describe_object | 스키마, 필드, 관계 출력 | |
| Fields | add_field | 타입이 지정된 필드 추가 (일반 필드 타입) |
modify_field | 레이블, 선택 목록 옵션, 검증 변경 | |
delete_field | 필드 제거 (안전 검사 포함) | |
| Data | query_data | ObjectQL로 레코드 읽기 |
| Actions / Knowledge | action_<name>, search_knowledge | 액션 호출, 문서에 대한 RAG |
여기에 더해, 선언된 모든 *.action.ts로부터 만들어진 액션 도구가
action_<name> 형태로 제공됩니다. 따라서 패키지에 액션이 존재하기만 하면
AI는 그것을 다른 내장 도구처럼 호출할 수 있습니다.
런타임에서 전체 도구 카탈로그 확인: GET /api/v1/ai/tools.
Human-in-the-Loop 승인
메타데이터를 변경하는 도구 호출은 대기 중인 액션 대기열을 거칩니다. 승인 담당자는 Approve를 클릭하기 전에 제안된 변경 사항의 diff를 확인합니다.
| 엔드포인트 | 목적 |
|---|---|
GET /api/v1/ai/pending-actions | 대기 중인 액션 목록 (상태로 필터링) |
GET /api/v1/ai/pending-actions/:id | 제안된 단일 액션의 diff |
POST /api/v1/ai/pending-actions/:id/approve | 변경 적용 |
POST /api/v1/ai/pending-actions/:id/reject | 사유와 함께 폐기 |
필요한 권한:
| 작업 | 권한 |
|---|---|
| 대기열 읽기 | ai:read |
| 승인 / 거부 | ai:approve |
기본값으로는 Setup Administrator 멤버만 ai:approve 권한을 가집니다.
Permission Sets에서 더 세분화할 수
있습니다. 예를 들어 "프로덕트 오너는 com.acme.crm에서 승인할 수 있고, 그 외에는
아무도 할 수 없다"와 같이 지정할 수 있습니다.
이 대기열은 감사가 가능합니다. 모든 승인/거부는 발신 대화 id와 함께
sys_audit_log에 기록됩니다.
대화와 컨텍스트
각 채팅은 하나의 ai_conversations 레코드입니다. 플랫폼은 다음을 추적합니다.
- 활성 패키지 —
set_active_package로 설정됩니다. 새 객체 / 필드가 여기에 생성됩니다. - Skills — 현재 컨텍스트에서 사용할 수 있는 도구의 부분 집합입니다
(예:
support_ticket상세 페이지 내부에서는 AI가support_ticket범위의 스킬을 사용할 수 있습니다). - Knowledge — 대화에 연결된 RAG 주제 + 인덱스입니다.
POST /api/v1/ai/assistant/chat
{
"messages": [{ "role": "user", "content": "Add a tags field to support_ticket" }],
"context": { "objectName": "support_ticket", "recordId": "tkt_123" }
}플랫폼은 활성 애플리케이션의 기본 Agent를 확인하고, 컨텍스트에 따라 스킬 집합을 필터링한 다음, LLM이 어떤 도구를 호출할지 선택하도록 합니다. 에이전트를 특정 UI에 미리 연결할 필요가 없습니다. 에이전트는 메타데이터를 기반으로 스스로 연결됩니다.
요청할 수 있는 것들
검증된 패턴과 한 줄 프롬프트입니다.
| 목표 | 프롬프트 |
|---|---|
| 새 객체 | "Create a product object with name, sku, price, category." |
| 필드 추가 | "Add a discount decimal field to order, max 50." |
| 선택 목록 변경 | "On task.status, add 'blocked' between 'open' and 'done'." |
| 인덱스 | "Index order by status + created_at for the dashboard." |
| 관계 | "Make order_line master-detail to order." |
| 검증 | "On invoice, the discount can't exceed the subtotal." |
| 플로우 | "When a high-priority ticket sits in 'new' for 30 minutes, notify the manager." |
| 액션 | "Create an action approve_invoice that sets status to approved." |
| 권한 세트 | "Create agent permission set with read/create/edit on support_ticket and read on customer." |
| 번역 | "Translate the support_ticket labels and picklists to Spanish." |
AI가 처리할 수 없는 경우에는 그렇다고 알려주고, 수동 경로(보통 30줄짜리
*.ts 파일이나 Console 폼)를 안내해 줍니다.
실시간 미리보기
승인된 변경이 적용될 때마다 Console은 영향을 받은 뷰를 그 자리에서 다시 렌더링합니다. 새로고침이 필요 없습니다. 커널 캐시는 변경된 패키지를 무효화하므로, 이후 요청은 새 메타데이터를 사용합니다.
롤백
대기 중인 액션 레코드는 변경 이전 상태를 보관합니다. 변경이 잘못된 경우, 진행 중인 항목을 거부하고 AI에게 요청하세요.
You: Roll back the last 3 changes to support_ticket.
AI: Found 3 mutations from conversation conv_abc (3 minutes ago).
Restoring 'support_ticket' to its state at 13:42:11.
Approve? [Yes]더 큰 규모의 롤백에는 마지막으로 정상 동작하던 아티팩트에 대해
os diff를 사용하고 역방향 diff를 적용하세요.
한계 (현재 기준)
- 데이터 접근은 운영자 본인의 권한을 따릅니다. 어시스턴트는 로그인한 사용자로 실행되므로, 해당 사용자가 이미 접근할 수 있는 레코드만 읽거나 쓸 수 있습니다. 대부분의 팀은 어시스턴트를 메타데이터에 집중시키고, 고객 데이터에 대해서는 변경이 아니라 조회만 하도록 둡니다.
- 패키지 간 변경에는 명시적인 확인이 필요합니다. AI에게 시스템 패키지
(
sys_*)를 수정하도록 요청하면 거부 메시지가 반환됩니다. 플랫폼은 원칙적으로 이를 거부합니다. - 장시간 실행되는 다단계 계획(예: "HR 앱을 처음부터 전부 구축")도 동작하지만, 한두 개의 객체씩 다루는 여러 개의 작은 대화로 나누어 진행하는 것이 가장 좋습니다.
빌드 타임 AI를 넘어서
동일한 AI 인프라가 최종 사용자를 위한 런타임 에이전트(지원 어시스턴트, 영업 코파일럿, 사내 Q&A 봇 등)를 구동하며, 이들은 모두 동일한 Agent → Skill → Tool 아키텍처 위에 구축됩니다. Agents를 참고하세요.
다음으로 갈 곳
- Agents — 데이터 위에 구축하는 최종 사용자용 어시스턴트
- Data Model — AI가 실제로 생성하는 것
- Actions — AI가 런타임 도구로 노출하는 단위
- AI Service — 프로바이더 설정 (OpenAI / Anthropic / Doubao / …)