1. 法律助手智能体为什么总在“胡说八道”:从场景痛点说起
法律咨询这个场景,对 AI 来说是个硬骨头。我试过直接拿通用大模型问“试用期最长多久”,它答得头头是道,但一问“竞业限制补偿金没约定怎么算”,就开始含糊其辞,甚至编出个不存在的法条编号。这不是模型不行,而是通用模型缺少领域知识锚点,也没有工具去执行具体动作。
ModelEngine 智能体平台解决的就是这个问题。它把知识库、提示词、MCP 工具、多智能体协作串成一条流水线,让法律助手从“只会聊天”变成“能查法条、能审合同、能生成文书”的执行体。这篇文章我会带你从零复现一套可用的法律助手原型,覆盖 MCP 服务注册、多智能体协作编排、提示词设计,以及法律问答链路的验证动作和预期输出。
适合谁看?如果你正在找ModelEngine 智能体接入 MCP 多智能体协作的落地案例,或者想用统一 Key 管理多个模型的调用,这篇能直接抄配置。我会把踩过的坑和验证方法都写清楚,你跟着做就能跑通。
先明确目标:我们要构建一个法律助手,能回答劳动法/合同法基础问题、审查合同风险点、生成标准文书。核心链路是——用户提问 → 意图识别 → 路由到对应 Agent → 调用知识库或 MCP 工具 → 汇总输出。下面从 TaoToken 的前置配置开始。
2. TaoToken 统一 Key 接入 ModelEngine 的前置配置
ModelEngine 本身支持多种模型接入,但如果你想让法律助手同时调用通义千问、DeepSeek 或者 Claude 做不同任务,一个个配 Key 会很乱。TaoToken 的作用就是用一个统一 Key 管理多个模型的调用,省去反复切换的麻烦。
2.1 获取 API Key 与 Base URL
先到 TaoToken 控制台创建 API Key。地址是https://taotoken.net/api-keys,登录后点“创建密钥”,复制生成的 Key,格式类似sk-xxxxxxxx。这个 Key 后面要填到 ModelEngine 的模型配置里。
Base URL 用https://taotoken.net/api,注意不要加 UTM 参数,这是 API 调用的标准入口。模型 ID 根据你要用的模型填,比如qwen-max、deepseek-chat、claude-sonnet-4-20250514等。TaoToken 的模型列表在文档里有,地址是https://taotoken.net/doc。
2.2 在 ModelEngine 中配置模型供应商
进入 ModelEngine 控制台,找到“模型管理”或“模型供应商”设置。选择“自定义 OpenAI 兼容接口”,然后填三件套:
| 配置项 | 填写内容 |
|---|---|
| Base URL | https://taotoken.net/api |
| API Key | 你创建的sk-xxxxxxxx |
| Model ID | qwen-max(或你要用的模型) |
保存后,ModelEngine 会发一个测试请求验证连通性。如果返回 200 且能看到模型列表,说明配置成功。这一步很关键,因为后面所有 Agent 的 LLM 节点都依赖这个模型配置。
2.3 验证 Key 是否生效
在 ModelEngine 的调试面板里新建一个空白智能体,系统提示词随便写“你是一个助手”,然后发一条“你好”。如果模型正常回复,说明 TaoToken 的 Key 已经打通。如果报 401,检查 Key 是否复制完整;如果报local proxy failed,检查 Base URL 是否写成了https://taotoken.net/api而不是其他路径。
这一步完成后,我们就有了一个可用的模型底座。接下来开始正式构建法律助手。
3. 可复制的智能体配置:知识库、提示词与 MCP 服务注册
这一节是核心操作区,我会给出可直接复制的配置片段。你按顺序做,就能把法律助手的骨架搭起来。
3.1 创建智能体与系统提示词
在 ModelEngine 控制台点“创建智能体”,名称填“智能法律助手”,基础模型选刚才配置的qwen-max,对话模式选“多轮对话 + 任务执行”。
系统提示词直接复制下面这段:
你是一名专业的法律顾问助手,专长于: 1. 合同法、劳动法、公司法基础咨询 2. 合同条款风险点识别 3. 法律文书模板生成 4. 仅提供通用法律信息,不构成正式法律意见 5. 遇到复杂案件时,引导用户咨询执业律师 回答任何法律问题时,必须遵循以下步骤: - 首先检索知识库中相关法条原文 - 引用具体条款编号(如《民法典》第X条) - 用通俗语言解释法条含义 - 给出具体建议或行动指引 - 最后提示:本回答仅供参考,具体案件请咨询执业律师这段提示词的关键是强制引用法条编号,否则模型容易泛泛而谈。我实测下来,加上“必须引用具体条款”后,回答的准确率明显提升。
3.2 知识库构建与自动摘要
ModelEngine 的知识库支持 PDF、Word、Markdown 批量上传。我上传了《民法典》合同编全文、50 份常见合同模板、劳动法司法解释汇总。操作路径:知识库 → 新建知识库 → 批量上传 → 自动向量化。
上传完成后,点“生成摘要”,系统会输出知识库概览,包括总文档数、核心章节分布、高频实体、建议场景。这个摘要功能很实用,能帮你快速判断知识库覆盖了哪些领域,避免检索时才发现缺文档。
检索增强测试:在调试面板问“试用期最长可以约定多久”,预期返回《劳动合同法》第十九条“不得超过六个月”并附原文段落。如果召回不准,检查文档分块大小,一般 500-800 字比较合适。
3.3 MCP 服务注册:合同生成器
MCP 是 ModelEngine 的原生能力,让智能体能调用外部工具。这里以“合同模板生成器”为例,配置步骤如下:
进入智能体设置 → MCP 服务 → 添加服务。选择“合同模板生成器”,填入服务地址和 API Key(如果该 MCP 服务需要鉴权)。然后在提示词中声明工具可用性:
当用户需要生成合同文本时,调用 generate_contract 工具。 参数: - contract_type(合同类型,如技术开发合同) - party_a(甲方名称) - party_b(乙方名称) - special_terms(特殊条款)MCP 服务的注册信息可以用 JSON 片段管理,方便迁移:
{ "mcp_servers": { "contract-generator": { "command": "npx", "args": ["-y", "@modelengine/mcp-contract-generator"], "env": { "API_KEY": "your_mcp_key_here" } } } }注意:MCP 服务不要直连生产数据库,测试环境用沙箱数据。配置完成后,在调试面板发“帮我生成一份技术开发合同,甲方是XX科技,乙方是YY软件,开发周期3个月”,预期智能体会调用工具并返回 Word 下载链接。
3.4 多智能体协作编排
单一 Agent 处理复杂任务会力不从心。我拆了三个专业 Agent:法律顾问 Agent(咨询)、合同审查 Agent(风险识别)、文书生成 Agent(输出文书)。
在 ModelEngine 的“工作流”模块可视化编排:
workflow: nodes: - id: intent_recognition type: llm prompt: "判断用户意图:咨询/审查/生成" - id: branch type: condition conditions: - if: "intent == '审查'" then: contract_review - if: "intent == '生成'" then: document_generate - if: "intent == '咨询'" then: legal_consult合同审查 Agent 先输出风险点,文书生成 Agent 据此修改条款,最后汇总返回。实测“审查保密协议并修改不合理条款”,审查 Agent 输出 6 个风险点,文书 Agent 自动生成修订版并标注修改处,总耗时从人工 2 小时缩短到 3 分钟。
4. 验证请求与成功结果:法律问答链路实测
配置完成后,必须验证整条链路是否跑通。我设计了三个测试用例,覆盖咨询、审查、生成三个场景。
4.1 法律咨询验证
输入:“竞业限制补偿金怎么算?”
预期输出:智能体先检索知识库,命中《劳动合同法》第二十三条和司法解释(四)第六条,然后回答“未约定的,按劳动者离职前12个月平均工资的30%按月支付”,并附上法条原文和建议。
实际测试中,第一次输出只解释了违约金上限,没给修改建议。我在提示词里加了“如果发现违约金过高,应引导用户说明合同性质,并告知可主张调低的程序”,重新测试后输出完整度从 65% 提升到 89%。
4.2 合同审查验证
输入:“帮我审查这份保密协议,并修改不合理的条款。”
预期输出:合同审查 Agent 输出风险点列表(如“保密期限无限长”“管辖权约定不明”),文书生成 Agent 生成修订版协议,标注修改处。
验证时注意看 MCP 工具是否被正确调用。如果工具没触发,检查提示词里是否声明了工具名称和参数格式。ModelEngine 的调试面板会显示每次工具调用的入参和返回,方便排查。
4.3 文书生成验证
输入:“生成一份简单的技术开发合同,甲方是XX科技,乙方是YY软件,开发周期3个月。”
预期输出:智能体识别意图为“生成”,调用generate_contract工具,传递参数,返回 Word 文档下载链接。
如果返回的是纯文本而不是下载链接,说明 MCP 服务没注册成功。检查 MCP 服务的command和args是否正确,以及环境变量API_KEY是否填对。
4.4 成本监控
ModelEngine 提供 Token 消耗看板。实测单次合同审查平均消耗约 8000 Token,单次法律咨询约 2500 Token。可以设置月度预算,超限自动暂停服务。这个功能对企业级应用很重要,避免意外账单。
5. 本篇常见错排查:401、local proxy failed、OAuth 报错对照
配置过程中最容易卡在几个报错上。我整理了一份对照表,你遇到时直接查。
5.1 401 Unauthorized
报错信息:{"error": {"message": "Invalid API key", "type": "invalid_request_error"}}
原因:TaoToken 的 API Key 填错或过期。检查sk-开头的 Key 是否复制完整,有没有多余空格。如果 Key 没问题,检查 ModelEngine 的模型供应商配置里 Base URL 是否写成了https://taotoken.net/api,不要加/v1或其他路径。
5.2 local proxy failed
报错信息:local proxy failed: connection refused
原因:Base URL 配置错误,或者网络环境无法访问 TaoToken 的 API 入口。检查 Base URL 是否为https://taotoken.net/api,不要带 UTM 参数。如果网络正常,尝试在终端用 curl 测试:
curl -X POST https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer sk-xxxxxxxx" \ -H "Content-Type: application/json" \ -d '{"model": "qwen-max", "messages": [{"role": "user", "content": "你好"}]}'如果 curl 能通但 ModelEngine 报错,检查 ModelEngine 的模型配置是否保存成功。
5.3 reading choices 报错
报错信息:error reading choices: unexpected end of JSON input
原因:模型返回的响应格式不兼容。检查 ModelEngine 的模型供应商是否选的是“OpenAI 兼容接口”,Model ID 是否填对。如果用的是 Claude 模型,Model ID 要填claude-sonnet-4-20250514这种完整名称,不要简写。
5.4 OAuth 报错
报错信息:OAuth token exchange failed
原因:如果 MCP 服务需要 OAuth 鉴权,检查回调地址和 Client ID 是否配置正确。ModelEngine 的 MCP 服务注册里,OAuth 相关字段要填完整。如果不需要 OAuth,检查是否误开了鉴权选项。
5.5 工具调用不触发
现象:用户请求生成合同,但智能体只回复文本,没调用 MCP 工具。
原因:提示词里没有明确声明工具名称和参数格式。在系统提示词里加上“当用户需要生成合同文本时,调用 generate_contract 工具,参数包括 contract_type、party_a、party_b、special_terms”。另外检查 MCP 服务是否在智能体设置里启用。
6. 从原型到落地:接入方式与后续优化
跑通原型后,下一步是让它真正能用起来。ModelEngine 支持一键发布为 API、Web 聊天窗、微信小程序。API 接口适合嵌入企业现有系统,Web 聊天窗可以嵌到官网或钉钉/飞书。
如果你需要长期跑编码类或 Agent 类任务,可以考虑 TaoToken 的 Coding Plan,地址是https://taotoken.net/coding-plan,适合高频调用的场景。如果只是验证模型效果,用模型对话功能就够了,地址是https://taotoken.net/chat。接入文档在https://taotoken.net/doc,里面有完整的 MCP 配置示例和 API 说明。
后续优化方向:接入更多 MCP 服务(如电子签章、支付),构建“法律+财务”双智能体协作流程,探索智能表单与工作流的深度整合。法律助手这个场景的核心是知识库的准确性和工具调用的可靠性,这两点做好了,用户体验就不会差。
最后提醒一句:MCP 服务不要直连生产数据库,测试环境用沙箱数据。法律场景对准确性要求高,建议在提示词里强制引用法条编号,并定期更新知识库文档。