인셔셔RSS 관심 있는 블로그, 뉴스, 기술 정보를 효율적으로 추적하고 읽으세요
원문 읽기 InertiaRSS에서 열기

추천 피드

博客园 - 司徒正美
V
V2EX
T
Tailwind CSS Blog
有赞技术团队
有赞技术团队
aimingoo的专栏
aimingoo的专栏
Apple Machine Learning Research
Apple Machine Learning Research
IT之家
IT之家
Blog — PlanetScale
Blog — PlanetScale
A
About on SuperTechFans
月光博客
月光博客
T
The Blog of Author Tim Ferriss
宝玉的分享
宝玉的分享
Martin Fowler
Martin Fowler
博客园 - 聂微东
The GitHub Blog
The GitHub Blog
V
Visual Studio Blog
WordPress大学
WordPress大学
酷 壳 – CoolShell
酷 壳 – CoolShell
Engineering at Meta
Engineering at Meta
GbyAI
GbyAI

博客园 - iTech

7万星的AI交易框架:让大模型模拟投行多空辩论,自动做交易决策 71000颗星的AI交易团队:让大模型模拟投行分工,自动做交易决策 13400颗星的开源项目:输入一句话,AI全自动帮你做短视频 102颗星的沙盒:当AI学会自己写代码、跑测试、做部署 AI 技术日报 - 2026-05-08 29k 星的 PageIndex:不用向量数据库,靠推理就能做 RAG 每天花两小时刷信息?这个开源项目帮你全自动搞定 读源码像读小说?试了 DeepWiki 和 Zread,我再也不想裸读 GitHub 了 Matt Pocock 开源的这套 .claude 技能,为什么让工程师集体上头? Cursor Team Kit:Cursor 官方团队在用的 17 个 AI 工作流 AI 技术日报 - 2026-05-07 AI 技术日报 - 2026-05-06 - iTech AI 技术日报 - 2026-05-05 Anthropic CEO 说 12 个月内程序员要失业,我扒完他的底牌,发现事情没那么简单 把工程师的肌肉记忆装进 Claude Code,这个 4300 Star 的项目我后悔没早用 AI 技术日报 - 2026-05-04 AI 技术日报 - 2026-05-03 AI 技术日报 - 2026-05-02 六大 Agent 框架横评:谁支持 Skills?谁能自动创建 Agent?MCP 呢? Wechatsync:一个 Chrome 插件,一键把文章同步到 31 个平台 LangChain 开源了 Open SWE:Stripe、Ramp、Coinbase 内部都在造的编程 Agent Cockpit:把 Claude Code 从终端里搬出来,装进浏览器 Cursor 把自家的 AI Agent 开放了:写几行 TypeScript 就能调 Cursor 干活 AI 技术日报 - 2026-05-01 AI 写代码每次结果都不一样?Archon 用 YAML 工作流把 AI 编程变成流水线 AI 写代码比你快了,但你还是得学编程——只不过学法得换 腾讯的龙虾特工队:4 个 AI Agent 同日更新,全家桶正式成型 Agno 不做更聪明的 Agent,它要把所有 Agent 框架包进同一个操作系统 Hermes Agent 终于有了像样的 Web 界面,而且还支持远程访问 Datawhale 出了一套 29 学科知识地图,把 AI 的底牌全掀了 Hermes Agent 在聊天框里就能用的 20 种高级功能 一份 AGENTS.md 能顶一次模型升级?Augment Code 用数据说了算 NVIDIA 开源了一个「AI 沙箱」,20K Star,让 Agent 跑代码不再裸奔 60ms 冷启动、5MB 内存:腾讯开源的这个沙箱让 Docker 安全隔离像笑话 AI 技术日报 - 2026-04-30 AI 技术日报 - 2026-04-29 AI 技术日报 - 2026-04-28 Goose:Linux 基金会亲儿子,能撼动 Claude Code 和 OpenCode 吗? AI 技术日报 - 2026-04-27 AI 技术日报 - 2026-04-26 Google 把价值20美元/月的东西免费了,102K人已经抢到了 OpenClaw 和 Claude Code 网络搜索配置指南 AI 技术日报 - 2026-04-25 Anthropic 为什么遥遥领先:从 Cat Wu 专访看AI霸主的底层逻辑 Mac 本地跑大模型完全指南:你的苹果电脑就是 AI 工作站 同样 70B 参数,为什么 MoE 只激活 13B 就能打平 Dense? DeepSeek-V4 技术报告里藏着一条线:华为昇腾 NPU 已完成推理验证 DeepSeek-V4 深夜炸场:1M 上下文、384K 输出、双模型,API 定价直接卷到底 MacBook Air 跑大模型实测:Ollama、llama.cpp、LM Studio 谁才是本地推理之王? AI 技术日报 - 2026-04-24
Hermes Agent Microsoft Teams에 연결하는 전체 가이드: 6단계로 AI Agent를 그룹 채팅에 추가하세요
iTech · 2026-05-24 · via 博客园 - iTech

Hermes Agent(GitHub 164k star)은 단순히 터미널에서의 코딩 보조 도구가 아닙니다. 그의 메시지 게이트웨이를 통해 Agent는 24개의 메시지 플랫폼——Telegram, Discord, Slack, WeChat, Lark, DingTalk, Microsoft Teams 등에 연결될 수 있습니다. 한 플랫폼에서 구성한 Agent의 기능(Skills, 도구 호출, 승인 프로세스)은 모든 플랫폼에서 일관되게 사용됩니다.

이 글은 Microsoft Teams 연결 방법에 초점을 맞추고 있습니다: 6단계로 AI Agent 로봇을 Teams 채팅방에 표시하는 방법.

이 글에서 다루는 내용은

  • Hermes Agent + Teams 아키텍처
  • 6단계 연결 프로세스
  • 인터랙티브 승인 카드
  • 회의록 자동 전송
  • 운영 환경 배포
  • 보안 구성

아키텍처

Teams 群聊 ←── HTTPS Webhook ──→ Hermes Gateway (端口 3978) ←──→ Agent + LLM

와 Slack의 Socket Mode는 다르며, Teams은 공공 HTTPS Webhook을 통해 메시지를 푸시합니다. 당신의 Hermes 인스턴스는 공공 인터넷에 접근 가능한 엔드포인트가 필요합니다 - 로컬 개발용 터널링 도구, 생산 환경용 실제 도메인입니다.

메시지 트리거 규칙

시나리오 동작
개인 메시지 (1:1) 메시지마다 Agent가 응답하며, @필요 없음
그룹 채팅 @로봇일 때만 응답
채널 @로봇일 때만 응답

팀즈는 @mention을 <at>BotName</at> 태그로 전달하고, Hermes가 자동으로剥离 후 처리합니다.

6단계로

1단계: Teams CLI 설치

Microsoft의 @microsoft/teams.cli 자동화 Bot 등록, Azure Portal 없이 사용 가능:

npm install -g @microsoft/teams.cli@preview
teams login

로그인을 검증하고 AAD Object ID를 얻으세요(후에 흰 목록 설정에 사용):

teams status --verbose

2단계: Webhook 포트 노출

팀즈는 localhost로 메시지를 전송할 수 없습니다. 로컬 개발에는 터널링 도구가 필요합니다:

# Microsoft devtunnel(推荐,URL 持久)
devtunnel create hermes-bot --allow-anonymous
devtunnel port create hermes-bot -p 3978 --protocol https
devtunnel host hermes-bot

# 或 ngrok
ngrok http 3978

# 或 cloudflared
cloudflared tunnel --url http://localhost:3978

출력 결과를 기록하세요https:// URL, 다음 단계를 사용합니다. 개발 중에 터널을 계속 실행합니다.

3단계: Bot을 생성합니다.

teams app create \
  --name "Hermes" \
  --endpoint "https://<your-tunnel-url>/api/messages"

CLI 출력 CLIENT_ID, CLIENT_SECRETTENANT_ID을 생성합니다. Client Secret을 즉시 저장하세요 - 두 번째로 다시 표시되지 않습니다.

4단계: 환경 변수를 구성합니다.

~/.hermes/.env에 추가합니다:

# 必填
TEAMS_CLIENT_ID=<your-client-id>
TEAMS_CLIENT_SECRET=<your-client-secret>
TEAMS_TENANT_ID=<your-tenant-id>

# 限制访问用户(强烈建议)
# 用 teams status --verbose 获取 AAD Object ID
TEAMS_ALLOWED_USERS=<your-aad-object-id>

또는 config.yaml을 사용하여 구성할 수도 있습니다:

platforms:
  teams:
    enabled: true
    extra:
      client_id: "your-client-id"
      client_secret: "your-secret"
      tenant_id: "your-tenant-id"
      port: 3978

5단계: 게이트웨이를 시작합니다.

HERMES_UID=$(id -u) HERMES_GID=$(id -g) docker compose up -d gateway

작동 여부를 확인합니다.

curl http://localhost:3978/health
# 应返回: ok

docker logs -f hermes
# 看到: [teams] Webhook server listening on 0.0.0.0:3978/api/messages

제 6 단계: Teams에 앱 설치

teams app get <teamsAppId> --install-link

출력된 링크를 엽니다. Teams 클라이언트에서 설치합니다. 설치가 완료되면 로봇에게 메시지를 보내세요—이제 준비되었습니다.

상호작용 승인 카드

이것은 Teams 통합 중 가장 유용한 기능 중 하나입니다. Agent가 위험한 명령(파일 삭제, shell 명령 실행 등)을 실행해야 할 때, /approve를 수동으로 입력하게 하지 않고 Adaptive Card를 보냅니다. 4개의 버튼이 포함되어 있습니다:

버튼 행동
Allow Once 이 특정 명령을 승인합니다
세션 허용 이 세션 내에서 동일한 명령을 자동으로 승인합니다
항상 허용 이 모드를 영구적으로 승인합니다
거부 실행을 거부합니다

버튼을 클릭하면 카드가 즉시 승인 결정으로 업데이트되며, Agent는 계속 실행하거나 중지합니다

회의록 자동 푸시

Hermes Agent의 Teams 통합은 채팅뿐만 아니라 회의록을 자동으로 푸시할 수도 있습니다. Teams Meeting Pipeline 플러그인을 활성화한 후, 회의가 끝난 후 자동으로 회의록을 생성하고 지정된 Teams 채널이나 채팅으로 푸시합니다

두 가지 푸시 모드:

모드 사용 시나리오 제한
incoming_webhook 채널에 간단히 게시 스레드 및 답글 기능 지원하지 않음
graph 봇으로 게시, 스레드 지원 Microsoft Graph 권한 필요

graph 모드 구성:

platforms:
  teams:
    enabled: true
    extra:
      client_id: "..."
      client_secret: "..."
      tenant_id: "..."
      delivery_mode: "graph"
      chat_id: "19:meeting_..."    # 推送到聊天
      # 或
      # team_id: "..."
      # channel_id: "..."          # 推送到频道

생산 환경 배포

로컬 개발용 터널, 생산 환경용 실제 도메인:

# 创建 Bot 时直接用生产域名
teams app create \
  --name "Hermes" \
  --endpoint "https://your-domain.com/api/messages"

# 已有 Bot 更新端点
teams app update --id <teamsAppId> --endpoint "https://your-domain.com/api/messages"

요구 사항:
- 포트 3978(또는 TEAMS_PORT 지정된 포트)가 공인 네트워크에서 접근 가능
- TLS 인증서가 유효함(Teams는 자체 서명 인증서를 거부함)

보안 구성

⚠️ TEAMS_ALLOWED_USERS를 설정해야 하며, 그렇지 않으면 Bot을 찾거나 설치할 수 있는 모든 사람이 그것과 상호작용할 수 있습니다.

보안 최선의 관행:

  • TEAMS_ALLOWED_USERS에 권한 부여 사용자의 AAD Object ID를 입력하고, 권한이 없는 메시지는 조용히 제거합니다
  • TEAMS_CLIENT_SECRET.
  • ~/.hermes/.env는 비밀번호처럼 취급하고 주기적으로 변경하세요600. chmod 600 ~/.hermes/.env
  • 파일 권한을 /api/messages로 설정하세요:

에 공개 엔드포인트를 Teams Bot Framework 인증으로 처리하며, 유효한 JWT가 없는 요청은 거부됩니다

설정 참조 변수
TEAMS_CLIENT_ID 설명__JHSNS_SEG_62bbadd4_94__Azure AD 앱(클라이언트)ID
TEAMS_CLIENT_SECRET Azure AD 클라이언트 키
TEAMS_TENANT_ID Azure AD 테넌트 ID
TEAMS_ALLOWED_USERS 쉼표로 구분된 AAD Object ID 백리스트
TEAMS_ALLOW_ALL_USERS 설정true백리스트 건너뛰기(권장하지 않음)
TEAMS_HOME_CHANNEL 타임리프/활성 메시지의 대화 ID
TEAMS_PORT 웹훅 포트(기본값 3978)

자주 묻는 질문

질문 해결 방법
health 엔드포인트는 정상이지만 Bot이 응답하지 않음 트뉴얼이 여전히 실행 중인지 확인하고, Bot 엔드포인트가 트뉴얼 URL과 일치하는지 확인
KeyError: 'teams'로그 오류 컨테이너를 재시작합니다
인증 오류 CLIENT_ID, CLIENT_SECRET, TENANT_ID를 확인하세요
봇이 메시지를 받았지만 무시합니다 AAD Object ID가 ALLOWED_USERS에 없습니다
트렁커 URL이 재시작 후 변경되었습니다 devtunnel은 명명된 트렁커 URL을 영구적으로 사용합니다. ngrok 무료 버전은 매번 변경되므로 teams app update를 사용하여 업데이트해야 합니다
No inference provider configured ANTHROPIC_API_KEY(또는 다른 LLM key)가 설정되었는지 확인하세요

Hermes Agent가 지원하는 24개 메시지 플랫폼

팀은 그중 하나입니다. Hermes Agent는 동시에 다음을 지원합니다:

Telegram, Discord, Slack, WhatsApp, Signal, Email, SMS(Twilio), Home Assistant, Mattermost, Matrix, DingTalk, Lark, WeCom, WeCom Callback, WeChat, iMessage(BlueBubbles), QQ Bot, Yuánbǎo, Microsoft Teams, Teams Meetings, LINE, SimpleX Chat, ntfy, Open WebUI, Webhooks.

하나의 Agent, 하나의 Skills와 도구 설정, 모든 플랫폼에서 사용 가능합니다.


저작자: itech001
출처: 공식 블로그: AI인공지능시대
웹사이트 : https://www.theaiera.cn/
매일 최첨단 AI 뉴스 정보와 기술 연구를 공유합니다.

본 글이 처음 발표된 곳은 AI인공지능 시대이며, 재해면 출처를 밝히셔야 합니다.