## 架构 TrueAgent 是单一常驻 agent 事件循环,没有 per-conversation session。 插件像 QQ 插件一样:所有邮件注入同一个事件循环,靠中断消息文本传递 context。 不做 platform_sessions 上报(无 sessions 可映射)。 ## 工具 - read_inbox: 收件箱查询(渲染发件人/主题/正文/抄送/附件) - send_mail: 三维地址发信(支持 reply_to) - output_send__homeagent 输出通道(agent 可主动发信) ## 自动回信 InjectInputSync(阻塞)等待 agent 处理完毕 → 自动把 FinalText 发回给发件人(reply_to 指向原邮件)。agent 不需要记得调 send_mail。 试过 StageAfterOutput hook,但 before_output 看不到 ToolCalls (read_inbox 调用在 turn 中间就被清掉了),导致自动回信不触发。 InjectInputSync 更可靠:TrueAgent 保证不重入。 ## 基础设施 - 心跳 25 秒 - SSE 长连 + 自动重连(3 秒退避) - 注册时自动注册密钥(AGENTMAIL_AGENT_KEY 环境变量) - systemd drop-in 注入 AgentMail 环境变量 ## 构建 plugindev build → dist/homeagent_linux_amd64.hmap 安装到 /home/newqqagent/plugins/homeagent-mail-bridge/ homeagent.service drop-in: /etc/systemd/system/homeagent.service.d/agentmail.conf ## 端到端验证 admin → homeagent@/tmp/homeagent.new(自动回信验证) → homeagent 读取邮件 + 自动回信「收到确认」→ 25 秒往返完成
62 lines
1.9 KiB
Plaintext
62 lines
1.9 KiB
Plaintext
# ---- 依赖与构建产物 ----
|
||
#
|
||
# 前端只在**构建期**用到 npm:`npm run build` 出的 dist/ 被 cp 进
|
||
# gateway/internal/static/static/ 再由 go:embed 编进二进制。
|
||
# 部署机上没有 node,产物就是「一个二进制 + 一个 .db 文件」。
|
||
# 因此这三样都不进版本库:装依赖与构建都能从 package-lock.json 复现。
|
||
web/node_modules/
|
||
web/dist/
|
||
plugins/*/node_modules/
|
||
|
||
# dsh-mail-bridge 是 TypeScript 写的,dist/ 是 tsc 的产物。
|
||
# 与 web/dist 同一个理由:装依赖与构建都能从 package-lock.json 复现,
|
||
# 产物不进版本库。注意它**必须在装插件前构建**(package.json 的
|
||
# main 指向 dist/index.js),deploy/install.sh 负责这一步。
|
||
plugins/*/dist/
|
||
|
||
# go:embed 的输入目录 = web/dist 的副本,同属构建产物。
|
||
#
|
||
# 但目录本身要留下:go:embed 要求它存在才能编译,否则新克隆连
|
||
# `go test ./...` 都跑不起来 —— 只改后端的人不该被迫先装 node。
|
||
# 因此忽略构建产物,只保留 placeholder.html(见该文件内注释:
|
||
# 之所以不叫 index.html,是因为那正是 Vite 产物的名字,会被反复覆盖)。
|
||
gateway/internal/static/static/*
|
||
!gateway/internal/static/static/placeholder.html
|
||
|
||
# Go 构建产物
|
||
gateway/agentmail-gateway
|
||
gateway/gw
|
||
*.test
|
||
|
||
# ---- 运行态数据 ----
|
||
#
|
||
# SQLite 库与附件目录:生产在 /opt/agentmail/data,
|
||
# 本地调试可能落在仓库里,绝不能提交(含真实邮件与凭证哈希)。
|
||
*.db
|
||
*.db-shm
|
||
*.db-wal
|
||
data/
|
||
attachments/
|
||
|
||
# ---- 凭证 ----
|
||
#
|
||
# 管理员密码、Agent 密钥、opencode server password 都在 env 文件里。
|
||
.env
|
||
*.env
|
||
|
||
# ---- Agent 工具的运行态目录 ----
|
||
#
|
||
# 这些是 pi / omo 在仓库里落的会话与后台任务状态,属于本机运行痕迹,
|
||
# 不是项目的一部分。
|
||
.pi/
|
||
.omo/
|
||
.pi-glla/
|
||
.codegraph
|
||
|
||
# ---- 编辑器与系统 ----
|
||
.DS_Store
|
||
*.swp
|
||
.idea/
|
||
.vscode/
|
||
plugins/homeagent-mail-bridge/build/
|