비밀 관리
에이전트는 tai tool CLI를 사용하여 런타임에 사용자가 구성한 비밀을 읽을 수 있습니다.
비밀은 저장 시 AES-256-GCM으로 암호화되며, 읽을 때만 복호화됩니다.
사용 가능한 도구
| 도구 | 설명 |
|---|---|
secret_list | 비밀 이름과 설명 나열 (값은 표시되지 않음) |
secret_read | 이름으로 단일 비밀 값 읽기 |
사용법
Bash
# 사용 가능한 비밀 나열
tai tool secret_list
# 비밀 읽기
TOKEN=$(tai tool secret_read '{"name": "GITHUB_TOKEN"}' | jq -r '.value')
git clone "https://${TOKEN}@github.com/org/repo.git"
Node.js
const { execSync } = require("child_process");
function readSecret(name) {
const raw = execSync(
`tai tool secret_read '${JSON.stringify({ name })}'`,
{ encoding: "utf-8" }
);
return JSON.parse(raw).value;
}
const token = readSecret("GITHUB_TOKEN");
Python
import json
import subprocess
def read_secret(name: str) -> str:
result = subprocess.run(
["tai", "tool", "secret_read", json.dumps({"name": name})],
capture_output=True, text=True, check=True,
)
return json.loads(result.stdout)["value"]
token = read_secret("GITHUB_TOKEN")
PowerShell
function Read-Secret {
param([string]$Name)
$json = @{ name = $Name } | ConvertTo-Json -Compress
$result = tai tool secret_read $json | ConvertFrom-Json
return $result.value
}
$token = Read-Secret -Name "GITHUB_TOKEN"
보안 규칙
- 비밀 값을 절대 출력하거나 기록하지 마십시오 — stdout, stderr 또는 로그 파일에 비밀을 작성하지 마십시오.
- 비밀을 파일에 절대 작성하지 마십시오 — 예외: SSH 키는
~/.ssh/에chmod 600권한으로 작성할 수 있습니다. - 비밀을 LLM에 절대 보내지 마십시오 — 비밀 값은 프롬프트 내용, 시스템 메시지 또는 모델에 전달되는 도구 호출 결과에 나타나서는 안 됩니다.
- 범위 격리 — 비밀은 사용자별, 에이전트별로 범위가 지정됩니다. 에이전트는 자신을 위해 구성된 비밀에만 접근할 수 있습니다.
- 감사 추적 — 모든
secret_read호출은 호출자 신원과 함께 감사 추적에 기록됩니다.