본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 05. 18. 01:01

AI Hub 소개, 파트 1: ObjectScript에서의 Agents

요약

AI Hub의 Early Access Program (EAP)이 공식적으로 시작되었으며, 이는 스탠드얼론 키트 또는 컨테이너 이미지로 제공되는 프리뷰 버전입니다. 본 글에서는 ObjectScript 환경에서 에이전트(Agents)와 도구(Tools)를 생성하는 방법을 소개합니다. 특히 직관적인 SDK를 사용하여 ObjectScript 내에서 시스템 프롬프트, 프로바이더, 모델, 그리고 사용할 수 있는 도구를 설정하여 에이전트를 구축할 수 있습니다.

핵심 포인트

  • AI Hub EAP가 공식 시작되었으며, 현재 프리뷰 버전으로 제공되므로 운영 환경 사용 시 주의가 필요합니다.
  • ObjectScript Agents SDK를 통해 ObjectScript 내에서 직접 에이전트와 도구를 생성할 수 있습니다.
  • 에이전트는 시스템 프롬프트, 프로바이더(provider), 모델(model), 그리고 사용할 도구(tools) 설정을 통해 정의됩니다.
  • 도구는 %AI.Tools를 확장하는 방식으로 쉽게 만들 수 있으며, 모든 메서드, 클래스 메서드 및 쿼리가 에이전트의 사용 가능한 도구가 됩니다.

지난주 READY에 참석하지 못하신 분들은 AI Hub의 Early Access Program (EAP)이 공식적으로 시작되었다는 흥미로운 발표를 놓치셨을 수도 있습니다. 이 내용은 @benjamin .DeBoe와 @Jeffrey.Fried의 멋진 데모 중에 발표되었으며, 녹화 영상이 공개되면 꼭 시청해 보시길 권장합니다! 저는 사전에 AI Hub를 미리 사용해 볼 기회가 있었고, 커뮤니티와 함께 소개 글을 공유하고자 합니다. 세부 사항에 들어가기에 앞서, 여기 문서 링크가 있고, 여기 AI Hub를 다운로드할 수 있는 EAP 포털 링크가 있습니다. 현재 스탠드얼론 (standalone) 설치 키트 또는 컨테이너 (container) 이미지로 제공됩니다. 이것은 프리뷰 버전이며 공식 출시 전에 상당한 변경 사항이 있을 수 있음을 유의해 주세요. 운영 환경 (production) 용도로 설계되지 않았으므로 몇 가지 문제에 직면할 수 있습니다. 문제가 발생하면 Github 페이지에 이슈를 제기해 주세요!

Agents (에이전트)
적어도 저에게 가장 흥미로운 기능은 새로운 ObjectScript agents SDK였습니다. 이제 직관적인 SDK를 사용하여 ObjectScript에서 직접 에이전트와 도구 (tools)를 생성할 수 있습니다. 에이전트를 생성하는 방법은 간단합니다. XData INSTRUCTIONS 컴포넌트에 시스템 프롬프트 (system prompt)를 제공한 다음, 프로바이더 (provider), 모델 (model), 도구 (tools)를 설정하기만 하면 됩니다:

Class Sample.Agent Extends %AI.Agent {
/// LLM Model
Parameter MODEL = "gpt-5-nano";

/// 에이전트가 사용할 수 있는 Toolsets
Parameter TOOLSETS = "Sample.ToolSet";

/// System Prompt
XData INSTRUCTIONS [
    MimeType = text/markdown
] {
    # Sample Assistant
    You are a helpful assistant with access to a set of tools to interact with a database of people.
}

Method %OnInit() As %Status {
    // 환경 변수에서 API 키를 가져와 프로바이더 설정
    Set key = $System.Util.GetEnviron("OPENAI_API_KEY") // 또는 기타
    Set ..Provider = ##class(%AI.Provider).Create("openai", {"api_key": (key)})
    Return $$$OK
}

}

Tools (도구)
도구는 훨씬 더 만들기 쉽습니다. %AI.Tools를 확장하는 것만큼 간단하며, 그 이후에는 모든 메서드 (methods), 클래스 메서드 (class methods) 및 쿼리 (queries)가 에이전트가 사용할 수 있는 도구가 됩니다.

따라서 다음과 같이 작성할 수 있습니다:

Class Sample.Tools Extends %AI.Tool [dependsOn=Sample.Person] {

/// 데이터베이스에 사람을 추가하는 도구
Method AddPerson(name As %String, age As %Integer) As %Status {
    Set person = ##class(Sample.Person).%New()
    Set person.Name = name
    Set person.Age = age
    Set sc = person.%Save()
    Quit sc
}

/// 지정된 나이보다 어린 사람을 검색하는 데이터베이스 쿼리 도구
Query GetPeopleYoungerThan(age As %Integer) As %SQLQuery(ROWSPEC = "Name:%String,Age:%Integer") [ SqlProc ] {
    SELECT Name, Age From Sample.Person Where Age < :age
}

}

도구는 또한 툴셋 (toolsets)으로 구성할 수 있습니다. 이름에서 알 수 있듯이, 툴셋은 서로 다른 클래스의 많은 도구를 결합하고, 정규 표현식 (regex) 매칭을 통해 도구를 필터링하며, 정책 (policies)을 추가하고, IRIS 외부에서 정의된 MCP 서버를 사용할 수 있는 도구들의 집합입니다. 아래 예시에서는 위에서 정의한 Sample.Tools를 터미널에 도구 호출을 기록하는 정책 (%AI.Policy.ConsoleAudit) 및 사용자 정의 Python MCP 서버와 결합합니다.

Class Sample.ToolSet Extends %AI.ToolSet [DependsOn=Sample.Tools] {
    XData Definition {
        <ToolSet>
            <Description>Sample Toolset</Description>
            <Policies>
                <!-- 콘솔에 도구 호출을 기록하는 정책 -->
                <Audit Class="%AI.Policy.ConsoleAudit"/>
            </Policies>
            <!-- ObjectScript 도구 -->
            <Include Class="Sample.Tools"></Include>
            <!-- FastMCP로 생성된 Python MCP 서버 -->
            <MCP Name="PythonServer">
                <Stdio Executable="/usr/irissys/bin/irispython" Args="/home/irisowner/dev/src/Python/multiplication_mcp.py" />
            </MCP>
        </ToolSet>
    }
}

기타 ObjectScript 기능

매우 강력한 에이전트를 만들기 위한 멋진 기능들이 더 많이 있습니다. 여기에는 에이전트 스킬 (%AI.Agent.Skill) 지원, 서브 에이전트 (%AI.Agent.SubAgent)로의 작업 위임, 그리고 RAG (%AI.RAG)를 사용하여 지식 베이스 (knowledge bases)를 생성하기 위한 도구 등이 포함됩니다. 또한 도구 호출을 기록하거나 해당 호출의 허용 여부를 결정하기 위해 사용자 정의 감사 (audit) 또는 인증 (authentication) 정책을 생성할 수도 있습니다.

매우 멋진 기능 중 하나는 도구 (tools)와 도구 세트 (toolsets)가 상태 유지 (stateful)가 가능하다는 점입니다. 즉, 도구 호출 (tool calls) 사이의 상태를 유지한다는 의미입니다. 따라서 도구는 여러 번 호출될 수 있으며, 이전 도구 호출의 동작이 유지될 수 있습니다. 예를 들어, 파일을 한 번 열어두면 다음 도구 호출 시 그 내용이 '기억'될 수 있습니다. 이를 사용하려면 메서드 (methods)를 사용하여 도구를 정의하고 (클래스 메서드 (class methods) 대신), 속성 (attributes)을 프로퍼티 (properties)로 저장하십시오. 문서에 이에 대한 좋은 예시가 있습니다. 저는 한 달 넘게 AI Hub를 다뤄오고 있지만, 특히 고급 기능 측면에서 여전히 탐구해야 할 기능의 양에 압도되곤 합니다. 템플릿 (Template) 만약 AI Hub를 가지고 놀아보고 싶다면, 제가 Open Exchange에 개발 템플릿 (dev template)을 게시했습니다. 여기에는 AI Hub 컨테이너 (container)를 다운로드하고 빌드하는 방법에 대한 지침이 포함되어 있으며, 몇 가지 사전 로드된 샘플 클래스 (이 글에서 보셨을 수도 있는 것들)가 들어 있습니다. 여러분이 선택한 AI 에이전트 (AI agent)가 여러분보다 먼저 문서의 내용을 알기를 원할 경우를 대비해 몇 가지 에이전트 스킬 (agent skills)도 포함되어 있습니다! 심지어 MCP 서버 (MCP server)를 생성하며, 이에 연결하는 방법에 대한 지침도 제공합니다. 다음 편 (Next time) 다음 기사에서는 여러분의 에이전트 도구들을 MCP 서버로 패키징하여, 어떤 MCP 클라이언트 (MCP client)에서든 데이터에 직접 연결하는 방법을 보여드리겠습니다!

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0