添加完整的Outlook MCP集成,包括邮件和日历功能,通过AuthZ模式进行认证和权限管理, 支持邮箱连接、断开、状态检查和数据同步等功能。 fix(config): 统一配置文件路径从.nanobot到.beaver 将配置文件路径从/root/.nanobot统一更改为/root/.beaver,更新Dockerfile中的环境变量定义, 确保所有组件使用一致的配置目录结构。 feat(agent): 添加代理删除功能和助手身份提示 为代理注册表添加delete_agent方法,实现代理的动态删除功能;同时添加海狸助手身份提示, 确保AI助手在交互中保持一致的身份认知。 feat(engine): 增强引擎循环并添加意图决策快照 扩展AgentLoop类,添加intent_agent_decision参数用于意图驱动的代理决策,并在会话中记录 决策快照,便于后续分析和调试。 feat(authz): 扩展认证客户端功能 为AuthzClient添加设置权限、用户注册、后端注册和Outlook设置管理等新方法,增强系统 的认证和授权能力。
deploy-control
部署机接口:
- 给
auth-portal提供实例创建和实例解析 API - 调用
app-instance/create-instance.sh - 在实例创建后刷新
router-proxy
接口
GET /healthzPOST /api/instances/registerPOST /api/instances/resolveDELETE /api/instances/{instance_id}
关键环境变量
DEPLOY_CONTROL_API_TOKENAPP_INSTANCE_API_KEYDEFAULT_AUTHZ_BASE_URLDEFAULT_AUTHZ_OUTLOOK_MCP_URLDEFAULT_OUTLOOK_MCP_SERVER_IDDEPLOY_PUBLIC_BASE_DOMAINDEPLOY_PUBLIC_PORTDEPLOY_PUBLIC_SCHEMEAPP_INSTANCE_NETWORK_NAME
建议直接参考:
默认实例 URL 形如:
http://<instance-slug>.127.0.0.1.nip.io:8088
实例容器本身的 20000-29999 端口默认只绑定到部署机 127.0.0.1,外部入口应走 router-proxy。
如果你希望所有新实例默认带 Outlook MCP HTTP 工具,可以设置:
DEFAULT_AUTHZ_OUTLOOK_MCP_URL=http://10.6.80.29:8000/mcp
DEFAULT_OUTLOOK_MCP_SERVER_ID=outlook_mcp
这样 deploy-control 创建的新实例会自动写入一条默认 MCP server 配置,并默认使用 oauth_backend_token + mcp:<server_id> 的 audience。
本机启动
cd /home/ivan/xuan/nano_project/deploy-control
uv run server.py
Docker 启动
如果要容器化运行,需要挂载:
- Docker socket:
/var/run/docker.sock /home/ivan/xuan/nano_project/app-instance/home/ivan/xuan/nano_project/router-proxy
并传入对应环境变量,让容器内脚本路径仍能访问这两个目录。
关键点:
- 宿主机路径要原样挂进容器,不要改挂载目标路径
- 同时显式传
APP_INSTANCE_DIR和ROUTER_PROXY_DIR
示例:
docker run -d \
--name nano-deploy-control \
--restart unless-stopped \
--network nano-instance-edge \
-p 8090:8090 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /home/ivan/xuan/nano_project/app-instance:/home/ivan/xuan/nano_project/app-instance \
-v /home/ivan/xuan/nano_project/router-proxy:/home/ivan/xuan/nano_project/router-proxy \
-e APP_INSTANCE_DIR=/home/ivan/xuan/nano_project/app-instance \
-e ROUTER_PROXY_DIR=/home/ivan/xuan/nano_project/router-proxy \
-e DEPLOY_CONTROL_API_TOKEN=change-me \
-e APP_INSTANCE_IMAGE=nano/app-instance:latest \
-e APP_INSTANCE_NETWORK_NAME=nano-instance-edge \
-e APP_INSTANCE_API_KEY=sk-xxxxxxxx \
nano/deploy-control:latest
如果这里错把宿主机目录映射成容器内的另一个短路径,例如 /app-instance,那么 deploy-control 通过 Docker socket 创建实例时会把错误路径传给 Docker,最终导致实例容器拿不到 config.json 并持续重启。