# Auto-hiagent **Repository Path**: gongzehao/Auto-hiagent ## Basic Information - **Project Name**: Auto-hiagent - **Description**: Auto-DEC - **Primary Language**: Unknown - **License**: EPL-1.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-23 - **Last Updated**: 2026-10-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Auto-DEC HiAgent 平台客户端 + 自迭代编排图进化循环。**自包含,可整体搬走**——代码、测试、凭证、 文档都在这个目录里,不依赖任何外部仓库布局。 两个包: - **`src/hiagent`** —— HiAgent 平台的 Python 客户端。895 个文档动作全部可按名字调用 (`hi.actions`),另有编码了平台坑点的具名客户端(`hi.apps` / `hi.flows(kind)` / `hi.debug` / `hi.knowledge` / `hi.up`)。签名、信封解包、服务名映射、全量覆盖语义都已处理好。 - **`src/meta`** —— 自迭代的外层进化循环:向 proposer 索取候选 → import 校验 → 跑 benchmark → 更新 Pareto frontier。搜索的对象是 **harness**(围绕固定基础模型的那层代码, 决定存什么、取什么、看到什么),优化目标始终不是模型权重。 ## 快速开始 ```bash uv sync # 依赖很少;实例要求国密 SM3 签名时用 uv sync --extra sm ``` 凭证在 `.env`。库**不读** dotfile(`from_env` 只看 `os.environ`),所以必须显式注入: ```bash uv run --env-file .env python -c " from hiagent import HiAgent hi = HiAgent.from_env() print(hi.raw.call_raw('GetSelfInfo', {}, service='iam').get('ResponseMetadata'))" ``` 信封里无 `Error` 即「地址对 + 签名对 + 角色可用」。报错怎么判别(`InvalidSignature` / `InvalidAccessKey` / `ResourceDenied` …),见 [src/README.md](src/README.md) 的「冒烟检查」一节; 接口选型与那些会静默失败的坑在同一个文件里,用之前值得先扫一遍。 ## 目录 | 路径 | 是什么 | | ------------------------------- | ------------------------------------------------------------------------------ | | `src/README.md` | **智能体操作手册**:入口选型、会静默失败的坑、两条承重约束(人也值得读) | | `src/hiagent/` | 平台客户端(`USAGE.md` 完整 API 参考、`record.md` 平台实测怪癖) | | `src/meta/` | 进化循环(平台级默认值在`config.toml`,凭证与实例值在 `.env`) | | `.env` / `.env.example` | 凭证 / 凭证模板(两者键集与顺序一一对应) | | `uv.lock` | 依赖版本钉死 | ## 怎么跑 跑一轮自迭代: ```bash uv run --env-file .env python -m meta.evolve --run-name --iterations 3 ``` 题目与底座分两层:**平台级默认值在 `src/meta/config.toml`(入库)**,**凭证与实例值在 `.env`**。 一次 run 内必须恒定,否则候选之间不可比。只有两个实例值要你自己给——知识库数据集 id 与 `CreateWorkflow` 的 Icon——而且都**不用提前填**:交互式启动时会问你。CI / 后台那种非交互场景里, Icon 缺了会**直接报错**(每个候选建 app 都要它,拖到运行期等于白跑一轮),数据集 id 则留到真正用 它的候选报一条点名了键名的错。运行状态在 `logs//`,断点续跑靠 `evolution_summary.jsonl` 隐式恢复。进化循环的机制与硬性约束(评测泄漏隔离)见 [src/README.md](src/README.md),那条约束的机械保障在 `src/meta/paths.py`。 判分是 LLM-as-judge,走**公网的第三方平台**——候选跑在内网的 HiAgent 里,两者天然不同源,所以自评 偏袒不需要额外机制去消解。平台**可切换**:默认 OpenCode Zen,也支持硅基流动或任何 OpenAI 兼容端点, 由 `.env` 里的 `META_JUDGE_PROVIDER` 选中——各家的 key / 端点 / 模型用**各自的键名**,所以两组 可以同时填好,**切平台只改这一个变量**。见 `.env.example` 的判分段落。 ## 去哪深入 - [src/README.md](src/README.md) —— 智能体操作手册:该用哪个入口、会静默失败的坑、两条承重约束 - [src/hiagent/USAGE.md](src/hiagent/USAGE.md) —— 完整 API 参考(签名、字段名、错误码、枚举、凭证映射、知识库导入) - [src/hiagent/record.md](src/hiagent/record.md) —— 平台实测怪癖(网关判定码、两套 API 族、workflow 完整路径、15 条实测结论) - [src/meta/.claude/skills/self-iteration-hiagent/SKILL.md](src/meta/.claude/skills/self-iteration-hiagent/SKILL.md) —— proposer 的行为指令(改动进化循环逻辑前先读) ## 关于文档里的 `tmp/...` 路径 `src/hiagent/record.md` 与 `USAGE.md` 里的实测结论来自一个私有开发环境,文中提到的 `tmp/hiagent-*/...` 这类探针脚本路径出自那边——它们是当时用来跑出结论的一次性脚本, 没有随仓库发布,在本目录不存在。