Roo活动记录器
太长,读不下去了
- 这是怎么一回事? --这是一个 MCP服务器 自动记录AI编码助手的活动,如命令执行和代码生成(支持Roo code、Cline、Claude code等)。
- 它有什么作用? --它将活动历史记录保存为JSON文件,您可以稍后搜索和分析。
- 我该如何使用它? --将其添加到您的Claude Code、Cline或Roo Code设置中,以启用自动活动日志记录。
概述
Roo Activity Logger是一个MCP(模型上下文协议)服务器,可以自动记录AI编码助手的开发活动,包括命令执行、代码生成、文件操作等。它支持Claude Code、Cline、Roo Code和其他兼容MCP的AI助手。 所有日志均以JSON格式保存,便于随时搜索、分析和恢复上下文。
活动日志记录的工作原理
flowchart TD
A[Roo's Action] --> B[Select Activity Type]
B --> C[Log via log_activity]
C --> D[Provide Log Info
- Summary
- Details
- Intention
- Context]
D --> E[Specify Save Directory]
E --> F[Save as JSON file]恢复任务时如何搜索日志和恢复上下文
flowchart TD
G[Resume Task] --> H[Search with search_logs]
H --> I[Set Search Filters
- Type
- Date Range
- Text]
I --> J[Retrieve Related Activities
- Parent/Child
- Sequence
- Related IDs]
J --> K[Restore Context & Resume
- Review Past Intentions
- Understand Progress]日志条目示例
以下是一个示例 file_operation 日志条目保存为JSON格式:
{
"id": "75add15d-8d5b-4e60-b327-fde785050c86",
"timestamp": "2025-04-10T01:58:02.905Z",
"type": "file_operation",
"level": "info",
"summary": "Inserted mermaid diagram into README.md",
"details": {
"file": "README.md",
"operation": "insert_content",
"insertedLines": "mermaid code block",
"position": "after overview section"
},
"intention": "To visually explain the flow of saving and retrieving activities",
"context": "Improving documentation for Roo Activity Logger",
"parentId": "98280366-1de1-48e0-9914-b3a3409599b4"
}每个日志包含:
- 日志级别(
debug,info,warn,error) - 总结
- 详细信息(任何结构化数据)
- 意图/目的
- 上下文信息
- 父活动ID(用于层次结构)
- 序列号(用于订购)
- 相关活动ID(用于分组)
日志包括:
- 已保存 基于日期的JSON文件
- 可搜索 按类型、级别、日期、文本等。
- 可定制的 --您可以为每个活动指定不同的保存目录
特性
- 记录各种活动类型:
- 命令执行(command_execution) - 代码生成(code_generation) - 文件操作(file_operation) - 错误(error_encountered) - 决定(decision_made) - 对话(conversation)
- 每个活动日志包括:
- 唯一ID - 时间戳 - 活动类型 - 摘要、细节、意图、上下文和可选元数据
用法(推荐:通过 npx)
您可以使用以下命令直接运行Roo Activity Logger,而无需克隆存储库 npx.
将此添加到Cline、Roo Code或Claude Code配置中:
{
"mcpServers": {
"roo-activity-logger": {
"command": "npx",
"args": ["-y", "github:annenpolka/roo-logger"],
"env": {},
"disabled": false
}
}
}然后,在规则文件(适用于Cline/Roo代码)或CLAUDE.md(适用于CLAUDE代码)中添加提示以确保日志记录,例如:
## Important
Always log activities using roo-activity-logger according to the logging rules.
## Preparation
Check the current context with `git status`.
Then, use roo-activity-logger's `search_logs` to review existing logs and identify current tasks.
Be sure to perform the logging steps.
## Logging
- Always use roo-activity-logger for all logs
- Include stack traces and execution context
- Record intention and context______________________________________________________________________
开发者:本地设置
要在本地开发或自定义,请克隆存储库并构建:
# Clone the repo
git clone https://github.com/annenpolka/roo-logger.git
cd roo-logger
# Install dependencies
npm install
# Build
npm run build使用本地版本的示例配置:
{
"mcpServers": {
"roo-activity-logger": {
"command": "node",
"args": ["/path/to/your/local/roo-logger/dist/index.js"], // adjust path accordingly
"env": {},
"disabled": false
}
}
}备注
- 如果指定的目录不存在,将自动创建该目录。
______________________________________________________________________
MCP工具
log_activity --记录活动
记录活动的工具。
基本示例
{
"type": "command_execution",
"summary": "Run npm command",
"intention": "Update project dependencies",
"context": "Preparing for new feature development",
"logsDir": "/absolute/path/to/logs/activity"
}参数
| 名称 | 必填 | 类型 | 描述 |
|---|---|---|---|
type | 是 | 字符串 | 活动类型(command_execution, code_generation, file_operation, error_encountered, decision_made, conversation) |
summary | 是 | 字符串 | 活动简短摘要 |
intention | 是 | 字符串 | 目的或意图 |
context | 是 | 字符串 | 上下文信息 |
logsDir | 是 | 字符串 | 保存目录(仅绝对路径) |
level | 否 | 字符串 | 日志级别(debug, info, warn, error).违约: info |
details | 否 | 对象 | 其他详细信息(任何JSON) |
parentId | 否 | 字符串 | 父活动ID |
sequence | 否 | 编号 | 序列号 |
relatedIds | 无 | string\[\] | 相关活动ID |
详细示例
{
"type": "file_operation",
"summary": "Update README file",
"intention": "Clarify documentation and improve usability",
"context": "Improvements based on user feedback",
"level": "info",
"details": {
"file": "README.md",
"operation": "update",
"changedLines": 15
},
"logsDir": "/absolute/path/to/logs/activity",
"sequence": 3,
"relatedIds": ["11223344-5566-7788-99aa-bbccddeeff00"]
}______________________________________________________________________
get_log_files --列出已保存的日志文件
递归列出已保存的日志文件。您可以指定最大搜索深度。
基本示例
{
"logsDir": "/absolute/path/to/logs"
}参数
| 名称 | 必填 | 类型 | 描述 |
|---|---|---|---|
logsDir | Yes | string | 要搜索的目录(仅绝对路径) |
limit | No | number | 要检索的最大文件数(默认值:10) |
offset | No | number | 要跳过的文件数(默认值:0) |
logFilePrefix | 无 | string | 日志文件前缀(默认值: "roo-activity-") |
logFileExtension | 无 | string | 日志文件扩展名(默认: ".json") |
maxDepth | 否 | 编号 | 最大目录深度(默认值:3) |
______________________________________________________________________
search_logs --搜索已保存的日志
使用各种过滤器搜索已保存的日志。
基本示例
{
"logsDir": "/absolute/path/to/logs"
}{
"logsDir": "/absolute/path/to/logs",
"type": "command_execution"
}参数
| 名称 | 必填 | 类型 | 描述 |
|---|---|---|---|
logsDir | Yes | string | 日志目录(仅绝对路径) |
logFilePrefix | 无 | string | 日志文件前缀(默认值: "roo-activity-") |
logFileExtension | 无 | string | 日志文件扩展名(默认: ".json") |
type | 否 | 字符串 | 按活动类型筛选(command_execution, code_generation, file_operation, error_encountered, decision_made, conversation) |
level | 否 | 字符串 | 按日志级别筛选(debug, info, warn, error) |
startDate | 否 | 字符串 | 开始日期(YYYY-MM-DD) |
endDate | 否 | 字符串 | 结束日期(YYYY-MM-DD) |
searchText | 否 | 字符串 | 在摘要或详细信息中搜索文本 |
limit | No | number | 要检索的最大日志数(默认值:50) |
offset | No | number | 要跳过的日志数(默认值:0) |
parentId | 否 | 字符串 | 按父活动ID筛选 |
sequenceFrom | 否 | 编号 | 序列号下限 |
sequenceTo | 否 | 编号 | 序列号上限 |
relatedId | 否 | 字符串 | 按相关活动ID筛选 |
relatedIds | 否 | string\[\] | 按任何相关活动ID筛选 |
______________________________________________________________________
许可证
麻省理工学院
