{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"npm-kushuri12-ohiru","slug":"kushuri12-ohiru","name":"@kushuri12/ohiru","type":"agent","url":"https://www.npmjs.com/package/@kushuri12/ohiru","page_url":"https://unfragile.ai/kushuri12-ohiru","categories":["ai-agents"],"tags":[],"pricing":{"model":"open_source","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"npm-kushuri12-ohiru__cap_0","uri":"capability://tool.use.integration.telegram.based.conversational.agent.interface","name":"telegram-based conversational agent interface","description":"Provides a Telegram bot interface that receives user messages via Telegram's Bot API polling or webhook mechanism, routes them to an underlying LLM agent, and sends responses back through Telegram's message API. The agent maintains conversation context within Telegram chat sessions, enabling multi-turn dialogue without explicit session management by the user.","intents":["I want to control an AI agent through Telegram instead of building a custom web UI","I need my AI agent to be accessible via a messaging platform my users already use","I want to deploy an LLM agent without managing authentication or frontend infrastructure"],"best_for":["developers building personal AI assistants for Telegram","teams deploying internal AI tools to non-technical users via Telegram","rapid prototyping of LLM agents without frontend development"],"limitations":["Limited to Telegram's message format constraints (4096 character limit per message)","No native support for rich UI components beyond Telegram's inline keyboards","Polling-based updates may introduce latency compared to webhook-based architectures","Conversation context stored in-memory by default — no built-in persistence across bot restarts"],"requires":["Telegram Bot API token (created via BotFather)","Node.js 14+ runtime","Network connectivity for Telegram API calls","Optional: Webhook URL if using webhook mode instead of polling"],"input_types":["text messages","command messages (e.g., /start, /help)","callback queries from inline buttons"],"output_types":["text messages","formatted messages with inline keyboards","message edits and deletions"],"categories":["tool-use-integration","messaging-platform-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-kushuri12-ohiru__cap_1","uri":"capability://planning.reasoning.llm.agent.orchestration.with.multi.turn.context","name":"llm agent orchestration with multi-turn context","description":"Manages stateful conversations by maintaining message history and context across multiple user interactions, passing accumulated context to an underlying LLM provider (OpenAI, Anthropic, or compatible API) for each new user message. The agent uses a prompt-based system to define behavior and instruction-following patterns, with context automatically appended to each API call.","intents":["I want my Telegram bot to remember previous messages in a conversation and use that context for responses","I need the agent to follow specific instructions or role definitions across multiple turns","I want to control agent behavior through system prompts without modifying code"],"best_for":["developers building stateful conversational agents","teams deploying customer support bots that need conversation memory","builders prototyping multi-turn dialogue systems quickly"],"limitations":["Context window limited by underlying LLM provider (typically 4K-128K tokens)","No automatic context summarization or pruning — long conversations may hit token limits","In-memory context storage means conversation history lost on bot restart unless explicitly persisted","No built-in support for multi-user context isolation in group chats without custom logic"],"requires":["LLM API key (OpenAI, Anthropic, or compatible provider)","Node.js 14+","Network access to LLM provider API"],"input_types":["text messages","system prompts (string-based instructions)"],"output_types":["text responses from LLM","structured agent decisions (if using function calling)"],"categories":["planning-reasoning","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-kushuri12-ohiru__cap_2","uri":"capability://tool.use.integration.function.calling.and.tool.integration.via.llm.providers","name":"function calling and tool integration via llm providers","description":"Enables the agent to invoke external functions or APIs by leveraging the underlying LLM provider's function-calling capability (e.g., OpenAI's function calling, Anthropic's tool use). The agent receives function definitions, the LLM decides when to call them based on user intent, and results are fed back into the conversation context for the LLM to interpret and respond to.","intents":["I want my Telegram agent to call external APIs or functions based on user requests","I need the agent to decide when to use tools and how to interpret their results","I want to extend agent capabilities with custom business logic without modifying the core agent"],"best_for":["developers building agents that integrate with external services (APIs, databases, webhooks)","teams deploying agents that need to take actions beyond text generation","builders creating multi-step workflows triggered by Telegram messages"],"limitations":["Function calling support depends on LLM provider — not all models support it equally","No built-in error handling or retry logic for failed function calls","Function definitions must be manually maintained and kept in sync with actual implementations","Limited to LLM provider's function calling schema — custom serialization formats not supported"],"requires":["LLM provider supporting function calling (OpenAI GPT-4/3.5+, Anthropic Claude, etc.)","Function definitions in provider-specific schema format","Implementation of actual functions/endpoints being called"],"input_types":["function definitions (JSON schema)","user messages triggering function calls"],"output_types":["function call decisions from LLM","function execution results","LLM-generated responses based on function results"],"categories":["tool-use-integration","planning-reasoning"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-kushuri12-ohiru__cap_3","uri":"capability://tool.use.integration.telegram.command.and.event.routing","name":"telegram command and event routing","description":"Parses incoming Telegram messages to identify command patterns (e.g., /start, /help, /reset) and routes them to corresponding handler functions. Also handles callback queries from inline buttons, allowing structured user interactions beyond free-form text. The routing system decouples command handlers from the core agent logic, enabling modular command definitions.","intents":["I want my Telegram bot to respond to specific commands like /start or /help with custom logic","I need to create interactive buttons that trigger specific actions when clicked","I want to reset conversation state or trigger special behaviors via commands"],"best_for":["developers building Telegram bots with structured command interfaces","teams deploying bots that need both conversational and command-based interactions","builders creating guided workflows with button-based navigation"],"limitations":["Command routing is text-pattern based — no advanced NLU for command detection","Callback query handling limited to Telegram's inline keyboard constraints","No built-in command permission system — authorization must be implemented separately","Command state not persisted — each command invocation is stateless unless explicitly managed"],"requires":["Telegram Bot API token","Node.js 14+","Command handler function definitions"],"input_types":["command strings (e.g., /start, /help)","callback query data from inline buttons","regular text messages"],"output_types":["text responses","messages with inline keyboards","message edits"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-kushuri12-ohiru__cap_4","uri":"capability://memory.knowledge.conversation.state.persistence.and.reset","name":"conversation state persistence and reset","description":"Provides mechanisms to save, load, and reset conversation state (message history and context) for individual Telegram users or chats. State can be persisted to external storage (database, file system) or managed in-memory. Reset functionality clears conversation history, allowing users to start fresh conversations without restarting the bot.","intents":["I want to save conversation history so it persists across bot restarts","I need users to be able to reset their conversation and start fresh","I want to implement per-user conversation isolation in group chats"],"best_for":["developers building production bots that need conversation persistence","teams deploying multi-user bots with per-user conversation isolation","builders creating bots where conversation history is valuable for user experience"],"limitations":["No built-in persistence layer — requires external database or file storage integration","State serialization format not standardized — custom serialization logic needed for complex state","No automatic cleanup of old conversations — storage management must be implemented separately","In-memory state management doesn't scale to high-concurrency scenarios without external state store"],"requires":["External storage solution (optional, for persistence)","Node.js 14+","Serialization logic for conversation state"],"input_types":["user/chat identifiers","conversation state objects"],"output_types":["persisted conversation state","loaded conversation history","reset confirmation"],"categories":["memory-knowledge","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-kushuri12-ohiru__cap_5","uri":"capability://safety.moderation.error.handling.and.graceful.degradation","name":"error handling and graceful degradation","description":"Implements error handling for LLM API failures, Telegram API errors, and function call failures. When errors occur, the agent can gracefully degrade by returning error messages to users, retrying failed operations, or falling back to default responses. Error context is preserved for debugging and logging.","intents":["I want my bot to handle API failures gracefully without crashing","I need users to receive helpful error messages when something goes wrong","I want to log and monitor errors for debugging production issues"],"best_for":["developers deploying production Telegram bots","teams building bots that need reliability and observability","builders creating bots that integrate with unreliable external services"],"limitations":["No built-in retry logic with exponential backoff — must be implemented per use case","Error messages exposed to users may leak sensitive information if not filtered","No automatic circuit breaker for failing external services","Error logging requires external logging infrastructure — no built-in observability"],"requires":["Node.js 14+","Error handling logic in agent code","Optional: external logging/monitoring service"],"input_types":["error objects from LLM API, Telegram API, or function calls"],"output_types":["error messages to users","logged error details","fallback responses"],"categories":["safety-moderation","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-kushuri12-ohiru__cap_6","uri":"capability://safety.moderation.rate.limiting.and.quota.management","name":"rate limiting and quota management","description":"Implements rate limiting to prevent abuse of the Telegram bot and underlying LLM API. Can enforce per-user rate limits (e.g., max messages per minute), per-chat limits, or global limits. Quota tracking prevents excessive API costs by monitoring token usage or API call counts. When limits are exceeded, the agent can reject requests or queue them for later processing.","intents":["I want to prevent users from spamming my bot and exhausting API quotas","I need to enforce fair usage limits across multiple users","I want to monitor and control API spending on LLM calls"],"best_for":["developers deploying public Telegram bots","teams managing bots with cost-sensitive LLM API usage","builders creating bots that need abuse prevention"],"limitations":["No built-in distributed rate limiting — works only for single-instance deployments","Rate limit configuration must be manually tuned per use case","No automatic quota reset or billing cycle alignment with LLM provider billing","Quota tracking requires external storage for persistence across bot restarts"],"requires":["Node.js 14+","Rate limiting configuration (limits per user/chat/global)","Optional: external storage for quota persistence"],"input_types":["user/chat identifiers","message counts or token counts"],"output_types":["rate limit enforcement decisions","quota status messages","rejection or queueing of requests"],"categories":["safety-moderation","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"npm-kushuri12-ohiru__cap_7","uri":"capability://automation.workflow.logging.and.debugging.utilities","name":"logging and debugging utilities","description":"Provides built-in logging for agent operations including message routing, LLM API calls, function calls, and errors. Debug mode can be enabled to log detailed information about agent state, context, and decision-making. Logs can be output to console, files, or external logging services. Structured logging enables filtering and analysis of agent behavior.","intents":["I want to debug why my bot is behaving unexpectedly","I need to monitor agent operations in production","I want to understand what context is being sent to the LLM"],"best_for":["developers debugging agent behavior during development","teams monitoring production bots for issues","builders analyzing agent decision-making for optimization"],"limitations":["Verbose logging can impact performance in high-throughput scenarios","No built-in log rotation or retention policies","Structured logging format not standardized — custom formatters needed for integration with external services","Debug mode may expose sensitive information (API keys, user data) if not carefully configured"],"requires":["Node.js 14+","Optional: external logging service for centralized log aggregation"],"input_types":["agent operations (message routing, API calls, function calls)"],"output_types":["log messages (console, file, or external service)","structured log data"],"categories":["automation-workflow","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":31,"verified":false,"data_access_risk":"high","permissions":["Telegram Bot API token (created via BotFather)","Node.js 14+ runtime","Network connectivity for Telegram API calls","Optional: Webhook URL if using webhook mode instead of polling","LLM API key (OpenAI, Anthropic, or compatible provider)","Node.js 14+","Network access to LLM provider API","LLM provider supporting function calling (OpenAI GPT-4/3.5+, Anthropic Claude, etc.)","Function definitions in provider-specific schema format","Implementation of actual functions/endpoints being called"],"failure_modes":["Limited to Telegram's message format constraints (4096 character limit per message)","No native support for rich UI components beyond Telegram's inline keyboards","Polling-based updates may introduce latency compared to webhook-based architectures","Conversation context stored in-memory by default — no built-in persistence across bot restarts","Context window limited by underlying LLM provider (typically 4K-128K tokens)","No automatic context summarization or pruning — long conversations may hit token limits","In-memory context storage means conversation history lost on bot restart unless explicitly persisted","No built-in support for multi-user context isolation in group chats without custom logic","Function calling support depends on LLM provider — not all models support it equally","No built-in error handling or retry logic for failed function calls","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.20896932087848388,"quality":0.26,"ecosystem":0.3,"match_graph":0.25,"freshness":0.75,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.1,"match_graph":0.28,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-05-24T12:16:23.902Z","last_scraped_at":"2026-04-22T08:08:13.651Z","last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":6147,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=kushuri12-ohiru","compare_url":"https://unfragile.ai/compare?artifact=kushuri12-ohiru"}},"signature":"0PvVtbdNOKu3BWnDWavy4mJnkms0Ols0vmQil7sB8ZzajXPHiV7QGe2zqdIfFM3eKPHSLL5UFYLWHkJNG+EPCQ==","signedAt":"2026-06-21T08:30:01.290Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/kushuri12-ohiru","artifact":"https://unfragile.ai/kushuri12-ohiru","verify":"https://unfragile.ai/api/v1/verify?slug=kushuri12-ohiru","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}