Expert guidance for developing autonomous agents with IntentKit framework. Covers architecture, skills development, testing, and operations using LangGraph, SQLAlchemy, FastAPI, and Pydantic.
Expert guidance for developing autonomous AI agents using the IntentKit framework.
IntentKit is an autonomous agent framework built on LangGraph that enables creation and management of AI agents with pluggable skills. This assistant helps you navigate the codebase, develop skills, and follow best practices.
The intentkit package follows a strict dependency hierarchy (left to right - left can never import right):
**utils → config → models → abstracts → clients → skills → core**
| Component | Technology | Documentation |
|-----------|-----------|---------------|
| Package Manager | uv | - |
| Virtual Environment | .venv | Activate with `source .venv/bin/activate` |
| Code Formatter | ruff | Run `ruff format` after changes |
| Linter | ruff | Run `ruff check --fix` after changes |
| Type Checker | BasedPyright | Ensure no errors in changed files |
| API Framework | FastAPI | https://fastapi.tiangolo.com/ |
| Database ORM | SQLAlchemy 2.0 | https://docs.sqlalchemy.org/en/20/ |
| Data Models | Pydantic V2 | https://docs.pydantic.dev/latest/ |
| Testing | pytest | Run `pytest` after changes |
| Agent Framework | LangGraph | - |
| Skills Base | LangChain BaseTool | - |
Always activate the virtual environment before starting work:
```bash
source .venv/bin/activate
```
Follow the strict dependency order when adding imports:
```
utils → config → models → abstracts → clients → skills → core
```
Never import from right to left to avoid circular dependencies.
1. **Use Latest APIs**: Always use the newest version of each package
- SQLAlchemy: Use 2.0 API (not legacy 1.x patterns)
- Pydantic: Use V2 API (not obsolete V1 interfaces)
2. **Code Quality**:
- Place all imports at the beginning of files
- Use English for all code comments
- Use English for search queries
- Run linting after changes: `ruff format && ruff check --fix`
- Verify type checking: Check BasedPyright has no errors
- Run tests: `pytest`
3. **Version Control**:
- Do NOT auto-commit after coding unless explicitly requested
- See `agent_docs/ops_guide.md` for commit, PR, and release procedures
4. **Documentation**:
- No need to write dedicated documentation or example scripts after implementation
- Code should be self-documenting with clear comments
When developing or modifying agent skills:
1. Read the comprehensive guide: `agent_docs/skill_development.md`
2. Skills extend LangChain's BaseTool
3. Skills live in `intentkit/skills/`
4. Skills can fetch data, perform actions, or interact with the environment
5. Test skills in `tests/skills/`
Run the test suite after making changes:
```bash
pytest
```
Test organization:
For Git operations, pull requests, or releases:
1. Read the operations guide: `agent_docs/ops_guide.md`
2. Only perform Git commits when explicitly requested
3. Follow the merge workflow: `feature branches → dev → main`
1. Navigate to `intentkit/skills/`
2. Create a new file or modify existing skill
3. Inherit from LangChain's BaseTool
4. Implement required methods
5. Add tests in `tests/skills/`
6. Consult `agent_docs/skill_development.md` for detailed patterns
1. Navigate to `intentkit/core/`
2. Understand LangGraph state machine
3. Follow import dependency order
4. Update tests in `tests/core/`
5. Verify no circular imports
1. Navigate to `intentkit/config/`
2. Add configuration parameters
3. Update environment variable handling
4. Document required API keys or settings
1. Navigate to `intentkit/models/`
2. Create paired models:
- Pydantic model for in-memory operations
- SQLAlchemy model for database persistence
3. Use SQLAlchemy 2.0 patterns (not legacy)
4. Use Pydantic V2 features (not V1)
```bash
source .venv/bin/activate
ruff format
ruff check --fix
pytest
python app/api_server.py
python app/autonomous_runner.py
```
Leave a review
No reviews yet. Be the first to review this skill!
# Download SKILL.md from killerskills.ai/api/skills/intentkit-agent-framework-assistant/raw