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

สามส่วน:
- วิธีรันมันอย่างถูกต้อง
- วิธีสอนมันให้เป็นเครื่องจักรทางการเงิน (ความได้เปรียบที่แท้จริง)
- คลังโค้ดและบริการที่ขยายขีดความสามารถของมัน
อ่านส่วนที่สองสองรอบ
ไม่ใช่คำแนะนำทางการเงิน โปรดศึกษาด้วยตนเอง โปรเจกต์ของผมเอง - @coldvisionXYZ
ส่วนที่ 1 รันมัน และทำความเข้าใจสิ่งที่คุณกำลังรัน
บรรทัดเดียว มันจะเตรียมการ python, node, git, ทุกอย่าง ไปไว้ใน ~/.hermes/:
1curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
Linux, macOS, WSL2, Android ผ่าน Termux (ตรวจจับอัตโนมัติ), Windows ดั้งเดิม (เบต้าแรกเริ่ม, ไม่ต้องใช้ WSL) ต้องใช้ Python 3.11 ขึ้นไป จากนั้นใช้ hermes setup สำหรับตัวช่วยตั้งค่า หรือ hermes model / hermes tools / hermes gateway setup แบบแยกส่วน รันมันด้วย hermes (CLI ดั้งเดิม) หรือ hermes --tui (แนะนำ)
นามธรรมของตัวให้บริการคือพลังพิเศษที่เงียบสงบ
รันไทม์เดียวกันนี้ขับเคลื่อน API chat-completions, Anthropic Messages, Codex Responses, เส้นทางแอปเซิร์ฟเวอร์ Codex แบบนอกกระบวนการ และ Bedrock
รูปแบบการเรียกใช้เครื่องมือและลักษณะเฉพาะของตัวให้บริการจะถูกทำให้เป็นมาตรฐานโดยตัวปรับการส่งผ่าน ดังนั้นในระดับลูป พื้นผิวของโมเดลจะดูเหมือนกันไม่ว่าจะมีอะไรอยู่เบื้องหลังก็ตาม
นั่นหมายถึงการสำรองข้อมูลตัวให้บริการเป็นเรื่องจริง และการสลับโมเดลนั้นไม่ต้องเขียนโค้ดเลยจริงๆ
ผลในทางปฏิบัติต่อกระเป๋าเงินของคุณ: คุณไม่ได้รันแค่โมเดลเดียว
ภายใต้ auxiliary ใน config.yaml งานย่อยทุกอย่าง, การรันของ Curator, งานด้านภาพ, การฝังข้อความ, การสร้างชื่อเรื่อง, การค้นหาเซสชัน, ตัวสรุปแบบบีบอัด สามารถปักหมุด ตัวให้บริการ, โมเดล, base_url และ reasoning effort ของตัวเองได้
ดังนั้นโมเดล reasoning ที่มีราคาแพงของคุณจะไม่ต้องสิ้นเปลืองโทเค็นในการสรุปแชทเก่าหรือตั้งชื่อเซสชัน
นอกจากนี้ยังมี smart_model_routing สำหรับส่งคำถามยากๆ ไปยังโมเดลที่แข็งแกร่ง และส่งทุกอย่างอื่นไปยังโมเดลราคาถูก
การตั้งค่าที่ถูกที่สุดและสมเหตุสมผลที่สุด: ใช้ Nous Portal (สมัครสมาชิกครั้งเดียว, โมเดล 300+ ตัว + Tool Gateway สำหรับเว็บ/เบราว์เซอร์/รูปภาพ/TTS) เป็นตัวหลัก, ปักหมุดโมเดลราคาถูกสำหรับงานเสริมทั้งหมด, ใช้ Ollama/vLLM ในเครื่องเป็นตัวสำรองฟรี ถ้าคุณใช้ในเครื่อง Ollama จะตั้งค่า context เริ่มต้นที่ 4k และตัดทอนอย่างเงียบๆ ให้ตั้งค่า num_ctx เป็น 64k+ มิฉะนั้นเอเจนต์จะโง่และคุณจะโทษโมเดล
สิ่งที่คุณต้องเข้าใจก่อนแตะต้อง config: พรอมพ์ถูกกำหนดรูปร่างโดยแคช
นี่คือค่าคงที่ที่ทั้งระบบถูกสร้างขึ้นมาเพื่อปกป้อง และถ้าคุณไม่เข้าใจ คุณจะทำให้ค่าใช้จ่ายของคุณเพิ่มขึ้นเป็น 10 เท่าอย่างเงียบๆ
Hermes ประกอบพรอมพ์ระบบเป็น สามระดับ:
- stable (เสถียร)
- context (บริบท)
- volatile (ผันแปร)

ระดับ Stable บรรจุตัวตน (SOUL.md), คำแนะนำเครื่องมือสำหรับ เครื่องมือที่เปิดใช้งานเท่านั้น, ดัชนีทักษะ, คำแนะนำสภาพแวดล้อม ระดับ Context มาจาก cwd ระดับ Volatile เปลี่ยนไปในแต่ละเทิร์น การแบ่งระดับนี้ชัดเจนในโค้ดด้วยเหตุผลเดียวคือ ความถูกต้องของแคชคำนำหน้าพรอมพ์ ผู้ให้บริการจะแคชคำนำหน้าของพรอมพ์คุณและคิดค่าใช้จ่ายโทเค็นที่แคชไว้ในราคาที่ต่ำกว่า ทุกครั้งที่ระดับ stable เปลี่ยนแปลง คุณจะทำลายแคชนั้นและต้องจ่ายเต็มราคาสำหรับทุกอย่าง
ดังนั้น Hermes จึงถือว่าการเปลี่ยนแปลงบริบทเป็นเรื่องเกือบจะศักดิ์สิทธิ์ จากกฎทางวิศวกรรมของเอเจนต์เอง: เวลาเดียวที่มันจงใจเปลี่ยนแปลงบริบทคือระหว่างการบีบอัด คำสั่ง Slash ที่เปลี่ยนสถานะพรอมพ์ระบบ (การติดตั้งทักษะ, การเปิด/ปิดเครื่องมือ) จะตั้งค่าเริ่มต้นเป็น การทำให้แคชไม่ถูกต้องแบบเลื่อนออกไป การเปลี่ยนแปลงจะมีผลในเซสชัน ถัดไป โดยมีแฟล็ก --now ให้เลือกใช้เมื่อคุณต้องการให้มีผลทันที /skills install --now คือรูปแบบมาตรฐานของ "ฉันยอมรับการล้างแคช"
ทำไมคุณถึงต้องสนใจในฐานะนักวิเคราะห์: ทุกทักษะที่คุณเปิดใช้งานและทุกเครื่องมือที่คุณเปิด จะอยู่ในระดับ stable นั้นและกินโทเค็นคำนำหน้าในการเรียกทุกครั้ง เอเจนต์ที่บวมโตและเปิดใช้งานเครื่องมือ 60 ตัว จะต้องจ่ายค่าคำอธิบายทั้ง 60 ตัวในทุกเทิร์นตลอดไป ชุดเครื่องมือที่กระชับและทักษะที่เรียกใช้ตามความต้องการไม่ใช่แค่เรื่องความเรียบร้อย แต่เป็นเรื่องของต้นทุน
การบีบอัดคือการสืบเชื้อสาย ไม่ใช่การตัดทิ้ง
เมื่อบริบทเต็ม เอเจนต์ทั่วไปจะทิ้งเทิร์นเก่าและเกิดอาการความจำเสื่อม
Hermes รัน ชั้นการบีบอัดอิสระสองชั้น:
- ตาข่ายนิรภัย "การรักษาสุขอนามัยของเซสชัน" ของเกตเวย์ ซึ่งจะทำงานเมื่อบริโภคบริบทไปประมาณ 85% จากการประมาณคร่าวๆ ก่อนที่เอเจนต์จะทำงานเสียอีก
- ชั้นจริง คือ ContextCompressor ในลูป ซึ่งจะทำงานเมื่อบริโภคไปประมาณ 50% โดยใช้จำนวนโทเค็นที่รายงานจาก API อย่างแม่นยำ
มัน สรุป เทิร์นกลางๆ เป็นข้อความใหม่แทนที่จะลบทิ้ง และเซสชันจะติดตามการสืบเชื้อสายของพ่อแม่ลูกสำหรับการแบ่งการบีบอัดทุกครั้ง บทสรุปจะกลายเป็นส่วนหนึ่งของบันทึกการสนทนา ต้นฉบับจะถูกเก็บรักษาไว้ในสายเลือด

การสูญเสียข้อมูลเป็นเรื่องที่ยอมรับได้ การไม่สูญเสียข้อมูลจะทำให้หน่วยความจำเต็ม
เซสชันคือโครงสร้างพื้นฐาน ไม่ใช่แค่บันทึกการสนทนา
พวกมันมีแท็กแหล่งที่มาและข้อมูลเมตาการกำหนดเส้นทาง และมีเครื่องมือ session_search ที่โมเดลสามารถเข้าถึงได้ พร้อมกับดัชนี FTS5 SQLite ที่ครอบคลุมทุกเทิร์นที่ผ่านมา เอเจนต์ของคุณสามารถจำได้ว่า "เมื่อสามสัปดาห์ก่อนฉันสรุปอะไรเกี่ยวกับ COIN" ระหว่างการให้เหตุผล ไม่ใช่เพราะคุณยัดมันเข้าไปในบริบท แต่เพราะมันสามารถ สอบถาม ประวัติของตัวเองได้ตามต้องการ
มันรันได้ที่ไหน
แบ็กเอนด์เทอร์มินัลหกแบบ:
- local
- Docker
- SSH
- Singularity
- Modal
- Daytona
Modal และ Daytona เป็นแบบไร้เซิร์ฟเวอร์ สภาพแวดล้อมจะพักการทำงานเมื่อไม่ได้ใช้งานและตื่นขึ้นมาตามคำขอ ทำให้แทบไม่มีค่าใช้จ่ายระหว่างการรัน
VPS ราคา $5 หรือกล่องไร้เซิร์ฟเวอร์ที่พักการทำงานได้คือ "$5" ที่แท้จริง เชื่อมต่อเกตเวย์ และเอเจนต์ตัวเดียวกันสามารถทำงานบนแพลตฟอร์มได้มากกว่า 20 แพลตฟอร์ม (Telegram, Discord, Slack, Signal, …) ด้วยการกำหนดเส้นทางเซสชันแบบรวมศูนย์ ดังนั้นคุณสามารถคุยกับมันจากโทรศัพท์ของคุณในขณะที่มันทำงานบนคลาวด์บ็อกซ์
เซสชันอยู่รอดได้แม้รีสตาร์ทผ่าน SQLite ในโหมด WAL พร้อมชั้นลองใหม่แบบกำหนดเองสำหรับการแข่งขันเขียนแบบหลายกระบวนการ ดังนั้นงาน cron และงานเกตเวย์จะไม่ทำให้ข้อมูลเสียหายซึ่งกันและกัน
ส่วนที่ 2 - สอนมันให้เป็นเครื่องจักรทางการเงิน
เอเจนต์ธรรมดาคือเด็กฝึกงานที่ฉลาด แต่ไม่มีการฝึกอบรมเฉพาะด้านและไม่มีวินัยในการตัดสิน คุณต้อง สอน มันผ่านสี่ช่องทาง: ตัวตน, คู่มือการปฏิบัติงาน, ความทรงจำ, และมาตรฐาน จากนั้นมันจะสอนตัวเอง และหน้าที่ที่แท้จริงของคุณจะกลายเป็นการคัดกรอง
2a. ตัวตน - SOUL.md คือช่องแรก
SOUL.md เป็นสิ่งแรกในพรอมพ์ระบบ ก่อนเครื่องมือ ก่อนทักษะ ก่อนทุกอย่าง มันคือชั้นของบุคลิกภาพและค่านิยม
สำหรับนักวิเคราะห์ทางการเงิน นี่คือที่ที่คุณกำหนดอารมณ์ความรู้ในเชิงญาณวิทยา ไม่ใช่การตกแต่งบุคลิกภาพ
เช่น: "คุณเป็นนักวิเคราะห์ฝ่ายซื้อที่ขี้ระแวง คุณไม่เชื่อถือตัวเลขกลมๆ และเรื่องเล่า คุณจะไม่กล่าวถึงตัวเลขใดๆ ที่คุณไม่ได้ดึงมาจากเครื่องมือในเซสชันนี้
คุณอยากจะพูดว่า 'ข้อมูลไม่เพียงพอ' มากกว่าที่จะเดา คุณปฏิบัติต่อข้อสรุปก่อนหน้าของคุณเองว่าเป็นความเชื่อก่อนหน้าที่ต้องได้รับการอัปเดต"
สิ่งนี้อยู่ในระดับ cache-stable และแต่งแต้มทุกเทิร์นโดยไม่มีค่าใช้จ่ายเพิ่ม คนส่วนใหญ่ปล่อยให้ SOUL.md เป็นค่าเริ่มต้น สำหรับนักวิเคราะห์ นี่คือ 1,500 ตัวอักษรที่ให้ผลตอบแทนสูงที่สุดของคุณ
2b. คู่มือการปฏิบัติงาน - ทักษะ และเหตุใดคำอธิบายจึงเป็นวิศวกรรมที่แท้จริง
ทักษะคือไฟล์ SKILL.md, ชื่อ + คำอธิบาย + ขั้นตอน, เก็บไว้ใน ~/.hermes/skills/
มีเพียง คำอธิบาย สั้นๆ เท่านั้นที่อยู่ในดัชนีทักษะที่โหลดไว้ตลอดเวลา
ขั้นตอนทั้งหมดจะถูกโหลด ตามความต้องการ เมื่อมีงานที่ตรงกัน ดังนั้นคลังทักษะของคุณจึงมีขนาดใหญ่ได้โดยไม่ทำให้คำนำหน้าบวม
ซึ่งหมายความว่า คำอธิบายคือจุดที่ทักษะจะประสบความสำเร็จหรือล้มเหลว
มันคือเราเตอร์ ถ้าคำอธิบายคลุมเครือ เอเจนต์จะไม่โหลดทักษะเมื่อควรจะโหลด หรือโหลดเมื่อไม่ควร เขียนคำอธิบายเหมือนเงื่อนไขการเรียกใช้ ไม่ใช่บทสรุป
"ใช้เมื่อผู้ใช้ระบุหุ้นที่จดทะเบียนในสหรัฐฯ และต้องการข้อมูลพื้นฐาน" ดีกว่า "วิเคราะห์หุ้น"
ตัวอย่างทักษะนักวิเคราะห์จริง สังเกตมาตรฐานจาก 2d ที่ถูกผนวกเข้าไปในขั้นตอนโดยตรง:
1---2name: equity-snapshot3description: ใช้เมื่อผู้ใช้ระบุชื่อย่อหุ้นที่จดทะเบียนในสหรัฐฯ และต้องการข้อมูลพื้นฐาน + ราคา พร้อมธงความเสี่ยง4---56# Equity Snapshot781. แก้ชื่อย่อหุ้น -> CIK ผ่านแผนที่ company_tickers ของ SEC ห้ามเดาชื่อย่อหุ้นเด็ดขาด92. ดึง 10-K/10-Q ล่าสุด (รายได้, หนี้, กระแสเงินสดอิสระ) ผ่าน EDGAR บันทึกหมายเลข accession103. ห้ามคำนวณอัตราส่วนด้วยตัวเองเด็ดขาด เรียกใช้เครื่องมือ calc สำหรับ P/E, อัตรากำไร, เทียบปีต่อปี114. ตรวจสอบรายได้ข้ามแหล่งข้อมูลสองแห่ง หากไม่ตรงกัน ให้รายงาน *ช่องว่าง* อย่าเลือกอันใดอันหนึ่ง125. ผลลัพธ์: ข้อสรุปหลัก (2 บรรทัด), 3 ปัจจัยหนุน, 3 ความเสี่ยง, การประเมินมูลค่า, ความเชื่อมั่น 0-1,13 และ "จุดข้อมูลหนึ่งจุดที่จะเปลี่ยนข้อสรุปนี้" หากข้อมูลบาง ให้ส่งคืน "pass"
ทักษะรองรับการเปิด/ปิดตามแพลตฟอร์ม, การเปิดใช้งานตามเงื่อนไขขึ้นอยู่กับความพร้อมของเครื่องมือ, และการตรวจสอบข้อกำหนดเบื้องต้น ดังนั้นทักษะสามารถประกาศได้ว่า "ใช้ได้ก็ต่อเมื่อมีเครื่องมือ EDGAR อยู่"
รูปแบบเป็นมาตรฐานเปิด agentskills.io ดังนั้นสิ่งที่คุณเขียนสามารถพกพาไปใช้กับเอเจนต์อื่นๆ ที่เข้ากันได้
2c. วงจรการพัฒนาตนเอง และการบำรุงรักษา
เอเจนต์เขียนทักษะของตัวเอง
หลังจากแก้ปัญหาบางอย่างผ่านการลองผิดลองถูก (โดยทั่วไปคืองานที่มีการเรียกใช้เครื่องมือหลายครั้ง) มันจะบันทึกวิธีการที่ใช้ได้ผลเป็นไฟล์ SKILL.md ใน agent_created/
เครื่องมือจัดการทักษะมีหกการกระทำ และสิ่งที่ควรรู้คือ patch: การแก้ไขแบบเจาะจง ซึ่งดีกว่าการเขียนใหม่แบบเต็มเนื่องจากประหยัดโทเค็น
เอเจนต์จะปรับปรุงคู่มือการปฏิบัติงานของตัวเองในระหว่างการใช้งานจริง
หากไม่มีการบำรุงรักษา ทักษะอัตโนมัติจะแพร่กระจายเป็นมะเร็ง
คุณจะจบลงด้วยคู่มือการปฏิบัติงานที่แคบและซ้ำซ้อนหลายสิบชิ้น ซึ่งเผาโทเค็นคำนำหน้าและทำให้เราเตอร์สกปรก

Curator จัดการเรื่องนี้ และกลไกของมันก็ควรค่าแก่การทำความเข้าใจ มัน ไม่ใช่ ดีมอน cron มันทำงานเมื่อตรวจสอบการไม่มีการเคลื่อนไหว: โดยประมาณเมื่อผ่านไป 7 วันนับตั้งแต่การทำงานครั้งล่าสุดและเอเจนต์ไม่ได้ใช้งานเป็นเวลา 2 ชั่วโมงขึ้นไป กระบวนการแยกพื้นหลังจะเริ่มทำงาน ด้วยแคชพรอมพ์ของตัวเอง ไม่เคยแตะต้องบทสนทนาที่กำลังดำเนินอยู่ และรันลูปการตรวจสอบ LLM ซึ่งจะเก็บถาวรทักษะที่ล้าสมัยโดยอัตโนมัติ (ไปยัง .archive/ สามารถกู้คืนได้ ไม่มีอะไรสูญหาย)
การกำหนดค่าอยู่ภายใต้ curator ใน config.yaml: interval_hours, min_idle_hours, stale_after_days, archive_after_days
ปฏิบัติต่อทักษะอัตโนมัติเหมือนร่างของเด็กฝึกงาน ใช้ hermes curator review เพื่อตรวจสอบ ปักหมุดทักษะที่ดีจริงๆ เพื่อให้มันอยู่รอด ปล่อยให้ส่วนที่เหลือถูกเก็บถาวร การดูแลวงจรนี้ คือ การศึกษา
เอเจนต์ที่ไม่ได้รับการดูแลจะแย่ลงเรื่อยๆ เมื่อเวลาผ่านไป ไม่ใช่ดีขึ้น
2d. มาตรฐาน - ระเบียบวินัย จัดอันดับตามปริมาณที่ช่วยคุณประหยัดได้
นี่คือกฎที่คุณผนวกเข้าไปใน SOUL.md และทุกๆ SKILL.md เรียงตามลำดับผลกระทบ
1. ห้ามคำนวณเลขคณิต LLMs ทำนายโทเค็น นี่คือสาเหตุอันดับหนึ่งของตัวเลขที่ผิดอย่างมั่นใจ การใช้งานที่สะอาดคือการใช้ execute_code (ครอบคลุมใน 2e) เพื่อให้สคริปต์ที่กำหนดขึ้นได้เป็นผู้คำนวณ และโมเดลจะตัดสินใจเฉพาะอินพุตและตีความเอาต์พุตเท่านั้น
DCF ที่โมเดล "ประมาณการ" เป็นเรื่องสมมติ DCF ที่สคริปต์คำนวณและโมเดลทดสอบภายใต้ความกดดันคือผลงาน
2. หลักฐานสำหรับทุกตัวเลข ทุกตัวเลขจะถูกส่งคืนพร้อมกับแหล่งที่มาและวันที่ที่แนบมาด้วย ไม่ใช่ตัวเลขเปล่าๆ ตัวเรนเดอร์จะทิ้งสิ่งใดก็ตามที่ไม่มีหลักฐาน
ผลตอบแทนคือการเป็นปรปักษ์กัน: เมื่อสองแหล่งไม่ตรงกัน ความไม่ตรงกันนั้นคือสัญญาณ
3. เฉพาะ ณ จุดเวลาเท่านั้น อคติจากการมองไปข้างหน้าคือนักฆ่าเงียบของทุกการทดสอบย้อนหลังและทุกภาพหน้าจอ "มันบอกไว้แล้ว" API ให้ข้อมูลที่ถูกปรับปรุงใหม่และเป็นปัจจุบันตามค่าเริ่มต้น
ติดแท็กข้อเท็จจริงด้วยวันที่ ณ ขณะนั้น และจำกัดเอเจนต์ให้ใช้เฉพาะสิ่งที่ทราบได้ในวันที่ตัดสินใจ
4. เป็นปรปักษ์กันโดยการออกแบบ เอเจนต์ย่อยหนึ่งสร้างกรณีขาขึ้น เอเจนต์ย่อยที่สองได้รับคำสั่งให้หักล้างมัน เอเจนต์ย่อยที่สามไกล่เกลี่ยด้วยระดับความเชื่อมั่นที่ระบุ คุณค่าทั้งหมดอยู่ในวัตถุประสงค์ที่ขัดแย้งกันอย่างแท้จริง ไม่ใช่ในจำนวนเอเจนต์
โมเดลที่วางตัวเป็นกลางมีความสำคัญที่นี่ เพราะพวกมันจะโต้แย้งกรณีขาลงอย่างหนักแน่น แทนที่จะปกป้องมันจนเลือนลาง
5. ได้รับอนุญาตให้งดออกเสียง บังคับให้มี "จุดข้อมูลหนึ่งจุดที่จะเปลี่ยนข้อสรุปนี้" ในการเรียกทุกครั้ง
ถ้าเป็นข้อมูลที่เอเจนต์ไม่มี คำตอบคือไม่มีตำแหน่ง
2e. การเคลื่อนไหวขั้นสูง: การเรียกใช้เครื่องมือแบบโปรแกรมช่วยยุบไปป์ไลน์ให้มีต้นทุนบริบทเป็นศูนย์
นี่คือฟีเจอร์ที่ เมื่อคุณเข้าใจแล้ว จะเปลี่ยนวิธีที่คุณสร้างเวิร์กโฟลว์นักวิเคราะห์ทุกอย่าง
โดยปกติแล้วไปป์ไลน์หลายขั้นตอนจะเผาผลาญเทิร์น LLM หนึ่งเทิร์นต่อขั้นตอน: "ฉันจะค้นหา… ตอนนี้ฉันจะอ่าน… ตอนนี้ฉันจะสรุป… ตอนนี้ฉันจะเขียน"
ทุกขั้นตอนเชิงกลไกต้องเสียค่าใช้จ่ายในการอนุมานและทำให้บริบทสกปรกด้วยขยะระหว่างกลาง
execute_code กำจัดสิ่งนั้น
เอเจนต์เขียนสคริปต์ Python หนึ่งตัวที่เรียกใช้เครื่องมือของ Hermes เองผ่าน RPC บน Unix-domain-socket สคริปต์ทำงานในกระบวนการลูก การเรียกใช้เครื่องมือจะเดินทางผ่านซ็อกเก็ตกลับไปยังกระบวนการแม่และส่งผ่าน ตัวจัดการ เดียวกันกับการเรียกใช้เครื่องมือปกติ
สิ่งสำคัญ: เฉพาะเอาต์พุต print() ของสคริปต์เท่านั้นที่ส่งกลับไปยังโมเดล ผลลัพธ์ของเครื่องมือระหว่างกลางจะไม่เข้าสู่หน้าต่างบริบท
1# เอเจนต์เขียนสิ่งนี้เพียงครั้งเดียว; โมเดลมีส่วนร่วมเฉพาะที่จุดตัดสินใจ2from hermes_tools import edgar_fetch, market_price, calc34tickers = ["TSLA", "NVDA", "COIN"]5rows = []6for t in tickers:7 f = edgar_fetch(t, form="10-Q") # เรียกใช้เครื่องมือผ่าน RPC8 px = market_price(t) # เรียกใช้เครื่องมือผ่าน RPC9 pe = calc("pe", price=px["last"], eps=f["eps"]) # คณิตศาสตร์ที่กำหนดขึ้นได้ ไม่ใช่ LLM10 rows.append({"ticker": t, "pe": pe, "src": f["accession"], "as_of": f["period_end"]})1112print(rows) # เฉพาะสิ่งนี้เท่านั้นที่เข้าสู่หน้าต่างบริบท
สำหรับนักวิเคราะห์ทางการเงิน นี่เป็นเรื่องใหญ่โต
การกวาดข้อมูลตอนเช้าผ่าน 20 ชื่อย่อหุ้น โดยแต่ละชื่อมีการเรียกใช้เครื่องมือสามครั้ง คือการเรียกใช้เครื่องมือ 60 ครั้ง ซึ่งถ้าทำแบบเดิม จะทำให้บริบทและงบประมาณโทเค็นของคุณพัง
ในรูปแบบสคริปต์ มันคือหนึ่งเทิร์น, ตารางที่พิมพ์ออกมาที่สะอาดหนึ่งตาราง, คณิตศาสตร์ที่ทำแบบกำหนดขึ้นได้ในบรรทัดเดียว คุณสามารถรวมไปป์ไลน์ทั้งหมดเข้าไว้ในการอนุมานครั้งเดียว และโมเดลจะคิดเฉพาะในจุดที่ต้องใช้การตัดสินใจจริงๆ สร้างเวิร์กโฟลว์นักวิเคราะห์ประจำของคุณเป็นสคริปต์ execute_code ที่ห่อหุ้มด้วยทักษะ (ใช้ได้เฉพาะ Linux/macOS ต้องใช้ Unix domain sockets)
2f. ความทรงจำ - ข้อเท็จจริงกับแบบจำลองผู้ใช้
ความทรงจำของ Hermes มีสามกลไกที่เป็นอิสระต่อกัน (กรอบ "3 ชั้น" เป็นการทำให้เข้าใจง่ายเพื่อการสอน ในโค้ดมันแยกจากกัน):
- MEMORY.md - ข้อเท็จจริงที่คงทน จำกัดประมาณ 2,200 ตัวอักษร
- USER.md - แบบจำลองของ คุณ จำกัดประมาณ 1,375 ตัวอักษร
- SessionDB - SQLite, WAL, FTS5 ครอบคลุมทุกเทิร์นที่ผ่านมา ค้นหาผ่าน
session_search
MemoryStore จะอ่าน MEMORY.md และ USER.md ครั้งเดียวเมื่อเริ่มเซสชัน และฝังมันเป็นบล็อกที่ไม่สามารถเปลี่ยนแปลงได้ในพรอมพ์ระบบ
เอเจนต์สามารถเขียนไปยังไฟล์เหล่านั้นระหว่างเซสชัน และการเขียนจะลงดิสก์ แต่สำเนาในพรอมพ์จะไม่เปลี่ยนแปลงจนกว่าเซสชันถัดไป เพราะการเปลี่ยนแปลงมันจะทำให้แคชคำนำหน้าเสีย (ค่าคงที่เดียวกันกับที่อื่น)
บวกกับผู้ให้บริการภายนอกอีก 8 ราย (การสร้างแบบจำลองผู้ใช้แบบวิภาษวิธีของ Honcho, Mem0, Hindsight, Supermemory…) เลือกได้ครั้งละหนึ่งราย ใช้ hermes memory setup
ขีดจำกัดตัวอักษรเป็นคุณสมบัติ มันบังคับให้คุณเก็บ USER.md เป็นโครงสร้างพื้นฐานที่มีสัญญาณสูง ไม่ใช่ที่ทิ้งขยะ
สำหรับนักวิเคราะห์ USER.md คืออาณัติของคุณ: การยอมรับความเสี่ยง, ขอบเขตเวลา, ตัวชี้วัดที่คุณลงมือทำจริง, รูปแบบผลลัพธ์
MEMORY.md มีไว้สำหรับข้อเท็จจริงที่คงทนซึ่งเอเจนต์ได้รับมา ("รายได้ของ COIN สัมพันธ์กับ 10-K ได้ดีกว่า FMP")
SessionDB เป็นผู้จดคะแนนของคุณ เก็บทุกการเรียก ให้คะแนนเทียบกับผลลัพธ์ และเอเจนต์จะอัปเดตความเชื่อก่อนหน้าในขณะที่ คุณ เรียนรู้การปรับเทียบของมัน ว่ามันแม่นตรงไหน และมันมองโลกในแง่ดีเรื้อรังตรงไหน แผนที่การปรับเทียบนี้คืออัลฟ่าที่นักลงทุนรายย่อยไม่สนใจจะรวบรวม
2g. เมื่อพรอมพ์ไม่พอ: GAPA แล้วก็ RL
ก่อนที่คุณจะหันไปพึ่ง fine-tuning: Hermes มี GAPA ซึ่งเป็นการปรับแต่งพรอมพ์อย่างเป็นระบบสำหรับ SOUL.md, คำแนะนำทักษะ, และพรอมพ์ระบบของคุณ แทนที่จะปรับแต่งแบบลองผิดลองถูกด้วยตนเอง
ลองใช้เมื่อประสิทธิภาพถึงจุดอิ่มตัว
เกินกว่านั้น Hermes ทำการสร้างวิถีการเคลื่อนที่แบบแบตช์และส่งออก traces ในรูปแบบ ShareGPT สำหรับ SFT และมีเส้นทาง RL (Atropos) เพื่อปรับแต่งพฤติกรรมการเรียกใช้เครื่องมือบนวิถีการเคลื่อนที่ของคุณเอง นี่คือเพดานที่แท้จริงของ "สอนมัน" มันจบลงที่การฝึกโมเดลว่าวิธีการทำงานของ นักวิเคราะห์ของคุณ เป็นอย่างไร
ส่วนที่ 3 - ขยายขีดความสามารถ: คลังโค้ด, MCP, บริการ
MCP: แยกการลงทะเบียนออกจากการเปิดเผย
เพิ่มเซิร์ฟเวอร์ผ่าน CLI หรือ config.yaml; เอเจนต์จะแสดงรายการเครื่องมือของพวกมันเมื่อเริ่มต้นและลงทะเบียนพร้อมกับเครื่องมือในตัว หลักการสำคัญ ซึ่งสะท้อนถึงตรรกะแคชข้างต้น: ใช้ whitelist กับ tools.include เพื่อให้คุณ เปิดเผย เฉพาะสิ่งที่คุณต้องการเท่านั้น เพราะทุกเครื่องมือที่เปิดเผยจะเสียค่าใช้จ่ายโทเค็นคำนำหน้าและเพิ่มพื้นที่การโจมตีของคุณ
1hermes mcp add github --command npx --args "-y,@modelcontextprotocol/server-github"2hermes mcp configure github # เปิด/ปิดเครื่องมือแต่ละตัว
1mcp_servers:2 filesystem:3 command: npx4 args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/you/research"]5 tools: { include: [read_file, list_directory] } # อ่านอย่างเดียว ไม่มีการเขียน
ใช้ /reload-mcp เพื่อนำไปใช้
Composio MCP คือทางลัด เซิร์ฟเวอร์เดียว การเชื่อมต่อ SaaS นับร้อย; ผู้คนสร้างเอเจนต์ทางการเงินบน Hermes ที่ดึงข้อมูลตลาดและเขียนรายงานไปยัง Google Docs ผ่านมันทั้งหมด และ hermes mcp serve จะรัน Hermes ในฐานะ เซิร์ฟเวอร์ MCP โดยเปิดเผยประวัติเซสชันของมัน เพื่อให้ Claude Desktop หรือ Cursor สามารถสอบถามสิ่งที่นักวิเคราะห์ของคุณค้นพบได้ เอเจนต์จะกลายเป็นฐานความรู้ที่เครื่องมืออื่นๆ ของคุณอ่านได้
แหล่งข้อมูล (จัดอันดับ: กระดูกสันหลัง vs เครื่องปรุง)
กระดูกสันหลังด้านคริปโต:
DefiLlama
(ฟรี, ไม่ต้องใช้คีย์, ไม่มีขีดจำกัดอัตราจริง, TVL/ค่าธรรมเนียม/ผลตอบแทน/ราคา, ครึ่งหนึ่งของแดชบอร์ดแบบเสียเงินเป็นเพียงการปรับแต่งใหม่)
+ Helius
(ราชาแห่ง Solana, การแยกวิเคราะห์ธุรกรรมขั้นสูงเปลี่ยนซุปไบต์ให้เป็นการแลกเปลี่ยนที่อ่านได้)
เครื่องปรุง:
Birdeye (OHLCV+websocket), Jupiter (การกำหนดเส้นทาง/ใบเสนอราคา), Dune+Flipside (SQL บนเชน), Bitquery (GraphQL หลายเชน), Nansen/Arkham (ป้ายกำกับ, เสียเงิน)
กระดูกสันหลังด้าน TradFi:
FRED
(ธนาคารกลางสหรัฐฯ สาขาเซนต์หลุยส์, ข้อมูลมหภาคฟรีที่มีสัญญาณสูงสุด, ข้อมูลที่โต๊ะเทรดดูจริงๆ)
+ edgartools
(MIT, ไม่ต้องใช้คีย์, ข้อมูลทางการเงินแบบมีประเภทจาก 10-K พร้อมหมายเลข accession)
เครื่องปรุง:
Finnhub (ระดับฟรีที่ดีที่สุด), FMP (อัตราส่วนที่คำนวณไว้ล่วงหน้า), Polygon/Tiingo (ประวัติที่สะอาด), yfinance (เทปพันสายไฟ, พังอย่างเงียบๆ), GDELT (เหตุการณ์ข่าวทั่วโลก)
ข้อควรระวัง: ระดับฟรีมีข้อจำกัด (Alpha Vantage ประมาณ 2 โหลครั้งต่อวัน) คุณจะคิดว่าโค้ดของคุณเสีย แคชทุกอย่าง และใช้ credential pools (ใน config.yaml) เพื่อสลับไปมาระหว่างหลายคีย์โดยอัตโนมัติและอยู่รอดจากขีดจำกัดอัตรา
คลังโค้ดที่คุ้มค่าเวลา
- NousResearch/hermes-agent
อ่านเอกสาร developer-guide: สถาปัตยกรรม, agent-loop, context-compression-and-caching DeepWiki และ mudrii/hermes-agent-docs mirrors เป็นแหล่งข้อมูลที่ดีสำหรับรายละเอียดภายใน

- 0xNyk/awesome-hermes-agent
ทักษะ, เครื่องมือ, เซิร์ฟเวอร์ MCP, การผสานรวมที่คัดสรรแล้ว เริ่มต้นที่นี่ ศูนย์รวมทักษะ: Hub อย่างเป็นทางการ (ทักษะ 680+ รายการ, 18 หมวดหมู่), skills.sh, ClawHub

- OpenBB-finance/OpenBB
Bloomberg โอเพนซอร์สที่ มาพร้อมกับเซิร์ฟเวอร์ MCP ดังนั้นมันจึงเชื่อมต่อกับ Hermes ได้โดยตรง และมอบพื้นผิวข้อมูลตลาด + การวิเคราะห์ขนาดใหญ่ให้กับเอเจนต์ผ่านอินเทอร์เฟซเดียว เป็นอุปกรณ์เสริมชิ้นเดียวที่ให้ประโยชน์สูงสุด

- polakowo/vectorbt
การทดสอบย้อนหลังที่รวดเร็วด้วย Numba, รูปแบบต่างๆ นับพันในไม่กี่วินาที ห่อหุ้มในทักษะเพื่อให้เอเจนต์ทดสอบทุกสมมติฐานก่อนที่คุณจะเชื่อถือมัน

- TauricResearch/TradingAgents (+ auronsun/TradingAgents-crypto)
การจำลองบริษัทเทรดแบบหลายเอเจนต์ อ่านเพื่อดูโครงสร้าง จากนั้นสร้างเวอร์ชันเอเจนต์ย่อยขาขึ้น/ขาลงที่กระชับกว่าที่คุณเข้าใจ microsoft/qlib และ nautechsystems/nautilus_trader สำหรับกลยุทธ์เชิงระบบจริง wilsonfreitas/awesome-quant เป็นแผนที่ห้องสมุด






