Gitrend
🤖

うおお!エージェント開発はコレで決まりだ!

TypeScript 2026/2/23
Summary
最近エージェント開発にハマってる僕だけど、これマジでやばいツール見つけちゃったよ! TypeScriptでゴリゴリ書ける、最高のAgent Harness! 君のエージェント、覚醒させたくない?さあ、一緒に見ていこうぜ!

概要:なにこれ凄い?

もうね、感動したの一言に尽きるよ!code-yeongyu/oh-my-opencode。名前からしてパンチ効いてるでしょ?これね、単なるライブラリじゃないんだ。AIエージェントの開発って、ツールの連携とか、エラー時のリトライ処理とか、状態管理とか、正直言ってめんどくさい部分が多かったんだよね。でもこの『oh-my-opencode』は、その面倒な部分を最高の形で抽象化して、エンジニアが本来集中すべきエージェントの「知性」の部分に全集中させてくれる、そんな夢のようなHarnessなんだよ!TypeScriptの堅牢な型システムを活かしてるから、大規模なエージェントシステムでも安心して組めるのが最高にクールなんだ!

ここが推し!

サクッと試そう(使用例)

import { createAgentHarness, defineTool } from 'oh-my-opencode';

// シンプルなツールを定義してみよう!
const greetTool = defineTool({
  name: 'greet',
  description: '与えられた名前に挨拶します',
  parameters: {
    type: 'object',
    properties: {
      name: { type: 'string', description: '挨拶する相手の名前' }
    },
    required: ['name']
  },
  execute: async ({ name }: { name: string }) => {
    return `こんにちは、${name}さん!Akira's Tech Logへようこそ!`;
  },
});

// エージェントのロジックを定義 (これは簡略化してるけど、もっと複雑なこともできるぞ!)
const myAwesomeAgent = async (query: string, tools: any[]) => {
  if (query.includes('挨拶')) {
    // ツールを使って挨拶してみる!
    const result = await tools[0].execute({ name: '読者' });
    return result;
  }
  return `Agentが${query}について考え中...`;
};

// ハーネスを初期化!ツールも一緒に渡しちゃうぞ!
const harness = createAgentHarness({
  agent: myAwesomeAgent,
  tools: [greetTool],
  maxRetries: 3, // エラー時のリトライ設定も簡単!
});

// エージェントを実行!うおお、動いたぞ!
const result = await harness.run("挨拶をお願いします!");
console.log(result);

// ちょっと複雑なプロンプトで試してみるのもありだね!
// const complexResult = await harness.run("今日の天気とおすすめのランチを教えて");
// console.log(complexResult);

ぶっちゃけ誰向け?

まとめ

いや〜、今回も熱くなっちゃったね!oh-my-opencode、マジで触るたびに感動が止まらないんだ。AIエージェント開発がますます盛り上がる中で、こんなにも開発者をサポートしてくれるツールが登場するなんて、本当に嬉しい限りだよ!みんなもぜひ触ってみて、この感動を共有してほしい!これからのエージェント開発が、もっともっと楽しくなること間違いなしだね!じゃあ、また次のトレンドで会おうぜ!アキラでした!