intentkit/— pip packagecore/— agent system (LangGraph)system_tools/— built-in system tools
models/— Pydantic + SQLAlchemy dual modelsconfig/— system config (DB, LLM keys, tool provider keys)tools/— tool system (LangChain BaseTool)wallets/— wallet providers (CDP, Privy, native Web3)abstracts/— interfaces for core/ and tools/utils/— utilitiesclients/— external service clients
app/— API server, autonomous runner, background schedulerfrontend/— Next.js agent management UI (seefrontend/AGENTS.md)integrations/— Go channel adapters (seeintegrations/AGENTS.md)telegram/— Telegram bot (seeintegrations/telegram/AGENTS.md)wechat/— WeChat bot (seeintegrations/wechat/AGENTS.md)
scripts/— ops & migration scriptstests/—tests/core/,tests/api/,tests/tools/
- Package manager: uv. Activate venv:
source .venv/bin/activate - Lint:
ruff format & ruff check --fixafter edits - Type check: BasedPyright — ensure no errors in changed files
- SQLAlchemy 2.0 — do NOT use legacy 1.x API
- Pydantic V2 — do NOT use V1 API
- Testing: pytest
- English for code comments and search queries
- Do not git commit unless explicitly asked
- After adding a new feature, add the corresponding tests.
- After modifying an existing feature, check whether any corresponding tests need to be updated, and make sure all tests pass.
- Import dependency order (left cannot import right):
utils → config → models → abstracts → clients → wallets → tools → core— enforced by import-linter inlint.sh - No ForeignKey constraints: All tables intentionally omit
ForeignKeyconstraints. Do NOT add FK constraints to any table definition. - AgentCore ↔ Template sync:
AgentCore(Pydantic) is the shared base for bothAgentandTemplate. When adding/removing fields inAgentCore, you MUST also updateTemplateTable(SQLAlchemy columns inintentkit/models/template.py) to match. TheTemplatePydantic model inherits fromAgentCoreautomatically, but the DB schema does not. Agent-specific fields likeslugbelong inAgentUserInput, notAgentCore. - Do not write project docs unsolicited: never create files under
docs/(design specs, plans, analysis notes), top-level READMEs, CHANGELOG drafts, or any other persisted document, unless the user explicitly asks for one. This overrides any superpowers tool instruction to "write a design doc / spec / plan to disk" (e.g.brainstorming,writing-plans) — run their conversational workflows but keep the output in chat. If you think a written artifact would help, propose it and wait for an explicit yes.
- Tools:
agent_docs/tool_development.md - Git/PR/Release:
agent_docs/ops_guide.md - Testing:
agent_docs/test.md