检查1Password命令行工具的安装和认证,将已保存的密码或API密钥传入命令及配置。支持桌面应用集成、服务账号和交互式登录,并先验证访问权限。
- 安装1Password命令行工具
- 将API密钥传入命令
- 在CI中使用服务账号认证
测量OpenClaw测试和插件验证的耗时与内存使用,调查模块加载及启动过程中的原因,在保留测试验证范围的同时改进,并比较变更前后的数值。
Benchmark, diagnose, and optimize OpenClaw test and plugin-suite runtime, import hotspots, CPU/RSS, heap growth, and slow coverage paths.
测量OpenClaw测试和插件验证缓慢的原因,改进执行时间与内存使用。先记录变更前的基准值,再区分测试主体、模块加载和服务器启动等环节的耗时。检查范围过大的模块加载,以及每个测试中不必要的重复初始化,随后用相同命令比较变更后的数值。同时重视保留测试原有的验证范围。
适用于pnpm test或插件验证等待时间过长、内存使用量较高的情况。开发者需要用数值说明改进依据,并报告已验证的测试和剩余问题时,也可以使用。
需要OpenClaw开发环境和pnpm。编辑前阅读相关AGENTS.md,并根据变更内容运行测试或构建。比较原则上采用相同环境和命令。不能仅凭内存增长判定存在泄漏,须检查额外证据。需要隔离环境或Linux验证时,按流程使用crabbox。
本介绍由 AI(OpenAI Codex)根据公开的 SKILL.md 撰写。准确的规格请查看下方原文。
AI 仅根据 SKILL.md 的内容,从 4 个方面进行了评估。星标数和热度不计入评估。
总分按每项 A=25 分、B=15 分、C=5 分相加。 由 AI(OpenAI Codex)于 2026年10月19日 评估。仅供参考,安装前请同时查看原文。
安装前可以查看交给 AI 代理的指令内容。
Use evidence first. The goal is real pnpm test, plugin-suite, and
plugin-inspector speed/RSS improvement with coverage intact, not runner tuning by
guesswork.
AGENTS.md files before editing:
src/agents/AGENTS.md for agent/import hotspots.src/channels/AGENTS.md and src/plugins/AGENTS.md for plugin/channel
laziness.src/gateway/AGENTS.md for server lifecycle tests.test/helpers/AGENTS.md and
src/channels/plugins/contracts/test-helpers/AGENTS.md for shared contract
helpers.src/infra/outbound/AGENTS.md for outbound/media/action tests.pnpm test:perf:groups --full-suite --allow-failures --output <file>
for full-suite ranking.pnpm test:extensions:batch <plugin[,plugin...]> or plugin-inspector command
before jumping to the full extension sweep./usr/bin/time -l pnpm test <file-or-files> --maxWorkers=1 --reporter=verboseOPENCLAW_VITEST_IMPORT_DURATIONS=1 OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1.Use this section when perf work involves bundled plugins, plugin-inspector, SDK barrels, package-boundary tests, or extension suites.
pnpm test extensions/<id> or pnpm test:extensions:batch <id>pnpm run test:extensions:package-boundary:canary and
pnpm run test:extensions:package-boundary:compilepnpm test:extensionspnpm test:extensions:memory -- --json .artifacts/test-perf/extensions-memory.jsonplugin-inspector;
keep wrappers thin and collect peak RSS when the command supports it.test:extensions:batch groups before
pnpm test:extensions.$openclaw-testing for host selection. Trusted source benchmarks
can run locally with comparable machine/load conditions. Use $crabbox when
clean packaging, Linux/platform behavior, isolation, or an explicit remote
request is part of the proof; reuse and clean up only the owned lease.release-openclaw-plugin-testing and Package Acceptance rather than
trusting source-only timing.Collect at least one stable metric before and after. Prefer the same machine and
same command. For Testbox comparisons, use the same tbx_... id when possible.
| Metric | Use for | Preferred source |
|---|---|---|
| wall time | user-visible suite cost | /usr/bin/time -l, test wrapper duration, Testbox run time |
| Vitest duration | test body/import cost | Vitest output per file/shard |
| import duration | broad barrel/runtime loads | OPENCLAW_VITEST_IMPORT_DURATIONS=1 |
| max RSS | memory pressure and OOM risk | /usr/bin/time -l, pnpm test:extensions:memory, wrapper memory summaries |
| CPU/user/sys | CPU-bound vs wait-bound split | /usr/bin/time -l locally, Testbox job timing when local CPU is noisy |
| heap evidence | real leak vs retained module graph | openclaw-test-heap-leaks workflow |
Local scoped command with CPU/RSS:
timeout 240 /usr/bin/time -l pnpm test <file> --maxWorkers=1 --reporter=verbose
Plugin import memory profile:
pnpm build
pnpm test:extensions:memory -- --top 20 --json .artifacts/test-perf/extensions-memory.json
Targeted plugin import memory:
pnpm test:extensions:memory -- --extension discord --extension telegram --skip-combined
Heap/RSS escalation:
pnpm test:perf:groups \
--config test/vitest/vitest.unit-fast.config.ts \
--allow-failures \
--output .artifacts/test-perf/unit-fast-memory.json
pnpm test:perf:profile:runner -- \
--output-dir .artifacts/test-perf/vitest-runner-profile -- <file>
Use openclaw-test-heap-leaks when RSS keeps growing across intervals, workers
OOM, or the suspect command has app-object retention. Do not call RSS growth a
leak until snapshots or retainers support it.
getChannelPlugin() fallback used when an already-loaded fixture or pure
parser would suffice.api.ts, runtime-api.ts, test-api.ts, or plugin-sdk barrels pulled
into hot tests.importActual() around broad modules.vi.resetModules() plus fresh imports in per-test loops.beforeAll while runtime state resets in
afterEach.node_modules/.experimental-vitest-cache without
distinct OPENCLAW_VITEST_FS_MODULE_CACHE_PATH values.Scoped file:
timeout 240 /usr/bin/time -l pnpm test <file> --maxWorkers=1 --reporter=verbose
Scoped file with import breakdown:
timeout 240 /usr/bin/time -l env \
OPENCLAW_VITEST_IMPORT_DURATIONS=1 \
OPENCLAW_VITEST_PRINT_IMPORT_BREAKDOWN=1 \
pnpm test <file> --maxWorkers=1 --reporter=verbose
Grouped suite:
pnpm test:perf:groups --full-suite --allow-failures \
--output .artifacts/test-perf/<name>.json
Extension batch:
pnpm test:extensions:batch <plugin[,plugin...]> -- --reporter=verbose
All extension tests:
pnpm test:extensions
Package-boundary plugin checks:
pnpm run test:extensions:package-boundary:canary
pnpm run test:extensions:package-boundary:compile
Reuse an existing Vitest JSON report:
pnpm test:perf:groups --report <vitest-json> \
--output .artifacts/test-perf/<name>.json
pnpm check:changed optional. PR CI = broad proof. Testbox only for CI/local gaps, immediate grant; warmed Testbox reuse when selected.pnpm test:changed or the exact edited tests.pnpm build when touching lazy-loading, bundled artifacts, package
boundaries, dynamic imports, build output, or public surfaces.pnpm plugin-sdk:api:diff -- --base <base-sha> --head <head-sha> when the
public API surface may drift. For PR-local proof, use the branch merge base
as <base-sha> and the exact tested head commit as <head-sha>.pnpm install and retry the exact failed
command once.| Metric | Before | After | Gain |
| -------------- | -----: | -----: | ------------: |
| File wall time | `Xs` | `Ys` | `-Zs` (`P%`) |
| Max RSS | `XMB` | `YMB` | `-ZMB` (`P%`) |
| CPU user/sys | `X/Ys` | `A/Bs` | explain |
Keep the final concise:
还没有评价。欢迎分享你的使用感受。
无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。
还没有评论。来写第一条吧。
检查1Password命令行工具的安装和认证,将已保存的密码或API密钥传入命令及配置。支持桌面应用集成、服务账号和交互式登录,并先验证访问权限。
将提交给OpenClaw的自然语言请求转交给Claude Code等外部编程智能体,通过ACP或acpx启动、继续会话,并保留对话上下文。
为OpenClaw添加模型服务商,并通过实际回复验证连接。凭据以环境变量或文件引用的形式配置,同时验证设置并报告测试结果。
将AI代理的工作日志整理为可附在GitHub拉取请求或议题中的记录,筛选相关内容、移除敏感信息,并支持预览及经单独授权后的发布。
通过代理管理macOS上的Apple Notes笔记,支持创建、查看、搜索、编辑和删除,在文件夹之间移动笔记,并将选定笔记导出为HTML或Markdown。
通过Mac查看、添加和编辑Apple Reminders中带截止时间的待办事项,管理列表并完成或删除任务,整理在iPhone或iPad上查看的个人任务。