Refine GenSpec configuration: separate main and component spec drafting stages
基于大模型进行自动化 UT 验证 AI 代理
English Introduction | UCAgent 在线文档
UCAgent 是一个基于大语言模型的自动化硬件验证 AI 代理,专注于芯片设计的单元测试(Unit Test)验证工作。通过 AI 技术自动分析硬件设计,生成测试用例,执行验证任务并生成测试报告,从而提高验证效率。
核心特点:
更多详细介绍请参考 UCAgent 在线文档
git clone https://github.com/XS-MLVP/UCAgent.git cd UCAgent
pip3 install -r requirements.txt
make clean
以 example 中的 Adder 为例(依赖 picker):
默认地址为:http://127.0.0.1:5000
make mcp_Adder # workspace 设置为当前目录下的 output # 调用了如下命令: # picker export Adder/Adder.v --rw 1 --sname Adder --tdir output/ -c -w output/Adder/Adder.fst # ucagent output/ Adder -s -hm --tui --mcp-server-no-file-tools --no-embed-tools
请参考:https://qwenlm.github.io/qwen-code-docs/en/
由于测试用例多了后运行时间较长,建议 timeout 值设置大一些,例如 300 秒。
timeout
~/.qwen/settings.json 配置文件示例:
~/.qwen/settings.json
{ "mcpServers": { "unitytest": { "httpUrl": "http://localhost:5000/mcp", "timeout": 300000 } } }
cd output qwen
注意:
输入任务提示词:
请通过工具RoleInfo获取你的角色信息和基本指导,然后完成任务。请使用工具ReadTextFile读取文件。你需要在当前工作目录进行文件操作,不要超出该目录。
RoleInfo
ReadTextFile
提示:
继续,请通过工具Check和Complete判断是否完成所有任务
💡 更多使用方式: 除了 MCP 协同模式,UCAgent 还支持直接接入 LLM、人机协同等多种模式,详见 使用文档
默认情况下,UCAgent只是启用内部的Python Checker进行阶段结果检查,属于启发式。如果需要验证效果提升,可以引入 LLM 阶段结果检查,如果需要达到“交付级”,还需要进一步引入人工阶段检查。
Python Checker
LLM 阶段结果检查
人工阶段检查
开启LLM阶段结果检查
开启人工阶段结果检查
阶段默认检查顺序:Python Checker -> LLM -> 人工
ctrl + 上/下/左/右
shift + 上/下
shift + 右
shift + 左
alt + 上/下
alt + 左/右
esc
白色
红色
绿色
*
hmcheck_pass [msg]
黄色
q
tui
tab
tool_list
help
loop [prompt]
📖 详细操作说明: 查看 TUI 使用文档
Q: 如何配置不同的 AI 模型?
A: 在 config.yaml 中修改 openai.model_name 字段,支持任何 OpenAI 兼容的 API。详见配置文档。
config.yaml
openai.model_name
Q: 验证过程中出现错误怎么办?
A: 使用 Ctrl+C 进入交互模式,通过 status 查看当前状态,使用 help 获取调试命令。
Ctrl+C
status
Q: MCP 服务器无法连接?
A: 检查端口是否被占用,确认防火墙设置,可以通过 --mcp-server-port 指定其他端口。
--mcp-server-port
Q: 为何有上次执行信息残留?
A: UCAgent 默认会从工作目录中查找 .ucagent_info.json 文件,来加载上次执行信息接着执行。如果不需要历史信息,请删除该文件或者使用参数 --no-history 忽略加载历史。
.ucagent_info.json
--no-history
Q: 如何运行长时间验证?
A: 请参考 CodeAgent 的无头模式以及脚本 tests/test_nohead_loop.bash。
tests/test_nohead_loop.bash
Q: 可以自定义验证阶段吗?
A: 可以,详见自定义文档。
Q: 如何添加自定义工具?
A: 在 ucagent/tools/ 目录下创建新的工具类,继承 UCTool 基类,并通过 --ex-tools 参数加载。详见工具列表文档。
ucagent/tools/
UCTool
--ex-tools
🔍 更多问题: 查看完整 FAQ 文档
Makefile 提供文档相关辅助目标(MkDocs + Material):
make docs-help
make docs-install
docs/requirements-docs.txt
make docs-serve
make docs-build
docs/site
make docs-clean
第一次使用(安装依赖):
make docs-install # 安装 mkdocs 和 material 主题等依赖
日常开发(预览文档):
make docs-serve # 启动本地服务器,访问 http://127.0.0.1:8030 查看 # 修改文档后浏览器会自动刷新
本地生成和查看(构建生产版本):
make docs-build # 生成静态网站到 docs/site 目录 # 在本地浏览器中打开 docs/site/index.html 查看 make docs-clean # 清理构建产物(可选)
# 1. 首次设置:安装依赖 make docs-install # 2. 开发阶段:预览文档(可反复执行) make docs-serve # 在浏览器中访问 http://127.0.0.1:8030 # ...编辑文档... # 按 Ctrl+C 停止服务 # 3. 本地生成:构建生产版本 make docs-build # 生成 docs/site 目录 # 在本地浏览器中打开 docs/site/index.html 查看 # 4. 清理(可选) make docs-clean # 删除 docs/site 目录
docs/Makefile
用于生成较高排版质量开发者 PDF 手册:
make pdf
ucagent-doc.pdf
make pdf-one
pdf
make pdf-clean
make pdf make MONO="JetBrains Mono" pdf # 覆盖等宽字体 make TWOSIDE=1 pdf # 双面排版(文件名添加 -twoside) make pdf-clean
pandoc-crossref
MONO
TWOSIDE
fonts-noto-cjk
texlive-full
输出:ucagent-doc.pdf 可随版本发布分发。
欢迎提交 Issue 和 Pull Request!
UnityChip Verification AI-Agent
©Copyright 2023 CCF 开源发展委员会 Powered by Trustie& IntelliDE 京ICP备13000930号
UCAgent(UnityChip verification Agent)
基于大模型进行自动化 UT 验证 AI 代理
English Introduction | UCAgent 在线文档
项目简介
UCAgent 是一个基于大语言模型的自动化硬件验证 AI 代理,专注于芯片设计的单元测试(Unit Test)验证工作。通过 AI 技术自动分析硬件设计,生成测试用例,执行验证任务并生成测试报告,从而提高验证效率。
核心特点:
更多详细介绍请参考 UCAgent 在线文档
系统要求
快速开始
1. 下载源码
2. 安装依赖
3. 清空环境
4. 启动 MCP-Server
以 example 中的 Adder 为例(依赖 picker):
默认地址为:http://127.0.0.1:5000
5. 安装配置 Qwen Code CLI
请参考:https://qwenlm.github.io/qwen-code-docs/en/
由于测试用例多了后运行时间较长,建议
timeout值设置大一些,例如 300 秒。~/.qwen/settings.json配置文件示例:6. 开始验证
注意:
输入任务提示词:
提示:
继续,请通过工具Check和Complete判断是否完成所有任务7. 如何提升效果(可选)
默认情况下,UCAgent只是启用内部的
Python Checker进行阶段结果检查,属于启发式。如果需要验证效果提升,可以引入LLM 阶段结果检查,如果需要达到“交付级”,还需要进一步引入人工阶段检查。开启LLM阶段结果检查
开启人工阶段结果检查
阶段默认检查顺序:Python Checker -> LLM -> 人工
基本操作
TUI 快捷键
ctrl + 上/下/左/右:调节界面布局shift + 上/下:调节状态面板高度shift + 右:清空控制台shift + 左:清空输入alt + 上/下:滚动 Message 界面内容alt + 左/右:滚动 Console 界面内容esc: 强制刷新界面/退出滚动阶段颜色提示
白色:待执行红色:正在执行绿色:执行通过*:表示该阶段需要强制人工检查,输入命令hmcheck_pass [msg]后 AI 才能继续黄色:跳过该阶段常用交互命令
q:退出 TUI(或退出 UCAgent)tui:进入 TUItab: 命令补全tool_list:列出所有可用工具help:查看所有命令帮助loop [prompt]:继续当前任务常见问题 (FAQ)
Q: 如何配置不同的 AI 模型?
A: 在
config.yaml中修改openai.model_name字段,支持任何 OpenAI 兼容的 API。详见配置文档。Q: 验证过程中出现错误怎么办?
A: 使用
Ctrl+C进入交互模式,通过status查看当前状态,使用help获取调试命令。Q: MCP 服务器无法连接?
A: 检查端口是否被占用,确认防火墙设置,可以通过
--mcp-server-port指定其他端口。Q: 为何有上次执行信息残留?
A: UCAgent 默认会从工作目录中查找
.ucagent_info.json文件,来加载上次执行信息接着执行。如果不需要历史信息,请删除该文件或者使用参数--no-history忽略加载历史。Q: 如何运行长时间验证?
A: 请参考 CodeAgent 的无头模式以及脚本
tests/test_nohead_loop.bash。Q: 可以自定义验证阶段吗?
A: 可以,详见自定义文档。
Q: 如何添加自定义工具?
A: 在
ucagent/tools/目录下创建新的工具类,继承UCTool基类,并通过--ex-tools参数加载。详见工具列表文档。文档构建与预览(MkDocs)
Makefile 提供文档相关辅助目标(MkDocs + Material):
make docs-helpmake docs-installdocs/requirements-docs.txt安装构建依赖make docs-servemake docs-builddocs/sitemake docs-cleandocs/site目录使用流程
第一次使用(安装依赖):
日常开发(预览文档):
本地生成和查看(构建生产版本):
完整工作流示例
说明
docs/Makefile中,可自行修改。make docs-serve适合开发时使用,支持热重载make docs-build生成完整的静态网站文件,输出到 docs/site 目录,可本地预览最终效果(打开 docs/site/index.html)PDF 手册构建(Pandoc + XeLaTeX)
用于生成较高排版质量开发者 PDF 手册:
make pdfucagent-doc.pdfmake pdf-onepdf等价(方便 CI 调用)make pdf-clean示例
依赖
pandoc-crossref自定义变量
MONO更换等宽字体TWOSIDE非空启用双面模式常见问题
fonts-noto-cjk)。texlive-full)。pandoc-crossref在 PATH 中。输出:
ucagent-doc.pdf可随版本发布分发。获取更多帮助
贡献指南
欢迎提交 Issue 和 Pull Request!