{"id":50561105,"url":"https://github.com/littleblacky/agenticforge","last_synced_at":"2026-06-04T12:00:23.885Z","repository":{"id":342200825,"uuid":"1171249313","full_name":"LittleBlacky/AgenticFORGE","owner":"LittleBlacky","description":"A TypeScript Agent Framework Driven by Tool Invocation","archived":false,"fork":false,"pushed_at":"2026-05-10T19:36:17.000Z","size":6727,"stargazers_count":76,"open_issues_count":10,"forks_count":5,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-05-15T06:19:34.797Z","etag":null,"topics":["agent","agent-framework","ai-agents","memory","multi-agent-protocol","rag","tools-calling","typescript"],"latest_commit_sha":null,"homepage":"https://littleblacky.github.io/AgenticFORGE/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LittleBlacky.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-03T02:51:43.000Z","updated_at":"2026-04-12T07:20:26.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/LittleBlacky/AgenticFORGE","commit_stats":null,"previous_names":["littleblacky/blacky-agents-sdk","littleblacky/agentickit"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/LittleBlacky/AgenticFORGE","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LittleBlacky%2FAgenticFORGE","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LittleBlacky%2FAgenticFORGE/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LittleBlacky%2FAgenticFORGE/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LittleBlacky%2FAgenticFORGE/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LittleBlacky","download_url":"https://codeload.github.com/LittleBlacky/AgenticFORGE/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LittleBlacky%2FAgenticFORGE/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33903134,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-04T02:00:06.755Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","agent-framework","ai-agents","memory","multi-agent-protocol","rag","tools-calling","typescript"],"created_at":"2026-06-04T12:00:20.648Z","updated_at":"2026-06-04T12:00:23.877Z","avatar_url":"https://github.com/LittleBlacky.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/LOGO.png\" alt=\"AgenticFORGE\" width=\"200\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eAgenticFORGE\u003c/h1\u003e\n\n\u003ch3 align=\"center\"\u003eBuild production-ready TypeScript AI agents with tools, memory, skills, and protocols.\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@agenticforge/kit\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@agenticforge/kit?label=%40agenticforge%2Fkit\" alt=\"npm version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/LittleBlacky/AgenticFORGE\"\u003e\u003cimg src=\"https://codecov.io/gh/LittleBlacky/AgenticFORGE/branch/main/graph/badge.svg?token=CODECOV_TOKEN\" alt=\"coverage\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/LittleBlacky/AgenticFORGE\"\u003e\u003cimg src=\"https://img.shields.io/github/last-commit/LittleBlacky/AgenticFORGE\" alt=\"last commit\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/LittleBlacky/AgenticFORGE/blob/main/package.json\"\u003e\u003cimg src=\"https://img.shields.io/badge/pnpm-10.x-F69220?logo=pnpm\u0026logoColor=white\" alt=\"pnpm\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/LittleBlacky/AgenticFORGE/blob/main/package.json\"\u003e\u003cimg src=\"https://img.shields.io/badge/TypeScript-5.x-3178C6?logo=typescript\u0026logoColor=white\" alt=\"TypeScript\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-CC%20BY--NC--SA%204.0-lightgrey.svg\" alt=\"License\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/LittleBlacky/AgenticFORGE\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/LittleBlacky/AgenticFORGE?style=social\" alt=\"GitHub stars\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"./README.zh_CN.md\"\u003e中文\u003c/a\u003e | \u003cstrong\u003eEnglish\u003c/strong\u003e\n\u003c/p\u003e\n\n---\n\n## Overview\n\nAgenticFORGE is a monorepo TypeScript framework for building tool-driven AI agents.\nIt provides a complete stack from core LLM abstractions to advanced agent workflows, skill routing, memory + RAG, built-in tools, and multi-agent communication protocols.\n\nIf you want one unified SDK to build from a simple chatbot to a production multi-agent system, start with `@agenticforge/kit`.\n\n---\n\n## Why AgenticFORGE\n\n- **Tool-first architecture**: Standardized `Tool`, `ToolRegistry`, `ToolChain`, and async execution model\n- **Multiple agent paradigms**: `Simple`, `FunctionCall`, `ReAct`, `PlanSolve`, `Reflection`, `SkillAgent`, and `WorkflowAgent`\n- **Skill system**: Define skills with `SKILL.md` or TypeScript classes; `SkillDispatcher` auto-routes by keyword (zero LLM cost) then LLM intent; `withSkills` mixin adds skill routing to any Agent type\n- **Memory + RAG built-in**: Working / episodic / semantic / perceptual memory with pluggable stores\n- **Protocol layer included**: MCP, A2A, and ANP implementations for inter-agent communication\n- **Production-friendly TypeScript**: ESM/CJS builds, strict typing, modular packages, and subpath imports\n\n---\n\n## Package Architecture\n\n| Package | Purpose |\n| --- | --- |\n| [`@agenticforge/kit`](packages/kit) | One-stop package that re-exports the core ecosystem |\n| [`@agenticforge/core`](packages/core) | Agent base types, message model, `LLMClient`, hooks \u0026 metrics |\n| [`@agenticforge/tools`](packages/tools) | Tool abstraction, schema validation, registry, chain, async execution |\n| [`@agenticforge/agents`](packages/agents) | Built-in agent implementations and workflow orchestration |\n| [`@agenticforge/workflow`](packages/workflow) | Standalone DAG workflow engine (`WorkflowEngine` + types) |\n| [`@agenticforge/skills`](packages/skills) | Markdown / TypeScript skill definitions, loading, routing, execution |\n| [`@agenticforge/memory`](packages/memory) | MemoryManager, storage adapters, embedding support, RAG pipeline |\n| [`@agenticforge/tools-builtin`](packages/tools-builtin) | Ready-to-use tools: search, memory, notes, RAG, terminal |\n| [`@agenticforge/context`](packages/context) | Token-aware context composition and budget management |\n| [`@agenticforge/protocols`](packages/protocols) | MCP / A2A / ANP protocol implementations |\n| [`@agenticforge/utils`](packages/utils) | Shared utility helpers (cache, prompt helpers, etc.) |\n\n---\n\n## Agent Types\n\n| Agent | Best For |\n| --- | --- |\n| `SimpleAgent` | Multi-turn conversation without tool execution |\n| `FunctionCallAgent` | Reliable tool-invocation workflows |\n| `ReActAgent` | Iterative reasoning + action loops |\n| `PlanSolveAgent` | Plan-first decomposition for complex tasks |\n| `ReflectionAgent` | Self-critique and answer refinement |\n| `SkillAgent` | Intent-based capability routing across many skills |\n| `WorkflowAgent` | DAG-style orchestration with parallelizable nodes |\n\n---\n\n## Quick Start\n\n### 1) Install\n\n```bash\nnpm install @agenticforge/kit zod\n```\n\n### 2) Minimal Tool-Driven Agent\n\n```ts\nimport { LLMClient, FunctionCallAgent, Tool, toolAction } from \"@agenticforge/kit\";\nimport { z } from \"zod\";\n\nconst calculator = new Tool({\n  name: \"calculator\",\n  description: \"Evaluate a simple expression: a+b, a-b, a*b, a/b\",\n  parameters: [{ name: \"expr\", type: \"string\", required: true }],\n  action: toolAction(\n    z.object({ expr: z.string() }),\n    async ({ expr }) =\u003e {\n      const safe = expr.match(/^\\s*[-\\d.]+\\s*[+\\-*/]\\s*[-\\d.]+\\s*$/);\n      if (!safe) return \"Unsupported expression\";\n      return String(Function(`\"use strict\"; return (${expr})`)());\n    }\n  ),\n});\n\nconst llm = new LLMClient({\n  provider: \"openai\",\n  model: \"gpt-4o\",\n  apiKey: process.env.OPENAI_API_KEY,\n});\n\nconst agent = new FunctionCallAgent({\n  llm,\n  tools: [calculator],\n});\n\nconst output = await agent.run(\"What is (123 + 456) * 2?\");\nconsole.log(output);\n```\n\n---\n\n## Skills (Markdown + TypeScript)\n\nAgenticFORGE supports two skill authoring styles:\n\n- **Markdown skills** (`SKILL.md` / `*.skill.md`) for fast iteration\n- **TypeScript skills** (`AgentSkill`) for custom logic and deeper control\n\n```ts\nimport { SkillLoader, SkillRunner } from \"@agenticforge/skills\";\n\nconst skills = await SkillLoader.fromDirectory(\".cursor/skills\");\nconst runner = new SkillRunner({ llm, skills });\n\nconst result = await runner.run(\"Is it raining in Tokyo tomorrow?\");\nconsole.log(result.output);\n```\n\n---\n\n## Memory and RAG\n\nUse `MemoryManager` to combine short-term and long-term memory, then layer retrieval with the built-in RAG pipeline.\n\n```ts\nimport { MemoryManager } from \"@agenticforge/memory\";\n\nconst memory = new MemoryManager({\n  enableWorking: true,\n  enableEpisodic: true,\n  enableSemantic: true,\n});\n\nawait memory.addMemory({\n  content: \"User prefers concise answers.\",\n  memoryType: \"semantic\",\n  importance: 0.8,\n});\n\nconst recalled = await memory.retrieveMemories({\n  query: \"response style preference\",\n  limit: 3,\n  memoryTypes: [\"semantic\"],\n});\n\nconsole.log(recalled);\n```\n\n---\n\n## Protocols (MCP / A2A / ANP)\n\n`@agenticforge/protocols` includes practical protocol implementations to expose tools, connect agents, and manage networks:\n\n- **MCP**: Standardized tool/resource access\n- **A2A**: Agent-to-agent skill invocation\n- **ANP**: Service discovery, topology, and routing\n\n---\n\n## Monorepo Apps \u0026 Docs\n\nThis repository also includes:\n\n- `apps/second-brain` — an end-to-end sample app (frontend + backend) built with AgenticFORGE\n- `docs-site/` — VitePress documentation site\n- `.cursor/skills/` and `skills/` — reusable skill templates and examples\n\n---\n\n## AI-Assisted Development with Skills\n\nEvery AgenticFORGE package ships with a companion `SKILL.md` under `skills/`, designed to be loaded into AI coding assistants (Cursor, Windsurf, etc.) as context-aware skills.\n\n| Skill | Covers |\n| --- | --- |\n| [`agenticforge-agents`](skills/agenticforge-agents/SKILL.md) | Agent selection, configuration, WorkflowAgent DAG patterns |\n| [`agenticforge-tools`](skills/agenticforge-tools/SKILL.md) | Tool authoring, ToolRegistry, ToolChain, AsyncToolExecutor |\n| [`agenticforge-memory`](skills/agenticforge-memory/SKILL.md) | WorkingMemory, EpisodicMemory, SemanticMemory, RAG pipeline |\n| [`agenticforge-skills`](skills/agenticforge-skills/SKILL.md) | SKILL.md authoring, SkillRunner, SkillLoader, routing |\n| [`agenticforge-context`](skills/agenticforge-context/SKILL.md) | ContextBuilder, token budget management |\n| [`agenticforge-protocols`](skills/agenticforge-protocols/SKILL.md) | MCP, A2A, ANP protocol setup |\n| [`agenticforge-debugging`](skills/agenticforge-debugging/SKILL.md) | Diagnosing agent loop errors, tool failures, type errors |\n| [`agenticforge-vibe-coding`](skills/agenticforge-vibe-coding/SKILL.md) | All-in-one assistant for rapid AgenticFORGE development |\n\nTo load them into Cursor, add the `skills/` directory to your `.cursor/skills/` path or reference individual `SKILL.md` files in your project rules.\n\n---\n\n## Local Development\n\n```bash\ngit clone https://github.com/LittleBlacky/AgenticFORGE.git\ncd AgenticFORGE\npnpm install\npnpm -r run build\npnpm test\n```\n\n---\n\n## Documentation\n\n- Docs site: [`docs-site/`](docs-site)\n- Guide entry: [`docs-site/guide/introduction`](docs-site/guide/introduction.md)\n- Package-level docs: each package contains its own `README.md`\n\n---\n\n## Contributing\n\nIssues and pull requests are welcome.\n\nIf you plan a larger feature or API change, please open an issue first so we can align on design and scope.\n\n---\n\n## License\n\n[CC BY-NC-SA 4.0](LICENSE) © LittleBlacky\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flittleblacky%2Fagenticforge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flittleblacky%2Fagenticforge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flittleblacky%2Fagenticforge/lists"}