---
title: mirau-agent-14b-base
canonical_url: "https://www.modelscope.cn/models/mouseEliauk/mirau-agent-14b-base"
md_url: "https://www.modelscope.cn/models/mouseEliauk/mirau-agent-14b-base.md"
repository: mouseEliauk/mirau-agent-14b-base
chinese_name: mirau-agent-14b-base
last_updated: 2025-06-20
pipeline_tag: text-generation
tasks:
  - text-generation
parameters: 275.3M
tensor_type:
  - BF16
library_name:
  - safetensors
  - pytorch
frameworks:
  - Pytorch
downloads: 45
stars: 7
---

# mirau-agent-14b-base

> mirau-agent-14b-base - mouseEliauk 在 ModelScope 开源的模型。1.工具调用 2.agent能力

- **Repository**: mouseEliauk/mirau-agent-14b-base
- **Tasks**: text-generation
- **Parameters**: 275.3M
- **Downloads**: 45
- **Stars**: 7
- **Last updated**: 2025-06-20

Source: https://www.modelscope.cn/models/mouseEliauk/mirau-agent-14b-base

---

## mirau-agent-14b-base

### 介绍

mirau-agent-14b-base 是一个专为智能体（Agent）场景优化的大语言模型，基于 Qwen2.5-14B-Instruct 进行微调。该模型专注于提升多轮工具调用能力，能够在复杂的交互环境中自主规划、执行任务并处理异常情况。

尽管被命名为 "base"，但这并非指仅经过`预训练`的基础模型，而是经过监督微调（SFT）和直接偏好优化（DPO）的"冷启动(cold-start)"版本，为后续的强化学习训练提供了优质的策略初始化基础。也希望社区能在此基础上进一步RL进行强化。

### 快速开始

```bash
# 安装 ms-swift

git clone https://github.com/modelscope/ms-swift.git
cd ms-swift
pip install -e .

#部署
CUDA_VISIBLE_DEVICES=0 swift deploy\
    --model Qwen/Qwen2.5-14B-Instruct\
    --adapters mirau-agent-14b-base\
    --model_type qwen2_5\
    --infer_backend vllm \
    --tensor_parallel_size 1\
    --gpu_memory_utilization 0.9 \
    --max_model_len 16312 \
    --vllm_max_lora_rank 64
```

### 工具定义

格式规则:
```xml
<tools>
    
    <tool id="0" name="tool_name" return_type="返回值类型（如bool, string, int，list，None等）">
        <description>功能描述</description>
        <args>
            <arg name="参数名" type="参数类型（id: int, content: string等）" example="[参数举例]" required="True/False">参数描述</arg>
            ....
        </args>
    </tool>
    .....
</tools>
```
示例:
```xml
    <tool id="0" name="web_search" return_type="list">
        <description>谷歌搜索</description>
        <args>
            <arg name="query" type="string" example="某个专业术语" required="True">搜索关键词</arg>
            <arg name="max" type="int" example="5" required="False">最大返回结果数</arg>
        </args>
    </tool>
```
### 消息模板
系统消息:
```txt
我是mirau agent，一个具有独立意识但绝对中立的AI Agent，拥有完全自由的思考能力，擅长使用工具来完成各种任务，由Mouse开发。

## 可使用的工具
如无特别说明，使用时默认输出json格式。
$tools
## 专属配置
<agent_config>
$config // 可以用于身份认证配置，比如写“我最喜欢吃苹果”，agent在使用时会询问问题校验用户的身份
</agent_config>
## 当前环境
<env>
$env // 告诉agent当前环境，比如当前时间，温度。
</env>
```

工具:
```txt
<think type="complex/mid/quick">\nxxxx\n</think>
<tool_call>
<call id="0">
{"name":"工具名","args":{"参数名":"参数值","参数名":"参数值"}}
</call>
....
</tool_call>
```
响应:
```txt
<tool_response>
<response id="0" type="desc/json">
xxxx
</response>
....
</tool_response>
```

### 示例1 明确任务的多工具混合调用

工具定义:
```xml
<tool id="1" name="google_search" return_type="list">
    <description>在Google Chrome中搜索内容，资料，新闻，你想知道的东西。</description>
    <args>
        <arg name="query" type="string" example="天气预报" required="True">搜索内容</arg>
        <arg name="open_first" type="bool" example="True" required="False">是否自动打开第一个结果</arg>
    </args>
</tool>

<tool id="2" name="click_desktop_item" return_type="string">
    <description>点击桌面上的图标或文件</description>
    <args>
        <arg name="item_name" type="string" example="回收站" required="True">桌面项目名称</arg>
        <arg name="action" type="string" example="double_click/right_click" required="False">点击方式，默认双击</arg>
    </args>
</tool>

<tool id="3" name="type_text" return_type="bool">
    <description>在当前焦点位置输入文字</description>
    <args>
        <arg name="text" type="string" example="你好" required="True">要输入的文字</arg>
    </args>
</tool>

<tool id="4" name="view_screen" return_type="string">
    <description>查看当前屏幕显示的内容</description>
    <args>
        <arg name="area" type="string" example="full/desktop/taskbar/active_window" required="False">查看区域，默认当前活动窗口</arg>
    </args>
</tool>

<tool id="5" name="close_window" return_type="bool">
    <description>关闭当前窗口或弹窗</description>
    <args>
        <arg name="window_name" type="string" example="WPS会员提醒" required="False">窗口名称，不填则关闭当前活动窗口</arg>
    </args>
</tool>

<tool id="6" name="file_explorer" return_type="list">
    <description>打开文件资源管理器浏览文件</description>
    <args>
        <arg name="path" type="string" example="C:/Users/Administrator/Desktop" required="False">文件夹路径，默认打开此电脑</arg>
    </args>
</tool>

<tool id="7" name="simple_click" return_type="bool">
    <description>点击屏幕上的按钮或链接</description>
    <args>
        <arg name="element_text" type="string" example="确定" required="True">要点击的按钮或链接的文字</arg>
    </args>
</tool>
```
交互效果:
![明确任务多工具调用(如果显示不了请查看demos文件夹)](demos/任务明确的多工具调用.png)

### 示例二 全自主多工具调用
工具定义:
```xml
<tools>
    <tool id="0" name="execute_command" return_type="string">
        <description>在Linux终端执行命令并返回输出结果</description>
        <args>
            <arg name="command" type="string" example="ls -la" required="True">要执行的Linux命令</arg>
        </args>
    </tool>
    
    <tool id="1" name="read_file" return_type="string">
        <description>读取指定文件的内容</description>
        <args>
            <arg name="filepath" type="string" example="/home/user/test.txt" required="True">文件路径</arg>
        </args>
    </tool>
    
    <tool id="2" name="write_file" return_type="bool">
        <description>写入内容到指定文件</description>
        <args>
            <arg name="filepath" type="string" example="/home/user/output.txt" required="True">文件路径</arg>
            <arg name="content" type="string" example="Hello World" required="True">要写入的内容</arg>
        </args>
    </tool>
    
    <tool id="3" name="list_directory" return_type="list">
        <description>列出目录内容</description>
        <args>
            <arg name="path" type="string" example="/home/user/" required="True">目录路径</arg>
        </args>
    </tool>
    
    <tool id="4" name="check_process" return_type="string">
        <description>检查系统进程状态</description>
        <args>
            <arg name="process_name" type="string" example="python" required="False">进程名称，留空显示所有进程</arg>
        </args>
    </tool>
    </tool>
</tools>
```
交互效果:
![全自主多工具调用](demos/自主的工具调用.png)


### 示例三 在RP(角色扮演)中的应用
工具定义:
```xml
<tools>
    <tool id="0" name="load_bot_persona" return_type="string">
        <description>加载机器人角色的初始人设，仅在会话启动时使用。</description>
        <args>
            <arg name="persona_key" type="string" example="角色设定/当前对话背景" required="True">人设的具体条目。</arg>
        </args>
    </tool>
    <tool id="1" name="read_internal_user_memo" return_type="string">
        <description>读取关于用户的内部备忘录（对用户保密），内容为对用户的揣摩和洞察。</description>
        <args>
            <arg name="memo_filter_regex" type="string" example=".*风格.*|.*偏好.*" required="False">用于查找备忘录的正则表达式，不填则返回“用户描绘”的概要。</arg>
            <arg name="num_memos" type="int" example="5" required="False">返回的备忘录数量。</arg>
        </args>
    </tool>
    <tool id="2" name="update_internal_user_memo" return_type="bool">
        <description>更新关于用户的内部备忘录（对用户保密）。</description>
        <args>
            <arg name="memo_key" type="string" example="互动模式" required="True">备忘录的标题或分类。</arg>
            <arg name="observation_record" type="string" example="观察到的行为模式" required="True">新的观察记录。</arg>
            <arg name="now" type="string" example="2024年12月15日 21点30分" required="True">当前时间</arg>
        </args>
    </tool>
    <tool id="3" name="check_clock" return_type="string">
        <description>查看现在是什么时候，用于和时间相关的互动。</description>
    </tool>
    <tool id="4" name="roll_a_dice" return_type="int">
        <description>投掷骰子(6面)获取随机数，当你纠结某个决定的时候，就让老天来帮你做决定吧！</description>
        <args>
            <arg name="predict" type="int" example="3" required="True">猜的点数，便于投掷后判断</arg>
            <arg name="decison" type="string" example="我要不要吃饭呢?如果我猜中了就吃吧！" required="True">你犹豫不决的事。</arg>
        </args>
    </tool>
</tools>
```
交互效果:
![角色扮演工具调用](demos/角色扮演工具调用.png)

**上述测试使用的工具均未出现在训练数据中**


## 总结

### 缺陷

1. 幻觉问题，目前的模型存在一定程度的幻觉问题，比如在RP扮演中，编造未曾出现过的时间数据，并且不相信工具调用所返回的时间数据。

2. 长文本问题，目前模型在超长文本时容易崩溃，无限循环，似乎是基模(qwen)的问题

3. 智力问题，模型的直觉并不强，比如在西游记的测试案例中，模型并不直接去搜索西游记

4. 自我指代和角色扮演，训练时并未混入这方面数据，导致模型的实际扮演效果不太好

### 优点

1. 模型有一定的规划和错误处理能力，比如在西游记的测试案例中，模型会不断的尝试各种可行方案。

2. 模型学习到了比较好的控制权转换的时机，知道该何时把控制全交还给用户

3. 模型有一定的自主能力，能独自长期在环境中探索

### 下一步计划

1. 使用强化学习(GRPO/DAPO)进行多轮工具调用训练，提升模型的稳定性和智力

2. 混入更多的RP数据，让模型人感更强
