도구 호출 범위(Tool-call scoping)를 어떻게 관리하시나요?
How are you handling tool-call scoping?
핵심 요약
에이전트 도구 호출에 대해 감사 가능하고 위변조 방지가 되는 서명 시스템을 구축하고 공유함.
- 감사 요구사항 — 로그만으로는 부족한 감사팀을 위해 위변조 방지 서명 시스템 구축
- Agentmint CLI — LangGraph, CrewAI, MCP 코드베이스에서 도구 호출을 자동으로 스캔
- 입력값 해싱 — 감사 시 민감 정보 노출 없이 도구 호출의 입력값 검증 가능
- 권한 분리 — 읽기/쓰기 도구를 분리하여 권한 범위를 명확하게 관리
진지한 질문입니다. 외부 시스템(S3 쓰기, API 호출, 데이터베이스 변경)과 상호작용하는 도구를 사용하는 LangGraph 에이전트를 배포할 때, 에이전트가 무엇을 하도록 승인받았는지 사후에 어떻게 증명하시나요?
컴플라이언스 팀과 계속 논의 중인데, 그들이 계속 거부하는 답변은 "로그가 있다"는 것입니다. 그들은 Splunk의 행 데이터가 아니라 서명되고, 위변조 방지가 되며, 독립적으로 검증 가능한 무언가를 원합니다.
그래서 저는 도구 호출 경계에 위치하는 계층을 만들었습니다. 도구가 실행되기 전에 범위 지정 권한을 확인하고 모든 허용/거부에 대해 Ed25519 영수증에 서명합니다. 감사인은 벤더 소프트웨어나 대시보드 로그인 없이 openssl만으로 검증할 수 있습니다.
이곳에 계신 분들께 유용할 만한 부분은, LangGraph 코드베이스를 스캔하여 모든 @tool, ToolNode, 그리고 Agent(tools=[...])를 자동으로 찾아내는 CLI를 방금 출시했다는 점입니다:
Found 21 tool calls across 6 files — 3 need a closer look.
These 3 tools can change things outside your app:
→ write_file mcp_real_demo.py:143
→ send_notification demo_open_ai_receipts.py:121
They'll start in audit mode (log only). Tighten later.
✓ 7 read-only tools — safe defaults applied.
프레임워크를 혼합해서 사용하는 경우 CrewAI, OpenAI Agents SDK, MCP도 지원합니다.
pip install agentmint && agentmint init .
GitHub: https://github.com/aniketh-maddipati/agentmint-python
다른 분들은 이 문제를 어떻게 해결하고 있는지 궁금합니다. 혹시 감사인이 LangSmith 트레이스를 컴플라이언스 증거로 실제로 받아들인 적이 있나요?
