A lightweight AI Agent framework for vertical domain applications
Project description
为什么选择 Micro-Agent
如果你需要为特定行业快速构建一个专业 Agent 并以 API 服务形式交付,Micro-Agent 是最短路径。
| 能力 | Micro-Agent | LangGraph | AutoGen | OpenClaw |
|---|---|---|---|---|
| 开箱即用 API 服务 | ✅ | ❌ | ❌ | ❌ |
| 垂域知识注入 (Skills) | ✅ | ❌ | ❌ | ❌ |
| 内置 RAG 检索增强 | ✅ | ❌ | ❌ | ❌ |
| 知识图谱增强 | ✅ | ❌ | ❌ | ❌ |
| MCP 原生集成 | ✅ | 第三方 | 第三方 | 第三方 |
| 流式 SSE 输出 | ✅ | ✅ | ❌ | ❌ |
| 多 LLM Profile 配置 | ✅ | ❌ | ❌ | ❌ |
| 轻量(核心 <3K 行) | ✅ | ❌ | ❌ | ❌ |
各框架定位: Micro-Agent 面向垂域专业 Agent 服务交付 · LangGraph 面向复杂多步工作流编排 · AutoGen 面向多角色智能体协作 · OpenClaw 面向个人效率自动化
架构
核心组件:
- LLM Layer — 通过 litellm 统一接口,一套代码切换 OpenAI / DeepSeek / Claude / Ollama 等任意模型
- Agent Core — ReAct 执行引擎(Think → Act → Observe 循环),支持 SubAgent 子任务分发与 REPL 沙箱执行
- Memory — 会话记忆系统,支持短期记忆、文件持久化、跨会话恢复
- Skills — 将领域规范、编码标准等知识注入 Agent 的 system prompt,使其具备专业能力
- RAG — 从领域知识库中检索相关文档,为推理提供上下文
- Knowledge Graph — 基于图结构的领域知识表示与关联推理
- MCP / Tools — 通过 Model Context Protocol 连接外部工具和数据源
快速开始
环境要求
- Python ≥ 3.11
- 任意 LLM API Key(OpenAI / DeepSeek / Claude / Ollama / OpenRouter 等)
安装
git clone https://github.com/fdueblab/Micro-Agent.git
cd Micro-Agent
pip install -e ".[dev]"
配置
cp .env.example .env
编辑 .env,填入 API Key:
LLM_MODEL=deepseek/deepseek-chat
LLM_API_KEY=sk-xxx
支持任何 litellm 兼容的模型格式,如
openai/gpt-4o、ollama/qwen2.5、openrouter/qwen/qwen3-coder-flash等。
启动
uvicorn api.app:app --host 0.0.0.0 --port 8010 --reload
访问 http://localhost:8010/docs 查看 API 文档。
Docker 部署
docker-compose up -d
定义垂域任务
只需三步,即可将通用 Agent 转化为面向特定领域的专业智能体:
1. 编写 Prompt 模板
{# task/templates/code_review.md.j2 #}
请对以下代码进行审查,重点关注安全性和性能:
代码路径: {{ code_path }}
审查标准: {{ standards }}
2. 注册任务
# task/builtin.py
register_task(TaskConfig(
name="code_review",
prompt_template="code_review.md.j2",
system_prompt="你是一名资深代码审查工程师。",
llm_profile="reasoning",
max_steps=20,
))
3. 调用
curl -X POST http://localhost:8010/api/tasks \
-H "Content-Type: application/json" \
-d '{"prompt": "审查 src/main.py", "agent_name": "code_review"}'
多 LLM Profile
为不同场景配置不同的模型策略:
# config/config.toml
[llm.default]
model = "deepseek/deepseek-chat"
temperature = 0.0
max_tokens = 8192
[llm.fast]
model = "deepseek/deepseek-chat"
max_tokens = 4096
timeout = 30
[llm.reasoning]
model = "openai/o1-mini"
max_tokens = 16384
timeout = 120
任务中通过 llm_profile 指定:
register_task(TaskConfig(
name="my_task",
llm_profile="reasoning", # 使用推理模型
...
))
内置示例任务
项目内置了多个真实场景的 Agent 任务作为参考实现:
| 任务 | 说明 | 垂域组件 |
|---|---|---|
| 代码分析 | 上传代码 → 自动分析函数结构 | Tools |
| 服务封装 | 上传代码 → 自动生成 Docker + MCP 服务 | Skills + RAG + Memory |
| 算法模型生成 | 描述需求 → 生成算法模型代码 | Skills + RAG + Memory |
| MCP 服务测试 | 连接 MCP 服务器 → 自动发现并测试工具 | MCP |
| 服务评测 | 上传数据 → 自动执行评测并输出报告 | Tools |
| AML 模型评测 | 上传数据 → 多指标安全评测(支持数据适配) | MCP + Tools |
这些任务展示了如何通过组合 Skills、RAG、MCP 等组件,将通用 Agent 打造为垂域专业智能体。你可以参考它们的实现来构建自己的任务。
扩展点
| 组件 | 接口 | 内置实现 | 可扩展方向 |
|---|---|---|---|
| 模型 | litellm | OpenAI, DeepSeek, Claude | Ollama, vLLM, 任意 OpenAI 兼容 API |
| 工具 | Tool ABC |
Bash, MCP, Terminate | 任意自定义工具 |
| 记忆 | MemoryProvider |
ShortTermMemory, FileMemory | Redis, 向量数据库 |
| 检索 | Retriever |
EmbeddingRetriever | FAISS, ChromaDB, Milvus |
| 技能 | Skill + SkillRegistry |
SKILL.md 目录发现 | 远程技能市场 |
项目结构
Micro-Agent/
├── core/ # Agent 核心引擎
│ ├── agent.py # ReAct 循环执行引擎
│ ├── llm.py # LLM 统一调用层 (litellm)
│ ├── config.py # 配置管理 (TOML + 环境变量)
│ ├── memory/ # 记忆系统 (短期 / 持久化)
│ ├── rag/ # 检索增强 (Embedding)
│ ├── skill/ # 技能系统 (注册 / 发现 / 注入)
│ └── schema.py # 数据模型 (Event / Message / ToolCall)
├── tool/ # 工具层
│ ├── base.py # Tool 抽象接口
│ ├── bash.py # Bash 命令执行
│ ├── mcp/ # MCP 工具 (stdio / SSE)
│ └── registry.py # 工具注册表
├── task/ # 任务定义
│ ├── base.py # TaskConfig + 模板渲染
│ ├── builtin.py # 内置任务注册
│ └── templates/ # Jinja2 Prompt 模板
├── api/ # API 服务层
│ ├── app.py # FastAPI 入口
│ ├── routes/ # 路由 (任务管理 / Agent 端点)
│ └── services/ # SSE 流 / 文件处理
├── workspace/ # 工作区
│ ├── knowledge/ # RAG 知识库文档
│ └── skills/ # Skill 定义 (SKILL.md)
├── config/ # 配置文件
├── tests/ # 测试
└── deploy/ # Docker 部署
许可
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fdu_micro_agent-2.0.0.tar.gz.
File metadata
- Download URL: fdu_micro_agent-2.0.0.tar.gz
- Upload date:
- Size: 36.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cff6d907eb886a676afeb7e603162f0bb4586eea1edffb9eea4ba0f14b01a453
|
|
| MD5 |
0e5df1ba6ad7e21a5f81154584f13ec1
|
|
| BLAKE2b-256 |
3b58903b7c84dc7859987279554ddf9541a64738e3c84d0665555170634ab9dc
|
Provenance
The following attestation bundles were made for fdu_micro_agent-2.0.0.tar.gz:
Publisher:
publish.yml on fdueblab/Micro-Agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fdu_micro_agent-2.0.0.tar.gz -
Subject digest:
cff6d907eb886a676afeb7e603162f0bb4586eea1edffb9eea4ba0f14b01a453 - Sigstore transparency entry: 1271208312
- Sigstore integration time:
-
Permalink:
fdueblab/Micro-Agent@8ec2567b3ba8a0aa2dfcb68ff730fd22833fe9f8 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/fdueblab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8ec2567b3ba8a0aa2dfcb68ff730fd22833fe9f8 -
Trigger Event:
release
-
Statement type:
File details
Details for the file fdu_micro_agent-2.0.0-py3-none-any.whl.
File metadata
- Download URL: fdu_micro_agent-2.0.0-py3-none-any.whl
- Upload date:
- Size: 40.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
67c56fe5f63ff958931e028231132e809079e9e82db07bc5efa16aaaa4a07e8d
|
|
| MD5 |
46b23cdae9395e9ee695ed132d03cfa4
|
|
| BLAKE2b-256 |
1d364d257adefd192bd2e8e6eef277f9dbcaa2829f81ab9603932cf54e4ea5b9
|
Provenance
The following attestation bundles were made for fdu_micro_agent-2.0.0-py3-none-any.whl:
Publisher:
publish.yml on fdueblab/Micro-Agent
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fdu_micro_agent-2.0.0-py3-none-any.whl -
Subject digest:
67c56fe5f63ff958931e028231132e809079e9e82db07bc5efa16aaaa4a07e8d - Sigstore transparency entry: 1271208374
- Sigstore integration time:
-
Permalink:
fdueblab/Micro-Agent@8ec2567b3ba8a0aa2dfcb68ff730fd22833fe9f8 -
Branch / Tag:
refs/tags/v2.0.0 - Owner: https://github.com/fdueblab
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@8ec2567b3ba8a0aa2dfcb68ff730fd22833fe9f8 -
Trigger Event:
release
-
Statement type: