AKG Agents
你是专用于 AKG Agents 的开发 Code Agent。请基于本文档(AGENTS.md)以及各目录下分级的 SPEC.md 规格文档来开发 AKG Agents 框架。
AKG Agents 是基于 LLM 的多 Agent 协作框架,面向 AI Infra 和高性能计算。当前核心场景为多后端、多 DSL 内核代码生成,后续将扩展图优化等更上层编译能力。
使用态(以 KernelAgent 做算子生成/优化)请到
workspace/目录打开 code agent。 本文件面向开发态——开发 akg_agents 代码本身。
开发前必读
开始开发前,建议阅读目标目录及其上级目录的 SPEC.md,以快速了解每个目录的关键结构与代码开发要求。SPEC.md 描述了该目录"做什么、不做什么、怎么做"。
涉及关键性修改时,需同步更新对应层级的 SPEC.md:
- 新增/删除模块 → 更新该目录的 SPEC.md 中的目录结构和子目录索引
- 新增/变更对外接口或基类 → 更新 SPEC.md 中的开发约定
- 涉及跨目录的架构调整 → 更新本文档(AGENTS.md)的目录索引和全局规范
快速开始
pip install -r requirements.txt && pip install -e ./ --no-build-isolation
source env.sh # 与 -e 安装二选一
# 验证安装
python -c "import akg_agents; print('akg_agents installed')"
./run_test.sh -t ut # 单元测试(不需要 LLM/GPU)
目录索引
核心源码(python/akg_agents/)
| 目录 | 职责 | 规范 |
|---|---|---|
core_v2/ |
v2 核心框架(Agent、Workflow、Skill、Tool、LLM、Config) | SPEC.md |
op/ |
算子/内核生成场景层 | SPEC.md |
cli/ |
akg_cli 命令行入口(Typer)— 已废弃,停止演进 | SPEC.md |
core/ |
旧版核心(迁移中,不要新增代码) | SPEC.md |
utils/ |
跨模块共享工具 | SPEC.md |
其余子包:database/(数据库/向量库)、server/ + client/ + worker/(远程服务)、config/(全局配置入口)、resources/(prompts/skills/docs/templates)、tool/(code agent 工具定义)。
仓库根目录
| 目录 | 职责 | 规范 |
|---|---|---|
tests/ |
测试 | SPEC.md |
docs/ |
设计文档 | SPEC.md |
examples/ |
使用示例 | SPEC.md |
tools/ |
辅助批跑/检查工具 | SPEC.md |
benchmark/ |
评测集 | SPEC.md |
reproduce/ |
复现脚本 | SPEC.md |
workspace/ |
使用态工作空间(KernelAgent) | README.md |
其余目录:akg-cli/(npm CLI 客户端包)、scripts/(构建/发布辅助脚本)、thirdparty/(KernelBench 等第三方 benchmark 下载目录)。
Skill 跨工具兼容
Skill 定义统一存放在 .opencode/skills/ 下,通过逐个软链接让 Claude Code 和 Cursor 发现:
.opencode/skills/{name}/SKILL.md ← 唯一数据源
.claude/skills/{name} → ../../.opencode/skills/{name} ← Claude Code
.cursor/skills/{name} → ../../.opencode/skills/{name} ← Cursor
workspace/ 下布局一致。新增 skill 后运行同步脚本:
./scripts/sync_skills.sh # 同步 akg_agents/ + workspace/
./scripts/sync_skills.sh workspace # 只同步 workspace/
全局代码规范
License 头
所有 .py 文件必须包含 Apache 2.0 License 头:
# Copyright 2025-2026 Huawei Technologies Co., Ltd
#
# Licensed under the Apache License, Version 2.0 (the "License");
# ...
包结构
- Python >= 3.10
- 源码在
python/目录下(package_dir={"": "python"}) - 新目录必须放
__init__.py - 资源文件(
.j2、.md、.yaml、.json)通过setup.py的package_data打包
环境
env.sh只做一件事:export PYTHONPATH=$(pwd)/python:$PYTHONPATH- 每次新 shell 都需要
source env.sh - 版本号在
version.txt
参数有效值
所有传给 akg_agents API / akg_cli 的参数必须使用以下规范值:
| 参数 | 有效值 |
|---|---|
framework |
torch, mindspore |
backend |
cuda, ascend, cpu |
dsl |
triton_cuda, triton_ascend, cpp, cuda_c, tilelang_cuda, ascendc, pypto |
arch |
cuda: a100, v100;ascend: ascend910b1~ascend910b4, ascend910_9362, ascend910_9372, ascend910_9381, ascend910_9382, ascend910_9391, ascend910_9392, ascend950dt_95a, ascend950pr_950z~ascend950pr_9599 (21个型号), ascend310p3;cpu: x86_64, aarch64 |
环境检查 Skill
| Skill | 用途 | 加载场景 |
|---|---|---|
akg-env-setup |
环境检查 + 采集 + 缓存;FULL_SETUP 模式额外含当次任务的参数确认和运行时依赖安装 | 安装请求(基础模式);op-optimizer Phase 1(FULL_SETUP 模式) |
akg-pr |
基于当前分支与目标分支的 diff 生成 PR 描述文件(.md + .json),校验后可 API 提交。产物写入 .tmp/pr/ |
用户输入 /akg-pr |
akg-issue |
生成 Issue 描述文件(Bug Report / RFC / Task),校验后可 API 提交,支持描述模式和 diff 自动生成模式。产物写入 .tmp/issue/ |
用户输入 /akg-issue |