Patricia

ทางการ

Patricia เชื่อมต่อไคลเอนต์ AI ของคุณเข้ากับพื้นที่ทำงาน Patricia หนึ่งพื้นที่ อ่านหน่วยความจำและไฟล์ของพื้นที่ทำงาน ตรวจสอบการผสานรวมที่เชื่อมต่ออยู่ และมอบหมายงานให้ Patricia พร้อมการควบคุมการอนุมัติโดยมนุษย์

คุณทำอะไรได้บ้างด้วย Patricia MCP?

  • ติดตั้งปลั๊กอิน — ติดตั้ง patricia จากมาร์เก็ตเพลส patricia-app/patricia-plugin เพื่อให้ Claude Code โหลดทักษะ เซิร์ฟเวอร์ MCP และฮุกต่าง ๆ
  • ลงชื่อเข้าใช้เซิร์ฟเวอร์ MCP — ยืนยันตัวตนกับเซิร์ฟเวอร์ patricia ด้วย OAuth ผ่าน /mcp หรือเพิ่มเซิร์ฟเวอร์โดยใช้ส่วนหัวโทเค็น Bearer pat_mcp_
  • ถ่ายโอนไฟล์ในเวิร์กสเปซ — ระบุ sha256, byte_size และ content_type ใน create_file หรือ update_file จากนั้นดำเนินการอัปโหลดให้เสร็จด้วย upload_id
  • อ่านไฟล์ในรูปแบบดาวน์โหลด — เรียก read_file โดยตั้งค่า as_download_url=true เพื่อรับข้อมูลเมตาและ URL GET ที่ลงนามชั่วคราว
  • เรียกคืนความทรงจำก่อนส่งพรอมป์ต์ — ฮุกเรียกคืนความทรงจำจะเพิ่มความทรงจำที่เกี่ยวข้องลงในพรอมป์ต์ที่เข้าเกณฑ์ โดยเรียก search_memory หนึ่งครั้งเมื่อมีการตั้งค่าโทเค็น
  • เสนอการบันทึกความทรงจำ — ตัวเชื่อมหน่วยความจำและการแจ้งเตือนให้พุชจะเสนอ remember พร้อมระบุขอบเขตอย่างชัดเจน โดยจะไม่เขียนข้อมูลลงใน Patricia เอง

เอกสาร

[!NOTE] รีโพซิทอรีนี้สร้างจาก bettergroupinc/patricia-monorepo ที่ plugins/patricia/ ระบบอัตโนมัติซิงก์มิเรอร์สาธารณะนี้ คอมมิตต้นทาง: df2bda0088e804342599b2b58d411e65a4cfd8d7 เปิด pull request และ issue ใน monorepo

ปลั๊กอิน Claude Code ของ patricia

ติดตั้งครั้งเดียว แล้วเอเจนต์จะใช้ MCP server ของ Patricia ได้อย่างถูกต้องโดยไม่ต้องบอกซ้ำ

ปลั๊กอินนี้มีสามอย่าง

  1. คำแนะนำ มีห้าทักษะครอบคลุมพื้นฐานของ Patricia การเริ่มต้นใช้งาน งานที่มอบหมาย การผสานการทำงาน และสะพานเชื่อมหน่วยความจำ
  2. การเชื่อมต่อ MCP การติดตั้งจะกำหนดค่า Streamable HTTP server ของ Patricia สำหรับการลงชื่อเข้าใช้ OAuth
  3. ฮุกในเครื่องห้ารายการ ช่วยเริ่มต้นโปรเจกต์ เรียกคืนความทรงจำ ตรวจสอบการผสานการทำงานก่อน และเสนอให้ส่งความทรงจำไปยัง Patricia ฮุกเหล่านี้จะไม่เขียนข้อมูลลง Patricia

นี่คือปลั๊กอิน Claude Code ที่แจกจ่ายได้ ผู้ใช้ติดตั้งบนเครื่องของตนเอง และปลั๊กอินจะทำงานในเซสชัน Claude Code ของผู้ใช้คนนั้น ไม่ใช่แค็ตตาล็อกทักษะผลิตภัณฑ์ของ Patricia และไม่มีส่วนใดในปลั๊กอินทำงานภายใน Patricia

ติดตั้ง

claude plugin marketplace add patricia-app/patricia-plugin
claude plugin install patricia@patricia

จากนั้นเริ่มเซสชันใหม่ หรือเรียกใช้ /reload-plugins

มาร์เก็ตเพลสนั้นคือ https://github.com/patricia-app/patricia-plugin. ระบบอัตโนมัติสร้างทุกไฟล์ในนั้นจาก monorepo ของ Patricia

หมายเหตุสำหรับผู้ร่วมพัฒนา: monorepo เป็นส่วนตัว ผู้ร่วมพัฒนาที่มีสิทธิ์เข้าถึงสามารถเพิ่ม monorepo เองเป็นมาร์เก็ตเพลสได้ เพราะ .claude-plugin/marketplace.json ที่รูทชี้ปลั๊กอิน patricia ไปยัง ./plugins/patricia

ติดตั้งปลั๊กอิน อย่าโหลดด้วย --plugin-dir ปลั๊กอินที่โหลดจากไดเรกทอรีจะมีทักษะ แต่ไม่มีฮุก ดังนั้นคำแนะนำจะทำงาน แต่สะพานเชื่อมหน่วยความจำจะไม่ทำงาน เรื่องนี้ผ่านการทดสอบแล้ว ไม่ใช่แค่การคาดเดา: ฮุกทดสอบที่โหลดผ่าน --plugin-dir ไม่เคยทำงาน ขณะที่ฮุกเดียวกันซึ่งประกาศในการตั้งค่าโปรเจกต์ทำงานเมื่อมีการเขียนแบบเดียวกันในโหมด headless เดียวกัน Claude Code จะลงทะเบียน hooks/hooks.json ของปลั๊กอินก็ต่อเมื่อปลั๊กอินนั้นติดตั้งและเปิดใช้งานแล้วเท่านั้น

claude plugin details patricia รายงานสิ่งที่ติดตั้งแล้ว:

Component inventory
  Skills (5)  delegating-work, integrations, memory-bridge, onboard, using-patricia
  MCP servers (1)  patricia
  Hooks (5)  SessionStart, UserPromptSubmit, PreToolUse, PostToolUse, Stop

ลงชื่อเข้าใช้ MCP server

ปลั๊กอินกำหนดค่า MCP server โดยไม่มี header ที่บันทึกไว้ เมื่อใช้งานครั้งแรก ให้เรียกใช้ /mcp แล้วเลือก Patricia หรือจะเริ่มขั้นตอน OAuth จากเทอร์มินัลก็ได้:

claude mcp login plugin:patricia:patricia

การลงชื่อเข้าใช้ MCP ด้วย OAuth และโทเค็นส่วนตัว pat_mcp_ ของฮุกเป็นข้อมูลรับรองคนละชุด การใช้ OAuth เพียงอย่างเดียวจะไม่เปิดใช้งานฮุกที่ต้องใช้โทเค็น

ใช้โทเค็นแทนได้เมื่อ OAuth ไม่เหมาะสม:

claude mcp add --transport http patricia https://api.patricia.app/v1/mcp \
  --header "Authorization: Bearer $PATRICIA_MCP_TOKEN"

โทเค็นส่วนตัว pat_mcp_ ระบุผู้รับผิดชอบและเขียนข้อมูลได้ ส่วนคีย์ API ของ tenant pat_live_ ไม่ระบุบุคคล จึงอ่านได้อย่างเดียว และไม่สามารถตอบ list_skills หรือ list_integrations ได้

กำหนดโทเค็นส่วนตัวให้ฮุกในเครื่อง

ฮุกในเครื่องต้องใช้ Python 3 ซึ่งเรียกใช้ได้ผ่านคำสั่ง python3

สร้างคีย์ส่วนตัว pat_mcp_ ใน Patricia ที่ Settings > AI tools > Advanced > API keys จากนั้นเลือกวิธีตั้งค่าอย่างใดอย่างหนึ่ง:

export PATRICIA_MCP_TOKEN="pat_mcp_..."

หรือเขียนไฟล์นี้ที่ ~/.claude/patricia.json:

{
  "token": "pat_mcp_..."
}

PATRICIA_MCP_TOKEN มีลำดับความสำคัญเหนือไฟล์ หาก PATRICIA_MCP_TOKEN ว่างเปล่า ระบบจะปิดการใช้ไฟล์สำรอง พฤติกรรมนี้ตั้งใจให้เป็นเช่นนั้น เพื่อให้ผู้ใช้ระงับฮุกที่ต้องยืนยันตัวตนได้โดยไม่ต้องย้ายไฟล์

ถ่ายโอนไฟล์เวิร์กสเปซ

เซิร์ฟเวอร์มีเครื่องมือ 39 รายการ การถ่ายโอนไฟล์ใช้โหมดต่าง ๆ บน create_file, update_file และ read_file

  • ส่ง content หรือ content_base64 เพื่อเขียนข้อมูลแบบ inline
  • ระบุ sha256, byte_size และ content_type สำหรับการอัปโหลดโดยตรง
  • ดำเนินการอัปโหลดให้เสร็จด้วย upload_id ซึ่งใช้ได้ครั้งเดียว
  • อ่าน read_file(as_download_url=true) เพื่อดูข้อมูลเมตาและ URL GET ที่ลงนามชั่วคราว

การประกาศสร้างยังต้องมี name และ kind ส่วนการประกาศอัปเดตต้องมี file_id

บันทึก JSON ผลลัพธ์จากการประกาศเป็น declaration.json ไว้ข้าง ๆ file.pdf ใช้ Bash, jq และ curl เพื่อส่งทุกรายการ upload_headers ที่ได้รับกลับมา ลายเซ็นผูกกับ byte_size: ส่งข้อมูลให้มีจำนวนไบต์ตรงตามที่ระบุ พร้อม Content-Length; การส่งแบบ chunked จะล้มเหลว

declaration=declaration.json
file=file.pdf
mode=$(jq -er '
  if (.upload_id | type == "string" and length > 0) and has("upload_url") then
    if .upload_url == null and .already_stored == true then "reuse"
    elif (.upload_url | type == "string" and length > 0) and .already_stored == false
      and (.upload_headers | type == "object" and all(.[]; type == "string")) then "put"
    else error("Invalid upload declaration") end
  else error("Invalid upload declaration") end
' "$declaration") || { printf 'Invalid upload declaration.\n' >&2; exit 1; }
upload_id=$(jq -r '.upload_id' "$declaration") || exit 1
if [[ "$mode" == put ]]; then
  upload_url=$(jq -r '.upload_url' "$declaration") || exit 1
  headers=()
  while IFS= read -r header; do
    headers+=(--header "$header")
  done < <(jq -r '.upload_headers | to_entries[] | "\(.key): \(.value)"' "$declaration")
  status=$(curl --silent --show-error --output /dev/null --write-out '%{http_code}' \
    --request PUT "$upload_url" "${headers[@]}" --data-binary "@$file") || exit 1
  case "$status" in
    2??|412) ;;
    *) printf 'Upload refused: HTTP %s\n' "$status" >&2; exit 1 ;;
  esac
fi
# A null upload_url skips the PUT and goes straight to completion.
printf 'Complete with upload_id %s before its expiry.\n' "$upload_id"

รหัส 412 หมายถึงมีไบต์ถูกส่งมาถึงคีย์นี้แล้ว ให้เรียก complete ด้วย upload_id ก่อนหมดอายุ หลังจากได้ 412 แล้ว หาก [invalid_arguments] ในขั้นตอน complete ถือเป็นสถานะสิ้นสุด: ส่งเนื้อหาแบบ inline หรือขอให้เจ้าของแชร์ อย่าประกาศซ้ำ

checksum คือการเข้ารหัส base64 ของไบต์ดิบจาก digest SHA-256 URL อัปโหลดที่เป็น null หมายความว่า Patricia นำไบต์กลับมาใช้ซ้ำได้จากไฟล์ที่ยังใช้งานอยู่และผู้ใช้คนนี้อ่านได้ ขั้นตอน complete จะตรวจสอบสิทธิ์เข้าถึงอีกครั้งและยืนยันไบต์ที่จัดเก็บไว้ การ complete สำหรับการสร้างใช้เฉพาะ upload_id ส่วนการ complete สำหรับการอัปเดตใช้ file_id และ upload_id แยกฟิลด์ inline การประกาศ และฟิลด์ complete ออกจากกัน

การ complete จะส่งคืน id, version, byte_size, sha256 และ console_url หากมี การ complete สำหรับการสร้างจะส่งคืน sharing_note ด้วย โหมดดาวน์โหลดจะส่งคืน id, version, byte_size, sha256, content_type, download_url และฟิลด์วันหมดอายุ ใช้ URL GET ที่ลงนามเพื่อดาวน์โหลดไบต์นอกบทสนทนา การตอบกลับจากการดาวน์โหลดไม่มีฟิลด์เนื้อหาที่เป็นข้อความหรือ base64 เนื้อหาจากฐานข้อมูลแบบเดิมจะส่งคืน [download_unavailable]; ยังคงอ่านข้อความทั่วไปได้

ฮุกในเครื่อง

ฮุกทั้งห้ารายการเปิดใช้งานโดยค่าเริ่มต้น หากไม่มีไฟล์กำหนดค่าหรือไม่มีคีย์ของฮุก ฮุกจะยังเปิดอยู่ หากไฟล์กำหนดค่าผิดรูปแบบหรืออ่านไม่ได้ ฮุกจะปิด ตั้งค่าคีย์ที่ระบุของฮุกเป็นค่า false ตามตัวอักษรใน ~/.claude/patricia-plugin.json เพื่อปิดเฉพาะฮุกนั้น

การเริ่มต้นใช้งาน

  • เวลาและการทำงาน: SessionStart ทำงานเมื่อเริ่มเซสชันใหม่หรือกลับมาใช้เซสชันเดิม โดยทักทายผู้ใช้ที่เชื่อมต่อและเสนอทักษะ onboard หนึ่งครั้งต่อโปรเจกต์
  • ค่าใช้จ่าย: เมื่อมีโทเค็น จะเรียก whoami หนึ่งครั้ง การหมดเวลาของเครือข่ายคือ 3 วินาที และการหมดเวลาของฮุกคือ 10 วินาที
  • สวิตช์ปิด: ตั้งค่า hooks.onboarding.enabled เป็น false
  • ความเป็นส่วนตัว: เมื่อมีโทเค็น จะส่งออกจากเครื่องเฉพาะคำขอ whoami ที่ผ่านการยืนยันตัวตน ไม่มีพรอมป์ต์ บทถอดเสียง หรือเนื้อหาโปรเจกต์ออกจากเครื่องผ่านฮุกนี้

เรียกคืนความทรงจำ

  • เวลาและการทำงาน: UserPromptSubmit ทำงานก่อนส่งพรอมป์ต์แต่ละครั้ง โดยข้ามคำสั่ง คำตอบสั้น ๆ การยืนยัน และอินพุตที่มีแต่โค้ด และเพิ่มความทรงจำที่เกี่ยวข้องลงในพรอมป์ต์ที่เข้าเกณฑ์
  • ค่าใช้จ่าย: เมื่อมีโทเค็นและพรอมป์ต์เข้าเกณฑ์ จะเรียก search_memory หนึ่งครั้ง การหมดเวลาของเครือข่ายคือ 3 วินาที และการหมดเวลาของฮุกคือ 8 วินาที
  • สวิตช์ปิด: ตั้งค่า hooks.recall.enabled เป็น false
  • ความเป็นส่วนตัว: ส่งข้อความพรอมป์ต์ที่ยุบแล้วไม่เกิน 300 อักขระไปยัง Patricia โดยส่งข้อความนี้เฉพาะเมื่อกำหนดค่าโทเค็นไว้เท่านั้น

ตรวจสอบการผสานการทำงานก่อน

  • เวลาและการทำงาน: UserPromptSubmit ตรวจสอบพรอมป์ต์ ส่วน PreToolUse ตรวจสอบอินพุต WebFetch, WebSearch และ Bash ก่อนเรียกใช้เครื่องมือ แค็ตตาล็อกในเครื่องใช้ระบุผู้ให้บริการที่รู้จัก
  • ค่าใช้จ่าย: ไม่มีการเรียก MCP หรือเครือข่าย และไม่ต้องใช้โทเค็น การหมดเวลาของฮุกคือ 8 วินาทีสำหรับพรอมป์ต์ และ 5 วินาทีก่อนเรียกเครื่องมือ
  • สวิตช์ปิด: ตั้งค่า hooks.integrations_first.enabled เป็น false
  • ความเป็นส่วนตัว: ไม่มีข้อมูลออกจากเครื่อง ฮุกตรวจสอบพรอมป์ต์หรืออินพุตของเครื่องมือในเครื่อง

สะพานเชื่อมหน่วยความจำ

  • เวลาและการทำงาน: PostToolUse ทำงานหลัง Write, Edit หรือ MultiEdit โดยตรวจพบโน้ตหน่วยความจำในเครื่องที่บันทึกไว้ และเสนอ remember พร้อมระบุขอบเขตอย่างชัดเจน
  • ค่าใช้จ่าย: ไม่มีการเรียก MCP หรือเครือข่าย การหมดเวลาของฮุกคือ 5 วินาที
  • สวิตช์ปิด: ตั้งค่า hooks.memory_bridge.enabled เป็น false นอกจากนี้ ไฟล์เดิม ~/.claude/patricia-memory-bridge.json ยังตั้งค่า enabled เป็น false ได้ด้วย
  • ความเป็นส่วนตัว: สคริปต์อ่านโน้ตที่บันทึกไว้ในเครื่องและไม่ส่งอะไรผ่านเครือข่าย โดยส่งคืนพาธของโน้ตและข้อความเตือนให้ Claude Code โดยไม่มีเนื้อหาโน้ต

เตือนให้ส่งความทรงจำ

  • เวลาและการทำงาน: Stop ทำงานเมื่อเอเจนต์ทำงานเสร็จ โดยเสนอ remember หลังจากเขียนความทรงจำในเครื่อง หรือหลังเซสชันที่ใช้เครื่องมืออย่างมีนัยสำคัญโดยไม่ได้เขียนความทรงจำไปยัง Patricia
  • ค่าใช้จ่าย: ไม่มีการเรียก MCP หรือเครือข่าย การหมดเวลาของฮุกคือ 8 วินาที
  • สวิตช์ปิด: ตั้งค่า hooks.push_reminder.enabled เป็น false
  • ความเป็นส่วนตัว: อ่านบทถอดเสียงในเครื่องไม่เกิน 5 MB และไม่ส่งอะไรออกไป ฮุกจะทำงานเฉพาะเมื่อกำหนดค่าโทเค็นไว้ เพื่อให้การเรียกเขียนความทรงจำที่เสนอไว้สำเร็จได้หลังผู้ใช้ยินยอม

เครือข่ายและข้อมูลรับรอง

ปลั๊กอินนี้เชื่อมต่อกับ https://api.patricia.app/v1/mcp ผ่าน Streamable HTTP

Patricia ใช้ OAuth 2.1 กับ PKCE S256 เมื่อขั้นตอน OAuth เสร็จสมบูรณ์ ไคลเอนต์จะได้รับโทเค็น bearer ส่วนตัว pat_mcp_

ไฟล์ manifest ของปลั๊กอินไม่มีข้อมูลรับรอง ไคลเอนต์จะส่งโทเค็น bearer ไปยัง api.patricia.app หลังลงชื่อเข้าใช้

มาร์เก็ตเพลสอื่น ๆ

  • Cursor อ่าน plugin.json และ mcp.json จากแพ็กเกจนี้
  • OpenAI Codex และ ChatGPT อ่าน .codex-plugin/plugin.json
  • รายการแหล่งระยะไกลไม่ต้องใช้ manifest; xAI อ่าน .claude-plugin/plugin.json เมื่อมีไฟล์นี้

แพ็กเกจมาร์เก็ตเพลสทั้งหมดชี้ไปยังโครงสร้าง skills/ เดียวในแพ็กเกจนี้

assets/icon.png เป็นสินทรัพย์แบรนด์ของ Patricia ที่มาจากแหล่งทางการ

สะพานเชื่อมหน่วยความจำเสนอเท่านั้น ไม่เขียนข้อมูล

ฮุกคือคำสั่ง shell ไม่มี MCP client ไม่มีใครให้ความยินยอม และฮุกไม่สามารถอ่านโน้ตแล้วแยกได้ว่าเรื่องใดเป็นข้อเท็จจริงของทีมและเรื่องใดเป็นเรื่องส่วนตัว หากฮุกส่งทุกโน้ตในเครื่องไปยังเวิร์กสเปซที่แชร์ร่วมกัน โน้ตเฉพาะเครื่อง โน้ตชั่วคราว และโน้ตส่วนตัวก็จะถูกเปิดเผยต่อทั้งทีมโดยไม่มีใครรู้ นี่คือปัญหาที่สะพานเชื่อมนี้สร้างขึ้นเพื่อหลีกเลี่ยง ไม่ใช่ฟีเจอร์ที่เลื่อนการทำออกไป

ดังนั้นฮุกจึงทำเพียงอย่างเดียว: แทรก hookSpecificOutput.additionalContext เพื่อบอกเอเจนต์ว่าโน้ตนี้อยู่ในเครื่องเท่านั้น และ remember ต้องมี scope เอเจนต์เป็นผู้ตัดสินใจเรื่องขอบเขต ขอความยินยอมจากผู้ใช้ และเรียกใช้เครื่องมือ การพิจารณาและการเขียนข้อมูลจึงอยู่ในที่เดียวกัน

มีเงื่อนไขสี่ข้อที่ทำให้ฮุกไม่ส่งเสียงรบกวน:

เงื่อนไขผลลัพธ์
การกำหนดค่าอย่างใดอย่างหนึ่งที่รองรับตั้งค่า enabled ของสะพานเชื่อมเป็น falseไม่แจ้งเตือน หากไม่มีค่านี้ สะพานเชื่อมจะเปิดอยู่
พาธที่เขียนอยู่นอกไดเรกทอรีหน่วยความจำไม่แจ้งเตือน
การเขียนไม่สำเร็จ หรือไฟล์ว่างเปล่าไม่แจ้งเตือน
front matter ของโน้ตมี patricia: skipไม่แจ้งเตือน

นอกจากนี้ยังเสนอแต่ละโน้ตไม่เกินหนึ่งครั้งต่อเซสชัน ดังนั้น Write ตามด้วยการเรียก Edit หลายครั้งจะแสดงการเตือนเพียงครั้งเดียว ไม่ใช่สี่ครั้ง บันทึกนี้อยู่ใน ~/.claude/patricia-memory-bridge-state/ โดยมีหนึ่งไฟล์ต่อเซสชัน และลบไฟล์ที่เก่ากว่าเจ็ดวัน

ฮุกนี้ไม่ได้ใช้ CLAUDE_PLUGIN_DATA สำหรับเรื่องนี้ แม้ตัวแปรดังกล่าวจะอยู่ในสภาพแวดล้อมของฮุก แต่ก็ไม่ได้ชี้ไปยังไดเรกทอรีของปลั๊กอินที่กำลังทำงานอยู่อย่างน่าเชื่อถือ: ฮุกระดับโปรเจกต์บนเครื่องนี้พบว่าตัวแปรดังกล่าวตั้งค่าเป็น ~/.claude/plugins/data/codex-openai-codex ซึ่งเป็นไดเรกทอรีข้อมูลของปลั๊กอินอื่นที่ไม่เกี่ยวข้อง

เครื่องมือที่ใช้เขียนความทรงจำจริง ๆ

Claude Code 2.1.238 ประกาศเครื่องมือชื่อ memory_list, memory_read และ memory_write แต่บนเครื่องที่ใช้พัฒนาสิ่งนี้ โน้ตความทรงจำไม่ได้เขียนด้วยเครื่องมือเหล่านั้น: การตรวจสอบบทถอดเสียง 120 เซสชันล่าสุดพบการเรียก Write 49 ครั้ง และ Edit 35 ครั้งไปยัง ~/.claude/projects/*/memory/ โดยไม่พบการเรียก memory_write เลย

ดังนั้นตัวจับคู่จึงเป็น Write|Edit|MultiEdit โดยตั้งใจไม่รวม memory_write การเพิ่มตัวจับคู่สำหรับเครื่องมือที่ยังไม่ได้ตรวจสอบรูปแบบ payload จะทำให้ได้ฮุกที่ไม่ทำงานอย่างเงียบ ๆ และดูเหมือนฮุกที่ทำงานปกติทุกประการ เพิ่มตัวจับคู่เมื่อได้อ่าน payload ของ memory_write จริงแล้ว

คำแนะนำและกฎประจำของเซิร์ฟเวอร์มีสำเนาเดียว ไม่ใช่สองสำเนา

start_onboarding_import อาจส่งคืน standing_rule_to_offer ที่มี ask_first, instruction และบล็อก markdown ซึ่งมีขนาดพอดีกับ CLAUDE.md ของผู้อื่น ทักษะนี้ไม่กล่าวซ้ำถึงบล็อกดังกล่าว แต่บอกเอเจนต์ให้เรียกเครื่องมือและใช้ข้อมูลที่ส่งกลับมา เพื่อให้เซิร์ฟเวอร์เป็นผู้ดูแลข้อความนั้นเพียงแห่งเดียว

อีกทางเลือกคือดึงข้อมูลมาตอนติดตั้ง แต่ทำไม่ได้ เนื้อหา SKILL.md ของปลั๊กอินเป็นข้อความคงที่ในแคชที่ระบุด้วย content address ไม่มีขั้นตอนตอนติดตั้งที่จะแก้ไขเนื้อหานั้นได้ และปลั๊กอินที่มีหน้าที่ตั้งค่า Patricia ก็ไม่อาจพึ่งพาการเชื่อมต่อ Patricia ที่ยืนยันตัวตนแล้วและทำงานได้ เพื่อแสดงคำแนะนำของตัวเอง การอ่านเครื่องมือเมื่อใช้งานจึงให้สำเนาเดียวกันโดยไม่มีข้อจำกัดเหล่านั้น

ชื่อเครื่องมือทุกชื่อที่ระบุไว้ที่นี่เป็นเครื่องมือจริง

ตัวระบุเครื่องมือทุกตัวที่อยู่ใน backtick ในปลั๊กอินนี้จะถูกตรวจสอบกับทะเบียนเครื่องมือของเซิร์ฟเวอร์เอง ซึ่งเป็นรายการที่เซิร์ฟเวอร์สร้างขึ้นจาก tools/list การตรวจสอบเดียวกันนี้ยืนยันด้วยว่าพบตัวระบุที่ไม่ว่างเปล่า เพื่อไม่ให้ตัวแยกข้อมูลที่เสียทำให้การตรวจสอบผ่านไปได้โดยไม่พบอะไรเลย

หมายเหตุสำหรับผู้ร่วมพัฒนา: การตรวจสอบนี้คือ backend/api/tests/test_patricia_claude_plugin.py ใน monorepo ของ Patricia และจะทำงานทุกครั้งที่มีการเปลี่ยนแปลงปลั๊กอินนี้

การตั้งค่าและการค้นหาไฟล์

เครื่องมือการใช้งาน
get_settingsแสดงรายการการตั้งค่า หรืออ่านคีย์หรือกลุ่มที่เลือก พร้อมความหมาย ค่า และสิทธิ์ ข้อมูลประจำตัวทั้งสองแบบอ่านกลุ่มของเวิร์กสเปซได้
update_settingsเปลี่ยนกลุ่มที่ได้รับอนุญาตหนึ่งกลุ่มผ่านการดำเนินการบนแดชบอร์ด ต้องใช้โทเค็นส่วนบุคคล
list_filesแสดงรายการไฟล์ หน้าแรกประกอบด้วยโฟลเดอร์และจำนวนรายการที่กรองตามการมองเห็น
get_brand_kitอ่านสีแบรนด์ รูปแบบตัวอักษร และโลโก้

ใช้ get_settings(keys=["company_profile"]) สำหรับโปรไฟล์บริษัท เครื่องมือการตั้งค่าใช้แค็ตตาล็อกและการดำเนินการเดียวกับที่ Patricia ใช้ในแชต การเปลี่ยนการตั้งค่าในแชตต้องได้รับการคลิกจากผู้ร้องขอ การเปลี่ยนนโยบายการอนุมัติจะมีผลกับการทำงานผ่านคอนโซล ส่วนการดำเนินการที่สำคัญและการดำเนินการที่ผู้ให้บริการกำหนดให้ต้องอนุมัติจะยังคงมีระดับการอนุมัติขั้นต่ำของตน และระดับขั้นต่ำสำหรับกลุ่มผู้รับและการคลิกเท่านั้นก็ยังคงมีผลกับการดำเนินการใด ๆ ที่ Patricia ถามถึงอยู่แล้ว

การอ่านข้อมูลจากการผสานการทำงานจะรอขณะที่มีงานอื่นทำงานอยู่สำหรับบุคคลเดียวกัน ตรวจสอบงานนั้นด้วย get_task_status หรือรอให้งานเสร็จสิ้น หลังจากอนุมัติการผสานการทำงานโดยตรงแล้ว ให้ทำตามประโยค next ที่ส่งกลับโดย decide_approval ตรวจสอบ get_task_status ด้วยรหัสงานเพื่อรับผลลัพธ์ อย่าเรียกใช้เครื่องมืออีกครั้ง Patricia จะดำเนินการที่อนุมัติแล้วหนึ่งครั้ง การเรียกใช้หลังจากงานเสร็จสิ้นถือเป็นคำขอใหม่ โดยกฎการอนุมัติปัจจุบันจะเป็นตัวกำหนดว่าต้องถามก่อนหรือไม่ ทำตามคำแนะนำ next: การตรวจสอบและการอนุมัติที่บันทึกไว้ใน Billit ซึ่งไม่มีข้อมูลระบุตัวผู้ร้องขอที่จัดเก็บไว้อาจต้องเรียกใช้คำขอเดิมอีกครั้ง