Skip to content

robscc/nimo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

20 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

nimo logo

nimo

๐Ÿ  ๅŸบไบŽ AgentScope ๆž„ๅปบ็š„ๅผ€ๆบไธชไบบๆ™บ่ƒฝๅŠฉๆ‰‹ๅนณๅฐ

CI codecov Python 3.10+ License: MIT


โœจ ็‰นๆ€ง

  • ๐Ÿง  ๆ™บ่ƒฝๅฏน่ฏ โ€” ๅŸบไบŽ AgentScope ๆก†ๆžถ๏ผŒๆ”ฏๆŒๅคšๆจกๅž‹้…็ฝฎ
  • ๐Ÿ“ฑ ๅคšๆธ ้“ๆŽฅๅ…ฅ โ€” DingTalk๏ผˆ้’‰้’‰๏ผ‰ใ€้ฃžไนฆ๏ผˆFeishu/Lark๏ผ‰ใ€iMessage ๅผ€็ฎฑๅณ็”จ
  • ๐Ÿค– SubAgent ๆ”ฏๆŒ โ€” ๅผ‚ๆญฅๅญไปฃ็†ๆ‰ง่กŒๅคๆ‚ไปปๅŠก๏ผŒๅ„่‡ช็ปดๆŠค็‹ฌ็ซ‹ Session
  • ๐ŸŒ ๅ‰ๅŽ็ซฏๅˆ†็ฆป โ€” React ๅ‰็ซฏ + FastAPI ๅŽ็ซฏ๏ผŒๆไพ›ๅฏ่ง†ๅŒ–็ฎก็†็•Œ้ข
  • ๐Ÿ”Œ ๆ’ไปถๅŒ–ๆธ ้“ โ€” ๆ ‡ๅ‡†ๅŒ– Channel ๆŽฅๅฃ๏ผŒ่ฝปๆพๆ‰ฉๅฑ•ๆ–ฐ็š„ๆถˆๆฏๆธ ้“
  • ๐Ÿงช ๆต‹่ฏ•้ฉฑๅŠจ โ€” ๅฎŒๆ•ด็š„ๅ•ๅ…ƒๆต‹่ฏ•ไธŽ้›†ๆˆๆต‹่ฏ•่ฆ†็›–

๐Ÿ—๏ธ ๆžถๆž„ๆฆ‚่งˆ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     ๆถˆๆฏๆธ ้“ๅฑ‚                             โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”               โ”‚
โ”‚  โ”‚ DingTalk โ”‚  โ”‚  Feishu  โ”‚  โ”‚ iMessage โ”‚  ...           โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”˜               โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€-โ”˜
        โ”‚              โ”‚             โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    FastAPI Backend                         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”              โ”‚
โ”‚  โ”‚         PersonalAssistant Agent        โ”‚              โ”‚
โ”‚  โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚              โ”‚
โ”‚  โ”‚  โ”‚   SubAgent Pool (Async Tasks)   โ”‚  โ”‚              โ”‚
โ”‚  โ”‚  โ”‚  [SubAgent1] [SubAgent2] ...    โ”‚  โ”‚              โ”‚
โ”‚  โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚              โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜              โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”                 โ”‚
โ”‚  โ”‚ Session Mgr  โ”‚  โ”‚   Task Manager    โ”‚                 โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜                 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
        โ”‚
โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚              React Frontend (Dashboard)                    โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

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

ๅ‰็ฝฎๆกไปถ

  • Python 3.10+
  • Node.js 18+
  • Docker & Docker Compose๏ผˆๅฏ้€‰๏ผ‰

ๆœฌๅœฐๅผ€ๅ‘

# ๅ…‹้š†ไป“ๅบ“
git clone https://github.com/robscc/nimo.git
cd nimo

# ไธ€้”ฎๅฏๅŠจๅผ€ๅ‘็Žฏๅขƒ
make dev

# ๆˆ–่€…ๅˆ†ๅˆซๅฏๅŠจ
make backend   # ๅฏๅŠจๅŽ็ซฏ (http://localhost:8088)
make frontend  # ๅฏๅŠจๅ‰็ซฏ (http://localhost:3000)

Docker ้ƒจ็ฝฒ

# ๅคๅˆถๅนถ้…็ฝฎ็Žฏๅขƒๅ˜้‡
cp .env.example .env
# ็ผ–่พ‘ .env ๅกซๅ†™็›ธๅ…ณ้…็ฝฎ

# ๅฏๅŠจๆ‰€ๆœ‰ๆœๅŠก
docker-compose up -d

โš™๏ธ ้…็ฝฎ

ๅคๅˆถ .env.example ๅˆฐ .env ๅนถๅกซๅ†™๏ผš

# LLM ้…็ฝฎ
LLM_MODEL=qwen-max
LLM_API_KEY=your_api_key

# DingTalk
DINGTALK_APP_KEY=
DINGTALK_APP_SECRET=

# ้ฃžไนฆ
FEISHU_APP_ID=
FEISHU_APP_SECRET=

# iMessage๏ผˆไป… macOS๏ผ‰
IMESSAGE_ENABLED=true

่ฏฆ่ง ้…็ฝฎๆ–‡ๆกฃใ€‚

๐Ÿ“ก ๆธ ้“้…็ฝฎ

ๆธ ้“ ๆ–‡ๆกฃ ็Šถๆ€
DingTalk docs/channels/dingtalk.md โœ… ๆ”ฏๆŒ
้ฃžไนฆ Feishu docs/channels/feishu.md โœ… ๆ”ฏๆŒ
iMessage docs/channels/imessage.md โœ… ๆ”ฏๆŒ๏ผˆ้œ€ macOS๏ผ‰

๐Ÿค– SubAgent

SubAgent ๆ”ฏๆŒๅผ‚ๆญฅๆ‰ง่กŒ้•ฟๆ—ถไปปๅŠก๏ผŒๆฏไธช SubAgent ๆœ‰็‹ฌ็ซ‹็š„ Session ไธŠไธ‹ๆ–‡๏ผš

from agentpal.agents import PersonalAssistant

assistant = PersonalAssistant(config)

# ๅฏๅŠจไธ€ไธชๅผ‚ๆญฅๅญไปปๅŠก
task = await assistant.dispatch_sub_agent(
    task="ๅธฎๆˆ‘ๅˆ†ๆž่ฟ™ไปฝๆŠฅๅ‘Šๅนถ็”Ÿๆˆๆ‘˜่ฆ",
    context={"file": "report.pdf"},
    session_id="user_session_123",
)

# ๆŸฅ่ฏขไปปๅŠก็Šถๆ€
status = await assistant.get_task_status(task.id)

่ฏฆ่ง SubAgent ่ฎพ่ฎกๆ–‡ๆกฃใ€‚

๐Ÿงช ๆต‹่ฏ•

# ่ฟ่กŒๆ‰€ๆœ‰ๆต‹่ฏ•
make test

# ่ฟ่กŒๅ•ๅ…ƒๆต‹่ฏ•
make test-unit

# ่ฟ่กŒ้›†ๆˆๆต‹่ฏ•
make test-integration

# ็”Ÿๆˆ่ฆ†็›–็އๆŠฅๅ‘Š
make coverage

๐Ÿ“ ้กน็›ฎ็ป“ๆž„

nimo/
โ”œโ”€โ”€ .github/              # GitHub Actions & ๆจกๆฟ
โ”œโ”€โ”€ backend/              # FastAPI ๅŽ็ซฏ
โ”‚   โ”œโ”€โ”€ agentpal/        # ๆ ธๅฟƒๅŒ…
โ”‚   โ”‚   โ”œโ”€โ”€ agents/      # Agent ๅฎž็Žฐ
โ”‚   โ”‚   โ”œโ”€โ”€ channels/    # ๆถˆๆฏๆธ ้“
โ”‚   โ”‚   โ”œโ”€โ”€ api/         # REST API
โ”‚   โ”‚   โ”œโ”€โ”€ models/      # ๆ•ฐๆฎๆจกๅž‹
โ”‚   โ”‚   โ””โ”€โ”€ services/    # ไธšๅŠกๆœๅŠก
โ”‚   โ””โ”€โ”€ tests/           # ๆต‹่ฏ•ๅฅ—ไปถ
โ”œโ”€โ”€ frontend/             # React ๅ‰็ซฏ
โ”œโ”€โ”€ docs/                 # ้กน็›ฎๆ–‡ๆกฃ
โ”œโ”€โ”€ scripts/              # ๅทฅๅ…ท่„šๆœฌ
โ””โ”€โ”€ docker-compose.yml

๐Ÿค ่ดก็Œฎ

ๆฌข่ฟŽ PR ๅ’Œ Issue๏ผ่ฏทๅ…ˆ้˜…่ฏป CONTRIBUTING.mdใ€‚

๐Ÿ“„ License

MIT

About

Agent Nimo for selfagent use

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors