Skip to content

feat(lab02): restructure PersonalCareerCopilot as sequential pipeline #lab02#11

Open
ShivamGoyal03 wants to merge 14 commits into
mainfrom
shivam/lab02-personal-career-copilot
Open

feat(lab02): restructure PersonalCareerCopilot as sequential pipeline #lab02#11
ShivamGoyal03 wants to merge 14 commits into
mainfrom
shivam/lab02-personal-career-copilot

Conversation

@ShivamGoyal03

Copy link
Copy Markdown
Collaborator

Description

Restructures the PersonalCareerCopilot multi-agent workflow from a fan-out/fan-in topology to a strict sequential pipeline, fixing a double-output bug caused by WorkflowBuilder's OR-semantics.

Closes #

Type of Change

  • Bug fix
  • New feature
  • Refactor / code improvement
  • Documentation update
  • CI / tooling change

Changes Made

  • main.py — Remove fan-out edges; replace with sequential chain ResumeParser → JobDescriptionAgent → MatchingAgent → GapAnalyzer. JD Agent now relays [PARSED RESUME PASS-THROUGH] forward so MatchingAgent receives both profiles without a second incoming edge. Fixes double-output bug (OR-semantics triggered GapAnalyzer twice).
  • main.py — Update MATCHING_AGENT_INSTRUCTIONS to read from labeled [JD REQUIREMENTS] and [PARSED RESUME PASS-THROUGH] sections. Update GAP_ANALYZER_INSTRUCTIONS with CRITICAL: per-gap-card rule.
  • main.py — Pin mcp<2,>=1.24.0; use streamable_http_client 3-tuple unpacking for mcp SDK v1.x. Switch env var AZURE_AI_PROJECT_ENDPOINTFOUNDRY_PROJECT_ENDPOINT.
  • requirements.txt — Use narrow subpackages agent-framework-foundry + agent-framework-foundry-hosting; pin mcp<2,>=1.24.0.
  • agent.yaml — Only declare AZURE_AI_MODEL_DEPLOYMENT_NAME; FOUNDRY_PROJECT_ENDPOINT is injected by Foundry at runtime.
  • .azdignore — New file: exclude agent.yaml, agent.manifest.yaml, .env.example from azd.
  • .env.example — Deleted; credentials setup moved to inline instructions in README.
  • README.md — Fix workflow mermaid (sequential LR), fix env var names, fix requirements table, remove .env.example reference.

Testing

  • Ran workshop lab02 locally
  • Tested with Agent Inspector
  • Updated / added documentation where applicable

Checklist

  • My changes follow the workshop conventions
  • No secrets or credentials have been committed
  • Documentation updated if behaviour changed
  • PR title is descriptive and references the issue (e.g. feat(lab02): restructure PersonalCareerCopilot as sequential pipeline #lab02)

- Remove fan-out/fan-in WorkflowBuilder edges; replace with strict
  sequential chain: ResumeParser → JD Agent → MatchingAgent → GapAnalyzer
- JD Agent now relays [PARSED RESUME PASS-THROUGH] forward so
  MatchingAgent receives both profiles without a fan-in edge
- Fixes double-output bug caused by WorkflowBuilder OR-semantics
  (downstream executor fires on every incoming edge completion)
- Update MATCHING_AGENT_INSTRUCTIONS to read labeled sections
- Update GAP_ANALYZER_INSTRUCTIONS with CRITICAL per-gap-card rule
- Pin mcp<2,>=1.24.0 in requirements; use streamable_http_client
  3-tuple unpacking compatible with mcp SDK v1.x
- Switch env var from AZURE_AI_PROJECT_ENDPOINT → FOUNDRY_PROJECT_ENDPOINT"
- Dockerfile: no functional change, aligns with standard scaffold output
- .dockerignore: exclude .venv, __pycache__, .env from image
- .azdignore: exclude agent.yaml, agent.manifest.yaml, .env.example from azd
- .vscode/launch.json + tasks.json: attach debugger on port 5679,
  open Agent Inspector automatically on F5
- .foundry/.deployment.json.example: placeholder deployment config"
- Fix workflow mermaid: replace fan-out topology with sequential LR chain
- Replace AZURE_AI_PROJECT_ENDPOINT with FOUNDRY_PROJECT_ENDPOINT throughout
- Remove .env.example from project structure (file deleted)
- Update Quick Start step 2 to create .env directly instead of copying example
- Fix agent.yaml key files section: only AZURE_AI_MODEL_DEPLOYMENT_NAME declared
- Fix requirements table to match actual requirements.txt packages
- Fix troubleshooting: KeyError now references correct env var name"
Copilot AI review requested due to automatic review settings June 27, 2026 16:17

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Refactors the Lab 02 PersonalCareerCopilot multi-agent workflow from a fan-out/fan-in graph to a strict sequential pipeline to avoid double-execution caused by WorkflowBuilder OR-semantics, while updating the surrounding workshop scaffolding (env vars, dependencies, docs, and deployment metadata) to match the new structure.

Changes:

  • Rewire the workflow into a sequential chain and update prompt blocks to relay the needed context between agents.
  • Update dependency set to Foundry subpackages and pin mcp<2,>=1.24.0; align env var usage to FOUNDRY_PROJECT_ENDPOINT + AZURE_AI_MODEL_DEPLOYMENT_NAME.
  • Refresh lab documentation and local dev tooling configs to reflect the new workflow and setup steps.

Reviewed changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
workshop/lab02-multi-agent/PersonalCareerCopilot/requirements.txt Switch to Foundry subpackages and pin mcp v1.x.
workshop/lab02-multi-agent/PersonalCareerCopilot/README.md Update mermaid workflow, env var names, and dependency table; remove .env.example guidance.
workshop/lab02-multi-agent/PersonalCareerCopilot/main.py Convert workflow wiring to sequential pipeline; update agent instructions and env var access.
workshop/lab02-multi-agent/PersonalCareerCopilot/agent.yaml Simplify hosted agent env var declaration and update metadata/resources.
workshop/lab02-multi-agent/PersonalCareerCopilot/.vscode/tasks.json Rename tasks and adjust prerequisite checks / background readiness detection.
workshop/lab02-multi-agent/PersonalCareerCopilot/.vscode/launch.json Rename the debug configuration label.
workshop/lab02-multi-agent/PersonalCareerCopilot/.foundry/.deployment.json.example Normalize placeholder values for project/container registry.
workshop/lab02-multi-agent/PersonalCareerCopilot/.env.example Remove the example env file.
workshop/lab02-multi-agent/PersonalCareerCopilot/.dockerignore Adjust ignored files for Docker build context.
workshop/lab02-multi-agent/PersonalCareerCopilot/.azdignore Add azd ignore entries for agent definition files and .env.example.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread workshop/lab02-multi-agent/PersonalCareerCopilot/main.py Outdated
Comment thread workshop/lab02-multi-agent/PersonalCareerCopilot/.vscode/tasks.json
Comment thread workshop/lab02-multi-agent/PersonalCareerCopilot/README.md Outdated
ShivamGoyal03 and others added 8 commits June 27, 2026 22:19
- load_dotenv(override=True) so .env always wins over shell vars
- pyPackageInstalled includes agent-framework-foundry + hosting packages
- README troubleshooting covers both FOUNDRY_PROJECT_ENDPOINT and AZURE_AI_MODEL_DEPLOYMENT_NAME KeyErrors
Both FOUNDRY_PROJECT_ENDPOINT and AZURE_AI_MODEL_DEPLOYMENT_NAME
are now listed in the troubleshooting table (Copilot review fix #3)

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 31 out of 34 changed files in this pull request and generated 4 comments.

Comments suppressed due to low confidence (1)

workshop/lab02-multi-agent/PersonalCareerCopilot/.dockerignore:8

  • .dockerignore no longer excludes .vscode/ and .foundry/, so local debug configs and deployment examples will be copied into the container image. This increases image size and can accidentally ship local-only metadata that the runtime doesn’t need.
.venv
__pycache__
*.pyc
*.pyo
*.pyd
.Python
.env

Comment thread workshop/lab02-multi-agent/docs/05-test-locally.md
Comment thread workshop/lab02-multi-agent/docs/08-troubleshooting.md Outdated
Comment thread workshop/lab02-multi-agent/docs/09-summary.md
Comment thread workshop/lab02-multi-agent/docs/03-configure-agents.md Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants