diff --git a/docs/reference/spec-v01-aipod-spec.md b/docs/reference/spec-v01-aipod-spec.md index e5e791b..aed239a 100644 --- a/docs/reference/spec-v01-aipod-spec.md +++ b/docs/reference/spec-v01-aipod-spec.md @@ -18,14 +18,14 @@ apiVersion: agentrun.pikastech.local/v0.1 kind: AipodSpec metadata: - name: Artificer + name: ExampleAgent spec: imageRef: kind: env-image-dockerfile repoUrl: git@github.com:pikasTech/agentrun.git commitId: 0000000000000000000000000000000000000000 dockerfilePath: deploy/container/Containerfile - backendProfile: sub2api + backendProfile: example-profile executionPolicy: sandbox: workspace-write approval: never @@ -34,9 +34,9 @@ spec: secretScope: allowCredentialEcho: false providerCredentials: - - profile: sub2api + - profile: example-profile secretRef: - name: agentrun-v01-provider-sub2api + name: example-provider-secret keys: [auth.json, config.toml] resourceBundleRef: kind: gitbundle @@ -87,9 +87,9 @@ imageRef: 仓库内置 `config/aipods/artificer.yaml`,名称为 `Artificer`。它的长期目标是承接 UniDesk 分布式开发任务: -- 使用 `backendProfile=sub2api`,模型声明为 `gpt-5.5`,reasoning effort 为 `xhigh`。 +- `backendProfile`、`credential.profile`、`model` 与 `reasoningEffort` 的唯一可调事实来自 `config/aipods/artificer.yaml`;本 SPEC 不复制默认值。任务级显式 override 只允许改变 `model` 与 `reasoningEffort`,不得改变 provider、credential profile 或 SecretRef。 - 通过 `imageRef` 引用 AgentRun `v0.1` env image Dockerfile source;当前默认值是 `repoUrl=git@github.com:pikasTech/agentrun.git`、`commitId=6601b4afb4870ecec62f14459e14202e5ccca7ec`、`dockerfilePath=deploy/container/Containerfile`。启动时必须复用已物化的 digest-pinned env image,不能把依赖安装留给任务运行时。 -- 通过 provider SecretRef `agentrun-v01-provider-sub2api` 获取 `auth.json` 与 `config.toml`。 +- provider SecretRef 只读取 `config/aipods/artificer.yaml` 的声明,用于获取 `auth.json` 与 `config.toml`;本 SPEC 不复制 SecretRef 名称。 - 通过 `toolCredentials` 获取 GitHub Issue/PR 写入 token:`agentrun-v01-tool-github-pr` -> env `GH_TOKEN`。 - 通过 `toolCredentials` 获取 UniDesk SSH 透传 token:`agentrun-v01-tool-unidesk-ssh` -> env `UNIDESK_SSH_CLIENT_TOKEN`。 - 通过 `toolCredentials` 获取 GitHub SSH 凭据:`agentrun-v01-tool-github-ssh` -> volume `/home/agentrun/.ssh`。 @@ -163,7 +163,7 @@ CLI: ## 测试规格 -- A1:`config/aipods/artificer.yaml` 能被 manager list/show/render,render 结果包含 `imageRef.kind=env-image-dockerfile`、`repoUrl`、`commitId`、`dockerfilePath`、`backendProfile=sub2api`、`model=gpt-5.5`、`reasoningEffort=xhigh`、provider SecretRef、GitHub PR token env projection、UniDesk SSH env projection、GitHub SSH volume projection、无 `resourceBundleRef.gitMirror` 字段、AgentRun runner tools gitbundle 和 gitbundle requiredSkills。 +- A1:`config/aipods/artificer.yaml` 能被 manager list/show/render,render 结果中的 `backendProfile`、`credential.profile`、`model`、`reasoningEffort` 与 provider SecretRef 必须逐项等于 owning YAML;显式 model/reasoning override 只改变对应两项。结果还必须包含 `imageRef.kind=env-image-dockerfile`、`repoUrl`、`commitId`、`dockerfilePath`、GitHub PR token env projection、UniDesk SSH env projection、GitHub SSH volume projection、无 `resourceBundleRef.gitMirror` 字段、AgentRun runner tools gitbundle 和 gitbundle requiredSkills。 - A2:`queue submit --aipod Artificer --dry-run` 输出标准 `queue-submit-plan`,且 `idempotencyKey`、prompt 与 metadata 被保留。 - A2b:`queue submit --aipod Artificer --dry-run` 或 `render Artificer` 在没有显式 `sessionRef` 时必须输出默认 `sessionRef.sessionId` / `conversationId`;显式传入 `sessionRef` 时不得覆盖。 - A3:Artificer 规格只声明 GitHub URL,不声明 `gitMirror`;runner 默认把 GitHub URL 改写到 mirror base URL,非 GitHub URL 不改写。请求体显式携带 `resourceBundleRef.gitMirror` 必须 schema-invalid,避免把基础设施策略下放到 AipodSpec。