项目简介
Eon (时值永恒) 是一个强大的内部智能助手,旨在整合企业内部散落在Slack、GitHub、Linear等平台上的信息,帮助团队快速获取答案、做出决策。它通过部署Model Context Protocol (MCP) 服务器,以标准化的方式向大语言模型 (LLM) 客户端提供结构化的上下文信息和可调用的功能。Eon作为核心代理,协调这些MCP服务,并与LLM交互,最终在Slack等用户界面提供智能响应。
主要功能点
- 信息聚合与问答: 汇总Slack对话、GitHub代码提交、Linear任务等信息,支持在Slack中直接提问并获得即时回答。
- GitHub集成: 智能分析并总结GitHub拉取请求 (Pull Requests)、问题 (Issues) 和项目活动,帮助团队理解技术变更。
- Slack历史查询: 支持查询公司Slack的历史对话和频道信息,而不仅仅是安装后的新消息,实现全面的内部知识回溯。
- 可扩展性: 架构灵活,未来可轻松集成文档、Salesforce等更多企业数据源。
- 自定义与配置: 允许自定义MCP服务器的配置(通过'mcp_config.json')和LLM交互的Prompt模板(通过Jinja2模板),以适应不同的业务需求。
安装步骤
- 环境准备: 确保您的系统已安装'git'和'Docker'。
- 克隆仓库: 打开终端,执行以下命令克隆Eon仓库并进入项目目录。
git clone [email protected]:timescale/tiger-eon.git cd tiger-eon - 交互式设置 (推荐): 运行提供的设置脚本,它将引导您完成所有必要的API密钥和Slack应用配置。
./setup-tiger-eon.sh - 手动设置 (可选): 如果您偏好手动配置,请先复制'.env.sample'文件并重命名为'.env',然后按照以下步骤配置各项API密钥:
- Anthropic API Key: 访问Anthropic控制台,创建并复制您的API密钥,将其填入'.env'文件的'ANTHROPIC_API_KEY'字段。
- GitHub Token: 访问GitHub设置,创建一个具有'repo,read:org'权限的个人访问令牌,将其复制到'.env'文件的'GITHUB_TOKEN'字段。同时,将您的GitHub组织名称(例如'timescale')设置到'GITHUB_ORG'字段。
- Slack Ingest/MCP 配置:
- 访问Slack API网站创建新应用,选择“From a manifest”并选择您的工作区。
- 粘贴本项目提供的'https://raw.githubusercontent.com/timescale/tiger-slack/refs/heads/main/slack-app-manifest.json'到JSON输入框中,根据需要修改应用名称。
- 生成应用级别令牌,授予'connections:write'权限,将其复制到'.env'文件的'SLACK_INGEST_APP_TOKEN'字段。
- 安装应用到工作区,并复制“Bot User OAuth Token”(以'xoxb-'开头)到'.env'文件的'SLACK_INGEST_BOT_TOKEN'字段。
- Slack Agent 配置:
- 再次重复上述Slack应用创建流程,但这次使用'https://raw.githubusercontent.com/timescale/tiger-agents-for-work/refs/heads/main/slack-manifest.json'作为清单文件。
- 生成应用级别令牌,将其复制到'.env'文件的'SLACK_AGENT_APP_TOKEN'字段。
- 安装应用到工作区,并复制“Bot User OAuth Token”到'.env'文件的'SLACK_AGENT_BOT_TOKEN'字段。
- 启动服务: 完成配置后,您可以通过以下命令启动Eon服务:
- 启动配置文件 ('mcp_config.json') 中指定的MCP服务:
./start.sh - 启动所有服务 (包括Eon Agent和所有依赖的MCP服务器):
docker compose up -d --build
- 启动配置文件 ('mcp_config.json') 中指定的MCP服务:
服务器配置
Eon系统内部包含多个MCP服务器实例,它们分别负责与不同的企业数据源(如GitHub、Slack)交互,并提供标准化的上下文和工具。MCP客户端(例如您自己开发或使用的LLM客户端)需要配置如何连接这些MCP服务器。以下是典型的MCP客户端配置示例,用于连接Eon系统提供的MCP服务。这些信息通常以JSON格式存储在MCP客户端的配置文件中:
-
GitHub MCP 服务器配置示例:
{ "server_name": "github_mcp_server", "command": "python", "args": ["-m", "tiger_gh_mcp_server.main"], "description": "提供GitHub仓库上下文信息和工具,例如总结Pull Requests、查询Issue。", "transport_protocol": "stdio" }说明:'command'和'args'字段指定了启动GitHub MCP服务器的程序和参数。MCP客户端可以根据这些信息在需要时启动并与之通信。
-
Slack MCP 服务器配置示例:
{ "server_name": "slack_mcp_server", "command": "python", "args": ["-m", "tiger_slack.main"], "description": "提供Slack对话历史和实时事件上下文,例如查询历史消息、总结频道内容。", "transport_protocol": "stdio" }说明:'command'和'args'字段指定了启动Slack MCP服务器的程序和参数。这些信息对于MCP客户端通过标准输入/输出(stdio)与服务器建立连接至关重要。
请注意,上述配置信息是MCP客户端与Eon系统中的MCP服务器通信时所需的示例。实际的'command'和'args'可能根据Eon内部的'docker-compose.yml'文件或各个MCP服务器项目的具体实现有所不同。
基本使用方法
一旦Eon服务成功启动并与您的Slack工作区连接,您便可以在Slack的任意频道或私聊中通过@提及Eon来提问。Eon会根据集成的Slack和GitHub数据,通过底层MCP服务器提供上下文,并由LLM生成即时回答。
例如,您可以尝试以下问题:
- '@eon What did we ship last week?' (我们上周发布了什么?)
- '@eon What's blocking the release?' (是什么阻碍了发布?)
- '@eon Summarize the latest GitHub pull requests.' (总结最新的GitHub拉取请求。)
Eon将即时响应您的查询,提供集成的企业信息洞察。
信息
分类
生产力应用