内容

# OpenTag
> 一个开源的、适用于团队的、基于频道的智能代理网关。
[English](README.md) · [简体中文](README.zh-CN.md) · [用户指南](docs/user-guide/README.md) · [安全](SECURITY.md)
OpenTag 将智能代理带入到团队工作已经发生的地方:Slack 频道和线程中。
与其从某个人终端运行代理并将结果粘贴回聊天中,团队可以提及 `@OpenTag`,在同一线程中讨论任务,在需要时批准高风险操作,并将结果保留给所有有权访问该频道的用户可见。
---
## 你可以做的事情
- 请求代理调查 Slack 线程中的错误。
- 让队友在代理运行时添加上下文。
- 将工作路由到不同的代理后端,例如 Codex、Claude Code、OpenCode、基于 Docker 的代理、HTTP 代理或自定义 CLI。
- 使用频道级规则,以便不同项目可以有不同的权限、记忆和默认代理。
- 需要批准写入操作或高风险操作。
- 保留会话、决策、输出和生成的工件记录。
OpenTag 专为团队工作流设计,在这些工作流中,上下文、权限和问责制很重要。
---
## 在 Slack 中使用体验
```text
@OpenTag 总结为什么部署失败
@OpenTag 检查此线程并草拟修复计划
/runtime codex-readonly 解释当前项目结构
/opentag sessions
/opentag approvals
/opentag status <session_id>
```
代理在同一 Slack 线程中回复,因此工作与原始讨论保持关联。
---
## 为什么选择 OpenTag
大多数 AI 编码和自动化工具都是围绕单个本地操作员构建的。OpenTag 是围绕共享频道构建的。
- **默认共享**:对话、上下文和结果保留在团队线程中。
- **频道感知**:每个频道都可以有自己的项目、指令、内存、权限和默认运行时。
- **代理灵活**:使用适合任务的代理运行时,而不是将团队锁定在一个后端。
- **审批就绪**:敏感操作可以暂停进行人工审查。
- **可审计**:会话、消息、审批、输出和工件可以稍后审查。
---
## 快速入门
OpenTag 需要 Node.js `>=20.11.0`。
```bash
npm install
npm run smoke
```
在没有 Slack 的情况下尝试 OpenTag:
```bash
npm run start:console
```
使用示例配置启动 Slack 网关:
```bash
cp examples/env.example .env
set -a
source .env
set +a
npm run doctor
npm start
```
有关 Slack 设置,请从以下开始:
- [`docs/user-guide/01-install.md`](docs/user-guide/01-install.md)
- [`examples/env.example`](examples/env.example)
- [`examples/slack-app-manifest.yaml`](examples/slack-app-manifest.yaml)
---
## 包含内容
- 用于提及、线程回复、直接消息、斜杠命令和审批的 Slack 网关。
- 用于在没有 Slack 的情况下尝试 OpenTag 的本地控制台模式。
- 用于模拟运行、Codex、Claude Code、OpenCode、Docker、HTTP 代理和通用 CLI 代理的运行时选项。
- 用于默认运行时、允许的运行时、允许的用户、审批者、指令、内存和工作区根的频道配置。
- 用于会话、消息、审批、运行、审计记录和工件的本地存储。
- 适用于希望构建更深入工作流的团队的管理和集成界面。
---
## 用户指南
- [`docs/user-guide/README.md`](docs/user-guide/README.md) - 指南索引
- [`docs/user-guide/01-install.md`](docs/user-guide/01-install.md) - 安装和 Slack 设置
- [`docs/user-guide/02-use-in-slack.md`](docs/user-guide/02-use-in-slack.md) - 日常 Slack 使用
- [`docs/user-guide/03-projects-and-runtimes.md`](docs/user-guide/03-projects-and-runtimes.md) - 项目和运行时选择
- [`docs/user-guide/04-admin-and-safety.md`](docs/user-guide/04-admin-and-safety.md) - 审批、安全和操作
- [`docs/user-guide/05-troubleshooting.md`](docs/user-guide/05-troubleshooting.md) - 常见问题
- [`docs/user-guide/06-faq.md`](docs/user-guide/06-faq.md) - 常见问题
有关实现细节,请参阅 [`docs/developer-guide.md`](docs/developer-guide.md)。
---
## 安全模型
OpenTag 旨在使代理工作在团队环境中可见和可控。
- 机密信息应通过环境变量提供,而不是提交到存储库中。
- 频道可以限制谁可以使用 OpenTag 以及允许哪些运行时。
- 需要批准写入能力或高风险操作。
- 工作区和文件系统根目录可以通过配置限制。
- 运行、批准、工件和审计记录将被保留以供审查。
有关安全报告和项目安全指导,请参阅 [`SECURITY.md`](SECURITY.md)。
---
## 当前状态
OpenTag 是适用于 Slack 优先的团队代理工作流的 MVP。它适合本地试验、内部团队实验和运行时集成工作。
它还不是一个托管的生产 SaaS。计划中的改进包括 Slack OAuth 安装、更强大的多实例存储、Web 管理界面、强化沙盒和更多频道集成。
---
## 许可证
Apache-2.0。参见 [`LICENSE`](LICENSE)。