{"id":49993510,"url":"https://github.com/ddpie/log-analyzer","last_synced_at":"2026-05-19T06:17:35.245Z","repository":{"id":330145911,"uuid":"1033581493","full_name":"ddpie/log-analyzer","owner":"ddpie","description":"基于 Strands Agents SDK 的智能日志分析工具，用最少代码实现自然语言查询日志数据","archived":false,"fork":false,"pushed_at":"2025-12-23T14:50:28.000Z","size":80,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-12-25T03:24:47.287Z","etag":null,"topics":["ai-agent","elasticsearch","log-analysis","opensearch","strands-agents"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ddpie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-07T03:35:58.000Z","updated_at":"2025-12-23T13:53:55.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ddpie/log-analyzer","commit_stats":null,"previous_names":["ddpie/log-analyzer"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/ddpie/log-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddpie%2Flog-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddpie%2Flog-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddpie%2Flog-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddpie%2Flog-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ddpie","download_url":"https://codeload.github.com/ddpie/log-analyzer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ddpie%2Flog-analyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33204393,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-18T09:27:30.708Z","status":"online","status_checked_at":"2026-05-19T02:00:06.763Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agent","elasticsearch","log-analysis","opensearch","strands-agents"],"created_at":"2026-05-19T06:17:34.603Z","updated_at":"2026-05-19T06:17:35.239Z","avatar_url":"https://github.com/ddpie.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 日志分析助手\n\n基于 Strands Agents SDK 的日志分析工具，展示了如何用最少的代码构建实用的 AI 应用。\n\n## 为什么用 Strands Agents SDK\n\n传统方式构建 AI 应用需要处理模型调用、工具集成、对话管理等复杂逻辑。Strands Agents SDK 把这些都简化了：\n\n```python\n# 传统方式需要几十行代码处理的逻辑\nfrom strands import Agent\nfrom strands_tools import current_time\n\nagent = Agent(\n    system_prompt=\"你是日志分析助手\",\n    tools=[current_time]  # 内置工具直接用\n)\n\nresponse = agent(\"分析今天的错误日志\")  # 就这么简单\n```\n\n## 功能\n\n- 自然语言查询日志数据\n- 自动检测时间异常\n- 支持多种数据源（OpenSearch、Elasticsearch 等）\n- 命令行交互界面\n\n## 快速开始\n\n### 安装\n\n```bash\ncd project\npip install -r requirements.txt\n```\n\n### 配置\n\n```bash\ncp mcp.json.example mcp.json\n# 编辑 mcp.json，配置数据源连接信息\n```\n\n### 运行\n\n```bash\npython3 main.py\n```\n\n## 使用\n\n启动后输入查询：\n\n```\n\u003e 显示今天的错误日志统计\n\u003e 分析最近一周的访问趋势  \n\u003e 查找响应时间超过5秒的请求\n```\n\n输入 `exit` 退出程序。\n\n## 项目结构\n\n```\nproject/\n├── main.py                 # 程序入口 (50行)\n├── log_analyzer_agent.py   # 智能体核心 (80行)\n├── time_tools.py          # 自定义工具 (100行)\n├── mcp_manager.py         # MCP 连接 (60行)\n├── cli_interface.py       # 界面逻辑 (120行)\n├── config_manager.py      # 配置处理 (70行)\n├── output_formatter.py    # 格式化 (150行)\n└── requirements.txt       # 依赖包\n```\n\n**总计**: 约 630 行代码实现完整的日志分析工具，其中智能体核心逻辑仅 80 行。\n\n## SDK 开发体验\n\n### 1. 创建智能体 - 3行代码\n\n```python\nfrom strands import Agent\n\nagent = Agent(system_prompt=\"你是日志分析助手\")\nresponse = agent(\"查询今天的错误日志\")\n```\n\n### 2. 添加工具 - 装饰器搞定\n\n```python\nfrom strands import tool\n\n@tool\ndef validate_timestamps(data: str) -\u003e dict:\n    \"\"\"验证时间戳\"\"\"\n    return {\"valid\": True, \"count\": 100}\n\n# 智能体自动学会使用这个工具\nagent = Agent(tools=[validate_timestamps])\n```\n\n### 3. 连接数据源 - 配置即可用\n\n```python\n# mcp.json 配置好后，工具自动可用\nfrom strands.tools.mcp import MCPClient\n\nclient = MCPClient(lambda: stdio_client(params))\ntools = client.list_tools_sync()  # 获取所有工具\nagent = Agent(tools=tools)        # 智能体立即具备数据查询能力\n```\n\n### 4. 内置工具生态\n\n```python\nfrom strands_tools import current_time, calculator, python_repl\n\n# 丰富的预构建工具，开箱即用\nagent = Agent(tools=[current_time, calculator, python_repl])\n```\n\n## 配置示例\n\n```json\n{\n  \"mcpServers\": {\n    \"opensearch\": {\n      \"command\": \"uvx\",\n      \"args\": [\"opensearch-mcp-server-py\"],\n      \"env\": {\n        \"OPENSEARCH_URL\": \"https://your-domain.es.amazonaws.com\",\n        \"OPENSEARCH_USERNAME\": \"username\",\n        \"OPENSEARCH_PASSWORD\": \"password\"\n      }\n    }\n  }\n}\n```\n\n## 开发效率对比\n\n**不用 Strands Agents SDK**:\n- 需要手动处理模型 API 调用\n- 自己实现工具调用逻辑\n- 处理对话上下文管理\n- 错误处理和重试机制\n- 通常需要 200+ 行代码\n\n**使用 Strands Agents SDK**:\n- 核心逻辑 50 行代码搞定\n- 工具集成只需装饰器\n- 内置对话管理\n- 自动错误处理\n- 专注业务逻辑即可\n\n## 系统要求\n\n- Python 3.8+\n- macOS / Linux / Windows\n\n## 常见问题\n\n**连接失败**: 检查 mcp.json 配置和网络  \n**查询无结果**: 确认数据源中有对应数据  \n**时间异常**: 程序会自动检测并提示\n\n## 依赖\n\n- strands-agents: 智能体框架\n- mcp: 模型上下文协议  \n- rich: 终端界面美化","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddpie%2Flog-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fddpie%2Flog-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fddpie%2Flog-analyzer/lists"}