Skip to content

RTGS2017/NagaAgent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

640 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

NagaAgent

ไฝ ็š„่ถ…็บงAI็ง˜ไนฆ

ๆตๅผๅทฅๅ…ท่ฐƒ็”จ ยท ็Ÿฅ่ฏ†ๅ›พ่ฐฑ่ฎฐๅฟ† ยท Live2D ่™šๆ‹Ÿๅฝข่ฑก ยท ่ฏญ้Ÿณไบคไบ’ ยท ๅจœ่ฟฆ็ฝ‘็ปœ็คพๅŒบ

็ฎ€ไฝ“ไธญๆ–‡ | English

NagaAgent Platform License Python

Stars Forks Issues

QQ ๆœบๅ™จไบบ่”ๅŠจ๏ผšUndefined QQbot


ๅŒ่ฎธๅฏ่ฏ ยท ๅผ€ๆบ้‡‡็”จ AGPL-3.0๏ผŒ้—ญๆบ้‡‡็”จ ไธ“ๅฑž่ฎธๅฏ๏ผˆ้œ€ไนฆ้ขๆŽˆๆƒ๏ผ‰ใ€‚ ๅ•†ไธšๅˆไฝœ๏ผšcontact@nagaagent.com / bilibiliใ€ๆŸๆ–ฏ้˜”่ฝใ€‘


ๆ›ดๆ–ฐๆ—ฅๅฟ—

ๆ—ฅๆœŸ ็‰ˆๆœฌ ๅ†…ๅฎน
๐ŸŽ† 2026-02-26 5.1.0 ๅจœ่ฟฆ็ฝ‘็ปœ็คพๅŒบ่ฎบๅ›ไธŠ็บฟ๏ผ›่ฎพ็ฝฎไธ‰ๅˆไธ€้‡ๆž„๏ผ›ๆ—…่กŒๆจกๅผ๏ผ›็งฏๅˆ†้…้ข้กต๏ผ›ๆžขๆœบ้›†ๅธ‚ไธŽไธป้ขๆฟๆ›ดๆ–ฐ
โšก 2026-02-25 5.1.0 TTS ๅ…จ้“พ่ทฏไฟฎๅค๏ผˆCORS / asyncio๏ผ‰๏ผ›build.py ่ทจๅนณๅฐๆž„ๅปบ๏ผ›ไธŠไธ‹ๆ–‡ๅŽ‹็ผฉๆŒไน…ๅŒ–๏ผ›่ง’่‰ฒ็ณป็ปŸๆ›ดๆ–ฐ๏ผ›ๆ็คบ่ฏๆณจๅ…ฅๆžถๆž„้‡ๆž„
๐ŸŽต 2026-02-24 โ€” Neo4j ่ฟžๆŽฅ่ถ…ๆ—ถไฟฎๅค๏ผ›็ปŸไธ€ BGM ๆ’ญๆ”พๅ™จ๏ผ›้Ÿณๅพ‹ๅŠๆญŒๅ•็ผ–่พ‘๏ผ›MCP ็ฎก็† UI๏ผ›ๆ‚ฌๆตฎ็ƒ้€ๆ˜Ž็ช—ๅฃ + ๆ‚ฌๅœไบฎๅบฆ
๐Ÿ—๏ธ 2026-02-23 โ€” ่ทจๅนณๅฐๆž„ๅปบๅฎŒๅ–„๏ผ›็‰ˆๆœฌๅท็ปŸไธ€ pyproject.toml ็ฎก็†๏ผ›ๆ็คบ่ฏ/ๆˆชๅ›พ/่ง†่ง‰ไผ˜ๅŒ–๏ผ›่ง’่‰ฒๆ–‡ไปถๆ‰“ๅŒ…่ฟ็งป
๐Ÿ’• 2026-02-22 โ€” ็งฏๅˆ†ๅฅฝๆ„Ÿๅบฆ็ณป็ปŸ๏ผˆ็ญพๅˆฐ / ๅฅฝๆ„Ÿๅบฆ / ็งฏๅˆ†๏ผ‰๏ผ›ๆ‚ฌๆตฎ็ƒ้˜ดๅฝฑไธŽๆ‹–ๆ‹ฝไฟฎๅค๏ผ›็™ปๅฝ•่‡ชๅŠจๆขๅค๏ผ›OpenClaw hooks ไฟฎๅค
๐ŸŽถ 2026-02-21 โ€” ้Ÿณๅพ‹ๅŠๅ›พๆ ‡ๆ›ดๆ–ฐ๏ผ›MCP Agents ๆ›ดๆ–ฐ๏ผ›ๆ‚ฌๆตฎ็ƒๅฐๆŒ‰้’ฎ
๐Ÿ—œ๏ธ 2026-02-20 โ€” ไธŠไธ‹ๆ–‡ๅŽ‹็ผฉไธ‰็บง้‡ๆž„๏ผˆ<compress> ๆ ‡็ญพ / ่ทจไผš่ฏ็ปงๆ‰ฟ๏ผ‰๏ผ›MCP ็ฎก็† UI๏ผ›ๆ‚ฌๆตฎ็ƒ้€ๆ˜Ž็ช—ๅฃ๏ผ›้Ÿณๅพ‹ๅŠๅŠŸ่ƒฝไฟฎๆญฃ
๐Ÿ”„ 2026-02-19 โ€” SSE ๅŽป้™ค base64 ็›ดๆŽฅ JSON ไผ ่พ“๏ผ›็งป้™คๅ†—ไฝ™ๅŽๅฐๆ„ๅ›พๅˆ†ๆžๅ™จ๏ผ›config_manager ่‡ชๅŠจๆฃ€ๆต‹็ผ–็ 
๐Ÿ”ง 2026-02-17 โ€” ๆ‚ฌๆตฎ็ƒๅบๅˆ—ๅธง่ทฏๅพ„ๆ”นไธบ็›ธๅฏน่ทฏๅพ„๏ผŒไฟฎๅคๆ‰“ๅŒ…ๅŽๅคดๅƒไธๆ˜พ็คบ
๐Ÿš€ 2026-02-16 5.0.0 NagaModel ็ฝ‘ๅ…ณ็ปŸไธ€ๆŽฅๅ…ฅ๏ผ›DeepSeek ๆŽจ็†้“พๅฎžๆ—ถๅฑ•็คบ๏ผ›่ฎฐๅฟ†ไบ‘ๆตท UI ่‡ช้€‚ๅบ”ไฟฎๅค
๐Ÿง  2026-02-15 โ€” ็ปŸไธ€้™„ๅŠ ็Ÿฅ่ฏ†ๅ— + ๆถˆ้™คๅކๅฒๆฑกๆŸ“๏ผ›LLM ๆตๅผ้‡่ฏ•๏ผ›ไธƒๅคฉ่‡ชๅŠจ็™ปๅฝ•๏ผ›ๅผ€ๆœบ่‡ชๅฏๅŠจ
๐ŸŒŠ 2026-02-14 โ€” NagaMemory ไบ‘็ซฏ่ฟœ็จ‹่ฎฐๅฟ†๏ผ›ๆ„่ฏ†ๆตท 3D ้‡ๅ†™๏ผ›ๅฏๅŠจ็ฒ’ๅญๅŠจ็”ป๏ผ›็‰ˆๆœฌๆ›ดๆ–ฐๆฃ€ๆŸฅๅผน็ช—๏ผ›็”จๆˆทไฝฟ็”จๅ่ฎฎ
โœจ 2026-02-13 โ€” ๆ‚ฌๆตฎ็ƒ 4 ็Šถๆ€ๆจกๅผ๏ผ›ๆˆชๅฑๅคšๆจกๆ€่ง†่ง‰ๅˆ‡ๆข๏ผ›ๆŠ€่ƒฝๅทฅๅŠ้‡ๆž„๏ผ›Live2D ่กจๆƒ…้€š้“็‹ฌ็ซ‹
๐ŸŽจ 2026-02-12 โ€” NagaCAS ่ฎค่ฏ๏ผ›Live2D 4 ้€š้“ๆญฃไบคๅŠจ็”ปๆžถๆž„๏ผ›Agentic Tool Loop๏ผ›ๆ˜Žๆ—ฅๆ–น่ˆŸ้ฃŽๆ ผๅฏๅŠจ็•Œ้ข
๐Ÿ“ฆ 2026-02-11 โ€” ๅตŒๅ…ฅๅผ OpenClaw ๆ‰“ๅŒ…๏ผ›ๅฏๅŠจ่‡ชๅŠจไปŽๆจกๆฟ็”Ÿๆˆ้…็ฝฎๆ–‡ไปถ
๐Ÿ› ๏ธ 2026-02-10 โ€” ๅŽ็ซฏๆ‰“ๅŒ…ไผ˜ๅŒ–๏ผ›ๆŠ€่ƒฝๅทฅๅŠ MCP ็Šถๆ€ไฟฎๅค๏ผ›ๅŽป้™คๅ†—ไฝ™ Agent/MCP ไป…ไฟ็•™ OpenClaw
๐ŸŒฑ 2026-02-09 โ€” ๅ‰็ซฏ้‡ๆž„๏ผ›Live2D ็ฆ็”จ็œผ็›่ฟฝ่ธช๏ผ›OpenClaw ๆ›ดๅไธบ AgentServer

็›ฎๅฝ•

  1. ๅฟซ้€Ÿๅผ€ๅง‹
  2. ๅŠŸ่ƒฝๅฏผ่งˆ๏ผˆไธป้ขๆฟ๏ผ‰
  3. ๅฏน่ฏ
  4. ่ฎฐๅฟ†ไบ‘ๆตท
  5. ๆŠ€่ƒฝๅทฅๅŠ
  6. ๅจœ่ฟฆ็ฝ‘็ปœ
  7. ๆžขๆœบ้›†ๅธ‚
  8. ็ปˆ็ซฏ่ฎพ็ฝฎ
  9. ้Ÿณๅพ‹ๅŠ
  10. ๆ‚ฌๆตฎ็ƒ
  11. ๅ…จๅฑ€ๅŠŸ่ƒฝ
  12. ๅŽ็ซฏๆžถๆž„
  13. ๅฏ้€‰้…็ฝฎ
  14. ็ซฏๅฃไธ€่งˆ
  15. ๆ•…้šœๆŽ’้™ค

ๅฟซ้€Ÿๅผ€ๅง‹

็Žฏๅขƒ่ฆๆฑ‚

  • Python 3.11๏ผˆ>=3.11, <3.12๏ผ‰
  • ๅฏ้€‰๏ผšuv โ€” ๅŠ ้€Ÿไพ่ต–ๅฎ‰่ฃ…
  • ๅฏ้€‰๏ผšNeo4j โ€” ๆœฌๅœฐ็Ÿฅ่ฏ†ๅ›พ่ฐฑ่ฎฐๅฟ†

ๅฎ‰่ฃ…

git clone https://github.com/Xxiii8322766509/NagaAgent.git
cd NagaAgent


#ๅ‰็ซฏๅฎ‰่ฃ…
cd frontend
npm install
cd..


#ๅŽ็ซฏๅฎ‰่ฃ…
# ๆ–นๅผไธ€๏ผšsetup ่„šๆœฌ๏ผˆ่‡ชๅŠจๆฃ€ๆต‹็Žฏๅขƒใ€ๅˆ›ๅปบ่™šๆ‹Ÿ็Žฏๅขƒใ€ๅฎ‰่ฃ…ไพ่ต–๏ผ‰
python setup.py

# ๆ–นๅผไบŒ๏ผšuv
uv sync

# ๆ–นๅผไธ‰๏ผšๆ‰‹ๅŠจ
python -m venv .venv
source .venv/bin/activate   # Windows: .\.venv\Scripts\activate
pip install -r requirements.txt

ๆœ€ๅฐ้…็ฝฎ

ๅคๅˆถ config.json.example ไธบ config.json๏ผŒๅกซๅ…ฅ LLM API ไฟกๆฏ๏ผš

{
  "api": {
    "api_key": "your-api-key",
    "base_url": "https://api.deepseek.com",
    "model": "deepseek-v3.2"
  }
}

ๆ”ฏๆŒๆ‰€ๆœ‰ OpenAI ๅ…ผๅฎน API๏ผˆDeepSeekใ€้€šไน‰ๅƒ้—ฎใ€OpenAIใ€Ollama ็ญ‰๏ผ‰ใ€‚

ๅฏๅŠจ

cd frontend && npm run dev ๏ผˆ้…็ฝฎไบ†ไธ€้”ฎๅฏๅŠจ๏ผ‰

ๅŠŸ่ƒฝๅฏผ่งˆ๏ผˆไธป้ขๆฟ๏ผ‰

ๅฏๅŠจๅŽ่ฟ›ๅ…ฅไธป้ขๆฟ๏ผˆPanelView๏ผ‰๏ผŒ้‡‡็”จ 3D ่ง†ๅทฎๆ•ˆๆžœ๏ผˆ้ผ ๆ ‡็งปๅŠจ่งฆๅ‘้€่ง†ๆ—‹่ฝฌ๏ผ‰ใ€‚ ๆ‰€ๆœ‰ๅŠŸ่ƒฝไปŽไธป้ขๆฟ็š„ๅ…ซไธชๅ…ฅๅฃๆŒ‰้’ฎๅฑ•ๅผ€๏ผš

# ๅ…ฅๅฃ ่ทฏ็”ฑ ๅŠŸ่ƒฝๆฆ‚่ฆ
1 ๅฏน่ฏ /chat AI ๅฏน่ฏใ€ๆตๅผๅทฅๅ…ท่ฐƒ็”จใ€ไธŠไธ‹ๆ–‡ๅŽ‹็ผฉ
2 ่ฎฐๅฟ†ไบ‘ๆตท /mind ็Ÿฅ่ฏ†ๅ›พ่ฐฑ 3D ๅฏ่ง†ๅŒ–ไธŽ GRAG ่ฎฐๅฟ†็ฎก็†
3 ๆŠ€่ƒฝๅทฅๅŠ /skill MCP ๅทฅๅ…ท็ฎก็†ไธŽ็คพๅŒบ Skill ๅฎ‰่ฃ…
4 ๅจœ่ฟฆ็ฝ‘็ปœ /forum / /forum/quota ็คพๅŒบ่ฎบๅ›ใ€็งฏๅˆ†ๅฅฝๆ„Ÿๅบฆ
5 ๆžขๆœบ้›†ๅธ‚ /market ่ƒŒๆ™ฏใ€้Ÿณไนใ€่ง’่‰ฒใ€่ฎฐๅฟ†่ฟ็งปใ€ๅ……ๅ€ผ
6 ็ปˆ็ซฏ่ฎพ็ฝฎ /config ๆจกๅž‹่ฟžๆŽฅใ€่ฎฐๅฟ†่ฟžๆŽฅใ€้Ÿณ็”ป้…็ฝฎ๏ผˆไธ‰ๅˆไธ€๏ผ‰
7 ้Ÿณๅพ‹ๅŠ /music BGM ๆ’ญๆ”พๅ™จไธŽๆญŒๅ•็ฎก็†
8 ๆ‚ฌๆตฎ็ƒ โ€” ่ฟ›ๅ…ฅ่ฝป้‡ๆ‚ฌๆตฎ็ƒ็ช—ๅฃๆจกๅผ

1. ๅฏน่ฏ ยท MessageView

ๆตๅผๅทฅๅ…ท่ฐƒ็”จ

ๅฏน่ฏๅผ•ๆ“Ž้€š่ฟ‡ SSE ๆตๅผ่พ“ๅ‡บ๏ผŒๅŒๆ—ถๅฎžๆ—ถ้€่พพๅ‰็ซฏๆ˜พ็คบไธŽ TTS ๅˆ†ๅฅๆ’ญๆ”พใ€‚ ๅทฅๅ…ท่ฐƒ็”จไธไพ่ต– OpenAI Function Calling API๏ผŒLLM ๅœจๆ–‡ๆœฌไธญไปฅ ```tool``` ไปฃ็ ๅ—ๅตŒๅ…ฅ JSON๏ผŒไปปไฝ• OpenAI ๅ…ผๅฎนๆไพ›ๅ•†ๅ‡ๅฏไฝฟ็”จใ€‚

ๅ•่ฝฎๅทฅๅ…ท่ฐƒ็”จๆต็จ‹๏ผš

LLM ๆตๅผ่พ“ๅ‡บ โ”€โ”€SSEโ”€โ”€โ–ถ ๅ‰็ซฏๅฎžๆ—ถๆ˜พ็คบ
       โ”‚
       โ–ผ
parse_tool_calls_from_text()
  โ”œโ”€ Phase 1: ๆๅ– ```tool``` ไปฃ็ ๅ—
  โ””โ”€ Phase 2: ๅ…œๅบ•ๆๅ–่ฃธ JSON
       โ”‚
       โ–ผ
  ๆŒ‰ agentType ่ทฏ็”ฑ
  โ”œโ”€ "mcp"      โ†’ MCPManager.unified_call()
  โ”œโ”€ "openclaw" โ†’ Agent Server /openclaw/send
  โ””โ”€ "live2d"   โ†’ UI ๅŠจ็”ป้€š็Ÿฅ
       โ”‚
       โ–ผ
  asyncio.gather() ๅนถ่กŒๆ‰ง่กŒๆ‰€ๆœ‰ๅทฅๅ…ท
       โ”‚
       โ–ผ
  ็ป“ๆžœๆณจๅ…ฅ messages๏ผŒ่ฟ›ๅ…ฅไธ‹ไธ€่ฝฎ LLM ่ฐƒ็”จ๏ผˆๆœ€ๅคš 5 ่ฝฎ๏ผ‰
  • ๆ–‡ๆœฌ่งฃๆž๏ผšjson5 ๅฎน้”™่งฃๆž๏ผŒๅ…จ่ง’ๅญ—็ฌฆ่‡ชๅŠจๆ ‡ๅ‡†ๅŒ–
  • SSE ๆ ผๅผ๏ผšdata: {"type":"content"|"reasoning","text":"..."}\n\n๏ผˆ็›ดๆŽฅ JSON๏ผŒไธๅซ base64๏ผ‰
  • ๅพช็ŽฏไธŠ้™๏ผšmax_loop_stream = 5๏ผˆๅฏ้…็ฝฎ๏ผ‰

ๆบ็ ๏ผšapiserver/agentic_tool_loop.py

ไธŠไธ‹ๆ–‡ๅŽ‹็ผฉ

ไผš่ฏ token ่ถ…่ฟ‡ 100k ๆ—ถ่‡ชๅŠจ่งฆๅ‘ๅŽ‹็ผฉ๏ผŒ้ฟๅ…ไธŠไธ‹ๆ–‡ๆบขๅ‡บ๏ผš

้˜ถๆฎต ่งฆๅ‘ๆ—ถๆœบ ่กŒไธบ
ๅฏๅŠจๅŽ‹็ผฉ ไผš่ฏๅŠ ่ฝฝๆ—ถ ๅކๅฒ่ถ…้˜ˆๅ€ผๅˆ™็ซ‹ๅณๅŽ‹็ผฉๅ‰ๆฎตๆถˆๆฏ
่ฟ่กŒๆ—ถๅŽ‹็ผฉ ๆฏ่ฝฎๅฏน่ฏๅŽ ่ถ…้™ๅˆ™ๅŽ‹็ผฉๅนถๆณจๅ…ฅ <compress> ๆ ‡็ญพ
่ทจไผš่ฏ็ปงๆ‰ฟ ๆ–ฐไผš่ฏๅฏๅŠจ ่ฏปๅ–ไธŠๆฌกๆ‘˜่ฆ๏ผŒๆปšๅŠจ็ดฏ็งฏไธŠไธ‹ๆ–‡

ๆ‘˜่ฆ็ป“ๆž„๏ผˆ6 ๅˆ†ๅŒบ๏ผ‰๏ผšๅ…ณ้”ฎไบ‹ๅฎž / ็”จๆˆทๅๅฅฝ / ้‡่ฆๅ†ณๅฎš / ๅพ…ๅŠžไบ‹้กน / ่ƒŒๆ™ฏไฟกๆฏ / ๆœ€่ฟ‘็Šถๆ€ใ€‚ <compress> ๆ ‡็ญพๆŒไน…ๅŒ–ๅˆฐไผš่ฏๆ–‡ไปถ๏ผŒไธ่ฎกๅ…ฅ LLM token ็ปŸ่ฎกใ€‚

DeepSeek ๆŽจ็†้“พๅฑ•็คบ

ไฝฟ็”จ DeepSeek ๆ—ถ๏ผŒreasoning ๅญ—ๆฎต้€š่ฟ‡ SSE ๅฎžๆ—ถๆŽจ้€๏ผŒๅ‰็ซฏไปฅ็‹ฌ็ซ‹ๆ ทๅผๅฑ•็คบๆ€่€ƒ่ฟ‡็จ‹ใ€‚


2. ่ฎฐๅฟ†ไบ‘ๆตท ยท MindView

GRAG ็Ÿฅ่ฏ†ๅ›พ่ฐฑ่ฎฐๅฟ†

GRAG๏ผˆGraph-RAG๏ผ‰ไปŽๅฏน่ฏไธญ่‡ชๅŠจๆๅ–ไบ”ๅ…ƒ็ป„ๅนถๅญ˜ๅ…ฅ Neo4j๏ผŒๅฏน่ฏๆ—ถ่‡ชๅŠจๆฃ€็ดขไฝœไธบ LLM ไธŠไธ‹ๆ–‡ใ€‚

ไบ”ๅ…ƒ็ป„็ป“ๆž„๏ผš(ไธปไฝ“, ไธปไฝ“็ฑปๅž‹, ่ฐ“่ฏ, ๅฎขไฝ“, ๅฎขไฝ“็ฑปๅž‹)

ๆๅ–ๆต็จ‹๏ผš

  1. ็ป“ๆž„ๅŒ–ๆๅ–๏ผˆไผ˜ๅ…ˆ๏ผ‰๏ผšbeta.chat.completions.parse() + Pydantic QuintupleResponse๏ผŒtemperature=0.3๏ผŒ้‡่ฏ• 3 ๆฌก
  2. JSON ๅ…œๅบ•๏ผš่งฃๆžๅคฑ่ดฅๆ—ถๆๅ–้ฆ–ไธช [ ๅˆฐๆœซๅฐพ ] ็š„ๅ†…ๅฎน
  3. ่ฟ‡ๆปค่ง„ๅˆ™๏ผšๅชไฟ็•™ไบ‹ๅฎž๏ผˆ่กŒไธบใ€ๅ…ณ็ณปใ€็Šถๆ€ใ€ๅๅฅฝ๏ผ‰๏ผŒ่ฟ‡ๆปค้šๅ–ปใ€ๅ‡่ฎพใ€็บฏๆƒ…ๆ„Ÿ

ๅฎžไฝ“็ฑปๅž‹๏ผš person / location / organization / item / concept / time / event / activity

ไปปๅŠก็ฎก็†ๅ™จ๏ผš

  • 3 ไธช asyncio worker ๆถˆ่ดน asyncio.Queue(maxsize=100)
  • SHA-256 ๅŽป้‡๏ผš็›ธๅŒๆ–‡ๆœฌ็š„้‡ๅคไปปๅŠก่‡ชๅŠจ่ทณ่ฟ‡
  • ๆฏๅฐๆ—ถๆธ…็†่ถ…่ฟ‡ 24h ็š„ๅทฒๅฎŒๆˆไปปๅŠก

ๅŒ้‡ๅญ˜ๅ‚จ๏ผš

  • ๆœฌๅœฐ๏ผšlogs/knowledge_graph/quintuples.json
  • ไบ‘็ซฏ๏ผšNeo4j ๅ›พๆ•ฐๆฎๅบ“๏ผŒgraph.merge() upsert

RAG ๆฃ€็ดข๏ผš ๅ…ณ้”ฎ่ฏๆๅ– โ†’ Cypher ๆŸฅ่ฏข โ†’ ๆ ผๅผๅŒ–ไธบ ไธปไฝ“(็ฑปๅž‹) โ€”[่ฐ“่ฏ]โ†’ ๅฎขไฝ“(็ฑปๅž‹) ๆณจๅ…ฅไธŠไธ‹ๆ–‡

่ฟœ็จ‹่ฎฐๅฟ†๏ผš ็™ปๅฝ•็”จๆˆท่‡ชๅŠจไฝฟ็”จ NagaMemory ไบ‘็ซฏ๏ผŒ้€€ๅ‡บๆˆ–็ฆป็บฟๆ—ถๅ›ž้€€ๆœฌๅœฐ GRAGใ€‚

ๆบ็ ๏ผšsummer_memory/

ๆ„่ฏ†ๆตท 3D ๅฏ่ง†ๅŒ–

Canvas 2D + ๆ‰‹ๅ†™ 3D ๆŠ•ๅฝฑ๏ผˆ้ž WebGL๏ผ‰๏ผŒ็ƒ้ขๅๆ ‡็›ธๆœบ๏ผŒ้€่ง†้™คๆณ• 700 / depthใ€‚

7 ๅฑ‚ๆธฒๆŸ“้กบๅบ๏ผš ่ƒŒๆ™ฏๆธๅ˜ โ†’ ๅœฐ้ข็ฝ‘ๆ ผ โ†’ ๆฐด้ขๅนณ้ข โ†’ ไฝ“็งฏๅ…‰๏ผˆ3 ๆŸๅ…‰ๆŸฑ๏ผ‰โ†’ ็ฒ’ๅญ็ณป็ปŸ๏ผˆ3 ๅฑ‚ 125 ้ข—๏ผ‰โ†’ ็”Ÿ็‰ฉ่งๅ…‰ๆตฎๆธธ็”Ÿ็‰ฉ๏ผˆ10 ไธชๅธฆๆ‹–ๅฐพ๏ผ‰โ†’ ็Ÿฅ่ฏ†ๅ›พ่ฐฑ่Š‚็‚นไธŽ่พน๏ผˆๆทฑๅบฆๆŽ’ๅบ๏ผ‰

ๅ›พ่ฐฑๆ˜ ๅฐ„๏ผš subject/object โ†’ ่Š‚็‚น๏ผŒpredicate โ†’ ๆœ‰ๅ‘่พน๏ผŒๅบฆไธญๅฟƒๆ€ง โ†’ ่Š‚็‚น้ซ˜ๅบฆๆƒ้‡๏ผŒไธŠ้™ 100 ่Š‚็‚น

ไบคไบ’๏ผš ๆ‹–ๆ‹ฝๆ—‹่ฝฌใ€ไธญ้”ฎๅนณ็งปใ€ๆปš่ฝฎ็ผฉๆ”พใ€่Š‚็‚น็‚น้€‰/ๆ‹–ๆ‹ฝใ€ๅ…ณ้”ฎ่ฏๆœ็ดข่ฟ‡ๆปค


3. ๆŠ€่ƒฝๅทฅๅŠ ยท SkillView

ๅ†…็ฝฎ MCP Agent

ๅŸบไบŽ Model Context Protocol ็š„ๅฏๆ’ๆ‹”ๅทฅๅ…ทๆžถๆž„๏ผŒๆฏไธชๅทฅๅ…ทไปฅ็‹ฌ็ซ‹ Agent ่ฟ่กŒ๏ผš

Agent ๅŠŸ่ƒฝ
weather_time ๅคฉๆฐ”ๆŸฅ่ฏข / ้ข„ๆŠฅใ€็ณป็ปŸๆ—ถ้—ดใ€่‡ชๅŠจๅŸŽๅธ‚ / IP ๆฃ€ๆต‹
open_launcher ๆ‰ซๆ็ณป็ปŸๅทฒๅฎ‰่ฃ…ๅบ”็”จ๏ผŒ่‡ช็„ถ่ฏญ่จ€ๅฏๅŠจ็จ‹ๅบ
game_guide ๆธธๆˆ็ญ–็•ฅ้—ฎ็ญ”ใ€ไผคๅฎณ่ฎก็ฎ—ใ€้…้˜ŸๆŽจ่ใ€่‡ชๅŠจๆˆชๅ›พๆณจๅ…ฅ
online_search ๅŸบไบŽ SearXNG ็š„็ฝ‘็ปœๆœ็ดข
crawl4ai ๅŸบไบŽ Crawl4AI ็š„็ฝ‘้กตๅ†…ๅฎนๆๅ–
playwright_master ๅŸบไบŽ Playwright ็š„ๆต่งˆๅ™จ่‡ชๅŠจๅŒ–
vision ๆˆชๅ›พๅˆ†ๆžไธŽ่ง†่ง‰้—ฎ็ญ”
mqtt_tool MQTT ๅ่ฎฎ IoT ่ฎพๅค‡ๆŽงๅˆถ
office_doc docx / xlsx ๅ†…ๅฎนๆๅ–

ๆณจๅ†ŒไธŽๅ‘็Žฐ๏ผš mcp_registry.py glob ๆ‰ซๆ **/agent-manifest.json๏ผŒimportlib.import_module ๅŠจๆ€ๅฎžไพ‹ๅŒ–ใ€‚

MCP ็ฎก็† UI

ๅ‰็ซฏ McpAddDialog.vue ๆไพ›ๅ›พๅฝขๅŒ– MCP ๅทฅๅ…ท็ฎก็†็•Œ้ข๏ผŒๆ”ฏๆŒๅœจ็บฟๆทปๅŠ  / ๅˆ ้™คๅทฅๅ…ท๏ผˆๆ— ้œ€้‡ๅฏ๏ผ‰ใ€‚

็คพๅŒบ Skill ๅฎ‰่ฃ…

ๆŠ€่ƒฝๅทฅๅŠๆ”ฏๆŒไธ€้”ฎๅฎ‰่ฃ…็คพๅŒบๅ‘ๅธƒ็š„ Skill๏ผˆAgent Browserใ€Brainstormingใ€Context7ใ€Firecrawl Search ็ญ‰๏ผ‰ใ€‚ ๅŽ็ซฏๆŽฅๅฃ๏ผšGET /openclaw/market/itemsใ€POST /openclaw/market/items/{id}/install

ๆบ็ ๏ผšmcpserver/


4. ๅจœ่ฟฆ็ฝ‘็ปœ ยท ่ฎบๅ›็คพๅŒบ

็คพๅŒบ่ฎบๅ›

ไปŽไธป้ขๆฟ"ๅจœ่ฟฆ็ฝ‘็ปœ"ๅŒบๅ—่ฟ›ๅ…ฅ๏ผŒๅ†…ๅตŒๅฎŒๆ•ด็คพๅŒบๅŠŸ่ƒฝ๏ผš

่ง†ๅ›พ ่ทฏ็”ฑ ๅŠŸ่ƒฝ
ForumListView /forum ๅธ–ๅญๅˆ—่กจใ€ๅˆ†็ฑป็ญ›้€‰
ForumPostView /forum/post/:id ๅธ–ๅญ่ฏฆๆƒ…ไธŽๅ›žๅค
ForumMessagesView /forum/messages ็งไฟกๆถˆๆฏ
ForumMyPostsView /forum/my-posts ๆˆ‘็š„ๅ‘ๅธ–
ForumMyRepliesView /forum/my-replies ๆˆ‘็š„ๅ›žๅค
ForumQuotaView /forum/quota ็งฏๅˆ†้…้ขไธŽๆŽข็ดขๅ…ฅๅฃ

ๆบ็ ๏ผšfrontend/src/forum/

็งฏๅˆ†ๅฅฝๆ„Ÿๅบฆ็ณป็ปŸ

็™ปๅฝ•็”จๆˆทไธ“ๅฑž็š„ๆธธๆˆๅŒ–ไบ’ๅŠจไฝ“็ณป๏ผš

็ปดๅบฆ ่ฏดๆ˜Ž
็งฏๅˆ† (Credits) ็ญพๅˆฐ / ่ฟž็ญพๅฅ–ๅŠฑ็งฏ็ดฏ๏ผŒ็”จไบŽๅ…‘ๆขๆจกๅž‹้ขๅบฆ
ๅฅฝๆ„Ÿๅบฆ (Affinity) ๆฏๆฌก็ญพๅˆฐๅขž้•ฟ๏ผŒๅๆ˜ ไธŽๅจœ่ฟฆ็š„ๅ…ณ็ณปๆทฑๅบฆ
ๆฏๆ—ฅ็ญพๅˆฐ ็”จๆˆท่œๅ•ไธ€้”ฎ็ญพๅˆฐ๏ผŒ่ฟž็ปญ็ญพๅˆฐ่งฆๅ‘้ขๅค–ๅฅ–ๅŠฑ

็›ธๅ…ณ API๏ผˆ้€š่ฟ‡ API Server ไปฃ็†่‡ณ Naga ้—จๆˆท๏ผ‰๏ผš/api/checkinใ€/api/affinityใ€/api/credits


5. ๆžขๆœบ้›†ๅธ‚ ยท MarketView

ๆžขๆœบ้›†ๅธ‚ๆ•ดๅˆไบ†ๆ‰€ๆœ‰่ต„ๆบ่Žทๅ–ไธŽ็ฎก็†ๅ…ฅๅฃ๏ผŒๅˆ†ไธบไธƒไธช Tab๏ผš

Tab ่ฏดๆ˜Ž
็•Œ้ข่ƒŒๆ™ฏ ๅˆ‡ๆขๅบ”็”จไธป้ข˜่ƒŒๆ™ฏ
้Ÿณไน‹ๅทท ่ดญไนฐ / ่งฃ้”้Ÿณไนไธ“่พ‘๏ผˆๅฝ“ๅ‰๏ผšๆฒ™ไน‹ไนฆ๏ผ‰
่ง’่‰ฒๆณจๅ†Œ ็ป‘ๅฎš / ๅˆ‡ๆข AI ่ง’่‰ฒ๏ผˆ้œ€็™ปๅฝ•๏ผ‰
่ฎฐๅฟ†ไบ‘่ฟ ไบ‘็ซฏ่ฎฐๅฟ†ๆ•ฐๆฎ่ฟ็งปไธŽ็ฎก็†
MCP ๅทฅๅ…ท MCP ๅทฅๅ…ทๅ›พๅฝขๅŒ–็ฎก็†
ๆ™บ่ƒฝไฝ“ๆŠ€่ƒฝ ็คพๅŒบ Skill ไธ€้”ฎๅฎ‰่ฃ…
ๆจกๅž‹ๅ……ๅ€ผ Naga ้—จๆˆท็งฏๅˆ†ๅ……ๅ€ผ

6. ็ปˆ็ซฏ่ฎพ็ฝฎ ยท ConfigView

่ฎพ็ฝฎ้กตไธ‰ๅˆไธ€้‡ๆž„๏ผŒๅŽŸๅˆ†ๆ•ฃ้…็ฝฎ้›†ไธญๅœจๅ•ไธ€้กต้ข็š„ไธ‰ไธช Tab๏ผš

Tab ๅ†…ๅฎน
ๆจกๅž‹่ฟžๆŽฅ LLM API Keyใ€Base URLใ€ๆจกๅž‹้€‰ๆ‹ฉ
่ฎฐๅฟ†่ฟžๆŽฅ Neo4j ่ฟžๆŽฅๅ‚ๆ•ฐใ€NagaMemory ไบ‘็ซฏ้…็ฝฎ
้Ÿณ็”ป้…็ฝฎ ่ง’่‰ฒๆกฃๆกˆใ€Live2D ๆจกๅž‹ไธŽ SSAAใ€TTS ๅฃฐ้Ÿณใ€่Šๅคฉๅญ—ๅท

่ง’่‰ฒๅก็ณป็ปŸ

characters/ ็›ฎๅฝ•็ฎก็†ๅฏๅˆ‡ๆข็š„ AI ่ง’่‰ฒ๏ผŒๆฏไธช่ง’่‰ฒไปฅ JSON ้…็ฝฎๆ–‡ไปถๆ่ฟฐ๏ผš

{
  "ai_name": "ๅจœๆฐๆ—ฅ่พพ",
  "user_name": "็”จๆˆท",
  "live2d_model": "NagaTest2/NagaTest2.model3.json",
  "prompt_file": "conversation_style_prompt.txt",
  "portrait": "Naga.png",
  "bio": "็”ฑๅผ€ๅ‘่€…ๆŸๆ–ฏ้˜”่ฝไบฒๆ‰‹ๅˆ›้€ ็š„AIๅŠฉๆ‰‹๏ผŒ็ฎ€็งฐๅจœ่ฟฆใ€‚"
}
  • ๆฏไธช่ง’่‰ฒ็›ฎๅฝ•ๅŒ…ๅซ็‹ฌ็ซ‹็š„ๅฏน่ฏ้ฃŽๆ ผๆ็คบ่ฏใ€Live2D ๆจกๅž‹่ต„ๆบใ€็ซ‹็ป˜ๅ›พๅƒ
  • ๆฟ€ๆดป่ง’่‰ฒๅŽ๏ผŒAI ๅ็งฐไธŽ Live2D ๆจกๅž‹็”ฑ่ง’่‰ฒ JSON ็ปŸไธ€็ฎก็†๏ผŒไธๅฏๅœจ็•Œ้ขๆ‰‹ๅŠจ่ฆ†็›–
  • ้ป˜่ฎค่ง’่‰ฒ๏ผšๅจœๆฐๆ—ฅ่พพ

ๆบ็ ๏ผšcharacters/


7. ้Ÿณๅพ‹ๅŠ ยท MusicView

็‹ฌ็ซ‹้Ÿณไนๆ’ญๆ”พๅ™จ๏ผŒไธŽไธป็•Œ้ข BGM ๅ…ฑไบซๅŒไธ€ๆ’ญๆ”พๅฎžไพ‹๏ผˆ็ปŸไธ€ BGM ๆžถๆž„๏ผ‰๏ผš

  • ๆญŒๅ•็ผ–่พ‘๏ผˆMusicEditView๏ผ‰๏ผš็ฎก็†ๆ›ฒ็›ฎๅˆ—่กจ๏ผŒไฟๅญ˜ๅŽๅฎžๆ—ถๅŒๆญฅ่‡ณๅ…จๅฑ€ๆ’ญๆ”พๅ™จ
  • ๆ’ญๆ”พ็Šถๆ€ๅŒๆญฅ๏ผšๆ’ญๆ”พ / ๆš‚ๅœๅ›พๆ ‡ไธŽ้Ÿณ้ข‘ไบ‹ไปถๅฎžๆ—ถ่”ๅŠจ
  • ๅˆ—่กจๅพช็Žฏ๏ผšๅฝ“ๅ‰ๆ›ฒ็›ฎ็ป“ๆŸๅŽ่‡ชๅŠจๆ’ญๆ”พไธ‹ไธ€้ฆ–
  • Live2D ๅฃๅž‹ๅŒๆญฅ๏ผšTTS ๆ’ญๆ”พๆœŸ้—ด๏ผŒAdvancedLipSyncEngineV2 ไปฅ 60FPS ้ฉฑๅŠจ Live2D ๅ˜ดๅฝข

8. ๆ‚ฌๆตฎ็ƒ ยท FloatingView

็‚นๅ‡ปไธป้ขๆฟ"ๆ‚ฌๆตฎ"ๆŒ‰้’ฎ่ฟ›ๅ…ฅ่ฝป้‡ๆ‚ฌๆตฎ็ƒ็ช—ๅฃๆจกๅผ๏ผŒๅ››็ง็Šถๆ€ๅพช็Žฏๅˆ‡ๆข๏ผš

ball๏ผˆ100ร—100 ๅœ†็ƒ๏ผ‰โ†’ compact๏ผˆ420ร—100 ๆŠ˜ๅ ๆก๏ผ‰โ†’ full๏ผˆ420ร—N ๅฑ•ๅผ€๏ผ‰โ†’ classic๏ผˆๆญฃๅธธ็ช—ๅฃ๏ผ‰

ๅค–่ง‚ไธŽๅŠจๆ•ˆ๏ผš

  • ๅบๅˆ—ๅธง็œจ็œผๅŠจ็”ป๏ผš5 ๅธง๏ผˆ็็œผ โ†’ ๅŠ้—ญ โ†’ ้—ญ็œผ โ†’ ๅŠ้—ญ โ†’ ็็œผ๏ผ‰๏ผŒ70ms / ๅธง๏ผŒ้šๆœบ้—ด้š”่งฆๅ‘
  • ็”Ÿๆˆๅ›žๅคๆ—ถ๏ผš็ƒไฝ“ๅ…‰ๆ™•่„‰ๅ†ฒ็‰นๆ•ˆ
  • ๆ‚ฌๅœๆ—ถ๏ผšไบฎๅบฆๆๅ‡ๆ•ˆๆžœ
  • ้€ๆ˜Žๆ— ่พนๆก†็ช—ๅฃ๏ผŒๆ”ฏๆŒ่‡ช็”ฑๆ‹–ๆ‹ฝๅฎšไฝ

ๅŠŸ่ƒฝ๏ผš

  • ๆ‚ฌๆตฎ็Šถๆ€ไธ‹ๅฏ็›ดๆŽฅ่พ“ๅ…ฅๅฏน่ฏ๏ผŒๅކๅฒๆถˆๆฏๅœจ compact / full ็Šถๆ€ไธ‹ๅฏๅ›žๆบฏ
  • ๆˆชๅ›พๆ•่Žท้ขๆฟ๏ผš้€‰ๅ–ๅฑๅน•็ช—ๅฃไฝœไธบๅ›พๅƒ้™„ไปถ
  • ๆ–‡ไปถไธŠไผ ๆ”ฏๆŒ
  • ๅณ้”ฎ่œๅ•้€š่ฟ‡ Electron ๅŽŸ็”Ÿ่œๅ•ๅฎž็Žฐ๏ผˆ้ฟๅ…ๅฐ็ช—ๅฃ่ฃๅ‰ช๏ผ‰

ๅ…จๅฑ€ๅŠŸ่ƒฝ

่ฏญ้Ÿณไบคไบ’

TTS๏ผˆ่ฏญ้Ÿณๅˆๆˆ๏ผ‰

  • ๅผ•ๆ“Ž๏ผšEdge-TTS๏ผŒOpenAI ๅ…ผๅฎนๆŽฅๅฃ /v1/audio/speech
  • ๆžถๆž„๏ผš3 ็บฟ็จ‹ๆตๆฐด็บฟ โ€” ๅˆ†ๅฅ้˜Ÿๅˆ— โ†’ TTS ่ฐƒ็”จ๏ผˆSemaphore(2) ๅนถๅ‘๏ผ‰โ†’ pygame ๆ’ญๆ”พ
  • Live2D ๅฃๅž‹ๅŒๆญฅ๏ผš60FPS ๆๅ– 5 ๅ‚ๆ•ฐ๏ผˆmouth_open / mouth_form / mouth_smile / eye_brow_up / eye_wide๏ผ‰
  • ็ซฏๅฃๆธ…็†๏ผšๅฏๅŠจๆ—ถ่‡ชๅŠจๆฃ€ๆต‹ๅนถ้‡Šๆ”พๅ ็”จ็ซฏๅฃ

ASR๏ผˆ่ฏญ้Ÿณ่ฏ†ๅˆซ๏ผ‰

  • ๆœฌๅœฐๅผ•ๆ“Ž๏ผšFunASR๏ผŒๆ”ฏๆŒ VAD ็ซฏ็‚นๆฃ€ๆต‹ไธŽ WebSocket ๅฎžๆ—ถๆต
  • ไธ‰ๆจกๅผ่‡ชๅŠจๅˆ‡ๆข๏ผšLOCAL๏ผˆFunASR๏ผ‰โ†’ END_TO_END๏ผˆQwen Omni๏ผ‰โ†’ HYBRID

ๅฎžๆ—ถ่ฏญ้Ÿณๅฏน่ฏ๏ผˆ้œ€ DashScope API Key๏ผ‰

  • ๅŸบไบŽ Qwen Omni ็š„ๅ…จๅŒๅทฅ WebSocket ่ฏญ้Ÿณไบคไบ’
  • ๅ›žๅฃฐๆŠ‘ๅˆถใ€VAD ๆฃ€ๆต‹ใ€้Ÿณ้ข‘ๅˆ†ๅ—๏ผˆ200ms๏ผ‰ใ€ไผš่ฏๅ†ทๅดๆŽงๅˆถ
{
  "voice_realtime": {
    "enabled": true,
    "provider": "qwen",
    "api_key": "your-dashscope-key",
    "model": "qwen3-omni-flash-realtime"
  }
}

ๆบ็ ๏ผšvoice/


Live2D ่™šๆ‹Ÿๅฝข่ฑก

ไฝฟ็”จ pixi-live2d-display + PixiJS WebGL ๆธฒๆŸ“ Cubism Live2D ๆจกๅž‹ใ€‚ SSAA ่ถ…้‡‡ๆ ทๆŠ—้”ฏ้ฝฟ๏ผšCanvas ๆŒ‰ width ร— ssaa ๆธฒๆŸ“๏ผŒCSS transform: scale(1/ssaa) ็ผฉๆ”พใ€‚

4 ้€š้“ๆญฃไบคๅŠจ็”ป็ณป็ปŸ๏ผˆlive2dController.ts๏ผ‰๏ผš

้€š้“ ๆŽงๅˆถๅ†…ๅฎน ็‰นๆ€ง
ไฝ“ๆ€ (State) idle / thinking / talking ๅพช็Žฏ hermite ๅนณๆป‘ๆ’ๅ€ผ๏ผŒไปŽ naga-actions.json ๅŠ ่ฝฝ
ๅŠจไฝœ (Action) ็‚นๅคด / ๆ‘‡ๅคด็ญ‰ๅคด้ƒจๅŠจไฝœ FIFO ้˜Ÿๅˆ—๏ผŒๅ•ไธ€ๆ‰ง่กŒ
่กจๆƒ… (Emotion) .exp3.json ่กจๆƒ…ๆ–‡ไปถ Add / Multiply / Overwrite ไธ‰็งๆททๅˆๆจกๅผ๏ผŒๆŒ‡ๆ•ฐ่กฐๅ‡่ฟ‡ๆธก
่ฟฝ่ธช (Tracking) ้ผ ๆ ‡่ง†็บฟ่ทŸ้š ๅฏ้…ๅปถ่ฟŸๅฏๅŠจ๏ผŒtracking_hold_delay_ms

ๅˆๅนถ้กบๅบ๏ผšไฝ“ๆ€ โ†’ ๅ˜ดๅฝข โ†’ ๅŠจไฝœ โ†’ ๆ‰‹ๅŠจ่ฆ†็›– โ†’ ่กจๆƒ…ๆททๅˆ โ†’ ่ฟฝ่ธชๆททๅˆ


OpenClaw ็”ต่„‘ๆŽงๅˆถ

ๅฏนๆŽฅ OpenClaw Gateway๏ผˆ็ซฏๅฃ 18789๏ผ‰๏ผŒ้€š่ฟ‡่‡ช็„ถ่ฏญ่จ€่ฐƒๅบฆ AI ็ผ–็จ‹ๅŠฉๆ‰‹ๆ‰ง่กŒๆœฌๅœฐไปปๅŠกใ€‚

  • ไธ‰็บงๅ›ž้€€ๅฏๅŠจ๏ผš ๆ‰“ๅŒ…ๅ†…ๅตŒ โ†’ ๅ…จๅฑ€ openclaw ๅ‘ฝไปค โ†’ ่‡ชๅŠจ npm install -g openclaw
  • ๆ”ฏๆŒ sessionKey hooks๏ผˆ2026.2.17+๏ผ‰๏ผŒๅฏ้…็ฝฎ่‡ชๅฎšไน‰ hooks ่ทฏๅพ„
  • POST /openclaw/send ๅ‘้€ๆŒ‡ไปค๏ผŒๆœ€้•ฟ็ญ‰ๅพ… 120 ็ง’

ไปปๅŠก่ฐƒๅบฆๅ™จ๏ผˆTaskScheduler๏ผ‰๏ผš

  • ไปปๅŠกๆญฅ้ชค่ฎฐๅฝ•๏ผˆ็›ฎ็š„ / ๅ†…ๅฎน / ่พ“ๅ‡บ / ๅˆ†ๆž / ๆˆๅŠŸไธŽๅฆ๏ผ‰
  • ่‡ชๅŠจๆๅ–"ๅ…ณ้”ฎๅ‘็Žฐ"ๆ ‡่ฎฐ
  • ๅ†…ๅญ˜ๅŽ‹็ผฉ๏ผšๆญฅ้ชคๆ•ฐ่ถ…้˜ˆๅ€ผๆ—ถ่ฐƒ็”จ LLM ็”Ÿๆˆ CompressedMemory๏ผˆkey_findings / failed_attempts / current_status / next_steps๏ผ‰
  • schedule_parallel_execution() ้€š่ฟ‡ asyncio.gather() ๅนถ่กŒๆ‰ง่กŒไปปๅŠกๅˆ—่กจ

ๆบ็ ๏ผšagentserver/


ๅฏๅŠจๅŠจ็”ป

้˜ถๆฎต ๅ†…ๅฎน
ๆ ‡้ข˜้˜ถๆฎต ้ป‘่‰ฒ้ฎ็ฝฉ + 40 ้ข—้‡‘่‰ฒไธŠๅ‡็ฒ’ๅญ + ๆ ‡้ข˜ๅ›พ็‰‡ 2.4s CSS keyframe๏ผ›ๆ ‡้ข˜ๅ‡บ็Žฐๆ—ถ่‡ชๅŠจๆ’ญๆ”พๅ”ค้†’่ฏญ้Ÿณ
่ฟ›ๅบฆ้˜ถๆฎต Neural Network ็ฒ’ๅญ่ƒŒๆ™ฏ + Live2D ้€ๅ‡บๆก† + ้‡‘่‰ฒ่ฟ›ๅบฆๆก๏ผˆrequestAnimationFrame ๆ’ๅ€ผ๏ผŒๆœ€ไฝŽ้€Ÿๅบฆ 0.5 ๅ…œๅบ•๏ผ‰
ๅœๆปžๆฃ€ๆต‹ 3 ็ง’ๆ— ่ฟ›ๅบฆๅ˜ๅŒ–ๆ˜พ็คบ้‡ๅฏๆ็คบ๏ผ›่ฟ›ๅบฆ 25% ๅŽๆฏ็ง’่ฝฎ่ฏขๅŽ็ซฏ /health
ๅ”ค้†’ ่ฟ›ๅบฆ 100% ๅŽๆ˜พ็คบ"็‚นๅ‡ปๅ”ค้†’"่„‰ๅ†ฒๆ็คบ

ๅŽ็ซฏๆžถๆž„

NagaAgent ็”ฑๅ››ไธช็‹ฌ็ซ‹ๅพฎๆœๅŠก็ป„ๆˆ๏ผŒmain.py ็ปŸไธ€็ผ–ๆŽ’ๅฏๅŠจ๏ผš

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                   Electron / PyQt5 ๅ‰็ซฏ                   โ”‚
โ”‚  Vue 3 + Vite + UnoCSS + PrimeVue + pixi-live2d-display โ”‚
โ”‚                                                         โ”‚
โ”‚  PanelView ยท MessageView ยท MindView ยท SkillView         โ”‚
โ”‚  MarketView ยท ConfigView ยท MusicView ยท FloatingView     โ”‚
โ”‚  ForumListView ยท ForumPostView ยท ForumQuotaView โ€ฆ       โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
           โ”‚             โ”‚              โ”‚
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ” โ”Œโ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚  API Server  โ”‚ โ”‚  Agent  โ”‚  โ”‚   Voice    โ”‚
   โ”‚   :8000      โ”‚ โ”‚  Server โ”‚  โ”‚  Service   โ”‚
   โ”‚              โ”‚ โ”‚  :8001  โ”‚  โ”‚   :5048    โ”‚
   โ”‚ ๅฏน่ฏ / SSE   โ”‚ โ”‚         โ”‚  โ”‚            โ”‚
   โ”‚ ๅทฅๅ…ท่ฐƒ็”จ     โ”‚ โ”‚ ไปปๅŠก่ฐƒๅบฆโ”‚  โ”‚ TTS / ASR  โ”‚
   โ”‚ ไธŠไธ‹ๆ–‡ๅŽ‹็ผฉ   โ”‚ โ”‚ OpenClawโ”‚  โ”‚ ๅฎžๆ—ถ่ฏญ้Ÿณ   โ”‚
   โ”‚ ๆ–‡ๆกฃไธŠไผ      โ”‚ โ”‚         โ”‚  โ”‚            โ”‚
   โ”‚ ่ฎค่ฏไปฃ็†     โ”‚ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
   โ”‚ ่ฎฐๅฟ† API     โ”‚      โ”‚
   โ”‚ Skill ๅธ‚ๅœบ   โ”‚  โ”Œโ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚ ้…็ฝฎ็ฎก็†     โ”‚  โ”‚  OpenClaw    โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚  Gateway    โ”‚
          โ”‚          โ”‚  :18789     โ”‚
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
   โ”‚ MCP Server  โ”‚
   โ”‚   :8003     โ”‚
   โ”‚ ๅทฅๅ…ทๆณจๅ†Œ    โ”‚
   โ”‚ Agent ๅ‘็Žฐ  โ”‚
   โ”‚ ๅนถ่กŒ่ฐƒๅบฆ    โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜
          โ”‚
  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
  โ”‚      MCP Agents๏ผˆๅฏๆ’ๆ‹”๏ผ‰      โ”‚
  โ”‚ ๅคฉๆฐ” | ๆœ็ดข | ๆŠ“ๅ– | ่ง†่ง‰     โ”‚
  โ”‚ ๅฏๅŠจๅ™จ | ๆ”ป็•ฅ | ๆ–‡ๆกฃ | MQTT   โ”‚
  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
          โ”‚
   โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”
   โ”‚    Neo4j    โ”‚
   โ”‚   :7687     โ”‚
   โ”‚  ็Ÿฅ่ฏ†ๅ›พ่ฐฑ   โ”‚
   โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

็›ฎๅฝ•็ป“ๆž„

NagaAgent/
โ”œโ”€โ”€ main.py                   # ็ปŸไธ€ๅ…ฅๅฃ๏ผŒ็ผ–ๆŽ’ๆ‰€ๆœ‰ๆœๅŠก
โ”œโ”€โ”€ build.py                  # ่ทจๅนณๅฐๆž„ๅปบ่„šๆœฌ
โ”œโ”€โ”€ config.json               # ่ฟ่กŒๆ—ถ้…็ฝฎ๏ผˆไปŽ config.json.example ๅคๅˆถ๏ผ‰
โ”œโ”€โ”€ pyproject.toml            # ็‰ˆๆœฌ 5.1.0๏ผŒ้กน็›ฎๅ…ƒๆ•ฐๆฎไธŽไพ่ต–
โ”‚
โ”œโ”€โ”€ apiserver/                # API Server๏ผˆ:8000๏ผ‰
โ”‚   โ”œโ”€โ”€ api_server.py         #   FastAPI ไธปๅบ”็”จ
โ”‚   โ”œโ”€โ”€ agentic_tool_loop.py  #   ๅคš่ฝฎๅทฅๅ…ท่ฐƒ็”จๅพช็Žฏ
โ”‚   โ”œโ”€โ”€ llm_service.py        #   LiteLLM ็ปŸไธ€ LLM ่ฐƒ็”จ
โ”‚   โ””โ”€โ”€ streaming_tool_extractor.py  # ๆตๅผๅˆ†ๅฅ + TTS ๅˆ†ๅ‘
โ”‚
โ”œโ”€โ”€ agentserver/              # Agent Server๏ผˆ:8001๏ผ‰
โ”‚   โ”œโ”€โ”€ agent_server.py
โ”‚   โ””โ”€โ”€ task_scheduler.py     #   ไปปๅŠก็ผ–ๆŽ’ + ๅŽ‹็ผฉ่ฎฐๅฟ†
โ”‚
โ”œโ”€โ”€ mcpserver/                # MCP Server๏ผˆ:8003๏ผ‰
โ”‚   โ”œโ”€โ”€ mcp_server.py
โ”‚   โ”œโ”€โ”€ mcp_registry.py       #   manifest ๆ‰ซๆ + ๅŠจๆ€ๆณจๅ†Œ
โ”‚   โ”œโ”€โ”€ mcp_manager.py        #   unified_call() ่ทฏ็”ฑ
โ”‚   โ”œโ”€โ”€ agent_weather_time/
โ”‚   โ”œโ”€โ”€ agent_open_launcher/
โ”‚   โ”œโ”€โ”€ agent_game_guide/
โ”‚   โ”œโ”€โ”€ agent_online_search/
โ”‚   โ”œโ”€โ”€ agent_crawl4ai/
โ”‚   โ”œโ”€โ”€ agent_playwright_master/
โ”‚   โ”œโ”€โ”€ agent_vision/
โ”‚   โ”œโ”€โ”€ agent_mqtt_tool/
โ”‚   โ””โ”€โ”€ agent_office_doc/
โ”‚
โ”œโ”€โ”€ summer_memory/            # GRAG ็Ÿฅ่ฏ†ๅ›พ่ฐฑ่ฎฐๅฟ†
โ”‚   โ”œโ”€โ”€ quintuple_extractor.py
โ”‚   โ”œโ”€โ”€ quintuple_graph.py
โ”‚   โ”œโ”€โ”€ quintuple_rag_query.py
โ”‚   โ”œโ”€โ”€ task_manager.py
โ”‚   โ”œโ”€โ”€ memory_manager.py
โ”‚   โ””โ”€โ”€ memory_client.py      #   NagaMemory ่ฟœ็จ‹ๅฎขๆˆท็ซฏ
โ”‚
โ”œโ”€โ”€ voice/                    # ่ฏญ้ŸณๆœๅŠก๏ผˆ:5048๏ผ‰
โ”‚   โ”œโ”€โ”€ output/               #   TTS + ๅฃๅž‹ๅŒๆญฅ
โ”‚   โ””โ”€โ”€ input/                #   ASR + ๅฎžๆ—ถ่ฏญ้Ÿณ
โ”‚
โ”œโ”€โ”€ characters/               # ่ง’่‰ฒ้…็ฝฎ็›ฎๅฝ•
โ”‚   โ””โ”€โ”€ ๅจœๆฐๆ—ฅ่พพ/             #   prompt / Live2D ๆจกๅž‹ / ็ซ‹็ป˜
โ”‚
โ”œโ”€โ”€ frontend/                 # Electron + Vue 3 ๅ‰็ซฏ
โ”‚   โ”œโ”€โ”€ electron/             #   ไธป่ฟ›็จ‹
โ”‚   โ”‚   โ””โ”€โ”€ modules/          #   backend / hotkeys / menu / tray / updater / window
โ”‚   โ””โ”€โ”€ src/
โ”‚       โ”œโ”€โ”€ views/            #   ๆ‰€ๆœ‰้กต้ข่ง†ๅ›พ
โ”‚       โ”œโ”€โ”€ forum/            #   ่ฎบๅ›ๆจกๅ—
โ”‚       โ”œโ”€โ”€ components/       #   ้€š็”จ็ป„ไปถ
โ”‚       โ”œโ”€โ”€ composables/      #   useAuth / useBackground / useAudio โ€ฆ
โ”‚       โ””โ”€โ”€ utils/            #   live2dController / session / config
โ”‚
โ”œโ”€โ”€ system/                   # ้…็ฝฎๅŠ ่ฝฝใ€็Žฏๅขƒๆฃ€ๆต‹ใ€็ณป็ปŸๆ็คบ่ฏ
โ”œโ”€โ”€ guide_engine/             # ๆธธๆˆๆ”ป็•ฅๅผ•ๆ“Ž
โ””โ”€โ”€ logs/                     # ่ฟ่กŒๆ—ฅๅฟ—ใ€็Ÿฅ่ฏ†ๅ›พ่ฐฑๆ–‡ไปถ

ๅฏ้€‰้…็ฝฎ

็Ÿฅ่ฏ†ๅ›พ่ฐฑ่ฎฐๅฟ†๏ผˆNeo4j๏ผ‰

ๅฎ‰่ฃ… Neo4j๏ผˆDocker ๆˆ– Neo4j Desktop๏ผ‰๏ผŒ้…็ฝฎ config.json๏ผš

{
  "grag": {
    "enabled": true,
    "neo4j_uri": "neo4j://127.0.0.1:7687",
    "neo4j_user": "neo4j",
    "neo4j_password": "your-password"
  }
}

ไธ้…็ฝฎ Neo4j ๆ—ถ๏ผŒGRAG ไป…ไฝฟ็”จๆœฌๅœฐ JSON ๆ–‡ไปถๅญ˜ๅ‚จ๏ผŒๅŠŸ่ƒฝไธๅ—ๅฝฑๅ“ใ€‚

่ฏญ้Ÿณไบคไบ’๏ผˆTTS / ASR๏ผ‰
{
  "system": { "voice_enabled": true },
  "tts": {
    "port": 5048,
    "default_voice": "zh-CN-XiaoxiaoNeural"
  }
}

ๅฎžๆ—ถๅ…จๅŒๅทฅ่ฏญ้Ÿณๅฏน่ฏ๏ผˆ้œ€้€šไน‰ๅƒ้—ฎ DashScope API Key๏ผ‰๏ผš

{
  "voice_realtime": {
    "enabled": true,
    "provider": "qwen",
    "api_key": "your-dashscope-key",
    "model": "qwen3-omni-flash-realtime"
  }
}
Live2D ่™šๆ‹Ÿๅฝข่ฑก๏ผˆ่‡ชๅฎšไน‰ๆจกๅž‹๏ผ‰
{
  "web_live2d": {
    "ssaa": 2,
    "model": {
      "source": "./models/your-model/model.model3.json",
      "x": 0.5,
      "y": 1.3,
      "size": 6800
    },
    "face_y_ratio": 0.13,
    "tracking_hold_delay_ms": 100
  }
}

ๅฏ็”จ่ง’่‰ฒๅกๅŽ๏ผŒai_name ไธŽ model.source ็”ฑ่ง’่‰ฒ JSON ่‡ชๅŠจ่ฆ†็›–๏ผŒๆ— ้œ€ๆ‰‹ๅŠจไฟฎๆ”นใ€‚

MQTT ็‰ฉ่”็ฝ‘ๆŽงๅˆถ
{
  "mqtt": {
    "enabled": true,
    "broker": "mqtt-broker-address",
    "port": 1883,
    "topic": "naga/agent/topic",
    "client_id": "naga-agent-client"
  }
}

็ซฏๅฃไธ€่งˆ

ๆœๅŠก ็ซฏๅฃ ่ฏดๆ˜Ž
API Server 8000 ไธปๆŽฅๅฃ๏ผšๅฏน่ฏใ€้…็ฝฎใ€่ฎค่ฏใ€Skill ๅธ‚ๅœบ
Agent Server 8001 ไปปๅŠก่ฐƒๅบฆใ€OpenClaw
MCP Server 8003 MCP ๅทฅๅ…ทๆณจๅ†ŒไธŽ่ฐƒๅบฆ
Voice Service 5048 TTS / ASR
Neo4j 7687 ็Ÿฅ่ฏ†ๅ›พ่ฐฑ๏ผˆๅฏ้€‰๏ผ‰
OpenClaw Gateway 18789 AI ็”ต่„‘ๆŽงๅˆถ๏ผˆๅฏ้€‰๏ผ‰

ๆ•…้šœๆŽ’้™ค

้—ฎ้ข˜ ่งฃๅ†ณๆ–นๆกˆ
Python ็‰ˆๆœฌๆŠฅ้”™ ๅฟ…้กปไฝฟ็”จ Python 3.11๏ผ›ๆŽจ่็”จ uv ่‡ชๅŠจ็ฎก็†็‰ˆๆœฌ
็ซฏๅฃ่ขซๅ ็”จ ๆฃ€ๆŸฅ 8000ใ€8001ใ€8003ใ€5048 ๆ˜ฏๅฆๅฏ็”จ
Neo4j ่ฟžๆŽฅ่ถ…ๆ—ถ / ๆŒ‚่ตท ๅทฒๅœจ 2.24 ไฟฎๅค๏ผ›็กฎ่ฎค Neo4j ๆœๅŠกๅทฒๅฏๅŠจ
TTS ๆ— ๅฃฐ้Ÿณ / CORS ๆŠฅ้”™ ๅทฒๅœจ 2.25 ไฟฎๅค๏ผ›็กฎ่ฎค voice_enabled: true
ๅฏๅŠจๅกๅœจ่ฟ›ๅบฆๆก ๆฃ€ๆŸฅ API Key ๆ˜ฏๅฆๆญฃ็กฎ๏ผ›็ญ‰ๅพ… 3 ็ง’ๅŽๅ‡บ็Žฐ้‡ๅฏๆ็คบ
ๆ‚ฌๆตฎ็ƒๅคดๅƒไธๆ˜พ็คบ ๅทฒๅœจ 2.17 ไฟฎๅคๅบๅˆ—ๅธง่ทฏๅพ„๏ผ›็กฎ่ฎคไฝฟ็”จๆœ€ๆ–ฐๆ‰“ๅŒ…็‰ˆๆœฌ
config.json ไนฑ็  ๅทฒๅœจ 2.19 ไฟฎๅค๏ผšconfig_manager ่‡ชๅŠจๆฃ€ๆต‹ๆ–‡ไปถ็ผ–็ 
OpenClaw ๅฏๅŠจๅคฑ่ดฅ ๅทฒๅœจ 2.24 ไฟฎๅคๅ…จๅฑ€ๆจกๅผ็ผบๅฐ‘้…็ฝฎๆ–‡ไปถ็š„้—ฎ้ข˜
python main.py --check-env --force-check  # ๅฎŒๆ•ด็Žฏๅขƒ่ฏŠๆ–ญ
python main.py --quick-check              # ๅฟซ้€Ÿๆฃ€ๆŸฅ
python update.py                          # ่‡ชๅŠจ git pull + ไพ่ต–ๅŒๆญฅ

่ดก็Œฎ

ๆฌข่ฟŽๆไบค Issue ๅ’Œ Pull Requestใ€‚ๅฆ‚ๆœ‰้—ฎ้ข˜๏ผŒๅฏๅŠ ๅ…ฅ QQ ้ข‘้“ nagaagent1ใ€‚


Star History

Star History Chart

About

A simple yet powerful agent framework for personal assistants, designed to enable intelligent interaction, multi-agent collaboration, and seamless tool integration.

Topics

Resources

License

AGPL-3.0, Unknown licenses found

Licenses found

AGPL-3.0
LICENSE
Unknown
LICENSE-CLOSED-SOURCE

Stars

Watchers

Forks

Packages

 
 
 

Contributors