Within your course repository, create a directory "hw2". Commit and push to your remote repository.

cd <path_to_repo>
mkdir hw2
touch hw2/app.py
touch hw2/screencast_url.txt
git add hw2
git commit -m "initial commit for hw2"
git push

In this homework, based on the lab exercises, you will create your own LangChain agent. Extend the agent in any number of ways including

You may also consider using alternate agent approaches and asynchronous execution. As part of the assignment, ensure that you include one of either the PythonREPL tool or the Terminal tool within your application.

Your development should be organized and incremental, with frequent commits into your git repository. Code should also be properly documented via Python docstrings. In addition, you must also ensure API keys do not show up in your source files, but rather are passed in via environment variables. Ensure your application code is pushed to your repository before class.

Screencast

Upon completing your agent, via a narrated screencast of no longer than 5 minutes, you will perform a demonstration and source code walk-through of the agent using the script below.

Upload your completed screencast on MediaSpace. Ensure that it is published as "Unlisted". Then, update the file screencast_url.txt in the homework's directory to contain the URL that your unlisted screencast on MediaSpace is located. Push the changes that include the updated URL to your repository before class.

Rubric

We will be using your screencast and git repository to evaluate your homework.

Code checkout shown

Demonstration of the various capabilities of the application, including the use of the Terminal tool

Demonstration of the various limitations of the application

Code quality (clean with no unused code or variables, readable, modular, documented with Docstrings and comments, no hard-coded keys within source code)

Walkthrough of source code via git commits on Gitlab

Instructions followed properly including code submission in the specified repository files, sequencing and length of screencast.