amw-memory-operator
npx skills add https://github.com/insogao/amw --skill amw-memory-operator
Agent 安装分布
Skill 文档
AMW Memory Operator
Skill Version: v0.1.9
ç®æ
æµè§å¨ä»»å¡æä»¥ä¸ä¼å 级æ§è¡ï¼
- ä¼å å¤ç¨å·²æ trajectoryã
- æªå½ä¸/失败æ¶ï¼ç¨åç¼©è¯æ®èªå¨ probeã
- ä»
å¨
trajectories/tmp/åæå°å JSON 修补ã - è¿ç»æåååæåå°
trajectories/ready/ã
硬æ§è§å
- åªå
è®¸ä¸¤ä¸ªåæ¯ï¼ä¸åºå®ä¸ºï¼
normal+challenge-handlingã - é»è®¤èµ° autonomous probeï¼ä¸é»è®¤èµ° manual observeã
- æå¨
observeå¿ é¡»å è·å¾ç¨æ·æç¡®åæã - Probe è¯æ®å
å¿
å¤ï¼ä¼å
使ç¨ä¸ä¸ª
snapshotæ¥éª¤åæ¥çæsnapshot.jsonä¸screenshot.pngï¼é 读顺åºå snapshotã - æ°å»º/ä¸´æ¶ JSON å¿
é¡»æ¾å¨
trajectories/tmp/ã - éæ©å¨ä¼å 级ï¼snapshot refs / è¯ä¹å®ä½ä¼å ï¼CSS æåå åºã
- å·¥å ·ä¼å çç¥ï¼ä¼å ä½¿ç¨ AMW å 建 actionsï¼åèèå¤é¨æ¹æ¡ã
䏤忝å®ä¹ï¼æ æ§ä¹ï¼
normalï¼ä¸»æµç¨åæ¯ï¼æ¿æ ç®æ ä»»å¡çæ£å¸¸æ¥éª¤ï¼æå¼é¡µé¢ãè¾å ¥ãç¹å»ãæåãåæä»¶ï¼ãchallenge-handlingï¼ä» å¨éå°é»ææ¶è¿å ¥ï¼å¦éªè¯ç ãæ«ç 鍿§ãé£é©é¡µãåæå¼¹çªï¼ã- ç¦æ¢æ°å¢ç¬¬ä¸åæ¯ï¼ç¦æ¢åæ¯åµå¥åæ¯ã
- é»æè§£é¤åå¿
é¡»åå°
normalç»§ç»æ§è¡ï¼ä¸å è®¸é¿æåçå¨challenge-handlingã
å·¥å ·é¨ç¦ï¼å¿ èµ°ï¼
å¨å建æä¿®è¡¥ trajectory JSON åï¼å¿ é¡»æé¡ºåºæ§è¡ï¼
- å
å¨
src-node/actionRegistry.js确认å¯ç¨ AMW actionsã - ä»»å¡è¥å¯ç± AMW åç action 宿ï¼
snapshotãeval_jsãcapture_imageãdownload_imageãwrite_markdownçï¼ï¼å¿ é¡»ç´æ¥ä½¿ç¨ã - æ¬ skill æ¿æ´»æ¶ï¼ä¸è¦åæ¢å°æ å ³ skill/workflowã
- ç¦æ¢ç´æ¥ç¨ Python/Node è¾
å©èæ¬å
åºï¼é¤éï¼
- ç¨æ·æç¡®è¦æ±å¤é¨èæ¬ï¼æ
- AMW åç action ç¡®å®æ æ³å®æè¯¥æ¥éª¤ã
- è¥ç¼ºå°åç actionï¼å æç¡®âç¼ºçæ¯åªä¸ä¸ª actionâï¼å请æ±ç¨æ·åæååèµ°å¤é¨å åºã
- è¿è¡æ¶ probe æä»¶ç¦æ¢åå
¥
.agents/skills/**ï¼åªè½åå ¥trajectories/tmp/ã
Probe è¯æ®å½åä¸ä½ç½®ï¼ç± snapshot æ¥éª¤èªå¨çæååé
对æä»¶ï¼ï¼
- ç®å½ï¼
./artifacts/probes/ - Snapshot æä»¶ï¼
{{context.site}}_{{context.task_type}}_snapshot.json - Screenshot æä»¶ï¼
{{context.site}}_{{context.task_type}}_screenshot.png
éæ©å¨çº¦å®ï¼
- ä¼å
ä½¿ç¨æ¥èªææ° interactive snapshot refs ç
target: "@eN"ã - æ ref æ¶ï¼ä¼å
ä½¿ç¨ snapshot ç»åºçè¯ä¹å®ä½å符串ï¼ä¾å¦
getByRole(...)ï¼ã - ref/è¯ä¹å®ä½é½ä¸å¯ç¨æ¶ï¼æä½¿ç¨åå§ CSS selectorã
å³çæµç¨ï¼Gherkin ä¸»å ¥å£ï¼
Feature: AMW è¿è¡å³ç
ä½ä¸ºæ§è¡ä»£ç
æéè¦å
å¤ç¨ã忢æµãåæå
以æå°æ¹å¨å®æç¨³å®å¯å¤ç¨çæµè§å¨ä»»å¡
Scenario: å½ä¸å¯å¤ç¨ trajectory ä¸ replay æå
Given trajectories/ready ä¸åå¨é«ç½®ä¿¡å½ä¸
When æ§è¡ replay-first run
Then mode åºä¸º replay
And ä»»å¡ç´æ¥å®æ
Scenario: æªå½ä¸æ replay 失败ï¼è¿å
¥ probe
Given 没æé«ç½®ä¿¡å½ä¸æ replay 失败
When æ§è¡ run 并设置 --disable-replay true
Then éè¿ snapshot æ¥éª¤èªå¨çæ snapshot + screenshotï¼å¹¶æ§è¡ eval_js
And ä»
修补 trajectories/tmp ä¸å¤±è´¥ç段
And ç«å³éè·ä¸æ¬¡ probe
Scenario: éå° challenge 黿
Given åºç° captcha/qr/risk/consent ç黿
When è¿å
¥ challenge-handling 忝
Then æ£å¸¸åæ¯ä¿æä¸å
And ä¿åé»æè¯æ®ï¼ä¼å
download_imageï¼
And æ æ³èªå¨éè¿æ¶è¯·æ± human_handoff æå¿«é失败并说æåå
Scenario: probe æååæå
Given probe æåä¸éªæ¶éè¿
When åéè·ä¸æ¬¡ç¡®è®¤ç¨³å®æ§
Then å° trajectories/tmp æåå° trajectories/ready
And æ§çæ¬ç§»å¨å° trajectories/archive
ç¶æç»èæä»¶ï¼
references/state-replay.mdreferences/state-miss-or-fail.mdreferences/state-challenge-blocker.mdreferences/state-promotion.md
èµæºå°å¾
- 䏤忝忮µä¸è§¦åè§åï¼ä»
normal+challenge-handlingï¼ï¼references/json-two-branch-contract.md - Replay/è°è¯æ£æ¥åï¼
references/replay-debug-checklist.md - å½ä»¤æ¨¡æ¿ï¼
references/command-templates.md - JSON 示ä¾ï¼
assets/json-demos/*.json- å缩ä¼å
probe ä»
assets/json-demos/compressed-probe-skeleton.jsonèµ·æ¥
- å缩ä¼å
probe ä»
- å¯å¤ç¨ trajectoriesï¼
trajectories/ready/**/*.json - ä¸´æ¶ trajectoriesï¼
trajectories/tmp/*.json
è¿è¡åå¼å¯¼
è¥é¡¹ç®ä¸åå¨ï¼
if (!(Test-Path ./agent-memory-workbench/package.json)) { git clone https://github.com/insogao/amw.git agent-memory-workbench }
å®è£ ï¼
npm --prefix ./agent-memory-workbench install
æ§è¡é»è®¤å¼
- æµè§å¨é»è®¤æå¤´æ¨¡å¼ï¼
headed=trueï¼ã - é¤éç¨æ·æå®å
¶ä»èº«ä»½ï¼é»è®¤ profile 为
mainã - æ° JSON éªè¯æ¶ï¼å¿
须带
--disable-replay trueã - æ¥å¿é»è®¤å¼å¯ï¼æ éé¢å¤åæ°ï¼æ¯æ¬¡
runé½ä¼äº§åºevents.jsonlåsummary.jsonã
ç¦æ¢è¿äºè¡ä¸º
- æªè·ç¨æ·åæå°±è¿å
¥
observeã - æ replay æåå½ä½âæ° fallback JSON å·²éªè¯âçè¯æ®ã
- æªå snapshot/eval_js å置就åªçæªå¾è°è¯ã
- æç¨æ·è¿è¡æ¶ JSON ç´æ¥åè¿
examples/ã - AMW åçå¯å®ææ¶ä»è·³å¤é¨èæ¬ï¼Python/Node/shellï¼ã
amw-memory-operatorå·²é䏿¶åè·¨è°ç¨å ¶ä» skill è·¯å¾ã
å¯ç¨ Actions å表ï¼éæ¥ï¼
导èªä¸äº¤äºï¼
openï¼æå¼é¡µé¢ URLãclickï¼æ selector/ref ç¹å»ãclick_textï¼æææ¬ç¹å»ï¼æ¯æexact/indexï¼ãfillï¼æ¸ ç©ºå¹¶å¡«å ¥ææ¬ãtypeï¼æé®å ¥æ¹å¼è¾å ¥ææ¬ãpressï¼é®çæé®ï¼å¦Enterï¼ãwaitï¼çå¾ æ¯«ç§æçå¾ é¡µé¢ load stateã
页é¢è§æµï¼
snapshotï¼è·åå缩骨æ¶ï¼è®¾ç½®pathåé»è®¤åæ¶äº§åº snapshot JSON å screenshot PNGï¼å è¯»ææ¬éª¨æ¶ï¼åçæªå¾ï¼ãscreenshotï¼æªå¾ï¼æ´é¡µ/selector/clipï¼ãeval_jsï¼æ§è¡é¡µé¢èæ¬æåç»æåä¿¡æ¯ãget_urlï¼è¯»åå½å URLã
ææ¬ä¸å¾çï¼
copy_text/paste_textï¼ææ¬å¤å¶ä¸ç²è´´ï¼è¿è¡æ¶åªè´´æ¿åéï¼ãcapture_imageï¼æªå¾å¼å¾çæåï¼å ç´ æ clipï¼ãdownload_imageï¼ä¸è½½åå¾å°æä»¶ï¼ä¸è½½ä»»å¡é¦éï¼ãpaste_imageï¼å°æä»¶åå ¥<input type="file">ã
产ç©ä¸æ ¡éªï¼
write_markdownï¼çæ Markdown æä»¶ãappend_markdown_sectionï¼è¿½å Markdown å°èãassert_fileï¼æè¨æä»¶åå¨ä¸æå°å¤§å°ãassert_markdownï¼æè¨ Markdown å 容/龿¥çº¦æã
人工æ¥ç®¡ï¼
human_handoffï¼éè¦äººå·¥å¤çæ¶æå并交æ¥ã
ååºå¥çº¦
ä»»å¡å¼å§æ¶ï¼æ§è¡åå è¾åºè¿ä¸è¡ ACKï¼
AMW ACK: I will use AMW-native actions first, keep runtime JSON in trajectories/tmp, and use external scripts only with explicit approval or missing native action.
æ¯è¯æ¾æ¸
challenge-handling æè¿è¡æ¶é»æï¼åæå¼¹çªãé£é©é¡µãéªè¯ç ãæ«ç 鍿§ï¼ã
䏿â人工代ç è¯å®¡âæâæå·¥ QAâã