진행 기간: 2026.09–2026.10 (이번에 확인한 관련 커밋 범위) 개인용 AI 비서 FOS Assistant와 업무별 도구 모음 FOS Agents를 개발하면서, 모델에 보낼 기억과 도구를 실행할 권한을 애플리케이션에서 관리했다. 회사 업무와 별개의 개인 프로젝트이며, 오픈소스 Hermes를 실행 엔진으로 활용한다. Hermes core의 추론과...
진행 기간: 2026.09–2026.10 (이번에 확인한 관련 커밋 범위)
개인용 AI 비서 FOS Assistant와 업무별 도구 모음 FOS Agents를 개발하면서, 모델에 보낼 기억과 도구를 실행할 권한을 애플리케이션에서 관리했다. 회사 업무와 별개의 개인 프로젝트이며, 오픈소스 Hermes를 실행 엔진으로 활용한다. Hermes core의 추론과 기본 도구 실행을 직접 만든 기능으로 세지 않는다.
ContextAssembler.assemble은 요청자의 접근권한과 에이전트가 받을 수 있는 기억 범위를 확인한 뒤 문맥을 구성한다.
공통 지침, 개인 사실, 질문 관련 기억과 제목 색인을 각 용도에 맞게 담는다.
긴 본문이 전체 예산을 차지하면 다른 기억의 번호까지 사라지므로 제목 색인 몫을 먼저 남긴다.
본문을 넣지 못해도 에이전트가 memory_read로 추가 조회할 수 있게 하려는 선택이다.
이 예산은 maxChars에 따른 문자 수 기준이다.
모델별 실제 토큰 수를 정밀하게 제한하는 기능으로 해석하지 않는다.
ContextAssemblerTest와 ContextAssemblerHybridTest 등에서 조립과 선택 경로의 검사 소스를 확인했으며, 이번 문서 보강에서는 Java 테스트를 재실행하지 않았다.
ConnectorPolicyService는 도구의 연결·실행 소유권과 정책을 확인하고 승인이 필요한 호출을 PENDING으로 저장한다.
ConnectorActionService가 승인 후 별도 경로에서 실행을 진행한다.
Python 플러그인의 hermes/plugins/fos-ctx/connector_policy.py도 정책 질의가 정상 응답을 주지 않거나 실행 맥락을 확인할 수 없으면 호출을 차단한다.
모델이 승인 문구를 생성했다는 사실만으로 외부 실행을 허용하지 않는 구조다.
FOS Agents의 커리어 도구에서는 결과를 알 수 없는 실행을 재전송할 때 새 승인을 받을 수 있도록 재시도 식별자를 응답 계약에 포함했다.
career-os/plugin/src/interview.test.ts는 설명 문구에 식별자 이름이 있는지만 보던 검사를 실제 오류 응답 필드 검사로 바꿨다(c134bb94, 2026.10.13).
테스트 이름과 설명이 맞아도 실제 데이터 계약을 검사하지 않으면 결함을 놓칠 수 있다는 사례다.
AgentDelegationService에는 요청자·기준 실행 확인, 같은 호출 판별과 동시 실행 한도를 검사하는 경로가 있다.
AgentDelegationServiceRaceTest는 경합을 다루는 테스트이고, 현재 루트별 잠금은 JVM 안에서 동작한다.
서버 여러 대에서 같은 제한을 보장한다고 주장하지 않는다.
선제 확인 기능은 ProactiveCheckService와 시간 제한·복구·준비 상태를 다루는 테스트 소스에서 확인했다.
이 사실만으로 사용자에게 필요한 개입을 정확히 선별하거나 실제 생활에서 유용성을 검증했다고 말할 수는 없다.
이번 확인에서는 실제 모델 호출과 장기 사용자 평가를 수행하지 않았다.
본인 명의 커밋 30c6e5a3c, e5330e3e9, 33369b040(2026.10.17)에서 승인·대화·선제 확인 기능의 구조 정리를 확인했다.
구조 정리 커밋만으로 각 기능의 최초 설계와 전체 구현을 본인이 단독 수행했다고 단정하지 않는다.
30c6e5a3c와 FOS Agents의 c134bb94에는 AI 에이전트 공동 작성 표기가 있다.
제품의 문맥·승인 경계와 연결 도구를 개발한 개인 프로젝트 기록이며, 오픈소스 기여와 AI의 구현 보조를 구분해 읽어야 한다.
기억을 많이 보내는 것보다 필요한 기억에 접근할 길을 남기고, 도구 호출을 잘 생성하는 것과 호출 권한을 판정하는 일을 분리하는 데 초점을 뒀다.