DeepAgent Assist
DeepAgent Assist is an interactive, terminal-based AI coding assistant built with LangGraph, LangChain, and the deepagents framework. It utilizes Google's Generative AI models (like Gemini) to assist developers with coding tasks directly from their terminal.
Features
- Interactive Chat Interface: A rich terminal UI built with
clickandrichfor an engaging conversation experience. - Human-in-the-Loop (HITL): Safe file operations. The agent pauses execution and requests user approval before executing sensitive actions like writing or editing files.
- DeepAgents Architecture:
FilesystemBackend: For workspace file manipulation (virtual mode enabled).StateBackend&CompositeBackend: For structured state routing and management.
- Summarization Middleware: Automatically summarizes chat history to keep the LLM context manageable during long sessions.
- State Persistence: Built-in memory using LangGraph's
MemorySaverto persist conversation threads. - Web Search Tool: Integrated DuckDuckGo search (
internet_search) allowing the agent to fetch real-time information without needing an API key. - Skills System: Includes a skill system with a default
langgraph-docsskill to fetch and reference LangGraph documentation using the standardllms.txt.
Project Structure
src/s_assist/
├── __init__.py
├── agent.py # Agent configuration, tools, middleware, and backend setup
├── main.py # CLI entry point, chat loop, and Human-in-the-Loop interrupt handling
├── skills/ # Agent skills (e.g., langgraph-docs/SKILL.md)
└── tools/ # Custom agent tools (e.g., web_search_tool.py)
Setup & Prerequisites
Make sure you have Python installed along with the necessary dependencies:
google-authlangchain-google-genaideepagentslanggraphclickrichpython-dotenvlangchain-communityduckduckgo-search
Authentication
The assistant requires access to Google Cloud's Generative AI via a Google Service Account or Application Default Credentials (ADC).
Environment Variables
You can configure the assistant using a .env file or environment variables:
SA_FILE_PATH: (Optional) The absolute path to your Google Cloud Service Account JSON key file. If omitted, the application falls back to Application Default Credentials.MODELE_NAME: (Optional) The Google Generative AI model to use (default:gemini-3.5-flash).
Usage
Start the interactive chat loop by running the main module:
python -m src.s_assist.main [OPTIONS]
Options
-d, --directory-name TEXT: The root workspace directory for the agent (defaults to the current working directory).-m, --model-name TEXT: The model name to use (overridesMODELE_NAMEenvironment variable).
Interactive Commands
- Type your coding questions or instructions at the
You:prompt. - Validation Prompts: When the agent wants to write or edit a file, it will pause. You will be prompted to:
a(accepter): Approve the action.r(refuser): Reject the action and provide a reason.
- Type
quit,exit, orqto exit the chat session.
Metadata
Release files for s-assist 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| s_assist-0.1.0.tar.gz | 254.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| s_assist-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 261.7 kB
Release files / s_assist-0.1.0.tar.gz
| Download URL | s_assist-0.1.0.tar.gz |
|---|---|
| Size | 254.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aceeb7d32ef26c3724e467fd4bc99860da0c69f936f847c5864a714d375529c4
|
|
BLAKE2b-256 checksum How to use checksums |
d14ad176ac383a439857e633323085ce13aafea2899776425140cf4f89ee68e6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.12
|
Release files / s_assist-0.1.0-py3-none-any.whl
| Download URL | s_assist-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b75534b85f4cc2883dc6de64dd38ddf3b3abfc327746e9119aa61adbd743ed94
|
|
BLAKE2b-256 checksum How to use checksums |
192c28327cc92f401748e3b0b2f3c07980f85540a98f0e6e417067d578585260
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.12
|