Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
155 commits
Select commit Hold shift + click to select a range
f1aec4e
fix: resolve test collection errors and add ADR for declarative config
marktayl1 Apr 23, 2026
e12ff2b
Getting image to generate
TravisHilbert Apr 24, 2026
a093743
Added content gen
TravisHilbert Apr 27, 2026
493ad43
added mcp server for content gen
TravisHilbert Apr 27, 2026
e8f514c
chore: remove tracked artifacts and stale files
marktayl1 Apr 28, 2026
f8f0779
chore: remove duplicate test tree src/backend/tests/
marktayl1 Apr 28, 2026
f082da8
chore: align .env.sample with actual code usage
marktayl1 Apr 28, 2026
bf9c073
chore: remove stale Docker/infra artifacts
marktayl1 Apr 28, 2026
fbd5784
chore: consolidate pytest.ini + .coveragerc into root pyproject.toml
marktayl1 Apr 28, 2026
c58c022
test: add foundry integration tests and fix unit test patching
marktayl1 Apr 29, 2026
49a2c2f
fix(foundry_agent): omit temperature for gpt-5/o-series models
TravisHilbert Apr 30, 2026
ecfb358
feat(infra): deploy gpt-5-mini and gpt-image-1 models
TravisHilbert Apr 30, 2026
700c44f
Merge pull request #962 from microsoft/feature/TAS27-gpt5mini-imageag…
marktayl1 Apr 30, 2026
b1ecaaa
Content gen updates
TravisHilbert May 4, 2026
fbd733b
refactor: code clarity tasks 1-5 and 8
marktayl1 May 4, 2026
25f18b6
Merge branch 'feature/TAS27' of https://github.com/microsoft/Multi-Ag…
marktayl1 May 4, 2026
82c1fa1
feat: port magentic_agents to GA agent_framework 1.2.2 agents package
marktayl1 May 6, 2026
ec1b848
refactor: remove guard-rail and low-value tests
marktayl1 May 6, 2026
939b4c1
feat(phase3): port orchestration layer and models package
marktayl1 May 6, 2026
9f4d2da
feat(phase4): add models/messages.py and models layer tests (48 passing)
marktayl1 May 6, 2026
efde543
feat(phase5): add services layer and services test suite (125 passing)
marktayl1 May 6, 2026
2b061b4
feat(phase6): add api/ and callbacks/ layers with test suite (43 pass…
marktayl1 May 6, 2026
527f24e
feat(phase7): integration smoke tests for AgentTemplate (7 tests, ski…
marktayl1 May 6, 2026
fe75878
fix: resolve sys.modules pytest_plugins pollution and AIProjectClient…
marktayl1 May 6, 2026
e552131
fix: migrate orchestration to MAF 1.2.2 GA API and resolve all startu…
marktayl1 May 6, 2026
bfc1ec8
feat: per-agent streaming with executor_completed final output
marktayl1 May 7, 2026
3fc5d0c
fix: defer agent headers to first output chunk, update RFP instructions
marktayl1 May 7, 2026
6817fac
feat: show agent names in plan steps, UI polish
marktayl1 May 7, 2026
f6fb67a
feat: add UserInteractionAgent, workflow blueprints, and anti-fabrica…
marktayl1 May 14, 2026
50dfee7
fix: HR onboarding multi-agent scenario completes correctly with MCP …
marktayl1 May 14, 2026
6b8d6ef
feat: add Foundry IQ FileSearchTool for retail agents with vector sto…
marktayl1 May 18, 2026
a00f331
feat(kb): sync Azure AI Search KB between portal and client-side
marktayl1 May 19, 2026
6770bf2
fix: split retail KB per agent and add stale-KB detection in agent_te…
marktayl1 May 19, 2026
a2e301e
feat: use o4-mini reasoning model for orchestrator manager
marktayl1 May 19, 2026
c03c5e9
feat(orchestration): JSON plan format for o4-mini reasoning model
marktayl1 May 20, 2026
fc7f35f
fix: F1 tool-history-leak patch + stall detection override for user c…
marktayl1 May 20, 2026
f9f6269
fix: scroll to final result start + enforce blueprint-only HR steps
marktayl1 May 20, 2026
961f8c4
Adding content pack profiles
TravisHilbert May 20, 2026
67b68fa
updated json configs
TravisHilbert May 20, 2026
a6ede6b
fix(tests): resolve all 12 backend test failures
marktayl1 May 21, 2026
e71fc4c
changes to get content gen working and deployment changes
TravisHilbert May 23, 2026
bd486e9
feat: implement HITL via @tool(approval_mode) replacing UserInteracti…
marktayl1 May 24, 2026
44c66af
chore: remove dead code, suppress lint warnings, add MAF capability c…
marktayl1 May 24, 2026
2aa343d
feat: improve HR agent system prompts with re-invocation checks and v…
marktayl1 May 24, 2026
5767fa1
docs: clarify why magentic_duplicate_fc_id patch remains needed
marktayl1 May 24, 2026
ca1e761
chore: remove dead AGENT_TEAM_FILE and unused REASONING_MODEL_NAME fr…
marktayl1 May 24, 2026
4d54180
chore: remove dead modules azure_config.py and orchestration/patches.py
marktayl1 May 24, 2026
cfc2465
fix: tech_support blueprint - use provided answers instead of re-asking
marktayl1 May 24, 2026
ed538d3
chore: add .venv-* pattern to .gitignore
marktayl1 May 24, 2026
22aa354
Merge pull request #1001 from microsoft/dev-v4
Roopan-Microsoft May 25, 2026
3a435c4
chore: upgrade agent-framework from 1.2.2 to 1.6.0
marktayl1 May 26, 2026
982338c
merge: resolve conflicts - keep our patches path and hr.json
marktayl1 May 26, 2026
bdf1120
fix: resolve type errors and lint warnings after agent-framework 1.6.…
marktayl1 May 26, 2026
3e87955
refactor: restructure team configs and simplify agent factory for fra…
marktayl1 May 26, 2026
dec443a
fix(mcp): route generated images through backend proxy for browser ac…
marktayl1 May 27, 2026
63d3ff9
fix(infra): deployment readiness - remove Key Vault, fix circular dep…
marktayl1 May 27, 2026
ec608e8
fix(infra): swap azd default to main.bicep, port fixes to main_custom
marktayl1 May 27, 2026
aa9e5df
fix(infra): clean up Bicep linter warnings in both templates
marktayl1 May 27, 2026
cd4038b
fix(infra): update image model to gpt-image-1.5 in main.bicep
marktayl1 May 27, 2026
4c6720b
feat: add interactive post-deploy script and consolidate scripts
marktayl1 May 27, 2026
3f80586
fix: Docker build fixes and optional AppInsights
marktayl1 May 27, 2026
ad7838c
chore: gitignore compiled ARM template and preflight artifacts
marktayl1 May 27, 2026
87bd074
fix(post_deploy): fail script on step errors and add azure-ai-project…
marktayl1 May 28, 2026
533d74e
fix(agents): patch stale KB toolbox connection at runtime
marktayl1 May 31, 2026
bf9162d
fix: Dev v4 to main merge
Avijit-Microsoft Jun 1, 2026
456b310
fix(infra): switch search connection to AAD auth and add KB RBAC roles
marktayl1 Jun 1, 2026
2a1766e
fix(orchestration): remove UserInteractionAgent routing from HITL pro…
marktayl1 Jun 1, 2026
631977e
Deployment Changes for to pull ACR images from Marks ACR.
TravisHilbert Jun 1, 2026
f5e9497
docs: update README with Foundry branding, AI Search pricing, and con…
marktayl1 Jun 2, 2026
35d5eef
style(mcp-server): remove emoji icons from log messages
marktayl1 Jun 2, 2026
187c643
Merge branch 'feature/TAS27' of https://github.com/microsoft/Multi-Ag…
marktayl1 Jun 2, 2026
1a47e6a
updated the post deployment script
Dhruvkumar-Microsoft Jun 2, 2026
af3f573
Added better readme instructions to create content packs
TravisHilbert Jun 2, 2026
24cfc7c
Merge branch 'feature/TAS27' of https://github.com/microsoft/Multi-Ag…
TravisHilbert Jun 2, 2026
0c91d01
Merge pull request #1015 from microsoft/psl-infrachangesForCG
TravisHilbert Jun 2, 2026
b6cb7d2
added some speckit agent defs so users can create new content packs b…
TravisHilbert Jun 2, 2026
f584927
Merge branch 'feature/TAS27' of https://github.com/microsoft/Multi-Ag…
TravisHilbert Jun 2, 2026
2e9d8f0
Merge branch 'main' into psl-TASfeature
Roopan-Microsoft Jun 8, 2026
9597e83
Updated uv lock files
Roopan-Microsoft Jun 8, 2026
750547f
Updated bicep
Roopan-Microsoft Jun 8, 2026
29c5ead
bicep updated
Roopan-Microsoft Jun 9, 2026
af7445e
commit
Tejasri-Microsoft Jun 3, 2026
b609ec2
Refactor infra code structure for improved readability and maintainab…
Harsh-Microsoft Jun 4, 2026
7495884
fix: add dependencies for AI model deployments in Bicep templates
Harsh-Microsoft Jun 4, 2026
b568ecf
extend role assignments for backend app service to include search ind…
Harsh-Microsoft Jun 5, 2026
00b8952
fixed avm infra implementation
Harsh-Microsoft Jun 5, 2026
8a8ede7
Add finalResultRef to PlanPage for improved reference handling
Akhileswara-Microsoft Jun 9, 2026
82e5c3c
updated the backend and frontend to align the feature branch
Dhruvkumar-Microsoft Jun 9, 2026
5b4d1ce
Merge branch 'psl-TASfeature' into psl-TASfeature-dk
Dhruvkumar-Microsoft Jun 9, 2026
df54c58
Merge pull request #1025 from Dhruvkumar-Microsoft/psl-TASfeature-dk
Roopan-Microsoft Jun 9, 2026
1c8d484
added image model and updated container app managed environment imple…
Harsh-Microsoft Jun 9, 2026
571bc88
Remove unused finalResultRef prop from PlanPage component
Akhileswara-Microsoft Jun 10, 2026
ba34383
updated infra as per new version requirement
Harsh-Microsoft Jun 10, 2026
479a6cf
commit
Tejasri-Microsoft Jun 10, 2026
10e6184
fixed container app deployment issue
Harsh-Microsoft Jun 10, 2026
28f4abf
Merge branch 'psl-hb-infrachanges' of https://github.com/Harsh-Micros…
Tejasri-Microsoft Jun 11, 2026
7317f2d
Merge remote-tracking branch 'upstream/psl-TASfeature' into psl-hb-in…
Harsh-Microsoft Jun 11, 2026
58d6c67
Merge branch 'psl-hb-infrachanges' of https://github.com/Harsh-Micros…
Tejasri-Microsoft Jun 11, 2026
eea39cf
fixed role assignments in bicep flavour, added quotacheck and support…
Harsh-Microsoft Jun 11, 2026
e1bdebe
Update documentation and code comments for clarity and accuracy
Akhileswara-Microsoft Jun 11, 2026
1ead22b
Fix average response time formatting in SampleQuestions.md
Akhileswara-Microsoft Jun 11, 2026
d2c7ebc
fix role assignments and add container app env dns for avm flavour
Harsh-Microsoft Jun 11, 2026
a527e1a
added the Final message image rendering strcture to see Images in UI
Dhruvkumar-Microsoft Jun 11, 2026
7f7eaef
fix: Address PR review comments - invalid HTML, grammar fixes
Akhileswara-Microsoft Jun 11, 2026
841f513
Merge pull request #1026 from microsoft/BugFix_Akhileswar
Roopan-Microsoft Jun 12, 2026
0a313d5
Merge pull request #1027 from Dhruvkumar-Microsoft/psl-TASfeature
Roopan-Microsoft Jun 12, 2026
0559d31
fixed openai endpoint and added few properties in log analytics in av…
Harsh-Microsoft Jun 12, 2026
2f223ce
updated script to use proxy api for waf deployment
Harsh-Microsoft Jun 12, 2026
cdbdbc0
rebuilt main.json
Harsh-Microsoft Jun 12, 2026
d9e2542
updated the requirement.txt in .githhub and updated the pipeline path
Dhruvkumar-Microsoft Jun 15, 2026
0e39b42
updated the path
Dhruvkumar-Microsoft Jun 15, 2026
1c60e68
resolve the pylint issue
Dhruvkumar-Microsoft Jun 15, 2026
2c9fc94
resolve pylint issue
Dhruvkumar-Microsoft Jun 15, 2026
074f9c4
updated the pylint workflow
Dhruvkumar-Microsoft Jun 15, 2026
f0df556
Merge remote-tracking branch 'upstream/psl-TASfeature' into psl-hb-in…
Harsh-Microsoft Jun 15, 2026
137ce23
updated the azure.yaml with new post deployment script
Dhruvkumar-Microsoft Jun 15, 2026
46f29f4
added role assignment for exp deployment
Harsh-Microsoft Jun 15, 2026
814920a
commit
Tejasri-Microsoft Jun 15, 2026
5706145
resolved the copilot comments
Dhruvkumar-Microsoft Jun 16, 2026
aef6288
Merge branch 'psl-hb-infrachanges' of https://github.com/Harsh-Micros…
Tejasri-Microsoft Jun 16, 2026
e519732
updated modules and clean up
Harsh-Microsoft Jun 16, 2026
1a84717
updated modules
Harsh-Microsoft Jun 16, 2026
4046ea8
updated post deploy posix script in azure.yaml
Harsh-Microsoft Jun 16, 2026
8043470
rebuilt all main.json
Harsh-Microsoft Jun 16, 2026
a258b8c
updated the fixed version in requirements.txt
Dhruvkumar-Microsoft Jun 16, 2026
82926e3
updated the fixed version
Dhruvkumar-Microsoft Jun 16, 2026
f3940cf
Merge pull request #1031 from Dhruvkumar-Microsoft/psl-TASfeature
Roopan-Microsoft Jun 16, 2026
4420a7b
updated main_custom.bicep and azure_custom.yaml
Harsh-Microsoft Jun 16, 2026
74d2157
commit
Tejasri-Microsoft Jun 16, 2026
79f0677
commit post deployment changes
Tejasri-Microsoft Jun 16, 2026
198bd50
Merge branch 'psl-hb-infrachanges' of https://github.com/Harsh-Micros…
Tejasri-Microsoft Jun 16, 2026
b1a1f37
commit
Tejasri-Microsoft Jun 16, 2026
f5b0ebc
commit
Tejasri-Microsoft Jun 16, 2026
c3d3ed4
commit
Tejasri-Microsoft Jun 16, 2026
604ff86
commit of description
Tejasri-Microsoft Jun 17, 2026
6480ba9
commit
Tejasri-Microsoft Jun 17, 2026
9c2fdc6
Merge remote-tracking branch 'upstream/psl-TASfeature' into psl-hb-in…
Harsh-Microsoft Jun 17, 2026
828e7e3
updated hooks in azure_custom.yaml
Harsh-Microsoft Jun 17, 2026
f2f5a4a
Fix intermittent issue related to agent not showing sometimes in the …
Dhruvkumar-Microsoft Jun 17, 2026
4bb63bd
updated the whitespaces
Dhruvkumar-Microsoft Jun 17, 2026
f2adf7b
Merge pull request #1046 from Dhruvkumar-Microsoft/psl-TASfeature
Roopan-Microsoft Jun 18, 2026
2595f59
commit of post deployment
Tejasri-Microsoft Jun 18, 2026
6872b14
commit
Tejasri-Microsoft Jun 18, 2026
a98ac5d
Merge pull request #1029 from Harsh-Microsoft/psl-hb-infrachanges
Roopan-Microsoft Jun 18, 2026
7f95f39
commit
Tejasri-Microsoft Jun 18, 2026
b6cd0d2
Merge branch 'dev-v4' into psl-TASfeature
Roopan-Microsoft Jun 18, 2026
9bc1fce
Merge branch 'psl-TASfeature' of https://github.com/microsoft/Multi-A…
Tejasri-Microsoft Jun 18, 2026
f4c2aeb
Merge pull request #1024 from microsoft/psl-TASfeature
Roopan-Microsoft Jun 18, 2026
9070913
Merge pull request #1048 from microsoft/psl-bug-ts-ui
Roopan-Microsoft Jun 19, 2026
6e1115f
fix the team switching issue
Dhruvkumar-Microsoft Jun 19, 2026
7ae54e4
Merge pull request #1053 from Dhruvkumar-Microsoft/feature/TAS27
Roopan-Microsoft Jun 19, 2026
9d61fe9
Merge pull request #1054 from microsoft/psl-TASfeature
Roopan-Microsoft Jun 19, 2026
070b7d1
Merge branch 'dev' into feature/TAS27
Roopan-Microsoft Jun 19, 2026
b092d6d
updated the latest and dev tags and updated the workflows
Dhruvkumar-Microsoft Jun 19, 2026
233f3b5
Merge pull request #1055 from Dhruvkumar-Microsoft/feature/TAS27
Roopan-Microsoft Jun 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 0 additions & 26 deletions .coveragerc

This file was deleted.

273 changes: 273 additions & 0 deletions .github/agents/speckit.contentpack.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,273 @@
---
description: Create a new content pack (agent team + data + knowledge base) using the reference template and step-by-step guide.
---

# Content Packs

Optional, drop-in extensions to the Multi-Agent Custom Automation Engine. A pack
ships everything needed to add a domain-specific agent team **without touching
core code**.

The core solution works fine when the `content_packs/` folder is empty or absent.

---

## Folder Structure

```
content_packs/
└── <pack_name>/
├── pack.json # optional — declares search indexes + blob uploads
├── agent_teams/
│ └── *.json # required — one or more team config files (any name)
├── datasets/ # optional — source data for grounding
│ ├── data/*.csv
│ └── docs/*.pdf
└── scripts/ # optional — pack-local utilities
```

- `<pack_name>` should be lowercase snake_case (e.g. `pet_food`, `legal_review`).
- JSON files inside `agent_teams/` can be named anything — the upload script
globs all `*.json` files in that directory.

---

## Designing Your Agent Team

Every pack needs at least one team config JSON in `agent_teams/`. The agents you
create should be tailored to your domain — there is no fixed pattern. Consider:

**What does the user need?** Design agents around the tasks your users will
perform, not around a template. Ask yourself:

| Question | Design decision |
|----------|----------------|
| Does the team need to look up data? | Add a **ResearchAgent** with `use_knowledge_base: true` |
| Does it need to generate images? | Add an agent with `use_toolbox: true` and the appropriate `toolbox_filter` |
| Should it ask the user clarifying questions? | Set `user_responses: true` on the relevant agent |
| Are there multiple distinct tasks? | Add specialist agents and a **TriageAgent** to route between them |
| Is it a simple Q&A over data? | A single agent with KB access may be enough — no triage needed |

**Examples from this repo:**

| Pack | Agents | Why |
|------|--------|-----|
| `content_gen` | Triage → Planning → Research → TextContent → ImageContent → Compliance | Complex creative workflow with multiple output types |
| `contract_compliance` | Triage → Research → Analysis | Document review with KB lookup |
| `hr_onboarding` | Single team (no KB) | Workflow-only, no data grounding needed |

**Key rules:**
- Every agent needs a unique `input_key` (used for routing between agents).
- The `team_id` must be a valid UUID using only hex characters (0-9, a-f).
Use the pattern `00000000-0000-0000-0000-00000000NNNN` where NNNN is unique.
- At least one `starting_tasks` entry is required (the example prompt shown in the UI).

### Required Fields (validation will reject uploads without these)

**Team-level:**
```jsonc
{
"id": "1",
"team_id": "00000000-0000-0000-0000-000000000008",
"name": "Your Team Name",
"status": "visible", // REQUIRED — team won't appear in UI without this
"deployment_name": "gpt-4.1-mini",
...
}
```

**Each agent must include `type`:**
```jsonc
{
"input_key": "my_agent",
"type": "", // REQUIRED — empty string is fine, but field must exist
"name": "MyAgent",
...
}
```

**Each starting task must include `created`, `creator`, `logo`:**
```jsonc
"starting_tasks": [
{
"id": "task-1",
"name": "Example Task",
"prompt": "A sample prompt users can click to start",
"created": "", // REQUIRED — empty string is fine
"creator": "", // REQUIRED — empty string is fine
"logo": "" // REQUIRED — empty string is fine
}
]
```

> Missing any of these fields results in a 400 error during upload.
> Use an existing pack (e.g. `hr_onboarding/agent_teams/hr.json`) as a
> reference for the full required schema.

---

## Data & Knowledge Bases

If your agents need to search domain-specific data, you need three things wired together:

```
CSV/PDF ──► AI Search Index ──► Knowledge Base (MCP) ──► Agent
(pack.json) (seed_knowledge_bases.py) (agent_teams/*.json)
```

### Step 1 — Add your data

Put source files in `datasets/data/`. Supported formats:

| Format | How it's indexed |
|--------|-----------------|
| CSV | One document per row. Columns become searchable fields. |
| PDF/DOCX | Uploaded to blob; use `blob_indexes` in `pack.json` for document-crack indexing. |

### Step 2 — Create `pack.json`

```jsonc
{
"name": "your_pack",
"description": "What this pack does",
"search_indexes": [
{
"index_name": "your-pack-data-index",
"csv_path": "datasets/data/your_data.csv",
"key_field": "id",
"title_field": "product_name"
}
],
"blob_uploads": [
{
"container": "your-pack-dataset",
"source": "datasets/data",
"pattern": "*.csv"
}
]
}
```

The `index_name` must be globally unique on your search service and will be
referenced in the KB registration.

### Step 3 — Register the Knowledge Base

Add an entry to `infra/scripts/post-provision/seed_knowledge_bases.py` in the `KNOWLEDGE_BASES`
dict. Place it before the `# ── Example Pack ──` comment block:

```python
# ── Your Pack ──
"your-pack-data-kb": {
"description": "What this KB provides",
"model": {
"kind": "azureOpenAI",
"azureOpenAIParameters": {
"resourceUri": AI_SERVICES_ENDPOINT,
"deploymentId": "gpt-4.1-mini",
"modelName": "gpt-4.1-mini",
},
},
"sources": [
{
"name": "your-pack-data-ks",
"description": "What the source data contains",
"index_name": "your-pack-data-index", # Must match pack.json
"searchable_fields": ["content", "title"],
},
],
},
```

**Naming convention (must be consistent across files):**

| Item | Pattern | Example |
|------|---------|---------|
| KB name (dict key) | `<pack>-<purpose>-kb` | `pet-food-catalog-kb` |
| Knowledge Source name | `<pack>-<purpose>-ks` | `pet-food-catalog-ks` |
| Search index name | `<pack>-<purpose>-index` | `pet-food-catalog-index` |

### Step 4 — Connect agents to the KB

In your team config JSON, set these fields on the agent that needs search:

```jsonc
"use_knowledge_base": true,
"knowledge_base_name": "your-pack-data-kb" // Must match the key in seed_knowledge_bases.py
```

The agent's `system_message` should instruct it to **always use the search tool**
and **never hallucinate data**.

---

## Registering in the Deployment Script

Edit `infra/scripts/post-provision/Selecting-Team-Config-And-Data.ps1`. Search for `NEW CONTENT PACK`
— each insertion point has a comment template. There are **4 things** to do:

| # | What | Where |
|---|------|-------|
| 1 | Add `Write-Host "N. Your Pack Name"` | Menu display section |
| 2 | Add `elseif ($useCaseSelection -eq "N") { ... }` | Selection handler |
| 3 | Add deployment block (team config upload + `Deploy-ContentPack`) | After Content Gen block |
| 4 | Add `-or $useCaseSelection -eq "N"` to network/KB/success conditions | Only if pack has data |

After adding your entry, update `$allOption` to `N + 1` so "All" is always last.

---

## Agent Tool Options Reference

| Field | Type | Purpose |
|-------|------|---------|
| `use_knowledge_base` | bool | Connects a Foundry IQ KB as an MCP search tool |
| `knowledge_base_name` | string | Name of the KB (must exist in `seed_knowledge_bases.py`) |
| `use_file_search` | bool | Attaches an Azure AI vector store for file-level RAG |
| `vector_store_name` | string | Name of the vector store in Foundry |
| `use_toolbox` | bool | Connects MCP toolbox tools (e.g., `generate_marketing_image`) |
| `toolbox_filter` | string | Tag filter for which toolbox tools are available |
| `coding_tools` | bool | Enables code interpreter sandbox |
| `user_responses` | bool | Allows the agent to pause and ask the user a question |

> **`user_responses` guidance:** Default to `false` unless the user explicitly
> asks for the agent to collect human feedback or ask clarifying questions.
> When `false`, the agent runs autonomously without pausing for input. Only set
> to `true` on agents whose design requires them to ask the user a question
> mid-workflow (e.g., an intake agent gathering requirements).

---

## Deploying

```bash
# 1. Deploy infrastructure
azd up

# 2. Provision pack resources — select your pack or "All"
./infra/scripts/post-provision/Selecting-Team-Config-And-Data.ps1 -ResourceGroup <rg>
```

---

## Checklist

- [ ] `content_packs/<pack>/agent_teams/` has at least one valid JSON team config
- [ ] `team_id` is a valid hex UUID (0-9, a-f only)
- [ ] `starting_tasks` has at least one example prompt
- [ ] If using a KB: `pack.json` exists with matching `index_name`
- [ ] If using a KB: `datasets/data/` contains the source files
- [ ] If using a KB: entry added to `seed_knowledge_bases.py` with matching names
- [ ] If using a KB: agent has `use_knowledge_base: true` + correct `knowledge_base_name`
- [ ] Agent `system_message` tells it to search (not hallucinate)
- [ ] Pack registered in `Selecting-Team-Config-And-Data.ps1` (all 4 locations)
- [ ] `$allOption` updated if you added a new menu number

---

## Removing a Pack

Delete the pack folder. Previously uploaded team configs remain in Cosmos until
deleted via `DELETE /api/v4/team_configs/{team_id}`. Search indexes and blob
containers are also left in place — clean up with `az search` / `az storage`.

3 changes: 3 additions & 0 deletions .github/prompts/speckit.contentpack.prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
---
agent: speckit.contentpack
---
30 changes: 30 additions & 0 deletions .github/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
fastapi==0.137.1
uvicorn==0.49.0
autogen-agentchat==0.7.5
azure-cosmos==4.16.1
azure-monitor-opentelemetry==1.8.8
azure-monitor-events-extension==0.1.0
azure-identity==1.25.3
python-dotenv==1.2.2
python-multipart==0.0.32
opentelemetry-api==1.40.0
opentelemetry-sdk==1.40.0
opentelemetry-exporter-otlp-proto-grpc==1.40.0
opentelemetry-instrumentation-fastapi==0.61b0
opentelemetry-instrumentation-openai==0.61.0
opentelemetry-exporter-otlp-proto-http==1.40.0

semantic-kernel[azure]==1.32.2
azure-ai-projects==1.0.0b11
openai==1.84.0
azure-ai-inference==1.0.0b9
azure-search-documents==12.1.0b1
azure-ai-evaluation==1.11.0

# Date and internationalization
babel==2.18.0

# Testing tools
pytest==8.4.2 # Compatible version for pytest-asyncio
pytest-asyncio==0.24.0
pytest-cov==5.0.0
2 changes: 1 addition & 1 deletion .github/workflows/deploy-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ on:
- completed
branches:
- main
- dev-v4
- dev
- hotfix
workflow_dispatch:
inputs:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/deploy-waf.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,10 @@ jobs:
GPT41_MINI_MIN_CAPACITY: ${{ env.GPT41_MINI_MIN_CAPACITY }}
AZURE_REGIONS: ${{ vars.AZURE_REGIONS }}
run: |
chmod +x infra/scripts/checkquota.sh
if ! infra/scripts/checkquota.sh; then
chmod +x infra/scripts/pre-provision/checkquota.sh
if ! infra/scripts/pre-provision/checkquota.sh; then
# If quota check fails due to insufficient quota, set the flag
if grep -q "No region with sufficient quota found" infra/scripts/checkquota.sh; then
if grep -q "No region with sufficient quota found" infra/scripts/pre-provision/checkquota.sh; then
echo "QUOTA_FAILED=true" >> $GITHUB_ENV
fi
exit 1 # Fail the pipeline if any other failure occurs
Expand Down
Loading
Loading