AI 에이전트를 만들고 토큰·비용을 아끼는 데 도움이 되는 오픈소스 도구와 기법을 모읍니다.
실시간 음성 에이전트의 음성 인식 성능은 깨끗한 녹음 파일 하나로 평가하기 어렵다. 더 현실적인 테스트에는 달리는 차 안의 스피커폰 통화, 번호를 잘못 말한 뒤 바로 고치는 상황, 선풍기·TV·키보드·대기 음악이 섞인 침묵 구간이 들어가야 한다. 두 사람이 말을 끊고 겹치는 대화, 주소와 지역 이름처럼 틀리기 쉬운 고유명사, 긴 회의에서 시간표시와 화자 구분이 점점 어긋나는 상황도 필요하다. 다른 언어 문장 안에 영어 제품명이 섞이는 말, 화난 고객의 빠른 말, 큰 목소리 뒤에 작은 목소리가 나와 음량 조절이 흔들리는 경우도 포함된다. 마지막으로 음성 인식 결과가 의도 파악, CRM 또는 일정 입력, 요약으로 이어지는 에이전트 흐름까지 시험해야 한다. 평가 지표는 단어 오류율, 고유명사 오류율, 처음 쓸 만한 텍스트가 나오기까지 걸린 시간, 최종 문장이 안정되는 시간, 중간 문장이 다시 바뀐 횟수, 대화자 분리 오류, 시간표시 오류, 말이 없는데 말이 있다고 잘못 판단한 비율, p95 지연 시간, 전체 업무 성공률이다. Smallest AI Pulse 같은 실시간 음성 인식 API는 단순히 받아쓰기 품질만이 아니라 음성 에이전트의 실시간 입력층으로 따로 시험해야 한다.
CertLocker는 비밀값과 토큰을 관리하는 DevOps 제어판이며, 여기서는 MCP 에이전트 접근 권한을 더 좁게 나누는 방식이 핵심입니다. 실제 업무에서는 Claude와 MCP 에이전트가 보고서, 스크립트, 업무 절차, 캠페인 점검, 작은 자동화 작업을 처리할 수 있습니다. 문제는 여러 나라의 직원과 외주 인력이 함께 일할 때, 필요한 접근 권한을 보통 하나의 .env 파일에 몰아넣는다는 점입니다. 그 파일 안에는 AI 제공업체 키, 고객 광고 토큰, Search Console OAuth, 웹훅 비밀값, GitHub 토큰, 업무 절차 저장소 접근 정보가 함께 들어갈 수 있습니다. 한 사람이나 에이전트가 일을 하려면 이 파일 전체나 일부가 공유되고, 그러면 고객 A만 담당해야 할 외주 인력이 고객 B의 인증 정보까지 볼 수 있습니다. 업무 절차를 점검하는 에이전트도 원래 필요 없는 웹훅 비밀값이나 토큰에 접근할 수 있습니다. 범위를 제한한 MCP 토큰은 사람과 에이전트가 필요한 자원에만 접근하게 하려는 방법입니다.
서버 운영·보안 업무용 인공지능 에이전트 프로젝트에서 Strands를 먼저 썼고, AWS 환경에서는 시작이 매우 쉬웠다. 나중에는 동작을 더 세밀하게 조정하고 싶어서 LangGraph로 바꿨다. 이 에이전트의 역할은 로그를 보고 문제를 조사하는 것이다. 한 달 동안 시험한 결과, 같은 모델을 쓰면 두 도구의 결과는 거의 같았다. 차이는 주로 에이전트를 둘러싼 작업 방식과 조립 구조에 있었다.
로컬 장비에서 같은 에이전트 작업을 두 모델로 비교하자, 더 빨리 말하는 모델보다 덜 길게 생각하는 모델이 응답을 더 빨리 끝냈다. Qwen3.6-27B는 평균 1,856개의 사고 토큰을 썼고, ThinkingCap-27B는 평균 675개를 썼다. 정답 수는 확인 가능한 12개 답변 중 둘 다 10개로 같았다. 전체 응답 시간은 평균 30.1초에서 17.8초로 줄었고, 긴 추론이 필요한 요청에서는 최대 3.2배 빨라졌다. ThinkingCap-27B는 토큰을 내보내는 속도 자체는 더 느렸지만, 내보내는 토큰 수가 훨씬 적어서 총 시간이 줄었다. 별도 도구 호출 평가에서는 도구 이름을 맞히는 정확도가 0.089에서 0.179로 약 두 배가 됐다. 다만 모델 안에 저장된 배경지식을 떠올리는 평가는 0.236에서 0.194로 떨어져, 검색 없이 모델의 기억에 많이 기대는 에이전트에는 손해가 있을 수 있다.
AI 에이전트나 자동 작업이 중간에 멈춘 뒤 다시 실행되면 같은 일을 두 번 할 수 있다. 예를 들어 고객에게 두 번 결제하거나, 같은 이메일을 두 번 보내거나, 데이터베이스 기록이 꼬일 수 있다. 멱등성 키는 같은 제공자 안에서는 중복 처리를 줄여주지만, 호출이 시간 초과됐을 때 실제로 처리됐는지 모르는 상황까지 해결하지 못한다. Stripe 결제, 이메일 발송, 데이터베이스 쓰기처럼 여러 시스템이 함께 들어간 작업 흐름에서도 한계가 있다. 이를 줄이기 위해 오픈소스 npm 패키지가 만들어졌고, 위험한 호출을 감싸서 의도됨, 실행 중, 완료됨, 확인됨 같은 단계로 상태를 추적한다. 시간이 초과되면 바로 다시 시도하지 않고 실제 제공자 쪽 상태를 확인해 이미 처리됐는지 판단한다.
AI 에이전트를 MCP 서버와 내부 API에 연결할 때, 아직 많은 구성은 공유 자격 증명이나 오래 유지되는 자격 증명을 환경 변수에 넣어 쓰는 방식에 기대고 있다. 이런 방식에서는 특정 에이전트 하나가 잘못된 행동을 시작했을 때 그 에이전트만 바로 차단하기 어렵다. 실제로는 공유 자격 증명을 바꾸고 서비스를 다시 시작해야 할 수 있다. 또 문제가 끝난 뒤 해당 에이전트가 어떤 요청을 했고 어떤 데이터에 접근했는지 믿을 만하게 되짚어 볼 수 있어야 한다. 기존 IAM 관점에서는 개별 접근 차단, 최소 권한, 세션 종료, 감사 기록이 기본 기대치인데, 실제 AI 에이전트 운영에서도 이런 기준을 어떻게 맞추는지가 핵심이다.
Baseline은 AI 에이전트의 프롬프트를 감으로 고치는 문제를 줄이려는 베타 도구다. 프롬프트를 조금 바꾼 뒤 몇 개 답변만 보고 좋아졌다고 판단하면, 다른 작업에서는 품질이 조용히 나빠질 수 있다. 이 도구는 프롬프트를 소프트웨어처럼 회귀 테스트 대상으로 다룬다. 사용자는 정확도, 말투, 해결 여부처럼 중요한 기준을 쉬운 말로 쓰고, 각 기준의 비중을 정한다. 최적화 엔진은 프롬프트를 평가 데이터셋에 여러 번 돌려 점수를 매기고, 지시문을 다시 쓴 뒤 다시 점수를 매긴다. 소개된 예시에서는 출력 점수가 0.62에서 0.94까지 올랐다. 현재는 AI 에이전트를 실제로 만들고 고치는 사람들에게 제한 베타로 열려 있으며, 접근 코드는 직접 요청해야 한다.
Conduit은 여러 AI 앱이 같은 MCP 도구 서버를 한 번에 함께 쓰게 해 주는 로컬 게이트웨이다. Claude, Cursor, Codex 같은 앱마다 서버를 따로 설정하지 않고, 각 앱은 Conduit 하나만 바라보면 된다. 핵심은 지연 탐색이다. 모든 도구 설명을 매번 AI에게 보내는 대신, Conduit은 상태 확인, 도구 검색, 도구 호출용 메타 도구 3개만 먼저 보여 준다. 예시 기준으로 MCP 서버 3개와 도구 62개를 그대로 노출하면 질문 전부터 약 2만4000토큰이 들지만, Conduit 방식은 약 660토큰으로 줄어든다. 자체 벤치마크에서는 같은 성공률에서 전체 토큰을 최대 91% 줄였고, 도구 설명에 드는 토큰은 요청마다 97% 줄였으며, 실제 415개 도구 목록에서는 99.6%까지 줄였다고 제시한다. 인증 정보는 각 AI 앱 설정 파일에 넣지 않고 OS 키체인에 저장하며, 도구 변경 감지, 의심스러운 도구 격리, 프롬프트 주입 탐지, 도구 켜기·끄기, 호출 기록 같은 관리 기능도 제공한다.
내부 연구용 인공지능 에이전트는 작업 하나를 끝낼 때 대형 언어 모델을 약 40~60번 호출했다. GPT-4o만 쓸 때는 작업 하나당 추론 비용이 1달러를 넘었고, 많은 호출은 최종 답변이 아니라 경로 선택이나 정보 추출 같은 반복 작업이었다. Kimi K2.7, GLM 5.2, Qwen 3.7 max, DeepSeek V4-Pro를 같은 평가 세트로 각각 약 300번씩 시험했고, OpenAI 방식의 도구 호출 지시문을 그대로 썼으며 모델별 맞춤 조정은 하지 않았다. Kimi K2.7은 도구 호출에서 안정적이었고, 여러 도구를 동시에 부르는 경우와 스키마 준수도 큰 문제가 없었다. GLM 5.2는 6만~8만 토큰 정도의 긴 컨텍스트를 넣어도 크게 무너지지 않았다. Qwen 3.7은 부하가 걸릴 때 도구 인자를 객체가 아니라 문자열 형태의 제이슨으로 돌려주는 일이 있었고, 재시도 처리로 해결은 가능했지만 번거로웠다. 선택 항목이 많은 깊은 스키마에서는 모든 오픈소스 모델이 GPT-4o보다 약했고, 스키마를 단순하게 펴는 편이 낫다는 결론이 나왔다. 최종 구성은 도구 단계에 Kimi, 종합 정리에 GLM, 사용자에게 보이는 마지막 답변에만 GPT-4o를 쓰는 방식이었고, 작업당 비용은 약 1.10달러에서 약 0.35달러로 줄었다.
한 팀이 배포 때마다 GPT-4o를 평가자로 써서 프롬프트 변경을 자동 검사했다. 평가는 8개 기준으로 이루어졌고, 처음 3개월 동안은 눈에 띄는 품질 하락을 몇 번 잡아내며 효과가 있었다. 이후 기계학습 담당자가 특정 예외 상황을 고치려고 시스템 프롬프트를 바꿨고, 자동 평가는 8.7점이라는 높은 점수를 줬다. 하지만 실제 배포 뒤 약 3%의 사용자가 전혀 다른 출력 형식을 받는 문제가 생겼다. 평가 예시에 그 출력 형식이 없어서 평가자가 문제를 알아차리지 못했다. 원인은 모델 프롬프트는 PromptLayer에서 관리했지만, 평가자 프롬프트는 Notion 문서에서 따로 관리해 두 체계가 서로 어긋난 것이었다. 두 프롬프트를 같은 버전 관리 체계에 넣자, 적어도 배포 전 변화와 어긋남을 볼 수 있게 됐다. LangSmith와 Braintrust도 비슷한 관리 방식을 제공하지만, 자동 평가만으로 미묘한 품질 하락까지 모두 잡기는 어렵다.
Conduit는 여러 MCP 서버를 한곳에서 관리하는 로컬 게이트웨이다. Claude, Cursor, VS Code, Codex 같은 여러 인공지능 도구가 각각 서버를 따로 설정하지 않고 Conduit 하나만 바라보게 할 수 있다. 핵심은 모든 도구 목록을 매번 인공지능에게 넘기지 않는 방식이다. 예를 들어 MCP 서버 3개에 도구 62개가 있으면 질문을 하기 전부터 도구 설명만 약 2만4천 토큰을 쓸 수 있는데, Conduit는 이를 3개의 메타 도구로 줄여 약 660토큰만 쓰게 한다. 벤치마크에서는 같은 작업 성공률을 유지하면서 전체 토큰을 최대 91% 줄였고, 도구 설명 때문에 생기는 토큰 부담은 요청마다 97% 줄였다고 밝힌다. 실제 415개 도구 목록에서는 이 부담이 99.6%까지 줄었다. 인증 정보는 운영체제 키체인에 저장되고, 클라우드로 보내지 않는다. 도구 사용 범위 제한, 위험한 도구 숨기기, 호출 기록, 도구 설명 변조 감지, 외부 내용의 프롬프트 주입 표시 같은 보안 기능도 포함한다.
사내 보안 점검 과정에서 이미 만들어져 배포된 AI 에이전트들이 관리 없이 남아 있는 문제가 드러났다. 일부는 만든 사람이 다른 팀으로 옮긴 뒤에도 계속 실행되고 있었고, 담당자나 문서가 없었으며, 실제 운영 시스템에 접근할 수 있는 권한도 그대로 갖고 있었다. 핵심 문제는 도구가 부족한 것이 아니라 기본 질문에 답하지 못한다는 점이었다. 어떤 AI 에이전트가 고객 데이터에 접근할 수 있는지, 지금도 쓰이는지 아니면 버려졌는지, 문제가 생기면 새벽에 누구에게 연락해야 하는지 알 수 없었다. 이를 해결하려면 에이전트 등록부가 필요하고, 이 등록부는 검색 가능한 목록, 호출 권한 관리, 실행 로그, 사용량 지표를 함께 제공해야 한다. 네 가지 중 하나라도 빠지면 실제 관리 체계라기보다 보기 좋은 목록에 그칠 수 있다. 처음에는 내부에서 임시로 만들었지만, 계속 직접 유지하기 어렵다고 판단해 여러 제품을 검토했고, 결국 TrueFoundry의 에이전트 등록부를 선택했다.
한 소규모 법률 기술 팀이 공식 정부 공증인 시험의 실제 문제 2,700개 이상에 법적 근거를 자동으로 연결하려고 한다. 각 문제에는 정답만 있고, 어떤 조문이나 판례가 그 답을 뒷받침하는지는 들어 있지 않다. 목표는 수험생이 왜 그 답이 맞는지 이해하도록, 정답에 맞는 법률 문서를 전국 법령 전체에서 찾아 붙이는 것이다. 손으로 2,700개 문제를 모두 확인하기에는 양이 너무 많기 때문에, 먼저 검색 증강 생성 흐름으로 후보 근거를 자동으로 찾고 나중에 사람이 검증하는 방식이 제안됐다. 기술 구성은 Supabase와 pgvector에 법률 문서를 넣고, Cohere의 법률 임베딩 모델을 쓰며, BM25와 kNN을 함께 사용해 관련 문서를 찾는 구조다. 마지막 단계에서는 대형 언어 모델이 찾은 근거를 바탕으로 설명이나 인용을 만드는 역할을 맡는다. 이 시스템은 일반 암기 카드가 아니라, 수험생이 약한 법률 주제를 찾아 그 부분을 집중 연습시키는 학습 플랫폼에 들어갈 예정이다.
AI 에이전트에 쓰이는 메모리(기억 저장) 도구들이 사용자가 정정한 정보를 나중에 다시 예전 값으로 되돌리는 경우가 많다는 실험 결과다. 예를 들어 처음에 '지역은 프랑크푸르트'라고 말했다가 나중에 '아니, 오하이오야'라고 정정하면, 좋은 메모리 시스템은 이후 질문에 오하이오라고 답해야 한다. 문제는 그 다음이다. 공격이 아니라 그냥 사용자가 바뀐 걸 잊고 예전 값을 한 번 더 언급하거나, 긴 대화 중 우연히 예전 값이 한 줄 섞여 들어갔을 때, 죽은 값인 프랑크푸르트가 다시 살아나는 경우가 흔하다는 것이다. 원인은 코사인 유사도라는 방식이 '모순되는 정정'과 '단순 중복'을 잘 구분하지 못하기 때문이며, 한 논문에서는 이 구분 능력이 AUROC 0.59 수준(거의 동전 던지기 수준)으로 측정됐다고 인용한다. 실제로 정정된 값은 평범한 재진술보다 원래 값과 더 비슷하게 보이는 경우가 많아, 유사도 기반 저장소는 '프랑크푸르트가 다시 나왔다'는 것이 되살아난 죽은 값인지 구분할 신호가 없다. 이는 이론에 그치지 않는다. 메모리 오염(memory poisoning)은 2026년 실제로 논의되는 보안 이슈이며, OWASP 목록에도 올라 있고 MINJA라는 공격은 에이전트 메모리에 98.2% 확률로 주입에 성공한다고 보고됐다. 이를 확인하기 위해 정정 후 재진술, 답변 단위 평가, 표본 30개, 로컬 환경으로 작은 벤치마크를 직접 만들었다. '에코 저항력(echo-resistance)'은 정정된 값을 계속 유지하는 정도를 뜻하며 1.0이 좋은 점수다. 저자 본인이 만든 단순 키 기반 저장소는 보호 장치를 끈 상태에서 0.00점, 즉 완전히 실패했다 — 재진술이 가장 최근 쓰기이기 때문에 그게 그대로 이겨버린 것이다.
OpenAI가 오픈소스 소프트웨어의 보안 구멍을 찾고 고치는 프로그램인 Patch the Planet을 시작했다. 이 프로그램은 보안 회사 Trail of Bits와 함께 만들었고, HackerOne과 Calif도 협력한다. 참여하는 오픈소스 유지관리자는 무료 보안 상담을 받고, 취약점 찾기, 수정 코드 만들기, 코드 구조 개선, AI 보안 도구 도입을 지원받는다. OpenAI는 제한된 대상에게 제공하는 GPT-5.5-Cyber의 새 버전도 내놓았고, Codex Security 스캐너를 앱 플러그인으로 확대했다. GPT-5.5-Cyber는 CyberGym 벤치마크에서 85.6%를 기록해 Anthropic의 Mythos 5 점수 83.8%보다 높다고 공개됐다. Patch the Planet 참여자는 6개월 동안 ChatGPT Pro와 Codex Security를 무료로 받고, 코드베이스에 맞춘 에이전트와 작업 흐름 개선도 지원받는다. 초기 작업은 30개가 넘는 오픈소스 프로젝트에서 진행됐고, 수백 개의 버그가 발견된 것으로 전해졌다. Trail of Bits는 버그를 찾는 데만 시간을 쓰는 것이 아니라, 유지관리자가 계속 쓸 수 있는 에이전트를 코드베이스에 맞게 조정하는 데도 큰 비중을 둔다.
DeepSWE는 최신 인공지능 코딩 에이전트가 실제 소프트웨어 작업을 얼마나 잘 처리하는지 재기 위한 새 벤치마크다. 과제는 기존 커밋이나 풀 리퀘스트를 고친 것이 아니라 처음부터 새로 만들어져, 모델이 학습 중에 정답을 봤을 가능성을 줄였다. 과제 범위는 5개 프로그래밍 언어와 91개 저장소로 넓다. 입력 프롬프트는 SWE-bench Pro보다 약 절반 길이지만, 정답에는 5.5배 더 많은 코드와 약 2배 더 많은 출력 토큰이 필요하다. 검증기는 구현 방식의 세부 모양보다 소프트웨어가 실제로 올바르게 동작하는지를 확인하도록 사람이 직접 작성했다. DeepSWE는 오픈소스로 공개되어 누구나 저장소에서 확인하고 사용할 수 있다.
AI 기능을 고칠 때 자동 평가가 통과해도 바로 합치는 팀만 있는 것은 아니다. 많은 팀은 여전히 트레이스, 프롬프트, 검색 방식 변경, 운영 지표를 직접 살펴본 뒤 풀 리퀘스트를 승인한다. 핵심 쟁점은 자동 평가가 실제 서비스 품질과 위험을 충분히 보여 주는지다. 자동 평가가 놓치는 부분으로는 답변 흐름, 자료를 가져오는 방식의 변화, 실제 사용 중 성능 변화, 예상하지 못한 실패 사례가 있을 수 있다. 그래서 자동 평가를 통과한 뒤에도 사람이 무엇을 추가로 확인해야 하는지가 중요한 운영 문제로 남아 있다.
AI 기능 변경은 일반 코드 변경보다 판단이 어렵다. 프롬프트, 모델, 검색 증강 생성 파이프라인, 에이전트 작업 흐름, 도구 연동이 바뀌면 지속적 통합과 자동 평가를 통과해도 운영 환경에서 안전하다고 단정하기 어렵다. 병합 전에는 어떤 증거를 봐야 하는지, 깃허브, Langfuse, LangSmith, Promptfoo, 대시보드, 로그 같은 도구를 어떻게 함께 확인해야 하는지가 핵심이다. 가장 큰 위험은 평가를 통과한 변경이 실제 사용자 환경에서 다르게 행동할 수 있다는 점이다. 표준 절차를 가정하기보다, 팀들이 실제로 어떤 검토 흐름으로 배포 여부를 판단하는지가 중요해진다.
Wisp는 작업 중인 앱을 떠나지 않고 원하는 거대 언어 모델을 바로 부를 수 있는 무료 오픈소스 앱이다. 단축키로 작은 창을 열고, 원하는 작업을 고르면 답이 그 창에 바로 흘러나온다. 선택한 글, 클립보드, 현재 앱, 브라우저, 문서, 화면 캡처 조각을 문맥으로 넣을 수 있고, 필요한 문맥만 고를 수 있다. 답을 원래 입력칸에 다시 붙여 넣는 기능도 있다. 음성으로 질문하거나 받아쓰기를 할 수 있고, 로컬 또는 선택형 클라우드 음성 출력도 지원한다. 온라인 제공업체뿐 아니라 Ollama, LM Studio 같은 로컬 OpenAI 호환 엔드포인트도 쓸 수 있다. MCP 클라이언트와 문맥 서버를 지원하며, 긴 대화용 전체 채팅 창과 격리된 Python 추가 기능도 포함한다. 프로젝트 운영 서버나 저장소가 없고, 설정·대화·선택형 메모리는 사용자 기기에 남으며, API 키는 운영체제 키체인에 저장된다.
JAS RAG는 검색 보강 생성(RAG)을 실험하기 위한 작고 단순한 로컬 도구다. 마크다운 문서를 문서와 청크로 나누어 색인하고, 모든 데이터를 SQLite에 저장한다. 검색은 SQLite FTS5의 단어 검색으로 처리하며, 찾은 청크를 대형 언어 모델에 넣기 좋은 문맥으로 정리한다. 임베딩, 벡터 데이터베이스, 재순위화 도구, 외부 서비스 연결, 서비스 접속키 없이 동작한다. 기본 흐름은 작은 문서 폴더를 색인하고, 몇 가지 질문을 실행한 뒤, 상위 1개와 상위 3개 검색 결과가 맞는지 확인하는 방식이다. 검색된 청크를 직접 눈으로 본 다음, SQLite FTS5로 부족하다는 평가 결과가 있을 때만 벡터 검색을 추가한다. 완성형 서비스나 운영용 프레임워크가 아니라, 로컬에서 검색 품질을 먼저 확인하는 최소 기준선에 가깝다.
AI 에이전트가 여러 앱과 서비스에서 사람 대신 일을 처리하기 시작하면서, 누가 책임지는지 확인하는 일이 더 중요해지고 있다. 자동화를 모두 막는 것이 목표가 되어서는 안 된다. 플랫폼은 정상적인 에이전트 활동과 악의적인 이용을 구분할 수 있어야 한다. 또한 에이전트가 무엇을 해도 되는지, 어떤 권한을 받았는지 알아야 한다. 위험한 행동이 감지되면 그 에이전트 뒤에 있는 실제 책임자를 확인할 수 있어야 한다.
OpenScience는 과학 연구를 목표 단위로 맡길 수 있는 오픈소스 AI 작업대다. 목표를 주면 논문을 찾고, 가설을 세우고, 코드를 작성해 실행하고, 실험을 돌리고, 결과를 정리하는 흐름을 한 작업 공간에서 이어 간다. 기본 연구 에이전트와 생물학, 물리학, 기계학습 전문 에이전트가 있으며, 비판 검토와 문헌 검토용 보조 에이전트도 있다. 290개가 넘는 기술 묶음이 들어 있어 모델 학습, 평가, 데이터셋 작업, 분자·임상 생물학, 화학정보학, 논문 작성, 그림 생성, 클라우드 계산 작업을 다룰 수 있다. UniProt, PDB, Ensembl, ChEMBL, PubChem, arXiv, OpenAlex, Semantic Scholar 등 과학 데이터베이스를 에이전트가 직접 조회할 수 있다. 브라우저 작업 공간에는 파일 목록, 편집기, 터미널, 세션 기록, 분자·유전체·그래프 표시 기능이 들어 있다. Anthropic, OpenAI, Google 및 여러 제공사의 모델을 쓸 수 있고, 사용자는 자기 API 키를 넣거나 Atlas라는 유료 관리형 모델 지갑을 선택할 수 있다. OpenScience는 로컬 서버로 실행되며, 에이전트가 격리되어 있지는 않으므로 더 강한 안전 분리가 필요하면 컨테이너나 가상머신에서 돌리는 편이 낫다.
FastMCP 3로 실제 서비스에 쓸 수 있는 MCP 서버를 만들 수 있다. 핵심 구성은 JWT 인증, 사용자 그룹별 도구 숨김, 감사 로그, 파일 공유용 S3 서명 URL이다. JWT 인증은 허가된 사용자만 서버를 쓰게 하는 장치다. 사용자 그룹별 도구 숨김은 사람마다 볼 수 있는 기능을 다르게 제한한다. 감사 로그는 누가 어떤 작업을 했는지 남긴다. S3 서명 URL은 파일을 직접 공개하지 않고, 제한된 접근 링크로 전달하는 방식이다.
CLAUDE.md 파일이 AI 에이전트를 더 예측 가능하게 쓰기 위한 작업 규칙으로 만들어졌다. 핵심 원칙은 두 가지다. 첫째, 에이전트의 행동, 맡은 일, 확인 절차, 다음 작업자에게 넘길 내용을 최대한 분명히 적는다. 둘째, 작업 세션이 바뀌거나 다른 에이전트에게 일을 맡겨도 프로젝트 문맥이 끊기지 않게 한다. 포함된 안내는 프로젝트 지식 관리, 모델 라우팅, 워크트리, 검증, 작업 기록, 다중 에이전트 인수인계에 걸쳐 있다. 실제 워크플로에 적용해 보고, 무엇이 효과적이었는지와 무엇이 과했는지에 대한 피드백을 받는 것이 목표다.
운영 중인 AI 에이전트를 안정적으로 굴리려면 보통 한 가지 도구만으로는 부족하다. 실행 기록과 평가에는 LangSmith, Langfuse, Arize Phoenix가 자주 쓰이고, 이 영역에서는 모두 쓸 만한 선택지로 평가된다. 위험한 호출을 실행 전에 막는 실행 중 안전장치는 선택지가 훨씬 적어서 LLM Guard, NeMo, Lakera 같은 별도 라이브러리를 붙이는 경우가 많다. 모델을 어디로 보낼지 정하고, 실패 시 다른 모델로 넘기고, 모델이 어떤 도구를 쓸 수 있는지 제한하는 관문 역할도 따로 필요하며, LiteLLM 같은 외부 라우터가 자주 쓰인다. 그래서 실제 구성은 실행 추적과 평가 도구 하나, 안전장치 라이브러리 하나, 앞단 관문 하나로 나뉘는 경우가 많다. 문제는 이 도구들이 같은 실행 식별자를 공유하지 않아 장애가 나면 여러 화면에서 시간대를 맞춰 같은 실행을 다시 찾아야 한다는 점이다.
RAG 프로젝트에 이미 여러 고급 검색 기능이 들어가 있다. 키워드로 찾는 BM25와 의미가 비슷한 내용을 찾는 vector search를 함께 쓰고, Reciprocal Rank Fusion으로 두 검색 결과를 섞는다. Cohere reranking으로 검색 결과의 순서를 다시 매기고, HyDE query expansion으로 사용자의 질문을 더 잘 찾히는 형태로 넓힌다. 저장된 검색 색인을 계속 유지하고, 새 문서만 추가로 반영하며, 답변에 출처를 붙인다. 또 근거 없는 답을 하지 않는다는 정책도 포함되어 있다. 남은 핵심은 이런 기능만으로 실서비스 수준이라고 볼 수 있는지, 일반적인 RAG 과제와 차별화하려면 무엇을 더 갖춰야 하는지다.
AI 에이전트가 작업을 처리한 뒤 시스템 안의 여러 자료를 결과로 돌려줄 수 있다. 각 자료에는 내부 ID가 있지만, 이 ID를 사용자에게 보이는 답변에 그대로 넣을 수 없는 상황이 있다. 그래도 사용자가 다음 말에서 “3번을 자세히 보여줘”처럼 이전 답변의 순번을 가리키면, 에이전트는 그 순번이 어떤 실제 자료를 뜻하는지 찾아야 한다. 핵심은 여러 번 이어지는 대화에서 화면에 보인 순번, 숨겨진 내부 ID, 실제 자료를 안정적으로 연결해 두는 방법이다. 예시는 “내 상위 X개를 보여줘”라는 요청 뒤에 사용자가 “3번을 자세히 알려줘”라고 묻는 흐름이다.
챗봇의 뒤쪽 데이터가 API를 통해 5분마다 새로 바뀐다. 데이터 양이 커서 매번 전체 내용을 LLM에 보내면 토큰이 많이 들고 비용도 커진다. 일반적인 RAG 방식도 데이터가 너무 자주 바뀌면 오래된 내용을 가져오거나 다시 색인하는 부담이 생길 수 있다. 필요한 구조는 사용자의 질문에 맞는 작은 데이터만 골라 가져오고, 필요한 경우 데이터베이스 검색, 벡터 검색, 캐시, 도구 호출, 질문 계획을 함께 쓰는 방식이다. 기업 환경에서는 자주 바뀌는 큰 데이터를 어떻게 안정적으로 연결할지가 핵심 문제다.
여러 달 동안 관찰된 문제는 대형 언어 모델이 도구를 쓰기 전에 하겠다고 말한 방식과 실제 도구 호출에서 실행한 방식이 자주 달라진다는 점이다. 결과는 비슷하게 나올 수 있지만, 모델이 약속한 절차와 실제 실행 절차가 맞지 않는다. 예로 GLM은 편집기 내용을 바꾸기 위해 작은 Lisp식 표현을 쓰는 ‘변환 방식’을 쓰겠다고 했다. 하지만 실제로는 차이점 묶음인 diff를 만든 뒤 그것을 적용했다. 이런 행동은 GLM만의 문제가 아니며, Claude Sonnet과 Claude Opus에서도 비슷한 사례가 관찰됐다.
관심 대상은 잠깐 만든 시제품이 아니라 실제 일상 업무나 개인 생활에서 계속 돌아가는 자동화, AI 에이전트, 반복 작업 흐름이다. 사례는 코드베이스나 GitHub에서 실제로 실행되고 있어야 하며, 구체적인 불편을 줄여야 한다. 범위는 기계학습, 거대언어모델, 스크립트, 배포 자동화, 개발 도구, 집 안 자동화, 지식 관리까지 넓다. 핵심은 무엇을 만들었는지, 어떤 문제를 풀었는지, 시간이 지나도 계속 쓸 만큼 안정적이었는지다.