Agent¶
examples/agent.ipynb는 PhysiCar AI 서비스 위에 AI 에이전트 둘을 만듭니다 —
chat(텍스트)과 realtime(음성). 둘은 하나의 두뇌를 공유합니다:
examples/assets/agent/web/prompt.js에 정의된 지시문과 로봇 도구 8종. 주행하라고,
둘러보라고, 라이다를 읽으라고, 음악을 틀라고 말해 보세요 — 모든 AI 에이전트의 심장인
LLM 도구 호출 루프가 내 로봇을 상대로 도는 것을 보게 됩니다. 로직은 브라우저에서
돌고, 노트북의 Python은 페이지를 서빙만 합니다.
노트북 구성¶
| 섹션 | 하는 일 |
|---|---|
| 0. The brain | INSTRUCTIONS와 도구 8종 — drive, look, sleep, camera, lidar, states, music_search, music_player — 해설. 여러분이 고치는 부분입니다 |
| 1. Chat | POST /chat 프로토콜 — 요청마다 함께 보내는 프롬프트, 스트리밍 응답, 도구 호출 루프 — 그리고 MYAPP 탭의 작은 메신저 UI |
| 2. Realtime | 실시간 음성 프로토콜 — 마이크가 올라가고 목소리와 도구 호출이 내려옵니다 — 그리고 음성 UI |
실행¶
examples/agent.ipynb를 열고 Python 3 (PhysiCar AI) 커널을 선택하세요.- 0번 섹션을 실행한 뒤, 원하는 에이전트의 실행 셀 — chat(1.2) 또는 realtime(2.2) — 을 실행하세요.
app.physicar를 열고 App 페이지에서 로그인하세요 — 에이전트는 내 계정으로 돌아갑니다. MYAPP 탭으로 이동하고, realtime이라면 브라우저의 마이크 허용 요청을 수락하세요.- 말하거나 입력하세요: "앞으로 가", "뭐가 보여?", "주변에 뭐 있어?", "음악 틀어줘".
로봇을 향한 모든 도구는 로봇의 로컬 Web API를
호출하므로, 같은 에이전트가 시뮬레이터와 실물 키트에서 그대로 돌아갑니다
(music_search만 예외 — 인터넷의 iTunes 검색 API를 조회합니다).
고쳐보기¶
INSTRUCTIONS는 에이전트의 인격입니다 — 기본으로 0.5 m/s로 부드럽게 몰고, 멈추라는
말에 즉시 멈추는 이유가 여기 있습니다. 노트북에서 고치고, 셀을 다시 실행하고, MYAPP
탭을 새로고침하세요.
TOOLS의 각 항목은 설명, 파라미터, run() 함수입니다. 모델은 설명을 읽고 도구를
언제 부를지 결정합니다 — 설명을 잘 쓰는 것이 곧 프로그래밍입니다. 항목 하나의
모양을 복사해 아홉 번째 도구를 추가하면 모델이 알아서 발견합니다. 해볼 것들:
- 새 인격 — 해적, 레이싱 코치, 다른 언어.
sleep이 단발 명령을 시간 시퀀스로 바꾸는 것을 보세요: "2초 달리고 멈춰"가drive→sleep→drive가 됩니다.camera도구는 사진을 대화 안으로 돌려줍니다 — "뭐가 보여?"가 동작하는 원리입니다.
VS Code의 PHYSICAR AI 채팅 패널이 정확히 이 chat API로 말합니다 — 이 노트북을 마치면 그 안에서 무슨 일이 벌어지는지 알게 됩니다.
주의
- 에이전트는 크레딧으로 과금됩니다 — chat은 턴마다, realtime은 세션마다. 음성 세션을 혼잣말하게 열어 두지 마세요.
- 앱은 MYAPP 탭(
/myapp/)으로 여세요. 5000 포트로 직접 열면 로그인 주입도 로봇 API 라우팅도 없습니다. - 마이크는 페이지가 열리는 순간부터 켜져 있고, 버튼은 음소거 토글입니다. 목소리가 안 들리면 페이지를 한 번 클릭하세요(브라우저 자동재생 정책).
- 도구는 도(degree), Web API는 라디안 — 변환은
run()이 합니다. 직접 도구를 만들 때 단위를 섞지 마세요.
🛠 미션: INSTRUCTIONS로 새 인격을 입히고, 아홉 번째 도구를 추가해 보세요 —
drive와 sleep으로 만드는 댄스 동작이 좋은 첫 도구입니다.
더 알아보기
에이전트의 도구 호출 원리 → 에이전트 & 도구 호출. 그 뒤의 모델 → AI & LLM. chat 프로토콜 전체 → Chat API 명세.