Merge pull request '@senior: readme' (#9) from ai/issue-8 into main
Reviewed-on: ffaerber/agents#9
This commit was merged in pull request #9.
This commit is contained in:
@@ -54,11 +54,11 @@ jobs:
|
|||||||
# --- agent registry: model + capabilities + mode + role ---
|
# --- agent registry: model + capabilities + mode + role ---
|
||||||
cat > /tmp/agents.json <<'JSON'
|
cat > /tmp/agents.json <<'JSON'
|
||||||
{
|
{
|
||||||
"pm": {"model":"anthropic/claude-sonnet-5","vision":true, "mode":"comment","desc":"Product manager — research, plan, ask clarifying questions, and decide which dev should do the work. Comments only; never edits files."},
|
"pm": {"model":"ollama-cloud/gemma4:cloud","vision":true, "mode":"comment","desc":"Product manager — research, plan, ask clarifying questions, and decide which dev should do the work. Comments only; never edits files."},
|
||||||
"junior": {"model":"ollama/ornith:35b", "vision":false,"mode":"pr", "desc":"Junior dev — small, low-risk changes (mostly YAML/compose/config). Text-only, cannot read images. Defers complex or image tasks to @senior or @lead."},
|
"junior": {"model":"ollama-cloud/kimi-k2.7-code:cloud","vision":false,"mode":"pr", "desc":"Junior dev — small, low-risk changes (mostly YAML/compose/config). Text-only, cannot read images. Defers complex or image tasks to @senior or @lead."},
|
||||||
"senior": {"model":"ollama-cloud/glm-5.2:cloud","vision":false,"mode":"pr", "desc":"Senior dev — complex, multi-file implementation (GLM-5.2 via Ollama Cloud, text-only)."},
|
"senior": {"model":"ollama-cloud/glm-5.2:cloud","vision":false,"mode":"pr", "desc":"Senior dev — complex, multi-file implementation (GLM-5.2 via Ollama Cloud, text-only)."},
|
||||||
"lead": {"model":"anthropic/claude-opus-4-8","vision":true, "mode":"pr", "desc":"Tech lead — the hardest problems, architecture, and final calls."},
|
"lead": {"model":"anthropic/claude-opus-4-8","vision":true, "mode":"pr", "desc":"Tech lead — the hardest problems, architecture, and final calls."},
|
||||||
"qa": {"model":"anthropic/claude-sonnet-5","vision":true, "mode":"comment","desc":"QA — verifies things work. Drives a headless browser (Playwright) to open a URL/web app, click through it, screenshot, and report bugs or confirm behavior. Comments findings; opens no PRs."}
|
"qa": {"model":"ollama-cloud/minimax-m3:cloud","vision":true, "mode":"comment","desc":"QA — verifies things work. Drives a headless browser (Playwright) to open a URL/web app, click through it, screenshot, and report bugs or confirm behavior. Comments findings; opens no PRs."}
|
||||||
}
|
}
|
||||||
JSON
|
JSON
|
||||||
# On a new issue, @pm auto-assesses. On a comment, route by the @mention.
|
# On a new issue, @pm auto-assesses. On a comment, route by the @mention.
|
||||||
@@ -120,11 +120,11 @@ jobs:
|
|||||||
npx -y playwright install --with-deps chromium || npx -y playwright install chromium || true
|
npx -y playwright install --with-deps chromium || npx -y playwright install chromium || true
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
# Two ollama providers: local self-hosted (ornith) + Ollama Cloud (GLM).
|
# Two ollama providers: local self-hosted (ornith) + Ollama Cloud (gemma4/kimi-k2.7-code/glm-5.2/minimax-m3).
|
||||||
jq -n --argjson mcp "$MCP" --arg url "$OLLAMA_URL" --arg ckey "$OLLAMA_CLOUD_API_KEY" '{
|
jq -n --argjson mcp "$MCP" --arg url "$OLLAMA_URL" --arg ckey "$OLLAMA_CLOUD_API_KEY" '{
|
||||||
provider: {
|
provider: {
|
||||||
ollama: {npm:"@ai-sdk/openai-compatible", options:{baseURL:($url+"/v1")}, models:{"ornith:35b":{}}},
|
ollama: {npm:"@ai-sdk/openai-compatible", options:{baseURL:($url+"/v1")}, models:{"ornith:35b":{}}},
|
||||||
"ollama-cloud": {npm:"@ai-sdk/openai-compatible", options:{baseURL:"https://ollama.com/v1", apiKey:$ckey}, models:{"glm-5.2:cloud":{}}}
|
"ollama-cloud": {npm:"@ai-sdk/openai-compatible", options:{baseURL:"https://ollama.com/v1", apiKey:$ckey}, models:{"glm-5.2:cloud":{},"gemma4:cloud":{},"kimi-k2.7-code:cloud":{},"minimax-m3:cloud":{}}}
|
||||||
},
|
},
|
||||||
mcp: $mcp
|
mcp: $mcp
|
||||||
}' > ~/.config/opencode/opencode.json
|
}' > ~/.config/opencode/opencode.json
|
||||||
|
|||||||
@@ -3,6 +3,19 @@
|
|||||||
Shared **AI dev-team** workflow for Gitea Actions, reusable across repos. It gives any repo the
|
Shared **AI dev-team** workflow for Gitea Actions, reusable across repos. It gives any repo the
|
||||||
`@pm` / `@junior` / `@senior` / `@lead` / `@qa` agents driven from issues and comments.
|
`@pm` / `@junior` / `@senior` / `@lead` / `@qa` agents driven from issues and comments.
|
||||||
|
|
||||||
|
## Agents
|
||||||
|
|
||||||
|
| Agent | Model | Vision | Mode | Role |
|
||||||
|
|-------|-------|:------:|------|------|
|
||||||
|
| `@pm` | `ollama-cloud/gemma4:cloud` | yes | comment | Product manager — research, plan, ask clarifying questions, and decide which dev should do the work. Comments only; never edits files. |
|
||||||
|
| `@junior` | `ollama-cloud/kimi-k2.7-code:cloud` | no | pr | Junior dev — small, low-risk changes (mostly YAML/compose/config). Text-only, cannot read images. Defers complex or image tasks to `@senior` or `@lead`. |
|
||||||
|
| `@senior` | `ollama-cloud/glm-5.2:cloud` | no | pr | Senior dev — complex, multi-file implementation (GLM-5.2 via Ollama Cloud, text-only). |
|
||||||
|
| `@lead` | `anthropic/claude-opus-4-8` | yes | pr | Tech lead — the hardest problems, architecture, and final calls. |
|
||||||
|
| `@qa` | `ollama-cloud/minimax-m3:cloud` | yes | comment | QA — verifies things work. Drives a headless browser (Playwright) to open a URL/web app, click through it, screenshot, and report bugs or confirm behavior. Comments findings; opens no PRs. |
|
||||||
|
|
||||||
|
`agent.yml`'s agent registry is the source of truth for this mapping — if you change a model
|
||||||
|
there, update this table too.
|
||||||
|
|
||||||
## Use it in a repo
|
## Use it in a repo
|
||||||
|
|
||||||
Add `.gitea/workflows/ai-agent.yml` to the consuming repo:
|
Add `.gitea/workflows/ai-agent.yml` to the consuming repo:
|
||||||
@@ -27,8 +40,8 @@ reactions, PR/issue plumbing) lives here in `agent.yml`.
|
|||||||
|
|
||||||
| Secret | For |
|
| Secret | For |
|
||||||
|--------|-----|
|
|--------|-----|
|
||||||
| `ANTHROPIC_API_KEY` | `@lead`/`@qa` (and `@pm`/`@senior` if on Claude) |
|
| `ANTHROPIC_API_KEY` | `@lead` (and `@pm`/`@senior`/`@qa` if on Claude) |
|
||||||
| `OLLAMA_URL`, `OLLAMA_CLOUD_API_KEY` | local ornith / GLM cloud |
|
| `OLLAMA_URL`, `OLLAMA_CLOUD_API_KEY` | local ornith / Ollama Cloud (gemma4, kimi-k2.7-code, glm-5.2, minimax-m3) |
|
||||||
| `AGENT_TOKEN` | PAT (issue+repo write) used to post the delegation comment that fires the next agent |
|
| `AGENT_TOKEN` | PAT (issue+repo write) used to post the delegation comment that fires the next agent |
|
||||||
| `TOKEN_PM`,`TOKEN_SENIOR`,`TOKEN_JUNIOR`,`TOKEN_LEAD`,`TOKEN_QA` | optional — post/commit as each agent's own Gitea user (falls back to the bot) |
|
| `TOKEN_PM`,`TOKEN_SENIOR`,`TOKEN_JUNIOR`,`TOKEN_LEAD`,`TOKEN_QA` | optional — post/commit as each agent's own Gitea user (falls back to the bot) |
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user